Compare commits

...

5 Commits

  1. 25
      CHANGELOG.md
  2. 264
      build-doc/images/block_diagram.svg.2024_01_15_13_59_05.0.svg
  3. 284
      build-doc/images/block_diagram.svg.2024_01_15_14_00_17.0.svg
  4. 295
      build-doc/images/block_diagram.svg.2024_01_15_14_00_56.0.svg
  5. 955
      build-doc/images/diagram_rain_meter.svg.2024_01_15_08_59_56.0.svg
  6. 441
      build-doc/images/prototype_block_diagram.svg
  7. BIN
      build-doc/images/prototype_inside.jpg
  8. BIN
      build-doc/images/prototype_inside_annotations.jpg
  9. BIN
      build-doc/images/prototype_inside_annotations_small.jpg
  10. BIN
      build-doc/images/prototype_inside_small.jpg
  11. BIN
      build-doc/images/prototype_overview.jpg
  12. BIN
      build-doc/images/prototype_overview_small.jpg
  13. BIN
      build-doc/images/prototype_sensors.jpg
  14. BIN
      build-doc/images/prototype_sensors_small.jpg
  15. BIN
      build-doc/images/smart_heater.odg
  16. 1258
      build-doc/images/smart_heater.svg
  17. 212
      build-doc/images/wind_speed_diagram.svg
  18. 245
      build-doc/weather_station.html
  19. 149
      build-doc/weather_station.md
  20. BIN
      build-doc/weather_station.pdf
  21. BIN
      datasheet/Handboek_H05_knmi_definities.pdf
  22. 266
      firmware/weather_station.ino
  23. BIN
      test_software/__pycache__/epever_control.cpython-36.pyc
  24. 26
      test_software/epever_control.py
  25. 6
      test_software/weather_station_rs485_client.py

@ -26,3 +26,28 @@ All notable changes to this project will be documented in this file.
### Changed
- Heater of humidiy sensor only on when humidity is above 96% (was 80%). When heater is on temperature sensor also heats up, so use temperature sensor of BMP280 when heater is on.
## [0.2.1] - 2024-01-17
### Changed
- Heater algorithm updated. Idea from datasheet of humidity sensor from Temco Controls HUM-M2 humidity sensor module.
- ModBus read register 1: Scaled wind direction by 10 in order to also get the decimal position of the direction
### Added
- ModBus read register 12: Raw rain meter
- ModBus read register 13: Temperature from pressure sensor
- ModBus read register 14: Status bits
- ModBus coil register 0 : enable/disable heather algorithm
## [0.2.2] - 2023-01-21
### Fixed
- Buffer overflow when calculating average wind speed in AverageOfArray(). Fix: use 32 bit register for average_value.
### Changed
- Changed some variables to the propper standard (uint8_t, uint16_t, etc.)
- SparkFun wind interrupt now calculates over 3 seconds in stead of 1 second (KNMI standard)]

@ -1,264 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="297mm"
height="210mm"
viewBox="0 0 297 210"
version="1.1"
id="svg8"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="block_diagram.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="400"
inkscape:cy="560"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
transform="matrix(0.0015313,0,0,-0.0015313,36.549533,137.12808)"
fill="#000000"
stroke="none"
id="g10">
<path
d="m 6095,12794 c -27,-2 -115,-8 -195,-14 C 4030,12643 2289,11657 1185,10109 -320,7999 -397,5162 992,2977 1816,1681 3084,716 4540,276 5466,-3 6424,-71 7380,76 c 761,117 1520,381 2180,759 1230,704 2185,1777 2734,3070 866,2040 607,4403 -679,6204 -886,1241 -2181,2128 -3645,2496 -340,86 -633,135 -1005,171 -150,14 -756,27 -870,18 z m 547,-984 c 776,-36 1477,-217 2158,-556 560,-279 978,-580 1426,-1028 435,-435 743,-858 1008,-1386 325,-645 500,-1269 567,-2020 26,-288 14,-767 -27,-1095 -128,-1030 -548,-1992 -1224,-2805 -133,-160 -427,-458 -591,-601 -792,-688 -1757,-1133 -2774,-1278 -283,-41 -469,-53 -785,-53 -880,0 -1667,187 -2450,582 -738,373 -1398,931 -1901,1605 -552,742 -909,1630 -1023,2550 -55,438 -55,912 0,1350 115,926 471,1810 1031,2560 163,219 293,368 522,596 241,240 338,325 576,504 863,649 1910,1026 2980,1075 238,10 281,10 507,0 z"
id="path4" />
<path
d="m 6240,10996 v -214 l -77,-6 c -431,-34 -740,-89 -1062,-191 -611,-193 -1123,-482 -1608,-908 l -130,-114 -155,148 -156,149 -110,-119 -111,-118 151,-151 152,-150 -75,-89 C 2395,8455 2022,7447 2020,6428 v -167 l -52,-5 c -29,-3 -125,-11 -213,-17 -88,-6 -161,-11 -162,-12 -4,-5 21,-313 26,-319 3,-4 96,0 205,8 110,8 205,13 213,10 7,-3 13,-20 13,-40 0,-63 60,-392 101,-552 80,-317 220,-686 361,-954 156,-298 322,-544 561,-831 82,-100 146,-184 140,-188 -25,-17 -313,-262 -313,-267 0,-11 204,-244 211,-242 4,2 169,138 365,303 197,165 364,305 372,310 11,9 -37,71 -233,305 -135,162 -281,344 -324,405 -372,523 -598,1102 -688,1765 -22,168 -26,712 -5,880 108,876 465,1631 1062,2244 627,643 1406,1026 2320,1138 66,8 223,13 420,13 197,0 354,-5 420,-13 755,-93 1397,-361 1980,-826 150,-120 433,-400 553,-547 423,-520 699,-1118 811,-1759 45,-260 51,-338 51,-680 -1,-280 -4,-347 -23,-481 -66,-466 -197,-882 -403,-1278 -151,-288 -279,-471 -609,-866 -192,-230 -239,-291 -228,-300 8,-5 175,-145 372,-310 196,-165 361,-301 365,-303 7,-2 211,231 211,242 0,5 -288,251 -314,268 -5,3 44,71 110,150 203,244 309,388 426,578 245,399 417,806 529,1253 42,166 99,481 99,543 0,20 6,37 13,40 8,3 103,-2 213,-10 109,-8 202,-12 205,-8 5,6 30,314 26,319 -1,1 -74,6 -162,12 -88,6 -183,14 -211,17 l -51,5 -6,247 c -11,459 -76,838 -217,1262 -183,555 -439,1011 -824,1468 l -70,84 152,150 151,151 -111,118 -110,119 -156,-149 -155,-148 -130,114 c -484,426 -997,715 -1608,908 -322,102 -631,157 -1061,191 l -78,6 v 214 214 h -160 -160 z"
id="path6" />
<path
d="m 8385,8348 c -165,-138 -605,-505 -978,-816 l -679,-565 -56,27 c -31,15 -82,33 -112,41 -74,20 -246,19 -323,-1 -229,-59 -412,-243 -471,-472 -21,-80 -22,-229 -1,-317 8,-38 12,-71 7,-74 -5,-3 -151,-125 -326,-270 l -317,-264 98,-101 c 54,-56 156,-161 226,-233 70,-73 130,-133 132,-133 2,0 131,140 286,311 198,218 287,309 298,305 118,-37 270,-48 371,-26 193,43 359,175 445,355 52,107 65,166 65,285 0,103 -13,173 -47,249 l -23,54 23,26 c 121,131 1675,1850 1681,1859 4,7 6,12 4,11 -2,0 -138,-113 -303,-251 z"
id="path8" />
</g>
<g
transform="matrix(0.00216713,0,0,-0.00216713,32.113648,120.65624)"
fill="#000000"
stroke="none"
id="g10-1">
<path
d="m 11241,8109 c -271,-58 -564,-218 -911,-498 -368,-296 -560,-417 -825,-516 -295,-111 -619,-116 -920,-13 -249,84 -471,218 -796,479 -80,65 -195,151 -255,192 -567,389 -1112,468 -1676,241 -220,-88 -427,-217 -703,-439 -306,-246 -562,-400 -795,-479 -271,-91 -558,-90 -827,5 -239,85 -461,223 -828,518 -377,302 -681,456 -1010,508 -131,21 -373,13 -496,-16 -271,-62 -582,-223 -863,-446 -47,-38 -86,-72 -86,-77 0,-11 280,-428 288,-428 2,0 48,33 101,74 507,388 882,458 1315,248 160,-78 291,-166 521,-351 236,-190 430,-320 627,-421 223,-114 394,-172 618,-211 106,-19 383,-16 500,4 385,66 763,260 1215,622 209,168 346,260 490,330 203,99 352,135 552,135 335,0 615,-123 1023,-451 424,-340 748,-519 1105,-609 164,-42 280,-53 483,-48 286,8 495,64 797,213 206,101 411,236 635,416 227,183 346,270 455,335 292,171 519,202 786,104 144,-52 333,-168 522,-320 48,-38 91,-70 95,-70 4,0 72,97 152,216 l 145,215 -25,20 c -364,290 -605,428 -885,506 -129,36 -387,42 -524,12 z"
id="path4-7" />
<path
d="m 11276,6634 c -219,-40 -480,-162 -741,-348 -38,-28 -146,-111 -240,-186 -364,-290 -581,-420 -841,-506 -158,-51 -259,-68 -424,-68 -228,0 -404,42 -640,155 -201,97 -336,185 -590,389 -248,198 -368,278 -571,379 -508,253 -993,254 -1504,2 -175,-86 -336,-192 -530,-347 -296,-237 -424,-323 -620,-419 -238,-117 -407,-159 -630,-158 -212,1 -375,42 -600,153 -188,92 -343,198 -635,433 -341,276 -648,436 -960,503 -118,26 -389,26 -514,1 -214,-43 -462,-152 -686,-302 -167,-111 -295,-213 -294,-233 0,-10 64,-111 141,-225 l 141,-208 34,29 c 18,16 76,60 128,99 477,349 841,406 1266,198 145,-71 280,-163 489,-330 198,-159 350,-268 490,-352 600,-360 1161,-407 1751,-145 238,106 469,256 788,514 194,157 399,283 566,347 256,99 535,106 795,20 202,-67 391,-181 670,-405 322,-258 636,-446 905,-541 708,-251 1374,-75 2155,569 280,231 474,351 665,413 123,40 283,46 415,16 167,-39 385,-161 619,-347 l 105,-83 146,215 c 171,252 172,209 -8,346 -398,303 -726,440 -1051,437 -61,0 -147,-7 -190,-15 z"
id="path6-5" />
<path
d="m 11300,5155 c -299,-49 -631,-227 -1015,-545 -364,-302 -694,-480 -1005,-546 -41,-8 -131,-18 -200,-21 -393,-18 -784,146 -1260,527 -277,222 -434,327 -626,416 -669,310 -1303,197 -1990,-358 -247,-199 -344,-268 -517,-368 -359,-206 -697,-266 -1029,-181 -275,69 -526,211 -878,496 -413,334 -692,486 -1024,557 -143,30 -389,30 -529,0 -230,-50 -457,-152 -687,-306 -139,-94 -290,-211 -290,-225 0,-6 271,-415 285,-429 2,-2 46,30 98,71 258,202 483,316 705,358 38,7 112,10 195,6 160,-6 257,-31 427,-113 148,-71 273,-155 487,-326 195,-157 311,-242 431,-317 310,-194 593,-304 879,-342 131,-17 399,-6 528,21 369,78 726,268 1155,614 319,258 548,383 812,442 101,23 345,23 448,0 119,-26 196,-54 325,-116 146,-70 275,-156 460,-304 333,-267 541,-400 801,-512 537,-233 1046,-217 1589,51 241,118 397,222 702,466 357,286 563,402 781,440 87,15 238,6 332,-21 157,-45 370,-168 585,-338 55,-44 103,-78 107,-76 3,2 70,99 148,215 138,205 142,212 124,229 -45,43 -229,180 -339,253 -135,89 -342,194 -455,231 -178,58 -396,78 -560,51 z"
id="path8-9" />
</g>
<g
transform="matrix(0.0021812,0,0,-0.0021812,39.444752,171.47037)"
fill="#000000"
stroke="none"
id="g6">
<path
d="m 2998,12790 c -315,-57 -548,-268 -644,-585 -18,-58 -19,-222 -22,-4115 l -3,-4055 -72,-50 c -86,-60 -250,-215 -323,-306 -379,-473 -476,-1119 -253,-1683 195,-493 612,-859 1134,-995 213,-56 533,-66 747,-22 221,45 468,151 648,279 114,81 297,259 372,362 150,206 250,425 299,655 94,445 5,902 -248,1285 -93,140 -292,344 -425,435 l -87,60 -3,4045 -3,4045 -23,73 c -85,276 -283,473 -554,553 -62,18 -103,22 -283,25 -115,1 -231,-1 -257,-6 z"
id="path4-1" />
</g>
<g
transform="matrix(0.00179894,0,0,-0.00179894,34.443075,39.477629)"
fill="#000000"
stroke="none"
id="g10-7">
<path
d="m 6950,10549 c -782,-79 -1408,-535 -1640,-1194 -48,-139 -99,-382 -100,-482 v -23 h 994 994 l 31,-26 c 59,-49 65,-162 11,-216 l -28,-28 H 3606 0 v -98 c 0,-122 15,-369 36,-572 42,-430 118,-803 260,-1292 5,-17 181,-18 3519,-18 3851,0 3610,-4 3856,59 661,167 1188,657 1399,1299 273,833 -24,1729 -745,2243 -232,166 -522,283 -825,334 -116,19 -420,27 -550,14 z"
id="path4-8" />
<path
d="M 10600,8243 C 9884,8170 9320,7808 9039,7242 8948,7058 8879,6810 8864,6617 l -7,-87 h 1013 1013 l 23,-21 c 44,-41 43,-171 -1,-215 l -24,-24 H 5650 c -2876,0 -5230,-2 -5230,-5 0,-2 22,-60 49,-127 246,-616 588,-1196 1025,-1735 l 91,-112 4668,-1 c 3217,0 4698,3 4765,11 456,49 849,233 1176,549 314,303 506,670 583,1115 24,138 24,470 -1,610 -73,427 -258,793 -547,1083 -324,325 -715,519 -1162,577 -106,13 -370,18 -467,8 z"
id="path6-57" />
<path
d="m 1890,3956 c 0,-10 365,-343 485,-443 962,-801 2115,-1308 3345,-1472 391,-53 429,-54 1699,-60 l 1194,-6 20,-26 c 44,-59 38,-181 -10,-219 -25,-20 -39,-20 -1022,-20 h -997 l 8,-82 c 51,-531 322,-983 768,-1282 108,-73 337,-185 460,-226 457,-152 939,-158 1364,-19 803,263 1354,1018 1358,1859 0,224 -18,366 -73,560 -100,349 -287,656 -550,904 -285,267 -609,429 -1026,513 -83,17 -275,18 -3555,21 -1908,1 -3468,0 -3468,-2 z"
id="path8-4" />
</g>
<g
transform="matrix(-0.00273933,0,0,-0.00273933,63.532847,64.839589)"
fill="#000000"
stroke="none"
id="g6-5">
<path
d="m 7360,7349 c -704,-67 -1328,-436 -1670,-987 -110,-179 -180,-348 -237,-580 -45,-184 -49,-296 -16,-480 26,-140 39,-293 29,-344 -3,-18 -19,-49 -35,-68 -27,-33 -32,-35 -104,-38 -69,-4 -80,-1 -134,27 -136,73 -330,254 -419,391 -82,127 -164,330 -164,406 0,22 0,22 68,-6 93,-40 179,-52 327,-48 125,3 127,3 151,31 54,63 21,126 -142,273 -146,131 -144,129 -144,168 0,19 4,47 10,61 l 10,26 49,-26 c 27,-15 81,-56 119,-91 l 71,-64 30,43 c 143,209 59,553 -184,750 -107,87 -214,132 -350,147 -81,9 -114,-1 -181,-55 -23,-19 -46,-35 -50,-35 -4,0 -4,34 0,76 l 7,77 -68,-7 c -99,-10 -179,-33 -257,-74 -184,-96 -275,-254 -249,-430 6,-35 6,-62 1,-62 -5,0 -31,11 -58,25 -74,38 -194,75 -239,75 -33,0 -41,-4 -41,-18 0,-40 57,-129 137,-213 l 85,-89 h -52 c -28,0 -97,11 -152,25 -55,14 -103,24 -105,21 -10,-9 52,-109 82,-131 16,-13 51,-33 77,-44 52,-22 63,-37 72,-101 l 6,-45 -95,-75 c -143,-112 -256,-185 -392,-251 -67,-32 -127,-67 -133,-78 -13,-25 -13,-92 -1,-125 6,-13 37,-43 71,-66 74,-51 100,-89 100,-151 0,-49 -4,-56 -99,-171 -52,-63 -132,-227 -155,-318 -9,-36 -19,-110 -22,-165 -5,-84 -2,-120 20,-230 63,-306 163,-492 381,-711 179,-179 366,-295 605,-375 93,-30 100,-31 295,-33 178,-2 208,-5 270,-25 190,-63 322,-161 434,-323 45,-65 65,-84 140,-132 127,-81 210,-177 247,-289 13,-40 40,-75 139,-177 170,-178 220,-267 246,-444 12,-81 7,-128 -31,-265 -11,-41 -20,-96 -20,-123 v -48 H 3854 2068 l 50,63 c 40,50 779,1007 816,1056 6,8 7,12 1,9 -5,-3 -608,-259 -1340,-568 C 864,1611 211,1335 144,1306 77,1278 23,1251 24,1245 25,1240 266,1133 560,1009 2512,183 2923,10 2927,14 c 2,2 -189,253 -425,557 l -429,554 3774,3 3773,2 683,-411 c 375,-226 696,-420 713,-430 30,-18 66,-19 903,-19 479,0 871,3 871,8 0,4 -216,223 -480,487 l -480,480 480,480 c 264,264 480,483 480,488 0,4 -393,7 -873,7 h -873 l -712,-430 -713,-430 H 8061 6502 l -6,23 c -3,12 -28,61 -57,107 -79,131 -96,170 -113,259 -35,181 -23,236 108,494 94,186 105,213 133,338 35,150 91,302 155,418 43,77 216,312 253,343 48,41 112,53 285,53 142,0 176,-3 244,-23 170,-49 322,-139 444,-263 95,-98 112,-124 112,-179 0,-124 -68,-278 -165,-376 -81,-81 -148,-113 -276,-130 -56,-7 -103,-15 -106,-17 -2,-3 13,-19 34,-36 72,-60 254,-138 449,-192 98,-27 369,-38 496,-20 250,36 447,132 604,293 95,98 131,149 184,260 54,113 81,221 86,348 l 4,105 62,38 c 222,135 371,414 354,662 -3,50 -9,115 -12,145 -6,51 -3,60 35,126 59,103 85,213 78,329 -12,171 -72,354 -164,493 -21,31 -80,101 -131,154 l -93,96 31,24 c 41,30 114,127 151,200 92,182 97,405 14,649 -56,162 -151,297 -354,499 -406,404 -922,667 -1492,760 -131,21 -324,25 -489,9 z"
id="path4-3" />
</g>
<g
transform="matrix(0.00194266,0,0,-0.00194266,33.521214,95.401876)"
fill="#000000"
stroke="none"
id="g32">
<path
d="m 6710,12673 c -25,-2 -90,-10 -145,-19 -533,-81 -1001,-335 -1367,-742 l -65,-73 -84,45 c -869,470 -1958,306 -2664,-399 -315,-316 -513,-683 -619,-1147 -5,-23 -15,-30 -64,-43 -136,-38 -306,-101 -427,-160 C 605,9807 139,9173 24,8430 2,8288 -1,7939 18,7805 163,6801 900,6037 1895,5859 c 113,-21 162,-24 380,-23 266,0 345,8 545,59 229,58 493,173 681,296 l 93,61 51,-12 c 284,-67 433,-84 678,-77 181,5 335,26 492,65 l 70,18 75,-60 c 307,-244 686,-408 1083,-466 150,-23 445,-27 587,-10 416,52 839,229 1148,481 l 73,60 89,-51 c 268,-153 567,-253 875,-291 117,-14 417,-14 525,0 225,30 486,103 667,186 l 83,38 127,-19 c 170,-25 470,-25 633,0 515,79 970,315 1323,686 325,342 525,752 603,1235 22,136 25,485 6,620 -99,685 -474,1268 -1050,1632 -320,202 -774,341 -1120,343 h -72 l -113,113 c -388,393 -872,620 -1432,672 l -70,7 -56,102 c -268,481 -730,863 -1260,1039 -272,91 -610,132 -899,110 z"
id="path4-88" />
<path
d="m 3943,5543 c -60,-12 -557,-585 -717,-828 -121,-183 -153,-279 -143,-435 17,-274 207,-501 474,-565 101,-24 243,-17 340,17 182,65 322,205 385,388 34,96 32,291 -5,496 -41,230 -114,542 -187,794 -38,134 -56,151 -147,133 z"
id="path6-3" />
<path
d="m 7553,5543 c -44,-9 -441,-455 -632,-712 -183,-246 -226,-345 -225,-521 1,-87 5,-119 27,-183 71,-205 236,-360 442,-412 76,-19 214,-19 290,0 114,29 203,81 290,169 87,88 133,167 161,278 42,162 -10,521 -156,1079 -84,320 -86,323 -197,302 z"
id="path8-1" />
<path
d="m 11163,5542 c -43,-13 -429,-447 -608,-684 -112,-148 -183,-261 -217,-348 -19,-47 -22,-75 -23,-190 0,-116 3,-145 23,-202 83,-241 300,-403 555,-416 288,-14 526,153 623,438 52,154 -10,582 -171,1167 -58,213 -75,244 -129,242 -17,-1 -41,-4 -53,-7 z"
id="path10-8" />
<path
d="m 5303,4620 c -32,-7 -108,-82 -289,-285 -275,-308 -453,-545 -526,-702 -160,-341 44,-750 422,-844 30,-7 98,-13 150,-13 257,3 483,165 572,410 57,160 23,475 -107,991 -115,455 -122,467 -222,443 z"
id="path12-9" />
<path
d="m 8918,4623 c -62,-10 -548,-565 -723,-828 -117,-174 -145,-252 -145,-404 0,-166 54,-301 169,-423 117,-125 263,-190 431,-192 109,-1 176,13 275,59 161,73 293,232 336,405 38,151 -2,451 -127,955 -76,304 -102,388 -130,413 -25,22 -32,23 -86,15 z"
id="path14-6" />
<path
d="m 6664,3698 c -36,-8 -56,-24 -141,-116 -446,-484 -663,-775 -717,-961 -26,-88 -21,-243 9,-339 38,-120 119,-237 214,-307 249,-182 575,-163 794,45 154,146 210,310 186,544 -23,233 -110,641 -210,986 -41,140 -62,163 -135,148 z"
id="path16-4" />
<path
d="m 10275,3696 c -33,-9 -64,-36 -167,-146 -229,-245 -448,-510 -562,-680 -118,-176 -152,-277 -143,-435 11,-209 121,-393 298,-498 393,-232 898,31 926,482 9,154 -46,484 -152,896 -81,315 -95,356 -130,376 -25,13 -37,14 -70,5 z"
id="path18-3" />
<path
d="m 3024,3691 c -21,-9 -181,-177 -320,-336 -334,-382 -485,-607 -520,-775 -66,-312 148,-639 466,-714 320,-76 654,127 737,447 33,128 3,402 -83,776 -61,263 -142,554 -162,580 -20,28 -78,38 -118,22 z"
id="path20-3" />
<path
d="m 4393,2773 c -52,-10 -509,-527 -687,-776 -73,-102 -134,-214 -157,-287 -26,-81 -28,-236 -4,-324 55,-207 237,-387 444,-441 80,-20 226,-21 304,0 214,56 381,217 442,430 38,130 13,383 -76,779 -42,185 -130,519 -150,569 -20,48 -52,62 -116,50 z"
id="path22-3" />
<path
d="m 8008,2773 c -20,-3 -62,-41 -146,-131 -367,-391 -619,-720 -689,-897 -24,-63 -27,-83 -28,-195 0,-106 4,-136 24,-199 51,-154 171,-292 316,-361 105,-49 159,-62 276,-61 171,1 306,58 430,181 132,131 188,282 176,474 -12,181 -60,441 -147,786 -65,257 -98,362 -121,387 -22,22 -34,25 -91,16 z"
id="path24" />
<path
d="m 2140,1850 c -38,-9 -111,-81 -304,-300 -315,-356 -486,-591 -536,-733 -64,-182 -38,-378 72,-543 120,-179 332,-285 545,-271 268,18 498,208 563,465 16,62 14,241 -5,362 -43,285 -196,924 -238,990 -9,15 -52,43 -60,39 -1,-1 -18,-5 -37,-9 z"
id="path26" />
<path
d="m 5754,1848 c -37,-8 -57,-26 -177,-156 -415,-451 -636,-753 -682,-929 -20,-75 -19,-210 1,-292 41,-165 176,-333 326,-405 151,-72 315,-84 465,-33 99,34 156,69 233,143 109,104 175,239 187,378 15,179 -82,690 -222,1171 -36,124 -52,139 -131,123 z"
id="path28" />
<path
d="m 9371,1850 c -41,-10 -105,-72 -291,-280 -375,-422 -535,-650 -576,-827 -33,-139 1,-322 82,-451 170,-269 502,-365 789,-229 142,68 265,205 316,354 21,60 24,85 23,218 -1,187 -36,394 -135,785 -72,288 -105,393 -134,418 -14,12 -29,22 -33,21 -4,-1 -22,-5 -41,-9 z"
id="path30" />
</g>
<g
transform="matrix(0.0034974,0,0,-0.0034974,224.36301,104.36607)"
fill="#000000"
stroke="none"
id="g30">
<path
d="M 815,5855 C 501,5811 237,5619 100,5337 73,5281 41,5197 28,5150 L 5,5065 V 3205 C 5,1461 6,1341 23,1276 116,912 382,647 740,563 c 71,-17 345,-18 5660,-18 5315,0 5589,1 5660,18 358,84 624,349 717,713 17,65 18,185 18,1929 v 1860 l -23,85 c -105,388 -422,663 -817,709 -143,17 -11021,13 -11140,-4 z m 11188,-364 c 90,-24 133,-44 212,-104 97,-73 176,-191 212,-318 17,-61 18,-152 18,-1864 0,-1688 -1,-1804 -18,-1864 -58,-210 -218,-370 -428,-428 -61,-17 -345,-18 -5599,-18 -5254,0 -5538,1 -5599,18 -210,58 -370,218 -428,428 -17,60 -18,176 -18,1864 0,1712 1,1803 18,1864 47,165 162,307 310,383 22,11 71,28 110,38 70,18 228,19 5603,19 5440,1 5532,1 5607,-18 z"
id="path4-86" />
<path
d="m 3719,5115 c -335,-53 -612,-289 -718,-613 -46,-140 -53,-242 -30,-452 85,-796 191,-1806 199,-1900 5,-63 19,-150 30,-194 88,-332 358,-588 695,-657 84,-17 194,-19 1635,-29 850,-6 1991,-12 2535,-13 943,-2 993,-1 1060,17 385,104 647,410 684,798 6,57 31,238 55,403 25,165 82,543 126,840 44,297 91,613 105,702 29,187 31,274 9,380 -35,170 -108,313 -223,435 -155,165 -333,257 -554,287 -54,8 -932,11 -2800,10 -2220,-1 -2738,-3 -2808,-14 z m 5626,-280 c 275,-57 495,-316 495,-581 0,-34 -18,-181 -39,-326 -143,-948 -261,-1754 -266,-1818 -21,-230 -150,-419 -349,-515 -50,-24 -118,-49 -151,-56 -62,-12 -1014,-10 -3830,11 -1341,10 -1269,6 -1415,78 -56,27 -96,57 -155,117 -97,97 -148,190 -170,310 -8,44 -42,343 -75,665 -33,322 -83,799 -111,1060 -50,469 -51,476 -36,554 41,206 192,393 378,467 126,50 -11,47 2914,48 2369,1 2749,-1 2810,-14 z"
id="path6-0" />
<path
d="m 4148,4229 c -113,-17 -218,-96 -267,-199 -22,-47 -26,-69 -26,-150 0,-81 4,-103 26,-150 33,-70 99,-136 169,-169 47,-22 69,-26 150,-26 81,0 103,4 150,26 195,92 261,339 139,523 -69,104 -212,165 -341,145 z"
id="path8-48" />
<path
d="m 5280,4228 c -95,-15 -179,-69 -233,-151 -46,-70 -59,-115 -59,-203 1,-189 144,-334 337,-342 113,-5 180,21 261,102 75,75 104,143 104,246 0,221 -189,382 -410,348 z"
id="path10" />
<path
d="m 6318,4229 c -286,-44 -401,-393 -196,-599 63,-63 135,-94 233,-98 114,-5 180,21 261,102 75,75 104,143 104,246 0,217 -190,382 -402,349 z"
id="path12" />
<path
d="m 7474,4229 c -172,-22 -304,-173 -304,-349 0,-101 42,-193 120,-263 153,-138 405,-109 521,60 45,65 61,119 62,203 0,103 -29,175 -96,243 -86,86 -185,121 -303,106 z"
id="path14" />
<path
d="m 8578,4229 c -113,-18 -218,-96 -267,-199 -22,-47 -26,-69 -26,-150 0,-81 4,-103 26,-150 33,-70 99,-136 169,-169 47,-22 69,-26 150,-26 81,0 103,4 150,26 286,135 261,559 -39,653 -64,20 -108,24 -163,15 z"
id="path16" />
<path
d="m 4718,2946 c -74,-30 -128,-74 -167,-134 -152,-237 15,-544 294,-544 208,0 369,173 352,378 -8,111 -68,210 -162,269 -98,61 -215,73 -317,31 z"
id="path18" />
<path
d="m 5749,2947 c -75,-31 -122,-69 -162,-130 -47,-71 -61,-119 -60,-202 1,-103 32,-176 104,-246 72,-72 143,-101 245,-101 155,0 288,94 335,239 50,151 -6,314 -140,404 -95,64 -219,78 -322,36 z"
id="path20" />
<path
d="m 6900,2948 c -78,-30 -169,-123 -199,-203 -31,-82 -27,-196 10,-275 56,-119 179,-201 307,-203 87,-1 144,15 211,62 235,161 191,521 -75,621 -74,27 -180,26 -254,-2 z"
id="path22" />
<path
d="m 8008,2947 c -216,-91 -290,-352 -153,-539 68,-92 165,-140 288,-140 65,0 87,5 140,30 77,36 142,100 176,172 22,47 26,69 26,150 0,81 -4,103 -25,145 -34,70 -99,136 -167,171 -48,24 -72,29 -143,32 -71,2 -94,-1 -142,-21 z"
id="path24-8" />
<path
d="m 1230,4060 c -336,-73 -601,-331 -681,-665 -27,-110 -29,-284 -6,-392 96,-444 510,-745 962,-701 539,53 909,578 775,1102 -119,467 -584,757 -1050,656 z m 390,-293 c 423,-150 547,-689 230,-1008 -194,-195 -464,-240 -709,-118 -216,107 -354,347 -337,585 16,214 140,407 325,503 110,57 173,71 306,67 88,-2 125,-8 185,-29 z"
id="path26-8" />
<path
d="m 11365,4074 c -11,-2 -47,-10 -80,-16 -71,-14 -207,-66 -267,-104 -299,-186 -462,-512 -427,-854 12,-115 32,-189 80,-289 165,-348 514,-546 894,-509 207,20 388,105 533,249 166,164 256,365 269,599 21,410 -253,784 -659,900 -71,21 -293,36 -343,24 z m 315,-307 c 91,-32 195,-102 256,-171 56,-64 122,-193 140,-277 78,-364 -180,-709 -556,-744 -165,-16 -351,55 -475,179 -188,189 -235,462 -120,701 76,158 234,287 403,330 91,23 259,15 352,-18 z"
id="path28-9" />
</g>
<g
transform="matrix(0.0082441,0,0,-0.0082441,107.86104,145.26348)"
fill="#000000"
stroke="none"
id="g12">
<path
d="m 7484,12789 c -67,-19 -123,-121 -109,-198 15,-81 61,-135 125,-148 l 30,-6 -2,-2120 -3,-2121 -47,3 -48,3 v -166 -166 h -195 -195 l -2,163 -3,162 -55,1 -55,1 -3,1128 c -2,1114 -2,1127 18,1152 27,35 43,99 35,142 -10,57 -50,116 -91,136 -49,23 -148,17 -186,-10 -65,-48 -90,-154 -55,-236 20,-50 76,-90 132,-97 l 45,-5 -2,-1104 -3,-1105 -85,-2 -85,-1 -3,-162 -2,-163 h -195 -194 v 163 162 h -83 -83 l -5,720 -5,720 -542,3 -543,2 v 755 755 l 28,42 c 23,36 27,52 27,113 0,63 -3,76 -28,108 -38,50 -75,67 -145,67 -45,0 -67,-6 -93,-23 -67,-44 -98,-153 -65,-230 17,-41 76,-93 115,-102 l 31,-7 v -789 -789 h 555 555 v -672 -673 h -52 -53 l -3,-162 -2,-163 h -195 -195 l -2,163 -3,162 h -48 -47 v 418 417 h -633 -634 l -24,26 c -37,40 -73,54 -137,54 -45,0 -67,-5 -93,-23 -110,-74 -104,-253 11,-314 109,-58 238,3 257,122 l 6,35 h 553 554 l -2,-366 -3,-367 -70,-1 -70,-1 -3,-162 -2,-163 h -195 -195 l -2,163 -3,162 h -30 l -30,1 -3,182 -2,182 H 3527 2435 l -50,26 c -123,63 -255,-19 -255,-159 0,-62 19,-105 63,-144 93,-82 246,-32 279,91 l 12,46 h 1003 1004 l -3,-111 -3,-111 -95,-1 -95,-2 -3,-162 -2,-163 h -240 -240 v -345 -345 h -165 -165 v -40 -40 H 2442 1403 l -33,41 c -94,117 -272,81 -310,-63 -21,-77 10,-159 79,-205 26,-17 48,-23 91,-23 67,0 111,25 149,83 l 24,37 h 1039 1038 v -90 -90 h 165 165 v -195 -195 h -165 -165 v -70 -70 H 1870 260 v 930 930 l 25,16 c 41,27 68,96 63,165 -5,62 -23,97 -69,132 -56,41 -152,41 -208,0 -58,-42 -85,-139 -60,-214 13,-38 63,-96 91,-105 17,-5 18,-51 20,-997 l 3,-992 1677,-3 1678,-2 v -60 -60 h 165 165 v -195 -195 h -164 -165 l -3,-47 -3,-48 -1037,-3 -1036,-2 -31,-39 -31,-39 v -740 -740 l -35,-6 c -110,-21 -168,-180 -101,-278 35,-51 70,-71 134,-76 100,-7 158,35 184,133 13,50 0,125 -28,156 -12,13 -14,125 -14,753 0,489 -3,744 -10,757 -11,19 4,19 1000,19 h 1010 v -95 -95 h 165 165 v -285 -285 h 300 300 v -165 -165 h 40 40 v -779 c 0,-772 0,-779 -21,-805 l -20,-26 h -657 l -657,1 -20,31 c -30,48 -78,71 -145,71 -104,0 -173,-71 -174,-178 -1,-197 249,-255 334,-78 l 25,53 h 674 673 l 59,51 59,51 v 804 804 h 90 90 v 165 165 h 195 195 v -161 c 0,-152 1,-161 20,-166 20,-5 20,-14 20,-1818 V 691 l -26,-20 c -26,-21 -36,-21 -550,-21 -330,0 -524,4 -524,10 0,18 -65,83 -97,96 -80,34 -178,2 -221,-71 -33,-58 -28,-157 11,-209 41,-53 78,-69 151,-64 74,4 116,30 143,88 l 18,39 541,1 h 541 l 74,53 74,53 3,1837 2,1836 108,3 107,3 3,163 2,162 h 195 195 v -165 -165 h 50 50 V 2800 1281 l -42,-12 c -110,-29 -154,-161 -94,-277 32,-62 117,-93 197,-72 116,31 163,186 88,291 -18,26 -19,71 -19,1568 v 1541 h 80 80 v 165 165 h 195 195 v -165 -165 h 80 80 V 2325 c 0,-1961 0,-1994 -19,-2005 -13,-6 -241,-10 -671,-10 -647,0 -651,0 -679,21 -78,57 -194,37 -255,-44 -32,-43 -34,-150 -4,-202 41,-71 143,-104 221,-71 44,18 95,78 103,121 l 6,35 h 650 651 l 68,56 69,56 v 2019 2019 h 45 45 v 165 165 h 195 195 l 2,-163 3,-162 h 195 195 l 3,163 2,162 h 195 195 v -165 -165 h 195 195 v 165 165 h 195 195 l 2,-162 3,-163 192,-3 193,-2 2,162 3,163 393,3 392,2 v 490 490 h 160 160 v 60 60 h 660 660 v -770 -770 l -39,-24 c -77,-49 -103,-161 -58,-247 58,-109 218,-122 293,-23 26,34 29,45 29,114 0,69 -3,80 -29,114 -16,21 -44,44 -62,52 l -34,14 -2,838 -3,837 -707,3 -708,2 v 68 67 l -160,-3 -160,-3 v 201 200 h 160 159 l 3,88 3,87 801,3 801,2 18,-41 c 61,-134 254,-130 316,6 65,143 -52,291 -201,255 -44,-11 -110,-59 -110,-81 0,-5 -344,-8 -812,-7 l -813,3 -3,38 -3,37 h -160 -159 v 530 530 h -450 -450 l -2,163 c -2,123 -6,161 -15,160 -10,-2 -13,184 -13,907 v 910 h 900 899 l 19,-43 c 28,-63 72,-91 152,-95 55,-3 70,0 99,20 62,42 76,70 76,156 0,90 -21,129 -85,162 -70,36 -149,24 -205,-31 l -31,-29 -964,-2 -965,-3 -3,-975 -2,-975 -125,3 -125,3 v -165 -166 h -197 -198 v 163 162 l -45,1 -45,1 -3,1581 -2,1582 727,2 727,3 -3,446 -3,446 34,24 c 46,33 65,58 78,106 31,109 -40,220 -148,231 -65,6 -114,-11 -151,-53 -79,-90 -56,-233 46,-287 l 43,-23 v -398 -399 l -740,3 -740,2 -3,-1632 -2,-1633 -80,-1 -80,-2 -3,-162 -2,-163 h -195 -195 l -2,163 -3,162 -73,1 -72,2 v 2137 c 0,2120 0,2137 20,2165 31,44 44,117 31,168 -28,103 -126,153 -237,121 z"
id="path4-77" />
<path
d="m 7670,4298 c 0,-2 -1,-621 -3,-1377 l -2,-1374 -44,-13 c -80,-23 -123,-83 -124,-173 0,-77 32,-134 95,-167 39,-20 122,-18 167,6 98,49 120,206 41,287 l -30,31 -2,1388 -3,1389 -47,3 c -27,2 -48,2 -48,0 z"
id="path6-6" />
<path
d="M 8510,2775 V 1250 h 873 l 872,-1 20,-41 c 31,-65 63,-83 150,-83 59,0 79,4 102,21 104,77 95,255 -17,312 -25,12 -62,22 -85,22 -51,-1 -119,-31 -140,-64 l -17,-26 h -809 -809 l -2,1453 -3,1452 -67,3 -68,3 z"
id="path8-43" />
<path
d="m 9255,4288 c -3,-7 -4,-495 -3,-1083 l 3,-1070 932,-5 933,-5 22,-45 c 33,-65 76,-90 153,-90 68,0 110,21 149,73 32,43 34,150 4,202 -41,71 -143,104 -221,71 -32,-13 -97,-78 -97,-96 0,-6 -323,-10 -885,-10 h -885 l -2,1033 -3,1032 -48,3 c -32,2 -49,-1 -52,-10 z"
id="path10-0" />
</g>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="66.262383"
y="59.720398"
id="text1011"><tspan
sodipodi:role="line"
id="tspan1009"
x="66.262383"
y="59.720398"
style="stroke-width:0.264583">wind direction</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="66.133461"
y="33.495533"
id="text1011-0"><tspan
sodipodi:role="line"
id="tspan1009-9"
x="66.133461"
y="33.495533"
style="stroke-width:0.264583">wind speed</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-99.34082"
y="65.733406"
id="text1011-2"><tspan
sodipodi:role="line"
id="tspan1009-5"
x="-99.34082"
y="65.733406"
style="stroke-width:0.264583">rain fall</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 28 KiB

@ -1,284 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="297mm"
height="210mm"
viewBox="0 0 297 210"
version="1.1"
id="svg8"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="block_diagram.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.24748737"
inkscape:cx="400"
inkscape:cy="560"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
transform="matrix(0.0015313,0,0,-0.0015313,26.988838,142.55503)"
fill="#000000"
stroke="none"
id="g10">
<path
d="m 6095,12794 c -27,-2 -115,-8 -195,-14 C 4030,12643 2289,11657 1185,10109 -320,7999 -397,5162 992,2977 1816,1681 3084,716 4540,276 5466,-3 6424,-71 7380,76 c 761,117 1520,381 2180,759 1230,704 2185,1777 2734,3070 866,2040 607,4403 -679,6204 -886,1241 -2181,2128 -3645,2496 -340,86 -633,135 -1005,171 -150,14 -756,27 -870,18 z m 547,-984 c 776,-36 1477,-217 2158,-556 560,-279 978,-580 1426,-1028 435,-435 743,-858 1008,-1386 325,-645 500,-1269 567,-2020 26,-288 14,-767 -27,-1095 -128,-1030 -548,-1992 -1224,-2805 -133,-160 -427,-458 -591,-601 -792,-688 -1757,-1133 -2774,-1278 -283,-41 -469,-53 -785,-53 -880,0 -1667,187 -2450,582 -738,373 -1398,931 -1901,1605 -552,742 -909,1630 -1023,2550 -55,438 -55,912 0,1350 115,926 471,1810 1031,2560 163,219 293,368 522,596 241,240 338,325 576,504 863,649 1910,1026 2980,1075 238,10 281,10 507,0 z"
id="path4" />
<path
d="m 6240,10996 v -214 l -77,-6 c -431,-34 -740,-89 -1062,-191 -611,-193 -1123,-482 -1608,-908 l -130,-114 -155,148 -156,149 -110,-119 -111,-118 151,-151 152,-150 -75,-89 C 2395,8455 2022,7447 2020,6428 v -167 l -52,-5 c -29,-3 -125,-11 -213,-17 -88,-6 -161,-11 -162,-12 -4,-5 21,-313 26,-319 3,-4 96,0 205,8 110,8 205,13 213,10 7,-3 13,-20 13,-40 0,-63 60,-392 101,-552 80,-317 220,-686 361,-954 156,-298 322,-544 561,-831 82,-100 146,-184 140,-188 -25,-17 -313,-262 -313,-267 0,-11 204,-244 211,-242 4,2 169,138 365,303 197,165 364,305 372,310 11,9 -37,71 -233,305 -135,162 -281,344 -324,405 -372,523 -598,1102 -688,1765 -22,168 -26,712 -5,880 108,876 465,1631 1062,2244 627,643 1406,1026 2320,1138 66,8 223,13 420,13 197,0 354,-5 420,-13 755,-93 1397,-361 1980,-826 150,-120 433,-400 553,-547 423,-520 699,-1118 811,-1759 45,-260 51,-338 51,-680 -1,-280 -4,-347 -23,-481 -66,-466 -197,-882 -403,-1278 -151,-288 -279,-471 -609,-866 -192,-230 -239,-291 -228,-300 8,-5 175,-145 372,-310 196,-165 361,-301 365,-303 7,-2 211,231 211,242 0,5 -288,251 -314,268 -5,3 44,71 110,150 203,244 309,388 426,578 245,399 417,806 529,1253 42,166 99,481 99,543 0,20 6,37 13,40 8,3 103,-2 213,-10 109,-8 202,-12 205,-8 5,6 30,314 26,319 -1,1 -74,6 -162,12 -88,6 -183,14 -211,17 l -51,5 -6,247 c -11,459 -76,838 -217,1262 -183,555 -439,1011 -824,1468 l -70,84 152,150 151,151 -111,118 -110,119 -156,-149 -155,-148 -130,114 c -484,426 -997,715 -1608,908 -322,102 -631,157 -1061,191 l -78,6 v 214 214 h -160 -160 z"
id="path6" />
<path
d="m 8385,8348 c -165,-138 -605,-505 -978,-816 l -679,-565 -56,27 c -31,15 -82,33 -112,41 -74,20 -246,19 -323,-1 -229,-59 -412,-243 -471,-472 -21,-80 -22,-229 -1,-317 8,-38 12,-71 7,-74 -5,-3 -151,-125 -326,-270 l -317,-264 98,-101 c 54,-56 156,-161 226,-233 70,-73 130,-133 132,-133 2,0 131,140 286,311 198,218 287,309 298,305 118,-37 270,-48 371,-26 193,43 359,175 445,355 52,107 65,166 65,285 0,103 -13,173 -47,249 l -23,54 23,26 c 121,131 1675,1850 1681,1859 4,7 6,12 4,11 -2,0 -138,-113 -303,-251 z"
id="path8" />
</g>
<g
transform="matrix(0.00216713,0,0,-0.00216713,22.552953,126.08319)"
fill="#000000"
stroke="none"
id="g10-1">
<path
d="m 11241,8109 c -271,-58 -564,-218 -911,-498 -368,-296 -560,-417 -825,-516 -295,-111 -619,-116 -920,-13 -249,84 -471,218 -796,479 -80,65 -195,151 -255,192 -567,389 -1112,468 -1676,241 -220,-88 -427,-217 -703,-439 -306,-246 -562,-400 -795,-479 -271,-91 -558,-90 -827,5 -239,85 -461,223 -828,518 -377,302 -681,456 -1010,508 -131,21 -373,13 -496,-16 -271,-62 -582,-223 -863,-446 -47,-38 -86,-72 -86,-77 0,-11 280,-428 288,-428 2,0 48,33 101,74 507,388 882,458 1315,248 160,-78 291,-166 521,-351 236,-190 430,-320 627,-421 223,-114 394,-172 618,-211 106,-19 383,-16 500,4 385,66 763,260 1215,622 209,168 346,260 490,330 203,99 352,135 552,135 335,0 615,-123 1023,-451 424,-340 748,-519 1105,-609 164,-42 280,-53 483,-48 286,8 495,64 797,213 206,101 411,236 635,416 227,183 346,270 455,335 292,171 519,202 786,104 144,-52 333,-168 522,-320 48,-38 91,-70 95,-70 4,0 72,97 152,216 l 145,215 -25,20 c -364,290 -605,428 -885,506 -129,36 -387,42 -524,12 z"
id="path4-7" />
<path
d="m 11276,6634 c -219,-40 -480,-162 -741,-348 -38,-28 -146,-111 -240,-186 -364,-290 -581,-420 -841,-506 -158,-51 -259,-68 -424,-68 -228,0 -404,42 -640,155 -201,97 -336,185 -590,389 -248,198 -368,278 -571,379 -508,253 -993,254 -1504,2 -175,-86 -336,-192 -530,-347 -296,-237 -424,-323 -620,-419 -238,-117 -407,-159 -630,-158 -212,1 -375,42 -600,153 -188,92 -343,198 -635,433 -341,276 -648,436 -960,503 -118,26 -389,26 -514,1 -214,-43 -462,-152 -686,-302 -167,-111 -295,-213 -294,-233 0,-10 64,-111 141,-225 l 141,-208 34,29 c 18,16 76,60 128,99 477,349 841,406 1266,198 145,-71 280,-163 489,-330 198,-159 350,-268 490,-352 600,-360 1161,-407 1751,-145 238,106 469,256 788,514 194,157 399,283 566,347 256,99 535,106 795,20 202,-67 391,-181 670,-405 322,-258 636,-446 905,-541 708,-251 1374,-75 2155,569 280,231 474,351 665,413 123,40 283,46 415,16 167,-39 385,-161 619,-347 l 105,-83 146,215 c 171,252 172,209 -8,346 -398,303 -726,440 -1051,437 -61,0 -147,-7 -190,-15 z"
id="path6-5" />
<path
d="m 11300,5155 c -299,-49 -631,-227 -1015,-545 -364,-302 -694,-480 -1005,-546 -41,-8 -131,-18 -200,-21 -393,-18 -784,146 -1260,527 -277,222 -434,327 -626,416 -669,310 -1303,197 -1990,-358 -247,-199 -344,-268 -517,-368 -359,-206 -697,-266 -1029,-181 -275,69 -526,211 -878,496 -413,334 -692,486 -1024,557 -143,30 -389,30 -529,0 -230,-50 -457,-152 -687,-306 -139,-94 -290,-211 -290,-225 0,-6 271,-415 285,-429 2,-2 46,30 98,71 258,202 483,316 705,358 38,7 112,10 195,6 160,-6 257,-31 427,-113 148,-71 273,-155 487,-326 195,-157 311,-242 431,-317 310,-194 593,-304 879,-342 131,-17 399,-6 528,21 369,78 726,268 1155,614 319,258 548,383 812,442 101,23 345,23 448,0 119,-26 196,-54 325,-116 146,-70 275,-156 460,-304 333,-267 541,-400 801,-512 537,-233 1046,-217 1589,51 241,118 397,222 702,466 357,286 563,402 781,440 87,15 238,6 332,-21 157,-45 370,-168 585,-338 55,-44 103,-78 107,-76 3,2 70,99 148,215 138,205 142,212 124,229 -45,43 -229,180 -339,253 -135,89 -342,194 -455,231 -178,58 -396,78 -560,51 z"
id="path8-9" />
</g>
<g
transform="matrix(0.0021812,0,0,-0.0021812,29.884057,176.89732)"
fill="#000000"
stroke="none"
id="g6">
<path
d="m 2998,12790 c -315,-57 -548,-268 -644,-585 -18,-58 -19,-222 -22,-4115 l -3,-4055 -72,-50 c -86,-60 -250,-215 -323,-306 -379,-473 -476,-1119 -253,-1683 195,-493 612,-859 1134,-995 213,-56 533,-66 747,-22 221,45 468,151 648,279 114,81 297,259 372,362 150,206 250,425 299,655 94,445 5,902 -248,1285 -93,140 -292,344 -425,435 l -87,60 -3,4045 -3,4045 -23,73 c -85,276 -283,473 -554,553 -62,18 -103,22 -283,25 -115,1 -231,-1 -257,-6 z"
id="path4-1" />
</g>
<g
transform="matrix(0.00179894,0,0,-0.00179894,24.88238,44.904584)"
fill="#000000"
stroke="none"
id="g10-7">
<path
d="m 6950,10549 c -782,-79 -1408,-535 -1640,-1194 -48,-139 -99,-382 -100,-482 v -23 h 994 994 l 31,-26 c 59,-49 65,-162 11,-216 l -28,-28 H 3606 0 v -98 c 0,-122 15,-369 36,-572 42,-430 118,-803 260,-1292 5,-17 181,-18 3519,-18 3851,0 3610,-4 3856,59 661,167 1188,657 1399,1299 273,833 -24,1729 -745,2243 -232,166 -522,283 -825,334 -116,19 -420,27 -550,14 z"
id="path4-8" />
<path
d="M 10600,8243 C 9884,8170 9320,7808 9039,7242 8948,7058 8879,6810 8864,6617 l -7,-87 h 1013 1013 l 23,-21 c 44,-41 43,-171 -1,-215 l -24,-24 H 5650 c -2876,0 -5230,-2 -5230,-5 0,-2 22,-60 49,-127 246,-616 588,-1196 1025,-1735 l 91,-112 4668,-1 c 3217,0 4698,3 4765,11 456,49 849,233 1176,549 314,303 506,670 583,1115 24,138 24,470 -1,610 -73,427 -258,793 -547,1083 -324,325 -715,519 -1162,577 -106,13 -370,18 -467,8 z"
id="path6-57" />
<path
d="m 1890,3956 c 0,-10 365,-343 485,-443 962,-801 2115,-1308 3345,-1472 391,-53 429,-54 1699,-60 l 1194,-6 20,-26 c 44,-59 38,-181 -10,-219 -25,-20 -39,-20 -1022,-20 h -997 l 8,-82 c 51,-531 322,-983 768,-1282 108,-73 337,-185 460,-226 457,-152 939,-158 1364,-19 803,263 1354,1018 1358,1859 0,224 -18,366 -73,560 -100,349 -287,656 -550,904 -285,267 -609,429 -1026,513 -83,17 -275,18 -3555,21 -1908,1 -3468,0 -3468,-2 z"
id="path8-4" />
</g>
<g
transform="matrix(-0.00273933,0,0,-0.00273933,53.972152,70.266544)"
fill="#000000"
stroke="none"
id="g6-5">
<path
d="m 7360,7349 c -704,-67 -1328,-436 -1670,-987 -110,-179 -180,-348 -237,-580 -45,-184 -49,-296 -16,-480 26,-140 39,-293 29,-344 -3,-18 -19,-49 -35,-68 -27,-33 -32,-35 -104,-38 -69,-4 -80,-1 -134,27 -136,73 -330,254 -419,391 -82,127 -164,330 -164,406 0,22 0,22 68,-6 93,-40 179,-52 327,-48 125,3 127,3 151,31 54,63 21,126 -142,273 -146,131 -144,129 -144,168 0,19 4,47 10,61 l 10,26 49,-26 c 27,-15 81,-56 119,-91 l 71,-64 30,43 c 143,209 59,553 -184,750 -107,87 -214,132 -350,147 -81,9 -114,-1 -181,-55 -23,-19 -46,-35 -50,-35 -4,0 -4,34 0,76 l 7,77 -68,-7 c -99,-10 -179,-33 -257,-74 -184,-96 -275,-254 -249,-430 6,-35 6,-62 1,-62 -5,0 -31,11 -58,25 -74,38 -194,75 -239,75 -33,0 -41,-4 -41,-18 0,-40 57,-129 137,-213 l 85,-89 h -52 c -28,0 -97,11 -152,25 -55,14 -103,24 -105,21 -10,-9 52,-109 82,-131 16,-13 51,-33 77,-44 52,-22 63,-37 72,-101 l 6,-45 -95,-75 c -143,-112 -256,-185 -392,-251 -67,-32 -127,-67 -133,-78 -13,-25 -13,-92 -1,-125 6,-13 37,-43 71,-66 74,-51 100,-89 100,-151 0,-49 -4,-56 -99,-171 -52,-63 -132,-227 -155,-318 -9,-36 -19,-110 -22,-165 -5,-84 -2,-120 20,-230 63,-306 163,-492 381,-711 179,-179 366,-295 605,-375 93,-30 100,-31 295,-33 178,-2 208,-5 270,-25 190,-63 322,-161 434,-323 45,-65 65,-84 140,-132 127,-81 210,-177 247,-289 13,-40 40,-75 139,-177 170,-178 220,-267 246,-444 12,-81 7,-128 -31,-265 -11,-41 -20,-96 -20,-123 v -48 H 3854 2068 l 50,63 c 40,50 779,1007 816,1056 6,8 7,12 1,9 -5,-3 -608,-259 -1340,-568 C 864,1611 211,1335 144,1306 77,1278 23,1251 24,1245 25,1240 266,1133 560,1009 2512,183 2923,10 2927,14 c 2,2 -189,253 -425,557 l -429,554 3774,3 3773,2 683,-411 c 375,-226 696,-420 713,-430 30,-18 66,-19 903,-19 479,0 871,3 871,8 0,4 -216,223 -480,487 l -480,480 480,480 c 264,264 480,483 480,488 0,4 -393,7 -873,7 h -873 l -712,-430 -713,-430 H 8061 6502 l -6,23 c -3,12 -28,61 -57,107 -79,131 -96,170 -113,259 -35,181 -23,236 108,494 94,186 105,213 133,338 35,150 91,302 155,418 43,77 216,312 253,343 48,41 112,53 285,53 142,0 176,-3 244,-23 170,-49 322,-139 444,-263 95,-98 112,-124 112,-179 0,-124 -68,-278 -165,-376 -81,-81 -148,-113 -276,-130 -56,-7 -103,-15 -106,-17 -2,-3 13,-19 34,-36 72,-60 254,-138 449,-192 98,-27 369,-38 496,-20 250,36 447,132 604,293 95,98 131,149 184,260 54,113 81,221 86,348 l 4,105 62,38 c 222,135 371,414 354,662 -3,50 -9,115 -12,145 -6,51 -3,60 35,126 59,103 85,213 78,329 -12,171 -72,354 -164,493 -21,31 -80,101 -131,154 l -93,96 31,24 c 41,30 114,127 151,200 92,182 97,405 14,649 -56,162 -151,297 -354,499 -406,404 -922,667 -1492,760 -131,21 -324,25 -489,9 z"
id="path4-3" />
</g>
<g
transform="matrix(0.00194266,0,0,-0.00194266,23.960519,100.82883)"
fill="#000000"
stroke="none"
id="g32">
<path
d="m 6710,12673 c -25,-2 -90,-10 -145,-19 -533,-81 -1001,-335 -1367,-742 l -65,-73 -84,45 c -869,470 -1958,306 -2664,-399 -315,-316 -513,-683 -619,-1147 -5,-23 -15,-30 -64,-43 -136,-38 -306,-101 -427,-160 C 605,9807 139,9173 24,8430 2,8288 -1,7939 18,7805 163,6801 900,6037 1895,5859 c 113,-21 162,-24 380,-23 266,0 345,8 545,59 229,58 493,173 681,296 l 93,61 51,-12 c 284,-67 433,-84 678,-77 181,5 335,26 492,65 l 70,18 75,-60 c 307,-244 686,-408 1083,-466 150,-23 445,-27 587,-10 416,52 839,229 1148,481 l 73,60 89,-51 c 268,-153 567,-253 875,-291 117,-14 417,-14 525,0 225,30 486,103 667,186 l 83,38 127,-19 c 170,-25 470,-25 633,0 515,79 970,315 1323,686 325,342 525,752 603,1235 22,136 25,485 6,620 -99,685 -474,1268 -1050,1632 -320,202 -774,341 -1120,343 h -72 l -113,113 c -388,393 -872,620 -1432,672 l -70,7 -56,102 c -268,481 -730,863 -1260,1039 -272,91 -610,132 -899,110 z"
id="path4-88" />
<path
d="m 3943,5543 c -60,-12 -557,-585 -717,-828 -121,-183 -153,-279 -143,-435 17,-274 207,-501 474,-565 101,-24 243,-17 340,17 182,65 322,205 385,388 34,96 32,291 -5,496 -41,230 -114,542 -187,794 -38,134 -56,151 -147,133 z"
id="path6-3" />
<path
d="m 7553,5543 c -44,-9 -441,-455 -632,-712 -183,-246 -226,-345 -225,-521 1,-87 5,-119 27,-183 71,-205 236,-360 442,-412 76,-19 214,-19 290,0 114,29 203,81 290,169 87,88 133,167 161,278 42,162 -10,521 -156,1079 -84,320 -86,323 -197,302 z"
id="path8-1" />
<path
d="m 11163,5542 c -43,-13 -429,-447 -608,-684 -112,-148 -183,-261 -217,-348 -19,-47 -22,-75 -23,-190 0,-116 3,-145 23,-202 83,-241 300,-403 555,-416 288,-14 526,153 623,438 52,154 -10,582 -171,1167 -58,213 -75,244 -129,242 -17,-1 -41,-4 -53,-7 z"
id="path10-8" />
<path
d="m 5303,4620 c -32,-7 -108,-82 -289,-285 -275,-308 -453,-545 -526,-702 -160,-341 44,-750 422,-844 30,-7 98,-13 150,-13 257,3 483,165 572,410 57,160 23,475 -107,991 -115,455 -122,467 -222,443 z"
id="path12-9" />
<path
d="m 8918,4623 c -62,-10 -548,-565 -723,-828 -117,-174 -145,-252 -145,-404 0,-166 54,-301 169,-423 117,-125 263,-190 431,-192 109,-1 176,13 275,59 161,73 293,232 336,405 38,151 -2,451 -127,955 -76,304 -102,388 -130,413 -25,22 -32,23 -86,15 z"
id="path14-6" />
<path
d="m 6664,3698 c -36,-8 -56,-24 -141,-116 -446,-484 -663,-775 -717,-961 -26,-88 -21,-243 9,-339 38,-120 119,-237 214,-307 249,-182 575,-163 794,45 154,146 210,310 186,544 -23,233 -110,641 -210,986 -41,140 -62,163 -135,148 z"
id="path16-4" />
<path
d="m 10275,3696 c -33,-9 -64,-36 -167,-146 -229,-245 -448,-510 -562,-680 -118,-176 -152,-277 -143,-435 11,-209 121,-393 298,-498 393,-232 898,31 926,482 9,154 -46,484 -152,896 -81,315 -95,356 -130,376 -25,13 -37,14 -70,5 z"
id="path18-3" />
<path
d="m 3024,3691 c -21,-9 -181,-177 -320,-336 -334,-382 -485,-607 -520,-775 -66,-312 148,-639 466,-714 320,-76 654,127 737,447 33,128 3,402 -83,776 -61,263 -142,554 -162,580 -20,28 -78,38 -118,22 z"
id="path20-3" />
<path
d="m 4393,2773 c -52,-10 -509,-527 -687,-776 -73,-102 -134,-214 -157,-287 -26,-81 -28,-236 -4,-324 55,-207 237,-387 444,-441 80,-20 226,-21 304,0 214,56 381,217 442,430 38,130 13,383 -76,779 -42,185 -130,519 -150,569 -20,48 -52,62 -116,50 z"
id="path22-3" />
<path
d="m 8008,2773 c -20,-3 -62,-41 -146,-131 -367,-391 -619,-720 -689,-897 -24,-63 -27,-83 -28,-195 0,-106 4,-136 24,-199 51,-154 171,-292 316,-361 105,-49 159,-62 276,-61 171,1 306,58 430,181 132,131 188,282 176,474 -12,181 -60,441 -147,786 -65,257 -98,362 -121,387 -22,22 -34,25 -91,16 z"
id="path24" />
<path
d="m 2140,1850 c -38,-9 -111,-81 -304,-300 -315,-356 -486,-591 -536,-733 -64,-182 -38,-378 72,-543 120,-179 332,-285 545,-271 268,18 498,208 563,465 16,62 14,241 -5,362 -43,285 -196,924 -238,990 -9,15 -52,43 -60,39 -1,-1 -18,-5 -37,-9 z"
id="path26" />
<path
d="m 5754,1848 c -37,-8 -57,-26 -177,-156 -415,-451 -636,-753 -682,-929 -20,-75 -19,-210 1,-292 41,-165 176,-333 326,-405 151,-72 315,-84 465,-33 99,34 156,69 233,143 109,104 175,239 187,378 15,179 -82,690 -222,1171 -36,124 -52,139 -131,123 z"
id="path28" />
<path
d="m 9371,1850 c -41,-10 -105,-72 -291,-280 -375,-422 -535,-650 -576,-827 -33,-139 1,-322 82,-451 170,-269 502,-365 789,-229 142,68 265,205 316,354 21,60 24,85 23,218 -1,187 -36,394 -135,785 -72,288 -105,393 -134,418 -14,12 -29,22 -33,21 -4,-1 -22,-5 -41,-9 z"
id="path30" />
</g>
<g
transform="matrix(0.0034974,0,0,-0.0034974,260.93273,105.32701)"
fill="#000000"
stroke="none"
id="g30">
<path
d="M 815,5855 C 501,5811 237,5619 100,5337 73,5281 41,5197 28,5150 L 5,5065 V 3205 C 5,1461 6,1341 23,1276 116,912 382,647 740,563 c 71,-17 345,-18 5660,-18 5315,0 5589,1 5660,18 358,84 624,349 717,713 17,65 18,185 18,1929 v 1860 l -23,85 c -105,388 -422,663 -817,709 -143,17 -11021,13 -11140,-4 z m 11188,-364 c 90,-24 133,-44 212,-104 97,-73 176,-191 212,-318 17,-61 18,-152 18,-1864 0,-1688 -1,-1804 -18,-1864 -58,-210 -218,-370 -428,-428 -61,-17 -345,-18 -5599,-18 -5254,0 -5538,1 -5599,18 -210,58 -370,218 -428,428 -17,60 -18,176 -18,1864 0,1712 1,1803 18,1864 47,165 162,307 310,383 22,11 71,28 110,38 70,18 228,19 5603,19 5440,1 5532,1 5607,-18 z"
id="path4-86" />
<path
d="m 3719,5115 c -335,-53 -612,-289 -718,-613 -46,-140 -53,-242 -30,-452 85,-796 191,-1806 199,-1900 5,-63 19,-150 30,-194 88,-332 358,-588 695,-657 84,-17 194,-19 1635,-29 850,-6 1991,-12 2535,-13 943,-2 993,-1 1060,17 385,104 647,410 684,798 6,57 31,238 55,403 25,165 82,543 126,840 44,297 91,613 105,702 29,187 31,274 9,380 -35,170 -108,313 -223,435 -155,165 -333,257 -554,287 -54,8 -932,11 -2800,10 -2220,-1 -2738,-3 -2808,-14 z m 5626,-280 c 275,-57 495,-316 495,-581 0,-34 -18,-181 -39,-326 -143,-948 -261,-1754 -266,-1818 -21,-230 -150,-419 -349,-515 -50,-24 -118,-49 -151,-56 -62,-12 -1014,-10 -3830,11 -1341,10 -1269,6 -1415,78 -56,27 -96,57 -155,117 -97,97 -148,190 -170,310 -8,44 -42,343 -75,665 -33,322 -83,799 -111,1060 -50,469 -51,476 -36,554 41,206 192,393 378,467 126,50 -11,47 2914,48 2369,1 2749,-1 2810,-14 z"
id="path6-0" />
<path
d="m 4148,4229 c -113,-17 -218,-96 -267,-199 -22,-47 -26,-69 -26,-150 0,-81 4,-103 26,-150 33,-70 99,-136 169,-169 47,-22 69,-26 150,-26 81,0 103,4 150,26 195,92 261,339 139,523 -69,104 -212,165 -341,145 z"
id="path8-48" />
<path
d="m 5280,4228 c -95,-15 -179,-69 -233,-151 -46,-70 -59,-115 -59,-203 1,-189 144,-334 337,-342 113,-5 180,21 261,102 75,75 104,143 104,246 0,221 -189,382 -410,348 z"
id="path10" />
<path
d="m 6318,4229 c -286,-44 -401,-393 -196,-599 63,-63 135,-94 233,-98 114,-5 180,21 261,102 75,75 104,143 104,246 0,217 -190,382 -402,349 z"
id="path12" />
<path
d="m 7474,4229 c -172,-22 -304,-173 -304,-349 0,-101 42,-193 120,-263 153,-138 405,-109 521,60 45,65 61,119 62,203 0,103 -29,175 -96,243 -86,86 -185,121 -303,106 z"
id="path14" />
<path
d="m 8578,4229 c -113,-18 -218,-96 -267,-199 -22,-47 -26,-69 -26,-150 0,-81 4,-103 26,-150 33,-70 99,-136 169,-169 47,-22 69,-26 150,-26 81,0 103,4 150,26 286,135 261,559 -39,653 -64,20 -108,24 -163,15 z"
id="path16" />
<path
d="m 4718,2946 c -74,-30 -128,-74 -167,-134 -152,-237 15,-544 294,-544 208,0 369,173 352,378 -8,111 -68,210 -162,269 -98,61 -215,73 -317,31 z"
id="path18" />
<path
d="m 5749,2947 c -75,-31 -122,-69 -162,-130 -47,-71 -61,-119 -60,-202 1,-103 32,-176 104,-246 72,-72 143,-101 245,-101 155,0 288,94 335,239 50,151 -6,314 -140,404 -95,64 -219,78 -322,36 z"
id="path20" />
<path
d="m 6900,2948 c -78,-30 -169,-123 -199,-203 -31,-82 -27,-196 10,-275 56,-119 179,-201 307,-203 87,-1 144,15 211,62 235,161 191,521 -75,621 -74,27 -180,26 -254,-2 z"
id="path22" />
<path
d="m 8008,2947 c -216,-91 -290,-352 -153,-539 68,-92 165,-140 288,-140 65,0 87,5 140,30 77,36 142,100 176,172 22,47 26,69 26,150 0,81 -4,103 -25,145 -34,70 -99,136 -167,171 -48,24 -72,29 -143,32 -71,2 -94,-1 -142,-21 z"
id="path24-8" />
<path
d="m 1230,4060 c -336,-73 -601,-331 -681,-665 -27,-110 -29,-284 -6,-392 96,-444 510,-745 962,-701 539,53 909,578 775,1102 -119,467 -584,757 -1050,656 z m 390,-293 c 423,-150 547,-689 230,-1008 -194,-195 -464,-240 -709,-118 -216,107 -354,347 -337,585 16,214 140,407 325,503 110,57 173,71 306,67 88,-2 125,-8 185,-29 z"
id="path26-8" />
<path
d="m 11365,4074 c -11,-2 -47,-10 -80,-16 -71,-14 -207,-66 -267,-104 -299,-186 -462,-512 -427,-854 12,-115 32,-189 80,-289 165,-348 514,-546 894,-509 207,20 388,105 533,249 166,164 256,365 269,599 21,410 -253,784 -659,900 -71,21 -293,36 -343,24 z m 315,-307 c 91,-32 195,-102 256,-171 56,-64 122,-193 140,-277 78,-364 -180,-709 -556,-744 -165,-16 -351,55 -475,179 -188,189 -235,462 -120,701 76,158 234,287 403,330 91,23 259,15 352,-18 z"
id="path28-9" />
</g>
<g
transform="matrix(0.0107659,0,0,-0.0107659,102.50482,163.97367)"
fill="#000000"
stroke="none"
id="g12">
<path
d="m 7484,12789 c -67,-19 -123,-121 -109,-198 15,-81 61,-135 125,-148 l 30,-6 -2,-2120 -3,-2121 -47,3 -48,3 v -166 -166 h -195 -195 l -2,163 -3,162 -55,1 -55,1 -3,1128 c -2,1114 -2,1127 18,1152 27,35 43,99 35,142 -10,57 -50,116 -91,136 -49,23 -148,17 -186,-10 -65,-48 -90,-154 -55,-236 20,-50 76,-90 132,-97 l 45,-5 -2,-1104 -3,-1105 -85,-2 -85,-1 -3,-162 -2,-163 h -195 -194 v 163 162 h -83 -83 l -5,720 -5,720 -542,3 -543,2 v 755 755 l 28,42 c 23,36 27,52 27,113 0,63 -3,76 -28,108 -38,50 -75,67 -145,67 -45,0 -67,-6 -93,-23 -67,-44 -98,-153 -65,-230 17,-41 76,-93 115,-102 l 31,-7 v -789 -789 h 555 555 v -672 -673 h -52 -53 l -3,-162 -2,-163 h -195 -195 l -2,163 -3,162 h -48 -47 v 418 417 h -633 -634 l -24,26 c -37,40 -73,54 -137,54 -45,0 -67,-5 -93,-23 -110,-74 -104,-253 11,-314 109,-58 238,3 257,122 l 6,35 h 553 554 l -2,-366 -3,-367 -70,-1 -70,-1 -3,-162 -2,-163 h -195 -195 l -2,163 -3,162 h -30 l -30,1 -3,182 -2,182 H 3527 2435 l -50,26 c -123,63 -255,-19 -255,-159 0,-62 19,-105 63,-144 93,-82 246,-32 279,91 l 12,46 h 1003 1004 l -3,-111 -3,-111 -95,-1 -95,-2 -3,-162 -2,-163 h -240 -240 v -345 -345 h -165 -165 v -40 -40 H 2442 1403 l -33,41 c -94,117 -272,81 -310,-63 -21,-77 10,-159 79,-205 26,-17 48,-23 91,-23 67,0 111,25 149,83 l 24,37 h 1039 1038 v -90 -90 h 165 165 v -195 -195 h -165 -165 v -70 -70 H 1870 260 v 930 930 l 25,16 c 41,27 68,96 63,165 -5,62 -23,97 -69,132 -56,41 -152,41 -208,0 -58,-42 -85,-139 -60,-214 13,-38 63,-96 91,-105 17,-5 18,-51 20,-997 l 3,-992 1677,-3 1678,-2 v -60 -60 h 165 165 v -195 -195 h -164 -165 l -3,-47 -3,-48 -1037,-3 -1036,-2 -31,-39 -31,-39 v -740 -740 l -35,-6 c -110,-21 -168,-180 -101,-278 35,-51 70,-71 134,-76 100,-7 158,35 184,133 13,50 0,125 -28,156 -12,13 -14,125 -14,753 0,489 -3,744 -10,757 -11,19 4,19 1000,19 h 1010 v -95 -95 h 165 165 v -285 -285 h 300 300 v -165 -165 h 40 40 v -779 c 0,-772 0,-779 -21,-805 l -20,-26 h -657 l -657,1 -20,31 c -30,48 -78,71 -145,71 -104,0 -173,-71 -174,-178 -1,-197 249,-255 334,-78 l 25,53 h 674 673 l 59,51 59,51 v 804 804 h 90 90 v 165 165 h 195 195 v -161 c 0,-152 1,-161 20,-166 20,-5 20,-14 20,-1818 V 691 l -26,-20 c -26,-21 -36,-21 -550,-21 -330,0 -524,4 -524,10 0,18 -65,83 -97,96 -80,34 -178,2 -221,-71 -33,-58 -28,-157 11,-209 41,-53 78,-69 151,-64 74,4 116,30 143,88 l 18,39 541,1 h 541 l 74,53 74,53 3,1837 2,1836 108,3 107,3 3,163 2,162 h 195 195 v -165 -165 h 50 50 V 2800 1281 l -42,-12 c -110,-29 -154,-161 -94,-277 32,-62 117,-93 197,-72 116,31 163,186 88,291 -18,26 -19,71 -19,1568 v 1541 h 80 80 v 165 165 h 195 195 v -165 -165 h 80 80 V 2325 c 0,-1961 0,-1994 -19,-2005 -13,-6 -241,-10 -671,-10 -647,0 -651,0 -679,21 -78,57 -194,37 -255,-44 -32,-43 -34,-150 -4,-202 41,-71 143,-104 221,-71 44,18 95,78 103,121 l 6,35 h 650 651 l 68,56 69,56 v 2019 2019 h 45 45 v 165 165 h 195 195 l 2,-163 3,-162 h 195 195 l 3,163 2,162 h 195 195 v -165 -165 h 195 195 v 165 165 h 195 195 l 2,-162 3,-163 192,-3 193,-2 2,162 3,163 393,3 392,2 v 490 490 h 160 160 v 60 60 h 660 660 v -770 -770 l -39,-24 c -77,-49 -103,-161 -58,-247 58,-109 218,-122 293,-23 26,34 29,45 29,114 0,69 -3,80 -29,114 -16,21 -44,44 -62,52 l -34,14 -2,838 -3,837 -707,3 -708,2 v 68 67 l -160,-3 -160,-3 v 201 200 h 160 159 l 3,88 3,87 801,3 801,2 18,-41 c 61,-134 254,-130 316,6 65,143 -52,291 -201,255 -44,-11 -110,-59 -110,-81 0,-5 -344,-8 -812,-7 l -813,3 -3,38 -3,37 h -160 -159 v 530 530 h -450 -450 l -2,163 c -2,123 -6,161 -15,160 -10,-2 -13,184 -13,907 v 910 h 900 899 l 19,-43 c 28,-63 72,-91 152,-95 55,-3 70,0 99,20 62,42 76,70 76,156 0,90 -21,129 -85,162 -70,36 -149,24 -205,-31 l -31,-29 -964,-2 -965,-3 -3,-975 -2,-975 -125,3 -125,3 v -165 -166 h -197 -198 v 163 162 l -45,1 -45,1 -3,1581 -2,1582 727,2 727,3 -3,446 -3,446 34,24 c 46,33 65,58 78,106 31,109 -40,220 -148,231 -65,6 -114,-11 -151,-53 -79,-90 -56,-233 46,-287 l 43,-23 v -398 -399 l -740,3 -740,2 -3,-1632 -2,-1633 -80,-1 -80,-2 -3,-162 -2,-163 h -195 -195 l -2,163 -3,162 -73,1 -72,2 v 2137 c 0,2120 0,2137 20,2165 31,44 44,117 31,168 -28,103 -126,153 -237,121 z"
id="path4-76" />
<path
d="m 7670,4298 c 0,-2 -1,-621 -3,-1377 l -2,-1374 -44,-13 c -80,-23 -123,-83 -124,-173 0,-77 32,-134 95,-167 39,-20 122,-18 167,6 98,49 120,206 41,287 l -30,31 -2,1388 -3,1389 -47,3 c -27,2 -48,2 -48,0 z"
id="path6-31" />
<path
d="M 8510,2775 V 1250 h 873 l 872,-1 20,-41 c 31,-65 63,-83 150,-83 59,0 79,4 102,21 104,77 95,255 -17,312 -25,12 -62,22 -85,22 -51,-1 -119,-31 -140,-64 l -17,-26 h -809 -809 l -2,1453 -3,1452 -67,3 -68,3 z"
id="path8-7" />
<path
d="m 9255,4288 c -3,-7 -4,-495 -3,-1083 l 3,-1070 932,-5 933,-5 22,-45 c 33,-65 76,-90 153,-90 68,0 110,21 149,73 32,43 34,150 4,202 -41,71 -143,104 -221,71 -32,-13 -97,-78 -97,-96 0,-6 -323,-10 -885,-10 h -885 l -2,1033 -3,1032 -48,3 c -32,2 -49,-1 -52,-10 z"
id="path10-5" />
</g>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-79.636681"
y="59.676682"
id="text1496"><tspan
sodipodi:role="line"
id="tspan1494"
x="-79.636681"
y="59.676682"
style="stroke-width:0.264583">wind speed</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-79.275375"
y="76.304565"
id="text1500"><tspan
sodipodi:role="line"
id="tspan1498"
x="-79.275375"
y="76.304565"
style="stroke-width:0.264583">wind direction</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-77.63871"
y="89.558937"
id="text1504"><tspan
sodipodi:role="line"
id="tspan1502"
x="-77.63871"
y="89.558937"
style="stroke-width:0.264583">rain fall</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-74.587128"
y="102.40005"
id="text1508"><tspan
sodipodi:role="line"
id="tspan1506"
x="-74.587128"
y="102.40005"
style="stroke-width:0.264583">humidity</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-73.550102"
y="128.35326"
id="text1512"><tspan
sodipodi:role="line"
id="tspan1510"
x="-73.550102"
y="128.35326"
style="stroke-width:0.264583">pressure</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 28 KiB

@ -1,295 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="297mm"
height="210mm"
viewBox="0 0 297 210"
version="1.1"
id="svg8"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="block_diagram.svg.2024_01_15_14_00_17.0.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.24748737"
inkscape:cx="400"
inkscape:cy="560"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
transform="matrix(0.0015313,0,0,-0.0015313,26.988838,142.55503)"
fill="#000000"
stroke="none"
id="g10">
<path
d="m 6095,12794 c -27,-2 -115,-8 -195,-14 C 4030,12643 2289,11657 1185,10109 -320,7999 -397,5162 992,2977 1816,1681 3084,716 4540,276 5466,-3 6424,-71 7380,76 c 761,117 1520,381 2180,759 1230,704 2185,1777 2734,3070 866,2040 607,4403 -679,6204 -886,1241 -2181,2128 -3645,2496 -340,86 -633,135 -1005,171 -150,14 -756,27 -870,18 z m 547,-984 c 776,-36 1477,-217 2158,-556 560,-279 978,-580 1426,-1028 435,-435 743,-858 1008,-1386 325,-645 500,-1269 567,-2020 26,-288 14,-767 -27,-1095 -128,-1030 -548,-1992 -1224,-2805 -133,-160 -427,-458 -591,-601 -792,-688 -1757,-1133 -2774,-1278 -283,-41 -469,-53 -785,-53 -880,0 -1667,187 -2450,582 -738,373 -1398,931 -1901,1605 -552,742 -909,1630 -1023,2550 -55,438 -55,912 0,1350 115,926 471,1810 1031,2560 163,219 293,368 522,596 241,240 338,325 576,504 863,649 1910,1026 2980,1075 238,10 281,10 507,0 z"
id="path4" />
<path
d="m 6240,10996 v -214 l -77,-6 c -431,-34 -740,-89 -1062,-191 -611,-193 -1123,-482 -1608,-908 l -130,-114 -155,148 -156,149 -110,-119 -111,-118 151,-151 152,-150 -75,-89 C 2395,8455 2022,7447 2020,6428 v -167 l -52,-5 c -29,-3 -125,-11 -213,-17 -88,-6 -161,-11 -162,-12 -4,-5 21,-313 26,-319 3,-4 96,0 205,8 110,8 205,13 213,10 7,-3 13,-20 13,-40 0,-63 60,-392 101,-552 80,-317 220,-686 361,-954 156,-298 322,-544 561,-831 82,-100 146,-184 140,-188 -25,-17 -313,-262 -313,-267 0,-11 204,-244 211,-242 4,2 169,138 365,303 197,165 364,305 372,310 11,9 -37,71 -233,305 -135,162 -281,344 -324,405 -372,523 -598,1102 -688,1765 -22,168 -26,712 -5,880 108,876 465,1631 1062,2244 627,643 1406,1026 2320,1138 66,8 223,13 420,13 197,0 354,-5 420,-13 755,-93 1397,-361 1980,-826 150,-120 433,-400 553,-547 423,-520 699,-1118 811,-1759 45,-260 51,-338 51,-680 -1,-280 -4,-347 -23,-481 -66,-466 -197,-882 -403,-1278 -151,-288 -279,-471 -609,-866 -192,-230 -239,-291 -228,-300 8,-5 175,-145 372,-310 196,-165 361,-301 365,-303 7,-2 211,231 211,242 0,5 -288,251 -314,268 -5,3 44,71 110,150 203,244 309,388 426,578 245,399 417,806 529,1253 42,166 99,481 99,543 0,20 6,37 13,40 8,3 103,-2 213,-10 109,-8 202,-12 205,-8 5,6 30,314 26,319 -1,1 -74,6 -162,12 -88,6 -183,14 -211,17 l -51,5 -6,247 c -11,459 -76,838 -217,1262 -183,555 -439,1011 -824,1468 l -70,84 152,150 151,151 -111,118 -110,119 -156,-149 -155,-148 -130,114 c -484,426 -997,715 -1608,908 -322,102 -631,157 -1061,191 l -78,6 v 214 214 h -160 -160 z"
id="path6" />
<path
d="m 8385,8348 c -165,-138 -605,-505 -978,-816 l -679,-565 -56,27 c -31,15 -82,33 -112,41 -74,20 -246,19 -323,-1 -229,-59 -412,-243 -471,-472 -21,-80 -22,-229 -1,-317 8,-38 12,-71 7,-74 -5,-3 -151,-125 -326,-270 l -317,-264 98,-101 c 54,-56 156,-161 226,-233 70,-73 130,-133 132,-133 2,0 131,140 286,311 198,218 287,309 298,305 118,-37 270,-48 371,-26 193,43 359,175 445,355 52,107 65,166 65,285 0,103 -13,173 -47,249 l -23,54 23,26 c 121,131 1675,1850 1681,1859 4,7 6,12 4,11 -2,0 -138,-113 -303,-251 z"
id="path8" />
</g>
<g
transform="matrix(0.00216713,0,0,-0.00216713,22.552953,126.08319)"
fill="#000000"
stroke="none"
id="g10-1">
<path
d="m 11241,8109 c -271,-58 -564,-218 -911,-498 -368,-296 -560,-417 -825,-516 -295,-111 -619,-116 -920,-13 -249,84 -471,218 -796,479 -80,65 -195,151 -255,192 -567,389 -1112,468 -1676,241 -220,-88 -427,-217 -703,-439 -306,-246 -562,-400 -795,-479 -271,-91 -558,-90 -827,5 -239,85 -461,223 -828,518 -377,302 -681,456 -1010,508 -131,21 -373,13 -496,-16 -271,-62 -582,-223 -863,-446 -47,-38 -86,-72 -86,-77 0,-11 280,-428 288,-428 2,0 48,33 101,74 507,388 882,458 1315,248 160,-78 291,-166 521,-351 236,-190 430,-320 627,-421 223,-114 394,-172 618,-211 106,-19 383,-16 500,4 385,66 763,260 1215,622 209,168 346,260 490,330 203,99 352,135 552,135 335,0 615,-123 1023,-451 424,-340 748,-519 1105,-609 164,-42 280,-53 483,-48 286,8 495,64 797,213 206,101 411,236 635,416 227,183 346,270 455,335 292,171 519,202 786,104 144,-52 333,-168 522,-320 48,-38 91,-70 95,-70 4,0 72,97 152,216 l 145,215 -25,20 c -364,290 -605,428 -885,506 -129,36 -387,42 -524,12 z"
id="path4-7" />
<path
d="m 11276,6634 c -219,-40 -480,-162 -741,-348 -38,-28 -146,-111 -240,-186 -364,-290 -581,-420 -841,-506 -158,-51 -259,-68 -424,-68 -228,0 -404,42 -640,155 -201,97 -336,185 -590,389 -248,198 -368,278 -571,379 -508,253 -993,254 -1504,2 -175,-86 -336,-192 -530,-347 -296,-237 -424,-323 -620,-419 -238,-117 -407,-159 -630,-158 -212,1 -375,42 -600,153 -188,92 -343,198 -635,433 -341,276 -648,436 -960,503 -118,26 -389,26 -514,1 -214,-43 -462,-152 -686,-302 -167,-111 -295,-213 -294,-233 0,-10 64,-111 141,-225 l 141,-208 34,29 c 18,16 76,60 128,99 477,349 841,406 1266,198 145,-71 280,-163 489,-330 198,-159 350,-268 490,-352 600,-360 1161,-407 1751,-145 238,106 469,256 788,514 194,157 399,283 566,347 256,99 535,106 795,20 202,-67 391,-181 670,-405 322,-258 636,-446 905,-541 708,-251 1374,-75 2155,569 280,231 474,351 665,413 123,40 283,46 415,16 167,-39 385,-161 619,-347 l 105,-83 146,215 c 171,252 172,209 -8,346 -398,303 -726,440 -1051,437 -61,0 -147,-7 -190,-15 z"
id="path6-5" />
<path
d="m 11300,5155 c -299,-49 -631,-227 -1015,-545 -364,-302 -694,-480 -1005,-546 -41,-8 -131,-18 -200,-21 -393,-18 -784,146 -1260,527 -277,222 -434,327 -626,416 -669,310 -1303,197 -1990,-358 -247,-199 -344,-268 -517,-368 -359,-206 -697,-266 -1029,-181 -275,69 -526,211 -878,496 -413,334 -692,486 -1024,557 -143,30 -389,30 -529,0 -230,-50 -457,-152 -687,-306 -139,-94 -290,-211 -290,-225 0,-6 271,-415 285,-429 2,-2 46,30 98,71 258,202 483,316 705,358 38,7 112,10 195,6 160,-6 257,-31 427,-113 148,-71 273,-155 487,-326 195,-157 311,-242 431,-317 310,-194 593,-304 879,-342 131,-17 399,-6 528,21 369,78 726,268 1155,614 319,258 548,383 812,442 101,23 345,23 448,0 119,-26 196,-54 325,-116 146,-70 275,-156 460,-304 333,-267 541,-400 801,-512 537,-233 1046,-217 1589,51 241,118 397,222 702,466 357,286 563,402 781,440 87,15 238,6 332,-21 157,-45 370,-168 585,-338 55,-44 103,-78 107,-76 3,2 70,99 148,215 138,205 142,212 124,229 -45,43 -229,180 -339,253 -135,89 -342,194 -455,231 -178,58 -396,78 -560,51 z"
id="path8-9" />
</g>
<g
transform="matrix(0.0021812,0,0,-0.0021812,29.884057,176.89732)"
fill="#000000"
stroke="none"
id="g6">
<path
d="m 2998,12790 c -315,-57 -548,-268 -644,-585 -18,-58 -19,-222 -22,-4115 l -3,-4055 -72,-50 c -86,-60 -250,-215 -323,-306 -379,-473 -476,-1119 -253,-1683 195,-493 612,-859 1134,-995 213,-56 533,-66 747,-22 221,45 468,151 648,279 114,81 297,259 372,362 150,206 250,425 299,655 94,445 5,902 -248,1285 -93,140 -292,344 -425,435 l -87,60 -3,4045 -3,4045 -23,73 c -85,276 -283,473 -554,553 -62,18 -103,22 -283,25 -115,1 -231,-1 -257,-6 z"
id="path4-1" />
</g>
<g
transform="matrix(0.00179894,0,0,-0.00179894,24.88238,44.904584)"
fill="#000000"
stroke="none"
id="g10-7">
<path
d="m 6950,10549 c -782,-79 -1408,-535 -1640,-1194 -48,-139 -99,-382 -100,-482 v -23 h 994 994 l 31,-26 c 59,-49 65,-162 11,-216 l -28,-28 H 3606 0 v -98 c 0,-122 15,-369 36,-572 42,-430 118,-803 260,-1292 5,-17 181,-18 3519,-18 3851,0 3610,-4 3856,59 661,167 1188,657 1399,1299 273,833 -24,1729 -745,2243 -232,166 -522,283 -825,334 -116,19 -420,27 -550,14 z"
id="path4-8" />
<path
d="M 10600,8243 C 9884,8170 9320,7808 9039,7242 8948,7058 8879,6810 8864,6617 l -7,-87 h 1013 1013 l 23,-21 c 44,-41 43,-171 -1,-215 l -24,-24 H 5650 c -2876,0 -5230,-2 -5230,-5 0,-2 22,-60 49,-127 246,-616 588,-1196 1025,-1735 l 91,-112 4668,-1 c 3217,0 4698,3 4765,11 456,49 849,233 1176,549 314,303 506,670 583,1115 24,138 24,470 -1,610 -73,427 -258,793 -547,1083 -324,325 -715,519 -1162,577 -106,13 -370,18 -467,8 z"
id="path6-57" />
<path
d="m 1890,3956 c 0,-10 365,-343 485,-443 962,-801 2115,-1308 3345,-1472 391,-53 429,-54 1699,-60 l 1194,-6 20,-26 c 44,-59 38,-181 -10,-219 -25,-20 -39,-20 -1022,-20 h -997 l 8,-82 c 51,-531 322,-983 768,-1282 108,-73 337,-185 460,-226 457,-152 939,-158 1364,-19 803,263 1354,1018 1358,1859 0,224 -18,366 -73,560 -100,349 -287,656 -550,904 -285,267 -609,429 -1026,513 -83,17 -275,18 -3555,21 -1908,1 -3468,0 -3468,-2 z"
id="path8-4" />
</g>
<g
transform="matrix(-0.00273933,0,0,-0.00273933,53.972152,70.266544)"
fill="#000000"
stroke="none"
id="g6-5">
<path
d="m 7360,7349 c -704,-67 -1328,-436 -1670,-987 -110,-179 -180,-348 -237,-580 -45,-184 -49,-296 -16,-480 26,-140 39,-293 29,-344 -3,-18 -19,-49 -35,-68 -27,-33 -32,-35 -104,-38 -69,-4 -80,-1 -134,27 -136,73 -330,254 -419,391 -82,127 -164,330 -164,406 0,22 0,22 68,-6 93,-40 179,-52 327,-48 125,3 127,3 151,31 54,63 21,126 -142,273 -146,131 -144,129 -144,168 0,19 4,47 10,61 l 10,26 49,-26 c 27,-15 81,-56 119,-91 l 71,-64 30,43 c 143,209 59,553 -184,750 -107,87 -214,132 -350,147 -81,9 -114,-1 -181,-55 -23,-19 -46,-35 -50,-35 -4,0 -4,34 0,76 l 7,77 -68,-7 c -99,-10 -179,-33 -257,-74 -184,-96 -275,-254 -249,-430 6,-35 6,-62 1,-62 -5,0 -31,11 -58,25 -74,38 -194,75 -239,75 -33,0 -41,-4 -41,-18 0,-40 57,-129 137,-213 l 85,-89 h -52 c -28,0 -97,11 -152,25 -55,14 -103,24 -105,21 -10,-9 52,-109 82,-131 16,-13 51,-33 77,-44 52,-22 63,-37 72,-101 l 6,-45 -95,-75 c -143,-112 -256,-185 -392,-251 -67,-32 -127,-67 -133,-78 -13,-25 -13,-92 -1,-125 6,-13 37,-43 71,-66 74,-51 100,-89 100,-151 0,-49 -4,-56 -99,-171 -52,-63 -132,-227 -155,-318 -9,-36 -19,-110 -22,-165 -5,-84 -2,-120 20,-230 63,-306 163,-492 381,-711 179,-179 366,-295 605,-375 93,-30 100,-31 295,-33 178,-2 208,-5 270,-25 190,-63 322,-161 434,-323 45,-65 65,-84 140,-132 127,-81 210,-177 247,-289 13,-40 40,-75 139,-177 170,-178 220,-267 246,-444 12,-81 7,-128 -31,-265 -11,-41 -20,-96 -20,-123 v -48 H 3854 2068 l 50,63 c 40,50 779,1007 816,1056 6,8 7,12 1,9 -5,-3 -608,-259 -1340,-568 C 864,1611 211,1335 144,1306 77,1278 23,1251 24,1245 25,1240 266,1133 560,1009 2512,183 2923,10 2927,14 c 2,2 -189,253 -425,557 l -429,554 3774,3 3773,2 683,-411 c 375,-226 696,-420 713,-430 30,-18 66,-19 903,-19 479,0 871,3 871,8 0,4 -216,223 -480,487 l -480,480 480,480 c 264,264 480,483 480,488 0,4 -393,7 -873,7 h -873 l -712,-430 -713,-430 H 8061 6502 l -6,23 c -3,12 -28,61 -57,107 -79,131 -96,170 -113,259 -35,181 -23,236 108,494 94,186 105,213 133,338 35,150 91,302 155,418 43,77 216,312 253,343 48,41 112,53 285,53 142,0 176,-3 244,-23 170,-49 322,-139 444,-263 95,-98 112,-124 112,-179 0,-124 -68,-278 -165,-376 -81,-81 -148,-113 -276,-130 -56,-7 -103,-15 -106,-17 -2,-3 13,-19 34,-36 72,-60 254,-138 449,-192 98,-27 369,-38 496,-20 250,36 447,132 604,293 95,98 131,149 184,260 54,113 81,221 86,348 l 4,105 62,38 c 222,135 371,414 354,662 -3,50 -9,115 -12,145 -6,51 -3,60 35,126 59,103 85,213 78,329 -12,171 -72,354 -164,493 -21,31 -80,101 -131,154 l -93,96 31,24 c 41,30 114,127 151,200 92,182 97,405 14,649 -56,162 -151,297 -354,499 -406,404 -922,667 -1492,760 -131,21 -324,25 -489,9 z"
id="path4-3" />
</g>
<g
transform="matrix(0.00194266,0,0,-0.00194266,23.960519,100.82883)"
fill="#000000"
stroke="none"
id="g32">
<path
d="m 6710,12673 c -25,-2 -90,-10 -145,-19 -533,-81 -1001,-335 -1367,-742 l -65,-73 -84,45 c -869,470 -1958,306 -2664,-399 -315,-316 -513,-683 -619,-1147 -5,-23 -15,-30 -64,-43 -136,-38 -306,-101 -427,-160 C 605,9807 139,9173 24,8430 2,8288 -1,7939 18,7805 163,6801 900,6037 1895,5859 c 113,-21 162,-24 380,-23 266,0 345,8 545,59 229,58 493,173 681,296 l 93,61 51,-12 c 284,-67 433,-84 678,-77 181,5 335,26 492,65 l 70,18 75,-60 c 307,-244 686,-408 1083,-466 150,-23 445,-27 587,-10 416,52 839,229 1148,481 l 73,60 89,-51 c 268,-153 567,-253 875,-291 117,-14 417,-14 525,0 225,30 486,103 667,186 l 83,38 127,-19 c 170,-25 470,-25 633,0 515,79 970,315 1323,686 325,342 525,752 603,1235 22,136 25,485 6,620 -99,685 -474,1268 -1050,1632 -320,202 -774,341 -1120,343 h -72 l -113,113 c -388,393 -872,620 -1432,672 l -70,7 -56,102 c -268,481 -730,863 -1260,1039 -272,91 -610,132 -899,110 z"
id="path4-88" />
<path
d="m 3943,5543 c -60,-12 -557,-585 -717,-828 -121,-183 -153,-279 -143,-435 17,-274 207,-501 474,-565 101,-24 243,-17 340,17 182,65 322,205 385,388 34,96 32,291 -5,496 -41,230 -114,542 -187,794 -38,134 -56,151 -147,133 z"
id="path6-3" />
<path
d="m 7553,5543 c -44,-9 -441,-455 -632,-712 -183,-246 -226,-345 -225,-521 1,-87 5,-119 27,-183 71,-205 236,-360 442,-412 76,-19 214,-19 290,0 114,29 203,81 290,169 87,88 133,167 161,278 42,162 -10,521 -156,1079 -84,320 -86,323 -197,302 z"
id="path8-1" />
<path
d="m 11163,5542 c -43,-13 -429,-447 -608,-684 -112,-148 -183,-261 -217,-348 -19,-47 -22,-75 -23,-190 0,-116 3,-145 23,-202 83,-241 300,-403 555,-416 288,-14 526,153 623,438 52,154 -10,582 -171,1167 -58,213 -75,244 -129,242 -17,-1 -41,-4 -53,-7 z"
id="path10-8" />
<path
d="m 5303,4620 c -32,-7 -108,-82 -289,-285 -275,-308 -453,-545 -526,-702 -160,-341 44,-750 422,-844 30,-7 98,-13 150,-13 257,3 483,165 572,410 57,160 23,475 -107,991 -115,455 -122,467 -222,443 z"
id="path12-9" />
<path
d="m 8918,4623 c -62,-10 -548,-565 -723,-828 -117,-174 -145,-252 -145,-404 0,-166 54,-301 169,-423 117,-125 263,-190 431,-192 109,-1 176,13 275,59 161,73 293,232 336,405 38,151 -2,451 -127,955 -76,304 -102,388 -130,413 -25,22 -32,23 -86,15 z"
id="path14-6" />
<path
d="m 6664,3698 c -36,-8 -56,-24 -141,-116 -446,-484 -663,-775 -717,-961 -26,-88 -21,-243 9,-339 38,-120 119,-237 214,-307 249,-182 575,-163 794,45 154,146 210,310 186,544 -23,233 -110,641 -210,986 -41,140 -62,163 -135,148 z"
id="path16-4" />
<path
d="m 10275,3696 c -33,-9 -64,-36 -167,-146 -229,-245 -448,-510 -562,-680 -118,-176 -152,-277 -143,-435 11,-209 121,-393 298,-498 393,-232 898,31 926,482 9,154 -46,484 -152,896 -81,315 -95,356 -130,376 -25,13 -37,14 -70,5 z"
id="path18-3" />
<path
d="m 3024,3691 c -21,-9 -181,-177 -320,-336 -334,-382 -485,-607 -520,-775 -66,-312 148,-639 466,-714 320,-76 654,127 737,447 33,128 3,402 -83,776 -61,263 -142,554 -162,580 -20,28 -78,38 -118,22 z"
id="path20-3" />
<path
d="m 4393,2773 c -52,-10 -509,-527 -687,-776 -73,-102 -134,-214 -157,-287 -26,-81 -28,-236 -4,-324 55,-207 237,-387 444,-441 80,-20 226,-21 304,0 214,56 381,217 442,430 38,130 13,383 -76,779 -42,185 -130,519 -150,569 -20,48 -52,62 -116,50 z"
id="path22-3" />
<path
d="m 8008,2773 c -20,-3 -62,-41 -146,-131 -367,-391 -619,-720 -689,-897 -24,-63 -27,-83 -28,-195 0,-106 4,-136 24,-199 51,-154 171,-292 316,-361 105,-49 159,-62 276,-61 171,1 306,58 430,181 132,131 188,282 176,474 -12,181 -60,441 -147,786 -65,257 -98,362 -121,387 -22,22 -34,25 -91,16 z"
id="path24" />
<path
d="m 2140,1850 c -38,-9 -111,-81 -304,-300 -315,-356 -486,-591 -536,-733 -64,-182 -38,-378 72,-543 120,-179 332,-285 545,-271 268,18 498,208 563,465 16,62 14,241 -5,362 -43,285 -196,924 -238,990 -9,15 -52,43 -60,39 -1,-1 -18,-5 -37,-9 z"
id="path26" />
<path
d="m 5754,1848 c -37,-8 -57,-26 -177,-156 -415,-451 -636,-753 -682,-929 -20,-75 -19,-210 1,-292 41,-165 176,-333 326,-405 151,-72 315,-84 465,-33 99,34 156,69 233,143 109,104 175,239 187,378 15,179 -82,690 -222,1171 -36,124 -52,139 -131,123 z"
id="path28" />
<path
d="m 9371,1850 c -41,-10 -105,-72 -291,-280 -375,-422 -535,-650 -576,-827 -33,-139 1,-322 82,-451 170,-269 502,-365 789,-229 142,68 265,205 316,354 21,60 24,85 23,218 -1,187 -36,394 -135,785 -72,288 -105,393 -134,418 -14,12 -29,22 -33,21 -4,-1 -22,-5 -41,-9 z"
id="path30" />
</g>
<g
transform="matrix(0.0034974,0,0,-0.0034974,260.93273,105.32701)"
fill="#000000"
stroke="none"
id="g30">
<path
d="M 815,5855 C 501,5811 237,5619 100,5337 73,5281 41,5197 28,5150 L 5,5065 V 3205 C 5,1461 6,1341 23,1276 116,912 382,647 740,563 c 71,-17 345,-18 5660,-18 5315,0 5589,1 5660,18 358,84 624,349 717,713 17,65 18,185 18,1929 v 1860 l -23,85 c -105,388 -422,663 -817,709 -143,17 -11021,13 -11140,-4 z m 11188,-364 c 90,-24 133,-44 212,-104 97,-73 176,-191 212,-318 17,-61 18,-152 18,-1864 0,-1688 -1,-1804 -18,-1864 -58,-210 -218,-370 -428,-428 -61,-17 -345,-18 -5599,-18 -5254,0 -5538,1 -5599,18 -210,58 -370,218 -428,428 -17,60 -18,176 -18,1864 0,1712 1,1803 18,1864 47,165 162,307 310,383 22,11 71,28 110,38 70,18 228,19 5603,19 5440,1 5532,1 5607,-18 z"
id="path4-86" />
<path
d="m 3719,5115 c -335,-53 -612,-289 -718,-613 -46,-140 -53,-242 -30,-452 85,-796 191,-1806 199,-1900 5,-63 19,-150 30,-194 88,-332 358,-588 695,-657 84,-17 194,-19 1635,-29 850,-6 1991,-12 2535,-13 943,-2 993,-1 1060,17 385,104 647,410 684,798 6,57 31,238 55,403 25,165 82,543 126,840 44,297 91,613 105,702 29,187 31,274 9,380 -35,170 -108,313 -223,435 -155,165 -333,257 -554,287 -54,8 -932,11 -2800,10 -2220,-1 -2738,-3 -2808,-14 z m 5626,-280 c 275,-57 495,-316 495,-581 0,-34 -18,-181 -39,-326 -143,-948 -261,-1754 -266,-1818 -21,-230 -150,-419 -349,-515 -50,-24 -118,-49 -151,-56 -62,-12 -1014,-10 -3830,11 -1341,10 -1269,6 -1415,78 -56,27 -96,57 -155,117 -97,97 -148,190 -170,310 -8,44 -42,343 -75,665 -33,322 -83,799 -111,1060 -50,469 -51,476 -36,554 41,206 192,393 378,467 126,50 -11,47 2914,48 2369,1 2749,-1 2810,-14 z"
id="path6-0" />
<path
d="m 4148,4229 c -113,-17 -218,-96 -267,-199 -22,-47 -26,-69 -26,-150 0,-81 4,-103 26,-150 33,-70 99,-136 169,-169 47,-22 69,-26 150,-26 81,0 103,4 150,26 195,92 261,339 139,523 -69,104 -212,165 -341,145 z"
id="path8-48" />
<path
d="m 5280,4228 c -95,-15 -179,-69 -233,-151 -46,-70 -59,-115 -59,-203 1,-189 144,-334 337,-342 113,-5 180,21 261,102 75,75 104,143 104,246 0,221 -189,382 -410,348 z"
id="path10" />
<path
d="m 6318,4229 c -286,-44 -401,-393 -196,-599 63,-63 135,-94 233,-98 114,-5 180,21 261,102 75,75 104,143 104,246 0,217 -190,382 -402,349 z"
id="path12" />
<path
d="m 7474,4229 c -172,-22 -304,-173 -304,-349 0,-101 42,-193 120,-263 153,-138 405,-109 521,60 45,65 61,119 62,203 0,103 -29,175 -96,243 -86,86 -185,121 -303,106 z"
id="path14" />
<path
d="m 8578,4229 c -113,-18 -218,-96 -267,-199 -22,-47 -26,-69 -26,-150 0,-81 4,-103 26,-150 33,-70 99,-136 169,-169 47,-22 69,-26 150,-26 81,0 103,4 150,26 286,135 261,559 -39,653 -64,20 -108,24 -163,15 z"
id="path16" />
<path
d="m 4718,2946 c -74,-30 -128,-74 -167,-134 -152,-237 15,-544 294,-544 208,0 369,173 352,378 -8,111 -68,210 -162,269 -98,61 -215,73 -317,31 z"
id="path18" />
<path
d="m 5749,2947 c -75,-31 -122,-69 -162,-130 -47,-71 -61,-119 -60,-202 1,-103 32,-176 104,-246 72,-72 143,-101 245,-101 155,0 288,94 335,239 50,151 -6,314 -140,404 -95,64 -219,78 -322,36 z"
id="path20" />
<path
d="m 6900,2948 c -78,-30 -169,-123 -199,-203 -31,-82 -27,-196 10,-275 56,-119 179,-201 307,-203 87,-1 144,15 211,62 235,161 191,521 -75,621 -74,27 -180,26 -254,-2 z"
id="path22" />
<path
d="m 8008,2947 c -216,-91 -290,-352 -153,-539 68,-92 165,-140 288,-140 65,0 87,5 140,30 77,36 142,100 176,172 22,47 26,69 26,150 0,81 -4,103 -25,145 -34,70 -99,136 -167,171 -48,24 -72,29 -143,32 -71,2 -94,-1 -142,-21 z"
id="path24-8" />
<path
d="m 1230,4060 c -336,-73 -601,-331 -681,-665 -27,-110 -29,-284 -6,-392 96,-444 510,-745 962,-701 539,53 909,578 775,1102 -119,467 -584,757 -1050,656 z m 390,-293 c 423,-150 547,-689 230,-1008 -194,-195 -464,-240 -709,-118 -216,107 -354,347 -337,585 16,214 140,407 325,503 110,57 173,71 306,67 88,-2 125,-8 185,-29 z"
id="path26-8" />
<path
d="m 11365,4074 c -11,-2 -47,-10 -80,-16 -71,-14 -207,-66 -267,-104 -299,-186 -462,-512 -427,-854 12,-115 32,-189 80,-289 165,-348 514,-546 894,-509 207,20 388,105 533,249 166,164 256,365 269,599 21,410 -253,784 -659,900 -71,21 -293,36 -343,24 z m 315,-307 c 91,-32 195,-102 256,-171 56,-64 122,-193 140,-277 78,-364 -180,-709 -556,-744 -165,-16 -351,55 -475,179 -188,189 -235,462 -120,701 76,158 234,287 403,330 91,23 259,15 352,-18 z"
id="path28-9" />
</g>
<g
transform="matrix(0.0107659,0,0,-0.0107659,102.50482,163.97367)"
fill="#000000"
stroke="none"
id="g12">
<path
d="m 7484,12789 c -67,-19 -123,-121 -109,-198 15,-81 61,-135 125,-148 l 30,-6 -2,-2120 -3,-2121 -47,3 -48,3 v -166 -166 h -195 -195 l -2,163 -3,162 -55,1 -55,1 -3,1128 c -2,1114 -2,1127 18,1152 27,35 43,99 35,142 -10,57 -50,116 -91,136 -49,23 -148,17 -186,-10 -65,-48 -90,-154 -55,-236 20,-50 76,-90 132,-97 l 45,-5 -2,-1104 -3,-1105 -85,-2 -85,-1 -3,-162 -2,-163 h -195 -194 v 163 162 h -83 -83 l -5,720 -5,720 -542,3 -543,2 v 755 755 l 28,42 c 23,36 27,52 27,113 0,63 -3,76 -28,108 -38,50 -75,67 -145,67 -45,0 -67,-6 -93,-23 -67,-44 -98,-153 -65,-230 17,-41 76,-93 115,-102 l 31,-7 v -789 -789 h 555 555 v -672 -673 h -52 -53 l -3,-162 -2,-163 h -195 -195 l -2,163 -3,162 h -48 -47 v 418 417 h -633 -634 l -24,26 c -37,40 -73,54 -137,54 -45,0 -67,-5 -93,-23 -110,-74 -104,-253 11,-314 109,-58 238,3 257,122 l 6,35 h 553 554 l -2,-366 -3,-367 -70,-1 -70,-1 -3,-162 -2,-163 h -195 -195 l -2,163 -3,162 h -30 l -30,1 -3,182 -2,182 H 3527 2435 l -50,26 c -123,63 -255,-19 -255,-159 0,-62 19,-105 63,-144 93,-82 246,-32 279,91 l 12,46 h 1003 1004 l -3,-111 -3,-111 -95,-1 -95,-2 -3,-162 -2,-163 h -240 -240 v -345 -345 h -165 -165 v -40 -40 H 2442 1403 l -33,41 c -94,117 -272,81 -310,-63 -21,-77 10,-159 79,-205 26,-17 48,-23 91,-23 67,0 111,25 149,83 l 24,37 h 1039 1038 v -90 -90 h 165 165 v -195 -195 h -165 -165 v -70 -70 H 1870 260 v 930 930 l 25,16 c 41,27 68,96 63,165 -5,62 -23,97 -69,132 -56,41 -152,41 -208,0 -58,-42 -85,-139 -60,-214 13,-38 63,-96 91,-105 17,-5 18,-51 20,-997 l 3,-992 1677,-3 1678,-2 v -60 -60 h 165 165 v -195 -195 h -164 -165 l -3,-47 -3,-48 -1037,-3 -1036,-2 -31,-39 -31,-39 v -740 -740 l -35,-6 c -110,-21 -168,-180 -101,-278 35,-51 70,-71 134,-76 100,-7 158,35 184,133 13,50 0,125 -28,156 -12,13 -14,125 -14,753 0,489 -3,744 -10,757 -11,19 4,19 1000,19 h 1010 v -95 -95 h 165 165 v -285 -285 h 300 300 v -165 -165 h 40 40 v -779 c 0,-772 0,-779 -21,-805 l -20,-26 h -657 l -657,1 -20,31 c -30,48 -78,71 -145,71 -104,0 -173,-71 -174,-178 -1,-197 249,-255 334,-78 l 25,53 h 674 673 l 59,51 59,51 v 804 804 h 90 90 v 165 165 h 195 195 v -161 c 0,-152 1,-161 20,-166 20,-5 20,-14 20,-1818 V 691 l -26,-20 c -26,-21 -36,-21 -550,-21 -330,0 -524,4 -524,10 0,18 -65,83 -97,96 -80,34 -178,2 -221,-71 -33,-58 -28,-157 11,-209 41,-53 78,-69 151,-64 74,4 116,30 143,88 l 18,39 541,1 h 541 l 74,53 74,53 3,1837 2,1836 108,3 107,3 3,163 2,162 h 195 195 v -165 -165 h 50 50 V 2800 1281 l -42,-12 c -110,-29 -154,-161 -94,-277 32,-62 117,-93 197,-72 116,31 163,186 88,291 -18,26 -19,71 -19,1568 v 1541 h 80 80 v 165 165 h 195 195 v -165 -165 h 80 80 V 2325 c 0,-1961 0,-1994 -19,-2005 -13,-6 -241,-10 -671,-10 -647,0 -651,0 -679,21 -78,57 -194,37 -255,-44 -32,-43 -34,-150 -4,-202 41,-71 143,-104 221,-71 44,18 95,78 103,121 l 6,35 h 650 651 l 68,56 69,56 v 2019 2019 h 45 45 v 165 165 h 195 195 l 2,-163 3,-162 h 195 195 l 3,163 2,162 h 195 195 v -165 -165 h 195 195 v 165 165 h 195 195 l 2,-162 3,-163 192,-3 193,-2 2,162 3,163 393,3 392,2 v 490 490 h 160 160 v 60 60 h 660 660 v -770 -770 l -39,-24 c -77,-49 -103,-161 -58,-247 58,-109 218,-122 293,-23 26,34 29,45 29,114 0,69 -3,80 -29,114 -16,21 -44,44 -62,52 l -34,14 -2,838 -3,837 -707,3 -708,2 v 68 67 l -160,-3 -160,-3 v 201 200 h 160 159 l 3,88 3,87 801,3 801,2 18,-41 c 61,-134 254,-130 316,6 65,143 -52,291 -201,255 -44,-11 -110,-59 -110,-81 0,-5 -344,-8 -812,-7 l -813,3 -3,38 -3,37 h -160 -159 v 530 530 h -450 -450 l -2,163 c -2,123 -6,161 -15,160 -10,-2 -13,184 -13,907 v 910 h 900 899 l 19,-43 c 28,-63 72,-91 152,-95 55,-3 70,0 99,20 62,42 76,70 76,156 0,90 -21,129 -85,162 -70,36 -149,24 -205,-31 l -31,-29 -964,-2 -965,-3 -3,-975 -2,-975 -125,3 -125,3 v -165 -166 h -197 -198 v 163 162 l -45,1 -45,1 -3,1581 -2,1582 727,2 727,3 -3,446 -3,446 34,24 c 46,33 65,58 78,106 31,109 -40,220 -148,231 -65,6 -114,-11 -151,-53 -79,-90 -56,-233 46,-287 l 43,-23 v -398 -399 l -740,3 -740,2 -3,-1632 -2,-1633 -80,-1 -80,-2 -3,-162 -2,-163 h -195 -195 l -2,163 -3,162 -73,1 -72,2 v 2137 c 0,2120 0,2137 20,2165 31,44 44,117 31,168 -28,103 -126,153 -237,121 z"
id="path4-76" />
<path
d="m 7670,4298 c 0,-2 -1,-621 -3,-1377 l -2,-1374 -44,-13 c -80,-23 -123,-83 -124,-173 0,-77 32,-134 95,-167 39,-20 122,-18 167,6 98,49 120,206 41,287 l -30,31 -2,1388 -3,1389 -47,3 c -27,2 -48,2 -48,0 z"
id="path6-31" />
<path
d="M 8510,2775 V 1250 h 873 l 872,-1 20,-41 c 31,-65 63,-83 150,-83 59,0 79,4 102,21 104,77 95,255 -17,312 -25,12 -62,22 -85,22 -51,-1 -119,-31 -140,-64 l -17,-26 h -809 -809 l -2,1453 -3,1452 -67,3 -68,3 z"
id="path8-7" />
<path
d="m 9255,4288 c -3,-7 -4,-495 -3,-1083 l 3,-1070 932,-5 933,-5 22,-45 c 33,-65 76,-90 153,-90 68,0 110,21 149,73 32,43 34,150 4,202 -41,71 -143,104 -221,71 -32,-13 -97,-78 -97,-96 0,-6 -323,-10 -885,-10 h -885 l -2,1033 -3,1032 -48,3 c -32,2 -49,-1 -52,-10 z"
id="path10-5" />
</g>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="57.779884"
y="38.736076"
id="text1496"><tspan
sodipodi:role="line"
id="tspan1494"
x="57.779884"
y="38.736076"
style="stroke-width:0.264583">wind speed</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-79.275375"
y="76.304565"
id="text1500"><tspan
sodipodi:role="line"
id="tspan1498"
x="-79.275375"
y="76.304565"
style="stroke-width:0.264583">wind direction</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-77.63871"
y="89.558937"
id="text1504"><tspan
sodipodi:role="line"
id="tspan1502"
x="-77.63871"
y="89.558937"
style="stroke-width:0.264583">rain fall</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-74.587128"
y="102.40005"
id="text1508"><tspan
sodipodi:role="line"
id="tspan1506"
x="-74.587128"
y="102.40005"
style="stroke-width:0.264583">humidity</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-73.550102"
y="128.35326"
id="text1512"><tspan
sodipodi:role="line"
id="tspan1510"
x="-73.550102"
y="128.35326"
style="stroke-width:0.264583">pressure</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="-71.119621"
y="115.4705"
id="text892"><tspan
sodipodi:role="line"
id="tspan890"
x="-71.119621"
y="115.4705"
style="stroke-width:0.264583">temperature</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 29 KiB

@ -1,955 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="29.700220cm"
height="21.000720cm"
viewBox="0 0 116930 82680"
id="svg23721"
sodipodi:docname="diagram_rain_meter.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
<metadata
id="metadata23727">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>SVG Picture created as ds-15901_interface.svg date 2024/01/14 11:34:22 </dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs23725">
<marker
style="overflow:visible"
id="Arrow1Mstart"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mstart"
inkscape:isstock="true">
<path
transform="scale(0.4) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path1309" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lstart"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true">
<path
transform="scale(0.8) translate(12.5,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path1303" />
</marker>
<marker
style="overflow:visible"
id="marker1211"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lstart"
inkscape:isstock="true">
<path
transform="scale(1.1) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path1209" />
</marker>
<marker
style="overflow:visible"
id="Arrow2Lstart"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lstart"
inkscape:isstock="true"
inkscape:collect="always">
<path
transform="scale(1.1) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path24981" />
</marker>
<marker
style="overflow:visible;"
id="marker26404"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path26402" />
</marker>
<marker
style="overflow:visible;"
id="Arrow2Mend"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Mend"
inkscape:isstock="true">
<path
transform="scale(0.6) rotate(180) translate(0,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path24990" />
</marker>
<marker
style="overflow:visible;"
id="marker26278"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Send"
inkscape:isstock="true">
<path
transform="scale(0.2) rotate(180) translate(6,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path26276" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Sstart"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Sstart"
inkscape:isstock="true">
<path
transform="scale(0.2) translate(6,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path24975" />
</marker>
<marker
style="overflow:visible;"
id="Arrow1Mend"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true"
inkscape:collect="always">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path24972" />
</marker>
<marker
style="overflow:visible;"
id="Arrow1Send"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Send"
inkscape:isstock="true">
<path
transform="scale(0.2) rotate(180) translate(6,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path24978" />
</marker>
<marker
style="overflow:visible;"
id="marker26011"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lend"
inkscape:isstock="true">
<path
transform="scale(1.1) rotate(180) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path26009" />
</marker>
<marker
style="overflow:visible;"
id="marker25975"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lend"
inkscape:isstock="true">
<path
transform="scale(1.1) rotate(180) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path25973" />
</marker>
<marker
style="overflow:visible;"
id="marker25397"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lend"
inkscape:isstock="true">
<path
transform="scale(1.1) rotate(180) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path25395" />
</marker>
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1008"
id="namedview23723"
showgrid="false"
inkscape:snap-smooth-nodes="true"
inkscape:zoom="1.6176436"
inkscape:cx="740.66844"
inkscape:cy="405.40385"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g26776"
inkscape:document-rotation="0" />
<title
id="title12307">SVG Picture created as ds-15901_interface.svg date 2024/01/14 11:34:22 </title>
<desc
id="desc12309">Picture generated by Eeschema-SVG </desc>
<g
style="fill:#000000; fill-opacity:1.000000;stroke:#000000; stroke-opacity:1.000000; stroke-linecap:round; stroke-linejoin:round;"
transform="translate(0 0) scale(1 1)"
id="g12311" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:0.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g12313" />
<g
id="g17993"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
transform="translate(71905.019,20149.055)" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18217" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18235" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18253" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18273" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18293" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18313" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18333" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18353" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18373" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18391" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18409" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18429" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18487" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18513" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18567" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g18841" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g19061" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g19113" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g20339" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g20447" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g20697" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g20955" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g20997" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21031" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21079" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21139" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21439" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:62.519685; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21489" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21531" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21537" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21543" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21549" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21555" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21561" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21567" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21573" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21579" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21585" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21591" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21597" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21603" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21609" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21615" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21621" />
<g
style="fill:#000000; fill-opacity:0.0; stroke:#000000; stroke-width:60.000000; stroke-opacity:1; stroke-linecap:round; stroke-linejoin:round;"
id="g21627" />
<g
id="g26776"
transform="matrix(3.4773861,0,0,3.4773861,-152237.77,-97119.484)">
<g
id="g3803">
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17883"
transform="matrix(0.91371899,0,0,0.91371899,72312.783,22417.078)">
<g
id="g17823" />
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17827">
<rect
x="-17400"
y="15250"
width="800"
height="2000"
rx="0.000000"
id="rect17825" />
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17881">
<path
d="m -17000,15250 v -500"
id="path17829" />
<path
d="m -17000,17250 v 500"
id="path17831" />
<text
x="-12980.669"
y="16499.961"
textLength="6036.1812"
font-size="666.654px"
lengthAdjust="spacingAndGlyphs"
text-anchor="middle"
opacity="0"
id="text17833">Pull up resistor</text>
<g
class="stroked-text"
id="g17879">
<desc
id="desc17835">Pull up resistor</desc>
<path
d="m -15849,16476 v -500 h 190 l 48,23 24,24 24,48 v 71 l -24,48 -24,24 -48,24 h -190"
id="path17837" />
<path
d="m -15135,16142 v 334"
id="path17839" />
<path
d="m -15349,16142 v 262 l 24,48 47,24 h 72 l 47,-24 24,-24"
id="path17841" />
<path
d="m -14825,16476 -48,-24 -24,-48 v -428"
id="path17843" />
<path
d="m -14563,16476 -48,-24 -24,-48 v -428"
id="path17845" />
<path
d="m -13778,16142 v 334"
id="path17847" />
<path
d="m -13992,16142 v 262 l 24,48 47,24 h 72 l 47,-24 24,-24"
id="path17849" />
<path
d="m -13540,16142 v 500"
id="path17851" />
<path
d="m -13540,16166 48,-24 h 95 l 48,24 24,24 23,48 v 142 l -23,48 -24,24 -48,24 h -95 l -48,-24"
id="path17853" />
<path
d="m -12706,16476 v -334"
id="path17855" />
<path
d="m -12706,16238 23,-48 24,-24 48,-24 h 48"
id="path17857" />
<path
d="m -12206,16452 -48,24 h -95 l -48,-24 -24,-48 v -190 l 24,-48 48,-24 h 95 l 48,24 23,48 v 47 l -238,48"
id="path17859" />
<path
d="m -11992,16452 48,24 h 95 l 47,-24 24,-48 v -24 l -24,-47 -47,-24 h -72 l -47,-24 -24,-47 v -24 l 24,-48 47,-24 h 72 l 47,24"
id="path17861" />
<path
d="m -11563,16476 v -334"
id="path17863" />
<path
d="m -11563,15976 -24,23 24,24 23,-24 -23,-23 v 47"
id="path17865" />
<path
d="m -11349,16452 47,24 h 96 l 47,-24 24,-48 v -24 l -24,-47 -47,-24 h -72 l -47,-24 -24,-47 v -24 l 24,-48 47,-24 h 72 l 47,24"
id="path17867" />
<path
d="m -10992,16142 h 190"
id="path17869" />
<path
d="m -10921,15976 v 428 l 24,48 48,24 h 47"
id="path17871" />
<path
d="m -10563,16476 -48,-24 -24,-24 -24,-48 v -142 l 24,-48 24,-24 48,-24 h 71 l 48,24 23,24 24,48 v 142 l -24,48 -23,24 -48,24 h -71"
id="path17873" />
<path
d="m -10183,16476 v -334"
id="path17875" />
<path
d="m -10183,16238 24,-48 24,-24 48,-24 h 47"
id="path17877" />
</g>
</g>
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17905"
transform="matrix(0.91371899,0,0,0.91371899,72312.783,22417.078)">
<g
id="g17903">
<path
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m -17300,13000 300,-500"
id="path17885" />
<path
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="M -17000,13500 V 12500"
id="path17887" />
<path
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m -17000,12500 300,500"
id="path17889" />
<text
x="-17000"
y="11749.961"
textLength="1488.5826"
font-size="666.654px"
lengthAdjust="spacingAndGlyphs"
text-anchor="middle"
opacity="0"
id="text17891">VCC</text>
<g
class="stroked-text"
id="g17901">
<desc
id="desc17893">VCC</desc>
<path
d="m -17666,11226 166,500 167,-500"
id="path17895" />
<path
d="m -16880,11678 -24,24 -72,24 h -47 l -72,-24 -47,-48 -24,-47 -24,-96 v -71 l 24,-95 24,-48 47,-48 72,-23 h 47 l 72,23 24,24"
id="path17897" />
<path
d="m -16380,11678 -24,24 -72,24 h -47 l -72,-24 -47,-48 -24,-47 -24,-96 v -71 l 24,-95 24,-48 47,-48 72,-23 h 47 l 72,23 24,24"
id="path17899" />
</g>
</g>
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17973"
transform="matrix(0.91371899,0,0,0.91371899,72312.783,22417.078)">
<g
id="g17907" />
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17911">
<path
d="m -17549.999,21850.96 a 550,550 0 0 0 1099.998,0"
id="path17909" />
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17915">
<path
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m -17000,22000 -300,-1500"
id="path17913" />
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17921">
<path
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="M -16450,21850 V 20100"
id="path17917" />
<path
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m -17550,20150 v 1700"
id="path17919" />
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17925">
<path
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m -17000,20000 300,1500"
id="path17923" />
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17929">
<path
d="m -16450.001,20149.04 a 550,550 0 0 0 -1099.998,0"
id="path17927" />
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17971">
<path
d="m -17000,22000 v 1000"
id="path17931" />
<path
d="M -17000,20000 V 19000"
id="path17933" />
<text
x="-13706.851"
y="21250"
textLength="4583.8188"
font-size="666.654px"
lengthAdjust="spacingAndGlyphs"
text-anchor="middle"
opacity="0"
id="text17935">Reed switch</text>
<g
class="stroked-text"
id="g17969">
<desc
id="desc17937">Reed switch</desc>
<path
d="m -15563,21226 -167,-238"
id="path17939" />
<path
d="m -15849,21226 v -500 h 190 l 48,24 24,23 24,48 v 71 l -24,48 -24,24 -48,24 h -190"
id="path17941" />
<path
d="m -15159,21202 -47,24 h -96 l -47,-24 -24,-48 v -190 l 24,-48 47,-24 h 96 l 47,24 24,48 v 47 l -238,48"
id="path17943" />
<path
d="m -14730,21202 -48,24 h -95 l -48,-24 -23,-48 v -190 l 23,-48 48,-24 h 95 l 48,24 24,48 v 47 l -238,48"
id="path17945" />
<path
d="m -14278,21226 v -500"
id="path17947" />
<path
d="m -14278,21202 -47,24 h -96 l -47,-24 -24,-24 -24,-48 v -142 l 24,-48 24,-24 47,-24 h 96 l 47,24"
id="path17949" />
<path
d="m -13683,21202 48,24 h 95 l 48,-24 24,-48 v -24 l -24,-47 -48,-24 h -71 l -48,-24 -24,-47 v -24 l 24,-48 48,-24 h 71 l 48,24"
id="path17951" />
<path
d="m -13302,20892 96,334 95,-238 95,238 95,-334"
id="path17953" />
<path
d="m -12730,21226 v -334"
id="path17955" />
<path
d="m -12730,20726 -24,24 24,23 24,-23 -24,-24 v 47"
id="path17957" />
<path
d="m -12563,20892 h 190"
id="path17959" />
<path
d="m -12492,20726 v 428 l 24,48 47,24 h 48"
id="path17961" />
<path
d="m -11992,21202 -48,24 h -95 l -48,-24 -23,-24 -24,-48 v -142 l 24,-48 23,-24 48,-24 h 95 l 48,24"
id="path17963" />
<path
d="m -11778,21226 v -500"
id="path17965" />
<path
d="m -11563,21226 v -262 l -24,-48 -48,-24 h -71 l -48,24 -24,24"
id="path17967" />
</g>
</g>
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g18081"
transform="matrix(0.91371899,0,0,0.91371899,72312.783,22417.078)">
<g
id="g18079">
<path
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m -17000,24250 v 500 h 500 l -500,500 -500,-500 h 500"
id="path18065" />
<text
x="-17000"
y="26249.961"
textLength="1583.8188"
font-size="666.654px"
lengthAdjust="spacingAndGlyphs"
text-anchor="middle"
opacity="0"
id="text18067">GND</text>
<g
class="stroked-text"
id="g18077">
<desc
id="desc18069">GND</desc>
<path
d="m -17380,25749 -48,-23 h -72 l -71,23 -48,48 -23,48 -24,95 v 71 l 24,96 23,47 48,48 71,24 h 48 l 72,-24 23,-24 v -167 h -95"
id="path18071" />
<path
d="m -17142,26226 v -500 l 285,500 v -500"
id="path18073" />
<path
d="m -16619,26226 v -500 h 119 l 72,23 48,48 23,48 24,95 v 71 l -24,96 -23,47 -48,48 -72,24 h -119"
id="path18075" />
</g>
</g>
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g18311"
transform="matrix(0.91371899,0,0,0.91371899,72312.783,22417.078)">
<text
x="-11250"
y="18535.748"
textLength="1491.1024"
font-size="666.654px"
lengthAdjust="spacingAndGlyphs"
text-anchor="start"
opacity="0"
id="text18295">OUT</text>
<g
class="stroked-text"
id="g18307">
<desc
id="desc18297">OUT</desc>
<path
d="m -11005,18011 h 95 l 48,24 47,48 24,95 v 167 l -24,95 -47,48 -48,23 h -95 l -48,-23 -47,-48 -24,-95 v -167 l 24,-95 47,-48 48,-24"
id="path18299" />
<path
d="m -10577,18011 v 405 l 24,48 24,24 48,23 h 95 l 47,-23 24,-24 24,-48 v -405"
id="path18301" />
<path
d="m -10124,18011 h 285"
id="path18303" />
<path
d="m -9981,18511 v -500"
id="path18305" />
</g>
<path
style="fill:none;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
d="m -11750,18250 375,437.638 h 1803.7402 V 18250 17812.362 H -11375 Z"
id="path18309" />
</g>
<path
d="m 56779.56,38635.59 v 456.86"
id="path21639"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:54.8231;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<path
d="m 56779.56,34752.285 v 1142.148"
id="path21641"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:54.8231;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<path
d="m 56779.56,39092.45 h 4797.025"
id="path21665"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:54.8231;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<path
d="m 56779.56,43432.615 v 1142.149"
id="path21667"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:54.8231;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<path
d="m 56779.56,39092.45 v 685.289"
id="path21691"
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:54.8231;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<circle
cx="56779.562"
cy="39092.449"
r="164.46942"
id="circle23717"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:54.8231;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:47.5895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 66152.601,39062.427 h 1665.998 v -2471.203 h 1801.661 v 2460.267 l 31.77,-18.342"
id="path26185" />
<path
style="fill:none;stroke:#000000;stroke-width:47.5895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 69620.26,39051.491 h 1665.998 v -2471.204 h 1801.662 v 2460.267 l 31.769,-18.342"
id="path26185-0" />
<path
style="fill:none;stroke:#000000;stroke-width:47.5895;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 73119.689,39022.212 h 1665.998 v -2471.204 h 1801.662 v 2460.268 l 31.769,-18.342"
id="path26185-4" />
<text
xml:space="preserve"
style="font-size:761.432px;line-height:1.25;font-family:sans-serif;stroke-width:95.1794"
x="64831.664"
y="39254.566"
id="text26210"><tspan
sodipodi:role="line"
id="tspan26208"
x="64831.664"
y="39254.566"
style="stroke-width:95.1794">0V</tspan></text>
<text
xml:space="preserve"
style="font-size:761.432px;line-height:1.25;font-family:sans-serif;stroke-width:95.1794"
x="64833.359"
y="36919.105"
id="text26210-8"><tspan
sodipodi:role="line"
id="tspan26208-8"
x="64833.359"
y="36919.105"
style="stroke-width:95.1794">VCC</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:28.1631;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Lstart);marker-end:url(#marker26011)"
d="M 69630.394,39579.617 H 73069.14"
id="path26230" />
<text
xml:space="preserve"
style="font-size:583.912px;line-height:1.25;font-family:sans-serif;stroke-width:95.1794"
x="68928.836"
y="40392.414"
id="text26566"><tspan
sodipodi:role="line"
id="tspan26564"
x="68928.836"
y="40392.414"
style="font-size:583.912px;stroke-width:95.1794">bucket tipping over</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:139.439px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
d="M 49867.049,43664.206 C 46459.42,43383.883 45672.188,41348.505 45262.862,39060.019"
id="path26007"
sodipodi:nodetypes="cc" />
<circle
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:14.8171;stroke-linecap:round"
id="path24784"
cx="47910.336"
cy="41585.172"
r="443.30615" />
<g
id="g24819"
transform="matrix(0.91371899,0,0,0.91371899,10087.91,5020.0101)">
<g
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g17997"
transform="translate(71905.019,20149.055)">
<rect
x="-23220"
y="21250"
width="440"
height="500"
rx="0.000000"
id="rect17995" />
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g18001"
transform="translate(71905.019,20149.055)">
<rect
x="-23220"
y="20960"
width="440"
height="500"
rx="0.000000"
id="rect17999" />
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:500;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g18005"
transform="translate(71905.019,20149.055)">
<path
d="m -22999.999,21750.873 a 500,500 0 0 0 999.998,0"
id="path18003" />
</g>
<g
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g18013"
transform="translate(71905.019,20149.055)">
<rect
x="-22220"
y="21250"
width="440"
height="500"
rx="0.000000"
id="rect18011" />
</g>
<g
style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g18017"
transform="translate(71905.019,20149.055)">
<rect
x="-22220"
y="20960"
width="440"
height="500"
rx="0.000000"
id="rect18015" />
</g>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:218.967;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 46030.263,37949.247 1800.24,3720.611 3729.049,-1804.323"
id="path1146" />
<ellipse
style="fill:none;stroke:#000000;stroke-width:218.967;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
id="path1148"
cx="55942.801"
cy="20019.52"
rx="1133.9928"
ry="700.84607"
transform="rotate(19.17971)" />
<ellipse
style="fill:none;stroke:#000000;stroke-width:218.967;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
id="path1148-7"
cx="61794.734"
cy="20012.893"
rx="1133.9929"
ry="700.84619"
transform="rotate(19.17971)" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:218.967;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
id="rect1165"
width="9124"
height="1104.5175"
x="54626.047"
y="18716.713"
transform="rotate(19.17971)" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:175.783;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
id="rect1188"
width="583.17365"
height="973.73267"
x="52411.383"
y="39129.633" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:218.967;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
id="rect1190"
width="1072.691"
height="811.55652"
x="44790.098"
y="36532.289" />
<path
style="fill:none;stroke:#000000;stroke-width:136.854;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 48056.296,41805.777 c 1468.458,304.755 6298.227,1294.688 6298.227,1294.688"
id="path1201" />
<g
id="g2009"
transform="matrix(6.6344785,0,0,6.6344785,44800.399,34458.719)">
<g
id="g2007">
<path
d="m 5.595,254.875 c -17.185,46.513 6.539,98.118 53.048,115.317 46.474,17.203 98.103,-6.577 115.312,-53.046 17.175,-46.468 -31.479,-173.544 -31.479,-173.544 0,0 -119.655,64.77 -136.881,111.273 z m 29.459,18.266 c 5.685,50.553 34.358,67.908 34.358,67.908 C 18.311,325.793 35.054,273.141 35.054,273.141 Z"
id="path2001" />
<path
d="m 395.391,259.702 c 0,0 -52.531,28.454 -60.083,48.864 -7.54,20.411 2.873,43.066 23.285,50.616 20.399,7.535 43.06,-2.884 50.614,-23.278 7.554,-20.399 -13.816,-76.202 -13.816,-76.202 z m -47.159,56.87 c 2.503,22.202 15.086,29.817 15.086,29.817 -22.429,-6.67 -15.086,-29.817 -15.086,-29.817 z"
id="path2003" />
<path
d="M 368.837,177.115 C 382.898,139.058 343.059,35.032 343.059,35.032 c 0,0 -97.944,53.086 -112.03,91.106 -14.074,38.028 5.364,80.34 43.398,94.384 38.046,14.102 80.319,-5.352 94.41,-43.407 z M 255.121,141.088 c 4.663,41.38 28.137,55.596 28.137,55.596 -41.842,-12.479 -28.137,-55.596 -28.137,-55.596 z"
id="path2005" />
</g>
</g>
</g>
<text
xml:space="preserve"
style="font-size:798.813px;line-height:1.25;font-family:sans-serif;stroke-width:29.9555"
x="66061.227"
y="41947.137"
id="text1122"><tspan
sodipodi:role="line"
id="tspan1120"
x="66061.227"
y="41947.137"
style="stroke-width:29.9555">one pulse = 0.2794mm of rain</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 41 KiB

@ -0,0 +1,441 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="218.61101mm"
height="124.75518mm"
viewBox="0 0 218.61101 124.75518"
version="1.1"
id="svg8"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="prototype_block_diagram.svg">
<defs
id="defs2">
<marker
style="overflow:visible"
id="marker2390"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:isstock="true">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path2388" />
</marker>
<marker
style="overflow:visible"
id="marker2356"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Lend"
inkscape:isstock="true">
<path
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
id="path2354" />
</marker>
<marker
style="overflow:visible"
id="Arrow2Lend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Lend"
inkscape:isstock="true">
<path
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
id="path2053" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:isstock="true">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path2035" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lstart"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lstart"
inkscape:isstock="true">
<path
transform="matrix(0.8,0,0,0.8,10,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path2032" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="446.70641"
inkscape:cy="393.22346"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-45.049301,-43.859024)">
<g
id="g2628">
<rect
style="fill:none;fill-opacity:0.987705;stroke:#000000;stroke-width:1.3098;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833"
width="58.864391"
height="31.584869"
x="45.704201"
y="44.513924" />
<g
id="g1858"
transform="matrix(0.57471392,0,0,0.57471392,1.8673903,24.522091)">
<g
transform="matrix(0.0015313,0,0,-0.0015313,152.71076,61.064121)"
fill="#000000"
stroke="none"
id="g10">
<path
d="m 6095,12794 c -27,-2 -115,-8 -195,-14 C 4030,12643 2289,11657 1185,10109 -320,7999 -397,5162 992,2977 1816,1681 3084,716 4540,276 5466,-3 6424,-71 7380,76 c 761,117 1520,381 2180,759 1230,704 2185,1777 2734,3070 866,2040 607,4403 -679,6204 -886,1241 -2181,2128 -3645,2496 -340,86 -633,135 -1005,171 -150,14 -756,27 -870,18 z m 547,-984 c 776,-36 1477,-217 2158,-556 560,-279 978,-580 1426,-1028 435,-435 743,-858 1008,-1386 325,-645 500,-1269 567,-2020 26,-288 14,-767 -27,-1095 -128,-1030 -548,-1992 -1224,-2805 -133,-160 -427,-458 -591,-601 -792,-688 -1757,-1133 -2774,-1278 -283,-41 -469,-53 -785,-53 -880,0 -1667,187 -2450,582 -738,373 -1398,931 -1901,1605 -552,742 -909,1630 -1023,2550 -55,438 -55,912 0,1350 115,926 471,1810 1031,2560 163,219 293,368 522,596 241,240 338,325 576,504 863,649 1910,1026 2980,1075 238,10 281,10 507,0 z"
id="path4" />
<path
d="m 6240,10996 v -214 l -77,-6 c -431,-34 -740,-89 -1062,-191 -611,-193 -1123,-482 -1608,-908 l -130,-114 -155,148 -156,149 -110,-119 -111,-118 151,-151 152,-150 -75,-89 C 2395,8455 2022,7447 2020,6428 v -167 l -52,-5 c -29,-3 -125,-11 -213,-17 -88,-6 -161,-11 -162,-12 -4,-5 21,-313 26,-319 3,-4 96,0 205,8 110,8 205,13 213,10 7,-3 13,-20 13,-40 0,-63 60,-392 101,-552 80,-317 220,-686 361,-954 156,-298 322,-544 561,-831 82,-100 146,-184 140,-188 -25,-17 -313,-262 -313,-267 0,-11 204,-244 211,-242 4,2 169,138 365,303 197,165 364,305 372,310 11,9 -37,71 -233,305 -135,162 -281,344 -324,405 -372,523 -598,1102 -688,1765 -22,168 -26,712 -5,880 108,876 465,1631 1062,2244 627,643 1406,1026 2320,1138 66,8 223,13 420,13 197,0 354,-5 420,-13 755,-93 1397,-361 1980,-826 150,-120 433,-400 553,-547 423,-520 699,-1118 811,-1759 45,-260 51,-338 51,-680 -1,-280 -4,-347 -23,-481 -66,-466 -197,-882 -403,-1278 -151,-288 -279,-471 -609,-866 -192,-230 -239,-291 -228,-300 8,-5 175,-145 372,-310 196,-165 361,-301 365,-303 7,-2 211,231 211,242 0,5 -288,251 -314,268 -5,3 44,71 110,150 203,244 309,388 426,578 245,399 417,806 529,1253 42,166 99,481 99,543 0,20 6,37 13,40 8,3 103,-2 213,-10 109,-8 202,-12 205,-8 5,6 30,314 26,319 -1,1 -74,6 -162,12 -88,6 -183,14 -211,17 l -51,5 -6,247 c -11,459 -76,838 -217,1262 -183,555 -439,1011 -824,1468 l -70,84 152,150 151,151 -111,118 -110,119 -156,-149 -155,-148 -130,114 c -484,426 -997,715 -1608,908 -322,102 -631,157 -1061,191 l -78,6 v 214 214 h -160 -160 z"
id="path6" />
<path
d="m 8385,8348 c -165,-138 -605,-505 -978,-816 l -679,-565 -56,27 c -31,15 -82,33 -112,41 -74,20 -246,19 -323,-1 -229,-59 -412,-243 -471,-472 -21,-80 -22,-229 -1,-317 8,-38 12,-71 7,-74 -5,-3 -151,-125 -326,-270 l -317,-264 98,-101 c 54,-56 156,-161 226,-233 70,-73 130,-133 132,-133 2,0 131,140 286,311 198,218 287,309 298,305 118,-37 270,-48 371,-26 193,43 359,175 445,355 52,107 65,166 65,285 0,103 -13,173 -47,249 l -23,54 23,26 c 121,131 1675,1850 1681,1859 4,7 6,12 4,11 -2,0 -138,-113 -303,-251 z"
id="path8" />
</g>
<g
transform="matrix(0.00216713,0,0,-0.00216713,121.36416,90.871607)"
fill="#000000"
stroke="none"
id="g10-1">
<path
d="m 11241,8109 c -271,-58 -564,-218 -911,-498 -368,-296 -560,-417 -825,-516 -295,-111 -619,-116 -920,-13 -249,84 -471,218 -796,479 -80,65 -195,151 -255,192 -567,389 -1112,468 -1676,241 -220,-88 -427,-217 -703,-439 -306,-246 -562,-400 -795,-479 -271,-91 -558,-90 -827,5 -239,85 -461,223 -828,518 -377,302 -681,456 -1010,508 -131,21 -373,13 -496,-16 -271,-62 -582,-223 -863,-446 -47,-38 -86,-72 -86,-77 0,-11 280,-428 288,-428 2,0 48,33 101,74 507,388 882,458 1315,248 160,-78 291,-166 521,-351 236,-190 430,-320 627,-421 223,-114 394,-172 618,-211 106,-19 383,-16 500,4 385,66 763,260 1215,622 209,168 346,260 490,330 203,99 352,135 552,135 335,0 615,-123 1023,-451 424,-340 748,-519 1105,-609 164,-42 280,-53 483,-48 286,8 495,64 797,213 206,101 411,236 635,416 227,183 346,270 455,335 292,171 519,202 786,104 144,-52 333,-168 522,-320 48,-38 91,-70 95,-70 4,0 72,97 152,216 l 145,215 -25,20 c -364,290 -605,428 -885,506 -129,36 -387,42 -524,12 z"
id="path4-7" />
<path
d="m 11276,6634 c -219,-40 -480,-162 -741,-348 -38,-28 -146,-111 -240,-186 -364,-290 -581,-420 -841,-506 -158,-51 -259,-68 -424,-68 -228,0 -404,42 -640,155 -201,97 -336,185 -590,389 -248,198 -368,278 -571,379 -508,253 -993,254 -1504,2 -175,-86 -336,-192 -530,-347 -296,-237 -424,-323 -620,-419 -238,-117 -407,-159 -630,-158 -212,1 -375,42 -600,153 -188,92 -343,198 -635,433 -341,276 -648,436 -960,503 -118,26 -389,26 -514,1 -214,-43 -462,-152 -686,-302 -167,-111 -295,-213 -294,-233 0,-10 64,-111 141,-225 l 141,-208 34,29 c 18,16 76,60 128,99 477,349 841,406 1266,198 145,-71 280,-163 489,-330 198,-159 350,-268 490,-352 600,-360 1161,-407 1751,-145 238,106 469,256 788,514 194,157 399,283 566,347 256,99 535,106 795,20 202,-67 391,-181 670,-405 322,-258 636,-446 905,-541 708,-251 1374,-75 2155,569 280,231 474,351 665,413 123,40 283,46 415,16 167,-39 385,-161 619,-347 l 105,-83 146,215 c 171,252 172,209 -8,346 -398,303 -726,440 -1051,437 -61,0 -147,-7 -190,-15 z"
id="path6-5" />
<path
d="m 11300,5155 c -299,-49 -631,-227 -1015,-545 -364,-302 -694,-480 -1005,-546 -41,-8 -131,-18 -200,-21 -393,-18 -784,146 -1260,527 -277,222 -434,327 -626,416 -669,310 -1303,197 -1990,-358 -247,-199 -344,-268 -517,-368 -359,-206 -697,-266 -1029,-181 -275,69 -526,211 -878,496 -413,334 -692,486 -1024,557 -143,30 -389,30 -529,0 -230,-50 -457,-152 -687,-306 -139,-94 -290,-211 -290,-225 0,-6 271,-415 285,-429 2,-2 46,30 98,71 258,202 483,316 705,358 38,7 112,10 195,6 160,-6 257,-31 427,-113 148,-71 273,-155 487,-326 195,-157 311,-242 431,-317 310,-194 593,-304 879,-342 131,-17 399,-6 528,21 369,78 726,268 1155,614 319,258 548,383 812,442 101,23 345,23 448,0 119,-26 196,-54 325,-116 146,-70 275,-156 460,-304 333,-267 541,-400 801,-512 537,-233 1046,-217 1589,51 241,118 397,222 702,466 357,286 563,402 781,440 87,15 238,6 332,-21 157,-45 370,-168 585,-338 55,-44 103,-78 107,-76 3,2 70,99 148,215 138,205 142,212 124,229 -45,43 -229,180 -339,253 -135,89 -342,194 -455,231 -178,58 -396,78 -560,51 z"
id="path8-9" />
</g>
<g
transform="matrix(0.00150459,0,0,-0.00150459,156.66338,86.748355)"
fill="#000000"
stroke="none"
id="g6">
<path
d="m 2998,12790 c -315,-57 -548,-268 -644,-585 -18,-58 -19,-222 -22,-4115 l -3,-4055 -72,-50 c -86,-60 -250,-215 -323,-306 -379,-473 -476,-1119 -253,-1683 195,-493 612,-859 1134,-995 213,-56 533,-66 747,-22 221,45 468,151 648,279 114,81 297,259 372,362 150,206 250,425 299,655 94,445 5,902 -248,1285 -93,140 -292,344 -425,435 l -87,60 -3,4045 -3,4045 -23,73 c -85,276 -283,473 -554,553 -62,18 -103,22 -283,25 -115,1 -231,-1 -257,-6 z"
id="path4-1" />
</g>
<g
transform="matrix(0.00179894,0,0,-0.00179894,89.758717,59.062409)"
fill="#000000"
stroke="none"
id="g10-7">
<path
d="m 6950,10549 c -782,-79 -1408,-535 -1640,-1194 -48,-139 -99,-382 -100,-482 v -23 h 994 994 l 31,-26 c 59,-49 65,-162 11,-216 l -28,-28 H 3606 0 v -98 c 0,-122 15,-369 36,-572 42,-430 118,-803 260,-1292 5,-17 181,-18 3519,-18 3851,0 3610,-4 3856,59 661,167 1188,657 1399,1299 273,833 -24,1729 -745,2243 -232,166 -522,283 -825,334 -116,19 -420,27 -550,14 z"
id="path4-8" />
<path
d="M 10600,8243 C 9884,8170 9320,7808 9039,7242 8948,7058 8879,6810 8864,6617 l -7,-87 h 1013 1013 l 23,-21 c 44,-41 43,-171 -1,-215 l -24,-24 H 5650 c -2876,0 -5230,-2 -5230,-5 0,-2 22,-60 49,-127 246,-616 588,-1196 1025,-1735 l 91,-112 4668,-1 c 3217,0 4698,3 4765,11 456,49 849,233 1176,549 314,303 506,670 583,1115 24,138 24,470 -1,610 -73,427 -258,793 -547,1083 -324,325 -715,519 -1162,577 -106,13 -370,18 -467,8 z"
id="path6-57" />
<path
d="m 1890,3956 c 0,-10 365,-343 485,-443 962,-801 2115,-1308 3345,-1472 391,-53 429,-54 1699,-60 l 1194,-6 20,-26 c 44,-59 38,-181 -10,-219 -25,-20 -39,-20 -1022,-20 h -997 l 8,-82 c 51,-531 322,-983 768,-1282 108,-73 337,-185 460,-226 457,-152 939,-158 1364,-19 803,263 1354,1018 1358,1859 0,224 -18,366 -73,560 -100,349 -287,656 -550,904 -285,267 -609,429 -1026,513 -83,17 -275,18 -3555,21 -1908,1 -3468,0 -3468,-2 z"
id="path8-4" />
</g>
<g
transform="matrix(-0.00273933,0,0,-0.00273933,118.84849,84.424368)"
fill="#000000"
stroke="none"
id="g6-5">
<path
d="m 7360,7349 c -704,-67 -1328,-436 -1670,-987 -110,-179 -180,-348 -237,-580 -45,-184 -49,-296 -16,-480 26,-140 39,-293 29,-344 -3,-18 -19,-49 -35,-68 -27,-33 -32,-35 -104,-38 -69,-4 -80,-1 -134,27 -136,73 -330,254 -419,391 -82,127 -164,330 -164,406 0,22 0,22 68,-6 93,-40 179,-52 327,-48 125,3 127,3 151,31 54,63 21,126 -142,273 -146,131 -144,129 -144,168 0,19 4,47 10,61 l 10,26 49,-26 c 27,-15 81,-56 119,-91 l 71,-64 30,43 c 143,209 59,553 -184,750 -107,87 -214,132 -350,147 -81,9 -114,-1 -181,-55 -23,-19 -46,-35 -50,-35 -4,0 -4,34 0,76 l 7,77 -68,-7 c -99,-10 -179,-33 -257,-74 -184,-96 -275,-254 -249,-430 6,-35 6,-62 1,-62 -5,0 -31,11 -58,25 -74,38 -194,75 -239,75 -33,0 -41,-4 -41,-18 0,-40 57,-129 137,-213 l 85,-89 h -52 c -28,0 -97,11 -152,25 -55,14 -103,24 -105,21 -10,-9 52,-109 82,-131 16,-13 51,-33 77,-44 52,-22 63,-37 72,-101 l 6,-45 -95,-75 c -143,-112 -256,-185 -392,-251 -67,-32 -127,-67 -133,-78 -13,-25 -13,-92 -1,-125 6,-13 37,-43 71,-66 74,-51 100,-89 100,-151 0,-49 -4,-56 -99,-171 -52,-63 -132,-227 -155,-318 -9,-36 -19,-110 -22,-165 -5,-84 -2,-120 20,-230 63,-306 163,-492 381,-711 179,-179 366,-295 605,-375 93,-30 100,-31 295,-33 178,-2 208,-5 270,-25 190,-63 322,-161 434,-323 45,-65 65,-84 140,-132 127,-81 210,-177 247,-289 13,-40 40,-75 139,-177 170,-178 220,-267 246,-444 12,-81 7,-128 -31,-265 -11,-41 -20,-96 -20,-123 v -48 H 3854 2068 l 50,63 c 40,50 779,1007 816,1056 6,8 7,12 1,9 -5,-3 -608,-259 -1340,-568 C 864,1611 211,1335 144,1306 77,1278 23,1251 24,1245 25,1240 266,1133 560,1009 2512,183 2923,10 2927,14 c 2,2 -189,253 -425,557 l -429,554 3774,3 3773,2 683,-411 c 375,-226 696,-420 713,-430 30,-18 66,-19 903,-19 479,0 871,3 871,8 0,4 -216,223 -480,487 l -480,480 480,480 c 264,264 480,483 480,488 0,4 -393,7 -873,7 h -873 l -712,-430 -713,-430 H 8061 6502 l -6,23 c -3,12 -28,61 -57,107 -79,131 -96,170 -113,259 -35,181 -23,236 108,494 94,186 105,213 133,338 35,150 91,302 155,418 43,77 216,312 253,343 48,41 112,53 285,53 142,0 176,-3 244,-23 170,-49 322,-139 444,-263 95,-98 112,-124 112,-179 0,-124 -68,-278 -165,-376 -81,-81 -148,-113 -276,-130 -56,-7 -103,-15 -106,-17 -2,-3 13,-19 34,-36 72,-60 254,-138 449,-192 98,-27 369,-38 496,-20 250,36 447,132 604,293 95,98 131,149 184,260 54,113 81,221 86,348 l 4,105 62,38 c 222,135 371,414 354,662 -3,50 -9,115 -12,145 -6,51 -3,60 35,126 59,103 85,213 78,329 -12,171 -72,354 -164,493 -21,31 -80,101 -131,154 l -93,96 31,24 c 41,30 114,127 151,200 92,182 97,405 14,649 -56,162 -151,297 -354,499 -406,404 -922,667 -1492,760 -131,21 -324,25 -489,9 z"
id="path4-3" />
</g>
<g
transform="matrix(0.00194266,0,0,-0.00194266,122.77173,65.617247)"
fill="#000000"
stroke="none"
id="g32">
<path
d="m 6710,12673 c -25,-2 -90,-10 -145,-19 -533,-81 -1001,-335 -1367,-742 l -65,-73 -84,45 c -869,470 -1958,306 -2664,-399 -315,-316 -513,-683 -619,-1147 -5,-23 -15,-30 -64,-43 -136,-38 -306,-101 -427,-160 C 605,9807 139,9173 24,8430 2,8288 -1,7939 18,7805 163,6801 900,6037 1895,5859 c 113,-21 162,-24 380,-23 266,0 345,8 545,59 229,58 493,173 681,296 l 93,61 51,-12 c 284,-67 433,-84 678,-77 181,5 335,26 492,65 l 70,18 75,-60 c 307,-244 686,-408 1083,-466 150,-23 445,-27 587,-10 416,52 839,229 1148,481 l 73,60 89,-51 c 268,-153 567,-253 875,-291 117,-14 417,-14 525,0 225,30 486,103 667,186 l 83,38 127,-19 c 170,-25 470,-25 633,0 515,79 970,315 1323,686 325,342 525,752 603,1235 22,136 25,485 6,620 -99,685 -474,1268 -1050,1632 -320,202 -774,341 -1120,343 h -72 l -113,113 c -388,393 -872,620 -1432,672 l -70,7 -56,102 c -268,481 -730,863 -1260,1039 -272,91 -610,132 -899,110 z"
id="path4-88" />
<path
d="m 3943,5543 c -60,-12 -557,-585 -717,-828 -121,-183 -153,-279 -143,-435 17,-274 207,-501 474,-565 101,-24 243,-17 340,17 182,65 322,205 385,388 34,96 32,291 -5,496 -41,230 -114,542 -187,794 -38,134 -56,151 -147,133 z"
id="path6-3" />
<path
d="m 7553,5543 c -44,-9 -441,-455 -632,-712 -183,-246 -226,-345 -225,-521 1,-87 5,-119 27,-183 71,-205 236,-360 442,-412 76,-19 214,-19 290,0 114,29 203,81 290,169 87,88 133,167 161,278 42,162 -10,521 -156,1079 -84,320 -86,323 -197,302 z"
id="path8-1" />
<path
d="m 11163,5542 c -43,-13 -429,-447 -608,-684 -112,-148 -183,-261 -217,-348 -19,-47 -22,-75 -23,-190 0,-116 3,-145 23,-202 83,-241 300,-403 555,-416 288,-14 526,153 623,438 52,154 -10,582 -171,1167 -58,213 -75,244 -129,242 -17,-1 -41,-4 -53,-7 z"
id="path10-8" />
<path
d="m 5303,4620 c -32,-7 -108,-82 -289,-285 -275,-308 -453,-545 -526,-702 -160,-341 44,-750 422,-844 30,-7 98,-13 150,-13 257,3 483,165 572,410 57,160 23,475 -107,991 -115,455 -122,467 -222,443 z"
id="path12-9" />
<path
d="m 8918,4623 c -62,-10 -548,-565 -723,-828 -117,-174 -145,-252 -145,-404 0,-166 54,-301 169,-423 117,-125 263,-190 431,-192 109,-1 176,13 275,59 161,73 293,232 336,405 38,151 -2,451 -127,955 -76,304 -102,388 -130,413 -25,22 -32,23 -86,15 z"
id="path14-6" />
<path
d="m 6664,3698 c -36,-8 -56,-24 -141,-116 -446,-484 -663,-775 -717,-961 -26,-88 -21,-243 9,-339 38,-120 119,-237 214,-307 249,-182 575,-163 794,45 154,146 210,310 186,544 -23,233 -110,641 -210,986 -41,140 -62,163 -135,148 z"
id="path16-4" />
<path
d="m 10275,3696 c -33,-9 -64,-36 -167,-146 -229,-245 -448,-510 -562,-680 -118,-176 -152,-277 -143,-435 11,-209 121,-393 298,-498 393,-232 898,31 926,482 9,154 -46,484 -152,896 -81,315 -95,356 -130,376 -25,13 -37,14 -70,5 z"
id="path18-3" />
<path
d="m 3024,3691 c -21,-9 -181,-177 -320,-336 -334,-382 -485,-607 -520,-775 -66,-312 148,-639 466,-714 320,-76 654,127 737,447 33,128 3,402 -83,776 -61,263 -142,554 -162,580 -20,28 -78,38 -118,22 z"
id="path20-3" />
<path
d="m 4393,2773 c -52,-10 -509,-527 -687,-776 -73,-102 -134,-214 -157,-287 -26,-81 -28,-236 -4,-324 55,-207 237,-387 444,-441 80,-20 226,-21 304,0 214,56 381,217 442,430 38,130 13,383 -76,779 -42,185 -130,519 -150,569 -20,48 -52,62 -116,50 z"
id="path22-3" />
<path
d="m 8008,2773 c -20,-3 -62,-41 -146,-131 -367,-391 -619,-720 -689,-897 -24,-63 -27,-83 -28,-195 0,-106 4,-136 24,-199 51,-154 171,-292 316,-361 105,-49 159,-62 276,-61 171,1 306,58 430,181 132,131 188,282 176,474 -12,181 -60,441 -147,786 -65,257 -98,362 -121,387 -22,22 -34,25 -91,16 z"
id="path24" />
<path
d="m 2140,1850 c -38,-9 -111,-81 -304,-300 -315,-356 -486,-591 -536,-733 -64,-182 -38,-378 72,-543 120,-179 332,-285 545,-271 268,18 498,208 563,465 16,62 14,241 -5,362 -43,285 -196,924 -238,990 -9,15 -52,43 -60,39 -1,-1 -18,-5 -37,-9 z"
id="path26" />
<path
d="m 5754,1848 c -37,-8 -57,-26 -177,-156 -415,-451 -636,-753 -682,-929 -20,-75 -19,-210 1,-292 41,-165 176,-333 326,-405 151,-72 315,-84 465,-33 99,34 156,69 233,143 109,104 175,239 187,378 15,179 -82,690 -222,1171 -36,124 -52,139 -131,123 z"
id="path28" />
<path
d="m 9371,1850 c -41,-10 -105,-72 -291,-280 -375,-422 -535,-650 -576,-827 -33,-139 1,-322 82,-451 170,-269 502,-365 789,-229 142,68 265,205 316,354 21,60 24,85 23,218 -1,187 -36,394 -135,785 -72,288 -105,393 -134,418 -14,12 -29,22 -33,21 -4,-1 -22,-5 -41,-9 z"
id="path30" />
</g>
</g>
<rect
style="fill:none;fill-opacity:0.987705;stroke:#000000;stroke-width:1.3098;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-7"
width="58.864395"
height="31.584871"
x="128.95422"
y="44.513924" />
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583"
x="158.6059"
y="57.954487"
id="text1877"><tspan
sodipodi:role="line"
id="tspan1875"
x="158.6059"
y="57.954487"
style="text-align:center;text-anchor:middle;stroke-width:0.264583">Weather station</tspan><tspan
sodipodi:role="line"
x="158.6059"
y="66.773933"
style="text-align:center;text-anchor:middle;stroke-width:0.264583"
id="tspan1879">electronics</tspan></text>
<rect
style="fill:none;fill-opacity:0.987705;stroke:#000000;stroke-width:1.3098;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-7-8"
width="58.864395"
height="31.584871"
x="45.704201"
y="118.9275" />
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583"
x="75.355873"
y="132.36807"
id="text1877-5"><tspan
sodipodi:role="line"
x="75.355873"
y="132.36807"
style="text-align:center;text-anchor:middle;stroke-width:0.264583"
id="tspan1879-4">Raspberry Pi</tspan><tspan
sodipodi:role="line"
x="75.355873"
y="141.18752"
style="text-align:center;text-anchor:middle;stroke-width:0.264583"
id="tspan1907">digipeater</tspan></text>
<rect
style="fill:none;fill-opacity:0.987705;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1909"
width="24.854864"
height="15.933182"
x="45.704201"
y="150.28822" />
<rect
style="fill:none;fill-opacity:0.987705;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1909-1"
width="24.854864"
height="15.933183"
x="79.71373"
y="150.51237" />
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="51.467823"
y="160.71069"
id="text1930"><tspan
sodipodi:role="line"
id="tspan1928"
x="51.467823"
y="160.71069"
style="stroke-width:0.264583">GPS</tspan></text>
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="83.897125"
y="160.83328"
id="text1934"><tspan
sodipodi:role="line"
id="tspan1932"
x="83.897125"
y="160.83328"
style="stroke-width:0.264583">LoRa</tspan></text>
<rect
style="fill:none;fill-opacity:0.987705;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1909-8"
width="24.854864"
height="15.933183"
x="104.5686"
y="118.9275" />
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="106.98031"
y="129.11786"
id="text1930-5"><tspan
sodipodi:role="line"
id="tspan1928-9"
x="106.98031"
y="129.11786"
style="stroke-width:0.264583">RS485</tspan></text>
<rect
style="fill:none;fill-opacity:0.987705;stroke:#000000;stroke-width:1.3098;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-7-8-7"
width="58.864395"
height="31.584871"
x="204.14101"
y="134.86069" />
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583"
x="233.71611"
y="153.54735"
id="text1877-5-5"><tspan
sodipodi:role="line"
x="233.71611"
y="153.54735"
style="text-align:center;text-anchor:middle;stroke-width:0.264583"
id="tspan1907-8">Server</tspan></text>
<rect
style="fill:none;fill-opacity:0.987705;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1909-1-8"
width="24.854864"
height="15.933183"
x="179.28615"
y="150.51237" />
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="183.46953"
y="160.83328"
id="text1934-3"><tspan
sodipodi:role="line"
id="tspan1932-1"
x="183.46953"
y="160.83328"
style="stroke-width:0.264583">LoRa</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 129.57349,126.78493 v 0 c 0,0 17.18795,-0.78329 22.86071,-8.75263 5.68599,-7.98792 8.95704,-22.592233 17.11796,-25.270443 16.20967,-5.319611 37.95573,-1.984681 42.88026,-6.879226 5.574,-5.54005 5.84896,-15.404034 0.3126,-22.14993 -5.45444,-6.646079 -24.65105,-5.336384 -24.65105,-5.336384 v 0"
id="path2022"
sodipodi:nodetypes="ccsssscc" />
<text
xml:space="preserve"
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="165.41978"
y="101.26621"
id="text2026"><tspan
sodipodi:role="line"
id="tspan2024"
x="165.41978"
y="101.26621"
style="font-size:5.64444px;stroke-width:0.264583"
rotate="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0">RS-485 interface</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 104.65146,60.520678 h 24.4619"
id="path2028" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2390)"
d="m 104.71342,158.9698 37.30912,-8.299 -14.71437,17.55993 51.3985,-10.20781"
id="path2030"
sodipodi:nodetypes="cccc" />
<rect
style="fill:none;fill-opacity:0.987705;stroke:#000000;stroke-width:1.20267;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-7-8-7-8"
width="58.971523"
height="26.581226"
x="204.08745"
y="108.33302" />
<text
xml:space="preserve"
style="font-size:7.05556px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;stroke-width:0.264583"
x="233.40955"
y="121.15633"
id="text1877-5-5-9"><tspan
sodipodi:role="line"
x="233.40955"
y="121.15633"
style="text-align:center;text-anchor:middle;stroke-width:0.264583"
id="tspan1907-8-6">Grafana</tspan><tspan
sodipodi:role="line"
x="233.40955"
y="129.97577"
style="text-align:center;text-anchor:middle;stroke-width:0.264583"
id="tspan2549">dashboard</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 47 KiB

@ -9,9 +9,9 @@
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.2"
width="125.34mm"
height="165.31999mm"
viewBox="0 0 12534 16531.999"
width="60.926762mm"
height="80.360718mm"
viewBox="0 0 6092.6763 8036.0717"
preserveAspectRatio="xMidYMid"
fill-rule="evenodd"
stroke-width="28.222"
@ -22,7 +22,7 @@
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"><metadata
id="metadata443"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
@ -39,13 +39,14 @@
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.63695988"
inkscape:cx="274.62047"
inkscape:cy="401.19685"
inkscape:zoom="2.5478395"
inkscape:cx="160.34529"
inkscape:cy="152.1883"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg439" />
inkscape:current-layer="g435"
inkscape:document-rotation="0" />
<defs
class="ClipPathGroup"
id="defs8">
@ -69,7 +70,33 @@
height="29641"
id="rect5" />
</clipPath>
</defs>
</defs>
<defs
id="defs83">
<font
@ -347,7 +374,7 @@
</defs>
<g
id="g124"
transform="translate(-3234,-4235)">
transform="translate(-3234,-4234.9999)">
<g
id="id2"
class="Master_Slide">
@ -362,21 +389,13 @@
<g
class="SlideGroup"
id="g437"
transform="translate(-3234,-4235)">
transform="matrix(0.48609191,0,0,0.48609191,-1572.0212,-2058.5992)">
<g
id="g435">
<g
id="container-id1">
<g
id="id1"
class="Slide"
clip-path="url(#presentation_clip_path)">
<g
class="Page"
id="g431">
<g
class="com.sun.star.drawing.CustomShape"
id="g147">
id="g1721"><g
class="com.sun.star.drawing.CustomShape"
id="g147">
<g
id="id3">
<rect
@ -430,10 +449,9 @@
style="white-space:pre"
id="tspan138">wind meter</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.CustomShape"
id="g164">
</g><g
class="com.sun.star.drawing.CustomShape"
id="g164">
<g
id="id4">
<rect
@ -474,10 +492,9 @@
style="white-space:pre"
id="tspan155">count++</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.CustomShape"
id="g187">
</g><g
class="com.sun.star.drawing.CustomShape"
id="g187">
<g
id="id5">
<rect
@ -531,10 +548,9 @@
style="white-space:pre"
id="tspan178">count = 0</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.CustomShape"
id="g210">
</g><g
class="com.sun.star.drawing.CustomShape"
id="g210">
<g
id="id6">
<rect
@ -588,10 +604,9 @@
style="white-space:pre"
id="tspan201">count = 0</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.CustomShape"
id="g227">
</g><g
class="com.sun.star.drawing.CustomShape"
id="g227">
<g
id="id7">
<rect
@ -632,10 +647,9 @@
style="white-space:pre"
id="tspan218">End</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.CustomShape"
id="g244">
</g><g
class="com.sun.star.drawing.CustomShape"
id="g244">
<g
id="id8">
<rect
@ -676,10 +690,9 @@
style="white-space:pre"
id="tspan235">Save wind speed</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.CustomShape"
id="g261">
</g><g
class="com.sun.star.drawing.CustomShape"
id="g261">
<g
id="id9">
<rect
@ -720,10 +733,9 @@
style="white-space:pre"
id="tspan252">No wind</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.CustomShape"
id="g278">
</g><g
class="com.sun.star.drawing.CustomShape"
id="g278">
<g
id="id10">
<rect
@ -764,10 +776,9 @@
style="white-space:pre"
id="tspan269">Still measuring...</tspan></tspan></tspan></text>
</g>
</g>
<g
class="TextShape"
id="g291">
</g><g
class="TextShape"
id="g291">
<g
id="id11">
<rect
@ -794,12 +805,11 @@
fill="#000000"
stroke="none"
style="white-space:pre"
id="tspan282">&lt; 1 second</tspan></tspan></tspan></text>
id="tspan282">&lt; 3 second</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.ConnectorShape"
id="g300">
</g><g
class="com.sun.star.drawing.ConnectorShape"
id="g300">
<g
id="id12">
<rect
@ -824,10 +834,9 @@
d="m 4900,14450 -150,300 -150,-300 z"
id="path297" />
</g>
</g>
<g
class="com.sun.star.drawing.ConnectorShape"
id="g309">
</g><g
class="com.sun.star.drawing.ConnectorShape"
id="g309">
<g
id="id13">
<rect
@ -852,10 +861,9 @@
d="m 14400,14450 -150,300 -150,-300 z"
id="path306" />
</g>
</g>
<g
class="TextShape"
id="g322">
</g><g
class="TextShape"
id="g322">
<g
id="id14">
<rect
@ -882,12 +890,11 @@
fill="#000000"
stroke="none"
style="white-space:pre"
id="tspan313">&gt; 2 second</tspan></tspan></tspan></text>
id="tspan313">&gt; 6 second</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.CustomShape"
id="g339">
</g><g
class="com.sun.star.drawing.CustomShape"
id="g339">
<g
id="id15">
<rect
@ -928,10 +935,9 @@
style="white-space:pre"
id="tspan330">Do nothing</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.ConnectorShape"
id="g348">
</g><g
class="com.sun.star.drawing.ConnectorShape"
id="g348">
<g
id="id16">
<rect
@ -956,10 +962,9 @@
d="m 9650,14450 -150,300 -150,-300 z"
id="path345" />
</g>
</g>
<g
class="com.sun.star.drawing.CustomShape"
id="g371">
</g><g
class="com.sun.star.drawing.CustomShape"
id="g371">
<g
id="id17">
<rect
@ -1013,10 +1018,9 @@
style="white-space:pre"
id="tspan362">interrupt</tspan></tspan></tspan></text>
</g>
</g>
<g
class="TextShape"
id="g384">
</g><g
class="TextShape"
id="g384">
<g
id="id18">
<rect
@ -1045,10 +1049,9 @@
style="white-space:pre"
id="tspan375">else</tspan></tspan></tspan></text>
</g>
</g>
<g
class="com.sun.star.drawing.ConnectorShape"
id="g393">
</g><g
class="com.sun.star.drawing.ConnectorShape"
id="g393">
<g
id="id19">
<rect
@ -1073,10 +1076,9 @@
d="m 9650,9450 -150,300 -150,-300 z"
id="path390" />
</g>
</g>
<g
class="com.sun.star.drawing.ConnectorShape"
id="g402">
</g><g
class="com.sun.star.drawing.ConnectorShape"
id="g402">
<g
id="id20">
<rect
@ -1101,10 +1103,9 @@
d="m 9650,6450 -150,300 -150,-300 z"
id="path399" />
</g>
</g>
<g
class="com.sun.star.drawing.ConnectorShape"
id="g411">
</g><g
class="com.sun.star.drawing.ConnectorShape"
id="g411">
<g
id="id21">
<rect
@ -1129,10 +1130,9 @@
d="m 9650,18950 -150,300 -150,-300 z"
id="path408" />
</g>
</g>
<g
class="com.sun.star.drawing.ConnectorShape"
id="g420">
</g><g
class="com.sun.star.drawing.ConnectorShape"
id="g420">
<g
id="id22">
<rect
@ -1157,10 +1157,9 @@
d="m 7700,19850 300,150 -300,150 z"
id="path417" />
</g>
</g>
<g
class="com.sun.star.drawing.ConnectorShape"
id="g429">
</g><g
class="com.sun.star.drawing.ConnectorShape"
id="g429">
<g
id="id23">
<rect
@ -1185,10 +1184,7 @@
d="m 11300,20150 -300,-150 300,-150 z"
id="path426" />
</g>
</g>
</g>
</g>
</g>
</g></g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

@ -5,7 +5,7 @@
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="author" content="M.T. Konstapel" />
<meta name="dcterms.date" content="2024-01-15" />
<meta name="dcterms.date" content="2024-01-22" />
<title>Weather station</title>
<link rel="stylesheet" href="./css/mvp.css" />
<style type="text/css">
@ -47,6 +47,10 @@
<li><a href="#theory-of-operation---software"
id="toc-theory-of-operation---software">Theory of operation
- Software</a></li>
<li><a href="#prototype"
id="toc-prototype">Prototype</a></li>
<li><a href="#specifications"
id="toc-specifications">Specifications</a></li>
<li><a href="#schematic"
id="toc-schematic">Schematic</a></li>
<li><a href="#software-dependencies"
@ -71,7 +75,7 @@
<h1 class="title">Weather station</h1>
<p class="subtitle">with ModBus RTU interface</p>
<p class="author">M.T. Konstapel</p>
<p class="date">2024-01-15</p>
<p class="date">2024-01-22</p>
<p><a href="./weather_station.pdf"><i>PDF version</i></a></p>
</header>
<main>
@ -89,7 +93,7 @@ people are obsessed with the weather. When I was a child, my grandmother
was measuring the temperature and rainfall on a daily basis. My
grandfather had an allotment, so he also was very interested in the
weather. The first thing my father read in the newspaper was the weather
report and the last thing he watched in the television was… the weather
report and the last thing he watched on the television was… the weather
report. And every hour he listed to the weather report on the radio. If
he talked to someone he always started the conversation by talking about
the weather. And when I open a new browser window, it automatically
@ -517,12 +521,14 @@ Software</h1>
of the micro-controller. Every time its logic level changes an interrupt
routine is called. This routine increments a counter and checks how many
time has passed since the previous interrupt call. If the previous call
was more than 2 seconds ago, the wind speed is (almost) zero. If the
previous call was just over a second ago the interrupt counter now holds
the amount of pulses in one second. This value is stored and from that
value the wind speed can be calculated. If the previous call was under a
second ago the measurement is still in progress and no further action is
taken.</p>
was more than 6 seconds ago, the wind speed is (almost) zero. If the
previous call was just over 3 second ago the interrupt counter now holds
the amount of pulses in three seconds. This value is stored and from
that value the wind speed can be calculated. If the previous call was
less than 3 seconds ago the measurement is still in progress and no
further action is taken. A measurment period of three seconds is choosen
because it is the standard as used by the Dutch meteorological institute
(KNMI).</p>
<figure>
<img src="./images/wind_speed_diagram.svg" title="Wind speed interrupt"
alt="Wind speed interrupt" />
@ -552,19 +558,30 @@ sensor can become saturated with moisture it can get stuck at 100%. This
happens in particular with fog or other high humidity and condensing
weather types. The sensor has a build in heater to drive of moisture and
thus preventing this problem. Because the temperature of the sensor
rises when the heater is turned on, accurate ambient temperature
readings are no longer possible. But with a smart algorithm it is
possible to get the benefits of the build in heater while still being
rises when the heater is turned on, accurate ambient temperature and
humidity readings are no longer possible. But with a smart algorithm it
is possible to get the benefits of the build in heater while still being
able to use the sensor as an ambient thermometer.</p>
<p>When the humidity rises above 95% for more than an hour the current
temperature is stored and the heater is switched on for 10 minutes. Than
the heater is switched off again. If after 10 minutes the humidity is
still above 95% the heater is turned on again for another 10 minutes.
But not before the temperature is measured and stored, as the sensor is
now cooled off to ambient temperature. If the humidity is below 95% the
sensor is free from moisture and the process is not repeated for another
hour.</p>
<p>Flow chart under development.</p>
temperature and humidity are stored and the heater is switched on for 5
minutes. Than the heater is switched off again. If after 15 minutes the
humidity is still above 95% the heater is turned on again for another 5
minutes. But not before the temperature and humidity are measured and
stored, as the sensor is now cooled off to ambient temperature. If the
humidity is below 95% the sensor is free from moisture and the process
is not repeated for another hour.</p>
<p>When the heater algorithm is active, the temperature and humidity
values are updated every 20 minutes instead of every 2 seconds. Statis
bit 0 (ModBus register 30014) indicated if the heater is on or off and
status bit 1 gives the update rate of the temperature and humidity
values.</p>
<p>This algorithm can be enabled by setting the HeaterCoil (see ModBus
secion).</p>
<figure>
<img src="./images/smart_heater.svg" title="Heater algorithm"
alt="Heater algorithm" />
<figcaption aria-hidden="true">Heater algorithm</figcaption>
</figure>
<h2 id="temperature-1">Temperature</h2>
<p>The temperature is read from the humidity sensor as this sensor gives
the most accurate temperature readings. When the heater is on (see
@ -582,8 +599,8 @@ boring.</p>
now, the ModBus address is hard coded as 14 in the software. The values
are available in the input registers and can be read via function code
04.</p>
<p>Below an example of how to read the wind direction in Python using
the minimalmodbus library.</p>
<p>Below an example of how to read the wind direction and enable the
heater algorithm in Python using the minimalmodbus library.</p>
<pre><code>#!/usr/bin/env python3
import minimalmodbus
@ -592,10 +609,14 @@ instrument = minimalmodbus.Instrument(&#39;/dev/ttyUSB1&#39;, 14)
# register number, number of decimals, function code
wind_direction = instrument.read_register(1, 0, 4)
print(wind_direction)</code></pre>
<h3 id="input-registers">Input registers</h3>
<p>The measurements and order of the measurements are the same as for
APRS weather reports. But of course we use SI units.</p>
print(wind_direction)
# register address, value, function code
instrument.write_bit(0, 1, 5)</code></pre>
<h3 id="input-registers-read-only">Input registers (read only)</h3>
<p>Input registers are numbered 30001 to 39999 but have data addresses
0x000 to 0x270E. The measurements and order of the measurements are the
same as for APRS weather reports. But of course we use SI units.</p>
<table>
<colgroup>
<col style="width: 13%" />
@ -611,85 +632,91 @@ APRS weather reports. But of course we use SI units.</p>
</thead>
<tbody>
<tr class="odd">
<td>30000</td>
<td>00</td>
<td>Device ID (0x5758)</td>
<td>NO UNIT</td>
</tr>
<tr class="even">
<td>30001</td>
<td>01</td>
<td>Wind direction</td>
<td>degrees</td>
<td>degrees * 10</td>
</tr>
<tr class="odd">
<td>30002</td>
<td>02</td>
<td>Wind speed (average of 10 minutes)</td>
<td>m/s * 100</td>
</tr>
<tr class="even">
<td>30003</td>
<td>03</td>
<td>Wind gust (peak of last 10 minutes)</td>
<td>m/s * 100</td>
</tr>
<tr class="odd">
<td>30004</td>
<td>04</td>
<td>Temperature (two’s complement)</td>
<td>degrees Celcius * 100</td>
</tr>
<tr class="even">
<td>30005</td>
<td>05</td>
<td>Rain last hour</td>
<td>l/m2 * 100</td>
</tr>
<tr class="odd">
<td>30006</td>
<td>06</td>
<td>Rain last 24 hours</td>
<td>l/m2 * 100</td>
</tr>
<tr class="even">
<td>30007</td>
<td>07</td>
<td>Rain since midnight</td>
<td>NOT IMPLEMENTED</td>
</tr>
<tr class="odd">
<td>30008</td>
<td>08</td>
<td>Humidity</td>
<td>percent * 100</td>
</tr>
<tr class="even">
<td>30009</td>
<td>09</td>
<td>Barometric pressure</td>
<td>hPa * 10</td>
</tr>
<tr class="odd">
<td>30010</td>
<td>10</td>
<td>Luminosity</td>
<td>W/m2</td>
</tr>
<tr class="even">
<td>30011</td>
<td>11</td>
<td>Snow fall</td>
<td>NOT IMPLEMENTED</td>
</tr>
<tr class="odd">
<td>30012</td>
<td>12</td>
<td>Raw rain counter</td>
<td>NOT IMPLEMENTED</td>
<td>l/m2 * 100</td>
</tr>
<tr class="even">
<td>30013</td>
<td>13</td>
<td>Temperature (two’s complement)</td>
<td>degrees Celcius * 100</td>
</tr>
<tr class="odd">
<td>30014</td>
<td>14</td>
<td>Status bits</td>
<td>see table below</td>
</tr>
</tbody>
</table>
<p><sup>NOTE</sup> Register 30013 holds the backup temperature reading
from the pressure sensor.</p>
<p><sup>NOTE</sup> Register 13 holds the backup temperature reading from
the pressure sensor.</p>
<table>
<colgroup>
<col style="width: 18%" />
<col style="width: 31%" />
<col style="width: 25%" />
<col style="width: 24%" />
</colgroup>
<thead>
<tr class="header">
<th>Status bits</th>
@ -705,12 +732,136 @@ from the pressure sensor.</p>
<td>heater off</td>
<td>heater on</td>
</tr>
<tr class="even">
<td>1</td>
<td>Temp/humidity update</td>
<td>every 20 minutes</td>
<td>every 2 seconds</td>
</tr>
<tr class="odd">
<td>2</td>
<td>Heater algorithm</td>
<td>disabled</td>
<td>enabled</td>
</tr>
</tbody>
</table>
<p>The ModBus registers are 16 bit wide. For better precision, some
units are scaled by a factor of 10 or 100. This way, values with up to
two decimal points can be stored as 16 bit integer values. Just divide
by 10 or 100 to get the floating point values.</p>
<h3 id="output-coils-write-only">Output coils (write only)</h3>
<p>Output coils registers are numbered 1 to 9999 but have data addresses
0x000 to 0x270E. The default value of a register is 0.</p>
<table>
<thead>
<tr class="header">
<th>Address</th>
<th>Description</th>
<th>logic 0</th>
<th>logic 1</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>0</td>
<td>Heater algorithm</td>
<td>disabled</td>
<td>enabled</td>
</tr>
</tbody>
</table>
<h1 id="prototype">Prototype</h1>
<p>I wanted to locate the weather station at about 100 meters from the
house. That meant that interfacing the weather station was not just a
matter of connecting a wire to it. And 100 meters is a bit much for a
wifi connection either. As I already had experience with LoRa I opted
for that. But not LoRaWAN, but LoRa APRS. This is a ham radio network
that I often use. I even run my own digipeater. So LoRa APRS it is.</p>
<figure>
<img src="./images/prototype_block_diagram.svg"
title="Block diagram of the prototype"
alt="Block diagram of the prototype" />
<figcaption aria-hidden="true">Block diagram of the
prototype</figcaption>
</figure>
<p>The weather station’s RS-485 interface is connected to a Raspberry Pi
Zero 2W running the aprx digipeater software, as well as some specially
written Python programs to interface the build in LoRa transceiver, the
GPS module and the weather station itself. Every 10 minutes the
digipeater will read the weather station’s registers and sends the data
as PE1RXF telemetry messages over the APRS network to a server, which
presents the data in a Grafana dashboard. The digipeater can also send
standardized APRS weather reports over the APRS network. But more about
this project can be found here: <a
href="https://www.meezenest.nl/mees-elektronica/RPi_LoRa_shield.html">https://www.meezenest.nl/mees-elektronica/RPi_LoRa_shield.html</a></p>
<figure>
<img src="./images/prototype_overview_small.jpg"
title="The prototype in the garden" alt="The prototype in the garden" />
<figcaption aria-hidden="true">The prototype in the garden</figcaption>
</figure>
<p>As a housing for the prototype, I used an old beehive. These are
weatherproof and I had one laying around.</p>
<figure>
<img src="./images/prototype_sensors_small.jpg"
title="Closeup of the sensors" alt="Closeup of the sensors" />
<figcaption aria-hidden="true">Closeup of the sensors</figcaption>
</figure>
<figure>
<img src="./images/prototype_inside_annotations_small.jpg"
title="Inside the beehive" alt="Inside the beehive" />
<figcaption aria-hidden="true">Inside the beehive</figcaption>
</figure>
<h1 id="specifications">Specifications</h1>
<h2 id="wind">Wind</h2>
<ul>
<li><p>Wind speed is measured by taking 3 second averages from the cup
anemometer and using these samples to calculate the average over a 10
minute periode.</p></li>
<li><p>Wind gust is measured by taking 3 second averages from the cup
anemometer.</p></li>
<li><p>Wind vane has 8 main directions and another 8 directions in
between. But these last do not have the same weight, eg. these positions
are not as likely to be measured as the main directions. This is due to
the construction of the wind vane: it has eight reed switches for the
main directions and if the wind direction happens to sit exactly in
between two reed switches, both switches are closed giving the extra 8
sub directions. Not great, but it is what it is…</p></li>
</ul>
<h2 id="rain">Rain</h2>
<pre><code>Resolution: 0.2794 mm/impulse</code></pre>
<h2 id="humidity-2">Humidity</h2>
<pre><code>Operating range : 0 - 100 % RH
Recommended range : 20 - 80 % RH
Accuracy : +/- 3 % RH (0-80 % RH)
+/- 4.5 % (max when &gt; 80 % RH)
Heater to drive of moisture (can be enabled via ModBus)</code></pre>
<h2 id="pressure">Pressure</h2>
<pre><code>Operating range : 300 - 1100 hPa
Accuracy : +/- 1.0 hPa (0 - 65 °C)
+/- 1.7 hPa (-20 - 0 °C)</code></pre>
<h2 id="temperature-2">Temperature</h2>
<pre><code>Main sensor
-----------
Operating range : -10 - 85 °C (typ)
-40 - 85 °C (max)
Accuracy : +/- 0.3 °C (typ)
+/- 0.4 °C (max)
+/- 0.5 °C (max when &lt; -10°C)
Backup sensor
-------------
Operating range : 0 - 65 °C (typ)
-40 - 85 °C (max)
Accuracy : +/- 0.5 °C (25 °C)
+/- 1.0 °C (0 - 65 °C)</code></pre>
<h2 id="modbus-1">ModBus</h2>
<pre><code>Physical : RS-485 simplex RTU
Settings : 9600 bd 8N1
Address : 14</code></pre>
<h1 id="schematic">Schematic</h1>
<p><a href="./images/weather_station_schematic.pdf"><img
src="./images/weather_station_schematic.svg" alt="Schematic" /></a></p>
@ -735,6 +886,8 @@ src="./images/weather_station_schematic.svg" alt="Schematic" /></a></p>
<p>Libraries are included with the source code of this project</p>
<h1 id="license">License</h1>
<p>Copyright (C) 2023, 2024 M.T. Konstapel</p>
<p><a
href="https://meezenest.nl/mees/">https://meezenest.nl/mees/</a></p>
<p>The software is published as open-source software (GPL). The hardware
is published as open-source hardware (OSH).</p>
<h2 id="software">Software</h2>
@ -750,7 +903,7 @@ option) any later version.</p>
</main>
<footer>
<p>&copy;
2024-01-15
2024-01-22
M.T. Konstapel
<a href="https://meezenest.nl/mees/">https://meezenest.nl/mees/</a>
</p><p>This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.

@ -2,7 +2,7 @@
title: Weather station
subtitle: with ModBus RTU interface
author: M.T. Konstapel
date: 2024-01-15
date: 2024-01-22
website: https://meezenest.nl/mees/
logo: ./images/mees_logo.svg
pdf_version: ./weather_station.pdf
@ -16,7 +16,7 @@ abstract: >
# Why do you need a weather station?
Well, you don't...because if you want to know the weather, you look on your phone. So why bother than? Because since the beginning of time, people are obsessed with the weather. When I was a child, my grandmother was measuring the temperature and rainfall on a daily basis. My grandfather had an allotment, so he also was very interested in the weather. The first thing my father read in the newspaper was the weather report and the last thing he watched in the television was... the weather report. And every hour he listed to the weather report on the radio. If he talked to someone he always started the conversation by talking about the weather. And when I open a new browser window, it automatically opens the weather page.
Well, you don't...because if you want to know the weather, you look on your phone. So why bother than? Because since the beginning of time, people are obsessed with the weather. When I was a child, my grandmother was measuring the temperature and rainfall on a daily basis. My grandfather had an allotment, so he also was very interested in the weather. The first thing my father read in the newspaper was the weather report and the last thing he watched on the television was... the weather report. And every hour he listed to the weather report on the radio. If he talked to someone he always started the conversation by talking about the weather. And when I open a new browser window, it automatically opens the weather page.
So the weather is fascinating and taking your own measurements is a lot of fun.
@ -218,7 +218,7 @@ The ModBus address can be set by DIP switch J9.
## Wind speed
The pulse from the cup anemometer is connected to an interrupt input of the micro-controller. Every time its logic level changes an interrupt routine is called. This routine increments a counter and checks how many time has passed since the previous interrupt call. If the previous call was more than 2 seconds ago, the wind speed is (almost) zero. If the previous call was just over a second ago the interrupt counter now holds the amount of pulses in one second. This value is stored and from that value the wind speed can be calculated. If the previous call was under a second ago the measurement is still in progress and no further action is taken.
The pulse from the cup anemometer is connected to an interrupt input of the micro-controller. Every time its logic level changes an interrupt routine is called. This routine increments a counter and checks how many time has passed since the previous interrupt call. If the previous call was more than 6 seconds ago, the wind speed is (almost) zero. If the previous call was just over 3 second ago the interrupt counter now holds the amount of pulses in three seconds. This value is stored and from that value the wind speed can be calculated. If the previous call was less than 3 seconds ago the measurement is still in progress and no further action is taken. A measurment period of three seconds is choosen because it is the standard as used by the Dutch meteorological institute (KNMI).
![Wind speed interrupt](./images/wind_speed_diagram.svg "Wind speed interrupt")
@ -236,11 +236,15 @@ The pulse from the rain meter is connected to an interrupt input of the micro-co
## Humidity
Via the I²C bus, the humidity value of the sensor is read. As the sensor can become saturated with moisture it can get stuck at 100%. This happens in particular with fog or other high humidity and condensing weather types. The sensor has a build in heater to drive of moisture and thus preventing this problem. Because the temperature of the sensor rises when the heater is turned on, accurate ambient temperature readings are no longer possible. But with a smart algorithm it is possible to get the benefits of the build in heater while still being able to use the sensor as an ambient thermometer.
Via the I²C bus, the humidity value of the sensor is read. As the sensor can become saturated with moisture it can get stuck at 100%. This happens in particular with fog or other high humidity and condensing weather types. The sensor has a build in heater to drive of moisture and thus preventing this problem. Because the temperature of the sensor rises when the heater is turned on, accurate ambient temperature and humidity readings are no longer possible. But with a smart algorithm it is possible to get the benefits of the build in heater while still being able to use the sensor as an ambient thermometer.
When the humidity rises above 95% for more than an hour the current temperature is stored and the heater is switched on for 10 minutes. Than the heater is switched off again. If after 10 minutes the humidity is still above 95% the heater is turned on again for another 10 minutes. But not before the temperature is measured and stored, as the sensor is now cooled off to ambient temperature. If the humidity is below 95% the sensor is free from moisture and the process is not repeated for another hour.
When the humidity rises above 95% for more than an hour the current temperature and humidity are stored and the heater is switched on for 5 minutes. Than the heater is switched off again. If after 15 minutes the humidity is still above 95% the heater is turned on again for another 5 minutes. But not before the temperature and humidity are measured and stored, as the sensor is now cooled off to ambient temperature. If the humidity is below 95% the sensor is free from moisture and the process is not repeated for another hour.
Flow chart under development.
When the heater algorithm is active, the temperature and humidity values are updated every 20 minutes instead of every 2 seconds. Statis bit 0 (ModBus register 30014) indicated if the heater is on or off and status bit 1 gives the update rate of the temperature and humidity values.
This algorithm can be enabled by setting the HeaterCoil (see ModBus secion).
![Heater algorithm](./images/smart_heater.svg "Heater algorithm")
## Temperature
@ -258,7 +262,7 @@ This sensor is still under development.
The weather station uses ModBus RTU over a simplex RS-485 line. For now, the ModBus address is hard coded as 14 in the software. The values are available in the input registers and can be read via function code 04.
Below an example of how to read the wind direction in Python using the minimalmodbus library.
Below an example of how to read the wind direction and enable the heater algorithm in Python using the minimalmodbus library.
#!/usr/bin/env python3
import minimalmodbus
@ -270,36 +274,119 @@ Below an example of how to read the wind direction in Python using the minimalmo
wind_direction = instrument.read_register(1, 0, 4)
print(wind_direction)
### Input registers
# register address, value, function code
instrument.write_bit(0, 1, 5)
### Input registers (read only)
The measurements and order of the measurements are the same as for APRS weather reports. But of course we use SI units.
Input registers are numbered 30001 to 39999 but have data addresses 0x000 to 0x270E. The measurements and order of the measurements are the same as for APRS weather reports. But of course we use SI units.
| Address | Description | Units |
|---------|-------------------------------------|-----------------------|
| 30000 | Device ID (0x5758) | NO UNIT |
| 30001 | Wind direction | degrees |
| 30002 | Wind speed (average of 10 minutes) | m/s * 100 |
| 30003 | Wind gust (peak of last 10 minutes) | m/s * 100 |
| 30004 | Temperature (two's complement) | degrees Celcius * 100 |
| 30005 | Rain last hour | l/m2 * 100 |
| 30006 | Rain last 24 hours | l/m2 * 100 |
| 30007 | Rain since midnight | NOT IMPLEMENTED |
| 30008 | Humidity | percent * 100 |
| 30009 | Barometric pressure | hPa * 10 |
| 30010 | Luminosity | W/m2 |
| 30011 | Snow fall | NOT IMPLEMENTED |
| 30012 | Raw rain counter | NOT IMPLEMENTED |
| 30013 | Temperature (two's complement) | degrees Celcius * 100 |
| 30014 | Status bits | see table below |
^NOTE^ Register 30013 holds the backup temperature reading from the pressure sensor.
| Status bits | Description | logic 0 | logic 1 |
|-------------|---------------|------------|-----------|
| 0 | Heater status | heater off | heater on |
| 00 | Device ID (0x5758) | NO UNIT |
| 01 | Wind direction | degrees * 10 |
| 02 | Wind speed (average of 10 minutes) | m/s * 100 |
| 03 | Wind gust (peak of last 10 minutes) | m/s * 100 |
| 04 | Temperature (two's complement) | degrees Celcius * 100 |
| 05 | Rain last hour | l/m2 * 100 |
| 06 | Rain last 24 hours | l/m2 * 100 |
| 07 | Rain since midnight | NOT IMPLEMENTED |
| 08 | Humidity | percent * 100 |
| 09 | Barometric pressure | hPa * 10 |
| 10 | Luminosity | W/m2 |
| 11 | Snow fall | NOT IMPLEMENTED |
| 12 | Raw rain counter | l/m2 * 100 |
| 13 | Temperature (two's complement) | degrees Celcius * 100 |
| 14 | Status bits | see table below |
^NOTE^ Register 13 holds the backup temperature reading from the pressure sensor.
| Status bits | Description | logic 0 | logic 1 |
|-------------|----------------------|------------------|-----------------|
| 0 | Heater status | heater off | heater on |
| 1 | Temp/humidity update | every 20 minutes | every 2 seconds |
| 2 | Heater algorithm | disabled | enabled |
The ModBus registers are 16 bit wide. For better precision, some units are scaled by a factor of 10 or 100. This way, values with up to two decimal points can be stored as 16 bit integer values. Just divide by 10 or 100 to get the floating point values.
### Output coils (write only)
Output coils registers are numbered 1 to 9999 but have data addresses 0x000 to 0x270E. The default value of a register is 0.
| Address | Description | logic 0 | logic 1 |
|---------|------------------|----------|---------|
| 0 | Heater algorithm | disabled | enabled |
# Prototype
I wanted to locate the weather station at about 100 meters from the house. That meant that interfacing the weather station was not just a matter of connecting a wire to it. And 100 meters is a bit much for a wifi connection either. As I already had experience with LoRa I opted for that. But not LoRaWAN, but LoRa APRS. This is a ham radio network that I often use. I even run my own digipeater. So LoRa APRS it is.
![Block diagram of the prototype](./images/prototype_block_diagram.svg "Block diagram of the prototype")
The weather station's RS-485 interface is connected to a Raspberry Pi Zero 2W running the aprx digipeater software, as well as some specially written Python programs to interface the build in LoRa transceiver, the GPS module and the weather station itself. Every 10 minutes the digipeater will read the weather station's registers and sends the data as PE1RXF telemetry messages over the APRS network to a server, which presents the data in a Grafana dashboard. The digipeater can also send standardized APRS weather reports over the APRS network. But more about this project can be found here: [https://www.meezenest.nl/mees-elektronica/RPi_LoRa_shield.html](https://www.meezenest.nl/mees-elektronica/RPi_LoRa_shield.html)
![The prototype in the garden](./images/prototype_overview_small.jpg "The prototype in the garden")
As a housing for the prototype, I used an old beehive. These are weatherproof and I had one laying around.
![Closeup of the sensors](./images/prototype_sensors_small.jpg "Closeup of the sensors")
![Inside the beehive](./images/prototype_inside_annotations_small.jpg "Inside the beehive")
# Specifications
## Wind
- Wind speed is measured by taking 3 second averages from the cup anemometer and using these samples to calculate the average over a 10 minute periode.
- Wind gust is measured by taking 3 second averages from the cup anemometer.
- Wind vane has 8 main directions and another 8 directions in between. But these last do not have the same weight, eg. these positions are not as likely to be measured as the main directions. This is due to the construction of the wind vane: it has eight reed switches for the main directions and if the wind direction happens to sit exactly in between two reed switches, both switches are closed giving the extra 8 sub directions. Not great, but it is what it is...
## Rain
Resolution: 0.2794 mm/impulse
## Humidity
Operating range : 0 - 100 % RH
Recommended range : 20 - 80 % RH
Accuracy : +/- 3 % RH (0-80 % RH)
+/- 4.5 % (max when > 80 % RH)
Heater to drive of moisture (can be enabled via ModBus)
## Pressure
Operating range : 300 - 1100 hPa
Accuracy : +/- 1.0 hPa (0 - 65 °C)
+/- 1.7 hPa (-20 - 0 °C)
## Temperature
Main sensor
-----------
Operating range : -10 - 85 °C (typ)
-40 - 85 °C (max)
Accuracy : +/- 0.3 °C (typ)
+/- 0.4 °C (max)
+/- 0.5 °C (max when < -10°C)
Backup sensor
-------------
Operating range : 0 - 65 °C (typ)
-40 - 85 °C (max)
Accuracy : +/- 0.5 °C (25 °C)
+/- 1.0 °C (0 - 65 °C)
## ModBus
Physical : RS-485 simplex RTU
Settings : 9600 bd 8N1
Address : 14
# Schematic
[![Schematic](./images/weather_station_schematic.svg)](./images/weather_station_schematic.pdf)
@ -329,6 +416,8 @@ Libraries are included with the source code of this project
Copyright (C) 2023, 2024 M.T. Konstapel
[https://meezenest.nl/mees/](https://meezenest.nl/mees/)
The software is published as open-source software (GPL). The hardware is published as open-source hardware (OSH).
## Software

Binary file not shown.

@ -27,6 +27,11 @@
* You should have received a copy of the GNU General Public License
* along with weather_station. If not, see <https://www.gnu.org/licenses/>.
*
* 2023-01-21: - Buffer overflow when calculating average wind speed in AverageOfArray()
* Fix: use 32 bit register for average_value.
* - Changed some variables to the propper standard (uint8_t, uint16_t, etc.)
* - SparkFun wind interrupt now calculates over 3 seconds in stead of 1 second (KNMI standard)
*
**********************************************************************************/
#include <ModbusSerial.h>
#include "SparkFun_Weather_Meter_Kit_Arduino_Library.h"
@ -67,9 +72,14 @@ const byte SlaveId = 14;
* 30004: Temperature (degrees Celcius)
* 30005: Rain last hour (l/m2)
* 30006: Rain last 24 hours (l/m2)
* 30007: Rain since midnight (l/m2)
* 30007: Rain since midnight (l/m2) [NOT IMPLEMENTED, always 0]
* 30008: Humidity (percent)
* 30009: Barometric pressure (hPa)
* 30010: Luminosity (W/m2)
* 30011: Snow fall [NOT IMPLEMENTED, always 0]
* 30012: Raw rainfall counter (mm)
* 30013: Temperature pressure sensor (degrees Celsius)
* 30014: Status bits 0=heater, 1-15: reserved
*
*/
const int SensorIDIreg = 0;
@ -82,6 +92,18 @@ const int SensorRainLast24Ireg = 6;
const int SensorRainSinceMidnightIreg = 7;
const int SensorHumidityIreg = 8;
const int SensorPressureIreg = 9;
const int SensorLuminosityIreg = 10;
const int SensorSnowFallIreg = 11;
const int SensorRainfallRawIreg = 12;
const int SensorTemperatureBackupIreg = 13;
const int SensorStatusBitsIreg = 14;
/* Modbus Registers Offsets (0-9999)
* Coils
* 0 = Heater algorithm (0 = disable, 1 = enable)
*/
const int HeaterCoil = 0;
// RS-485 serial port
#define MySerial Serial // define serial port used, Serial most of the time, or Serial1, Serial2 ... if available
const unsigned long Baudrate = 9600;
@ -97,90 +119,180 @@ ModbusSerial mb (MySerial, SlaveId, TxenPin);
unsigned long ts;
unsigned long HourTimer;
int WindGustData1[30];
unsigned char WindGustData1Counter=0;
int WindGustData2[10];
unsigned char WindGustData2Counter=0;
int WindAverageData1[30];
unsigned char WindAverageData1Counter=0;
int WindAverageData2[10];
unsigned char WindAverageData2Counter=0;
int RainPerHour[24];
unsigned char RainPerHourCounter=0;
uint16_t WindGustData1[30];
uint8_t WindGustData1Counter=0;
uint16_t WindGustData2[10];
uint8_t WindGustData2Counter=0;
uint16_t WindAverageData1[30];
uint8_t WindAverageData1Counter=0;
uint16_t WindAverageData2[10];
uint8_t WindAverageData2Counter=0;
uint16_t RainPerHour[24];
uint8_t RainPerHourCounter=0;
struct MeasuredData {
int WindDirection;
int WindSpeed;
int WindGust;
int Rain;
int RainLast24;
int SensorRainSinceMidnight;
int Pressure;
uint16_t WindDirection;
uint16_t WindSpeed;
uint16_t WindGust;
uint16_t Rain;
uint16_t RainLast24;
uint16_t SensorRainSinceMidnight;
uint16_t Pressure;
uint16_t Luminosity;
uint16_t StatusBits = 0;
uint16_t RainfallCounter = 0;
float Temperature;
float Humidity;
float TemperatureBackup;
bool HeaterStatus = 0;
} MeasuredData;
// State machine implementing smart heater to prevent saturation of the sensor
char HeaterSi7021 (float humidity)
{
static int state=0;
static unsigned long StatemachineTimer=0;
bool TempValid=1;
bool Heater=0;
// If Smart heater algorithm is disabled, reset the statemachine forever.
// TempValid bit is also forced to 1, but it could be that we just came out of a heater period.
// We assume that the client on the other side of the ModBus is smart enough to understand.
if ( (MeasuredData.StatusBits & 0x04) == 0)
state = 0;
switch (state)
{
// Default state: humidity is below 95%
case 0:
Heater = 0;
if (humidity >= 95) {
StatemachineTimer = millis();
state = 1;
}
break;
// Humidity went above 95%. See if humidity stays above 95% for more than an hour, if so turn on heater
case 1:
if (humidity >= 95) {
if ( (millis() - StatemachineTimer) >= 3.6e+6 ) {
//if ( (millis() - StatemachineTimer) >= 300000 ) { // short delay for testing
Heater = 1;
TempValid = 0;
StatemachineTimer = millis();
state = 2;
} else {
Heater = 0;
}
} else {
Heater = 0;
state = 0;
}
break;
// Heater is now on, let the sensor cook for 5 minutes
case 2:
if ( (millis() - StatemachineTimer) >= 300000 ) {
StatemachineTimer = millis();
Heater = 0;
state = 3;
} else {
Heater = 1;
}
TempValid = 0;
break;
// Heater is now off, let the sensor cool for 15 minutes
case 3:
if ( (millis() - StatemachineTimer) >= 900000 ) {
TempValid = 1; // Sensor cooled, so we can take a valid temperature reading
if (humidity >= 95) {
// Humidity still above 95%, repeat heating/cooling
Heater = 1;
StatemachineTimer = millis();
state = 2;
} else {
// Humidity below 95%, reset statemachine
Heater = 0;
state = 0;
}
} else {
Heater = 0;
TempValid = 0;
}
break;
default:
Heater = 0;
state = 0;
break;
}
return TempValid<<1 | Heater;
}
// Read Si7021 sensor and process data
void ReadSi7021 (void)
{
si7021.triggerMeasurement();
si7021.getHumidity(MeasuredData.Humidity);
si7021.getTemperature(MeasuredData.Temperature);
char result=0x2;
float humidity;
if (MeasuredData.Humidity>100 || MeasuredData.Humidity<0)
MeasuredData.Humidity = 100;
si7021.triggerMeasurement();
si7021.getHumidity(humidity);
//If humidity is larger than 96% switch on heater to get more acurate measurement and prevent memory offset
//Switch off when lower than 94% (hysteresis)
if (MeasuredData.Humidity > 96 && !MeasuredData.HeaterStatus) {
Serial.print(F("Heater on."));
MeasuredData.HeaterStatus = 1;
si7021.setHeater(MeasuredData.HeaterStatus);
if (humidity>100 || humidity<0)
humidity = 100;
//If humidity is larger than 95% switch on heater to get more acurate measurement and prevent memory offset
result = HeaterSi7021(humidity);
MeasuredData.StatusBits &= 0xFFFC; // Reset heater status bits to zero
MeasuredData.StatusBits |= result; // And set the proper bits to one if there are any. The result is we copied the status bits to the register
// Temperture and humidity readings are valid (as the sensor is not heated)
if (result & 0x2) {
si7021.getTemperature(MeasuredData.Temperature);
// Scale for more decimal positions when converted to integer value for ModBus
MeasuredData.Temperature *= 100;
//Serial.print(F("Valid temp"));
si7021.getHumidity(MeasuredData.Humidity);
if (MeasuredData.Humidity>100 || MeasuredData.Humidity<0)
MeasuredData.Humidity = 100;
// Scale for more decimal positions when converted to integer value for ModBus
MeasuredData.Humidity *= 100;
}
if (MeasuredData.Humidity < 94 && MeasuredData.HeaterStatus) {
Serial.print(F("Heater off."));
// Statemachine thinks it is time to switch on the heater
if (result & 0x1) {
//Serial.print(F("Heater on."));
MeasuredData.HeaterStatus = 1;
} else {
//Serial.print(F("Heater off."));
MeasuredData.HeaterStatus = 0;
si7021.setHeater(MeasuredData.HeaterStatus);
}
// Scale for more decimal positions when converted to integer value for ModBus
MeasuredData.Humidity *= 100;
MeasuredData.Temperature *= 100;
si7021.setHeater(MeasuredData.HeaterStatus);
}
// Read BMP280
void ReadBMP280 (void)
{
// MeasuredData.Pressure=0;
bmp280.awaitMeasurement();
float temperature;
bmp280.getTemperature(temperature);
float pascal;
bmp280.getPressure(pascal);
pascal = (pascal - PRESSURE_OFFSET) / 10; // Convert to hPa
MeasuredData.Pressure = pascal;
bmp280.getTemperature(MeasuredData.TemperatureBackup);
// Scale for more decimal positions when converted to integer value for ModBus
MeasuredData.TemperatureBackup *= 100;
bmp280.triggerMeasurement();
// When humidity is high, the heater of the Si7021 is on. This causes the temperature sensor of the humidity sensor to heat up.
// Use temperature sensor of BMP280 instead.
if (MeasuredData.HeaterStatus) {
bmp280.getTemperature(MeasuredData.Temperature);
// Scale for more decimal positions when converted to integer value for ModBus
MeasuredData.Temperature *= 100;
}
}
int MaxOfArray (int array[], unsigned int length)
int MaxOfArray (int array[], uint16_t length)
{
int maximum_value = 0;
@ -192,11 +304,11 @@ int MaxOfArray (int array[], unsigned int length)
return maximum_value;
}
int AverageOfArray (int array[], unsigned int length)
uint16_t AverageOfArray (uint16_t array[], uint16_t length)
{
int tmp_value = 0;
unsigned char tmp_length = length;
int average_value = 0;
uint32_t tmp_value = 0;
uint8_t tmp_length = length;
uint16_t average_value = 0;
while (length--)
{
@ -214,14 +326,15 @@ void ReadSparkfunWeatherStation (void)
float tmpRegister;
MeasuredData.WindDirection = weatherMeterKit.getWindDirection();
tmpRegister = 10*weatherMeterKit.getWindDirection(); // Use float for conversion to degrees times 10, than put it in integer register for ModBus
MeasuredData.WindDirection = tmpRegister;
tmpRegister = 100*(weatherMeterKit.getWindSpeed())/3.6; // Use float for conversion to m/s times 100, than put it in integer register for ModBus
MeasuredData.WindSpeed = tmpRegister;
tmpRegister = 100*weatherMeterKit.getTotalRainfall(); // Use float for conversion to l/m2 times 100, than put it in integer register for ModBus
MeasuredData.Rain = tmpRegister;
// FIFO for calculating wind gust of last 10 minutes
// to preserve valuable RAM we caanot store all measurements of the last 10 minutes.
// to preserve valuable RAM we cannot store all measurements of the last 10 minutes.
// So we use a hack: store the last 30 values in a FIFO and every minute we store the maximum value from this FIFO in another FIFO.
// This second FIFO is 10 deep: it stores the maximum values of the last 10 minutes.
// The maximum value from this FIFO is the maximum wind gust of the last 10 minutes.
@ -279,6 +392,9 @@ void ReadSparkfunWeatherStation (void)
RainPerHourCounter=0;
}
RainPerHour[RainPerHourCounter] = MeasuredData.Rain;
// Every time before we reset the TotalRainCounter we add the amount to the RawRainCounter.
// This 16 bit register will eventually overflow, but 655.35mm of rain fall is a lot!
MeasuredData.RainfallCounter += MeasuredData.Rain; // We don't care about the rounding error due to the convertion from float to int
weatherMeterKit.resetTotalRainfall();
// Calculate rain fall in the last 24 hours
@ -320,13 +436,22 @@ void setup() {
mb.addIreg (SensorRainSinceMidnightIreg);
mb.addIreg (SensorHumidityIreg);
mb.addIreg (SensorPressureIreg);
mb.addIreg (SensorLuminosityIreg);
mb.addIreg (SensorSnowFallIreg);
mb.addIreg (SensorRainfallRawIreg);
mb.addIreg (SensorTemperatureBackupIreg);
mb.addIreg (SensorStatusBitsIreg);
// Add HeaterCoil register
mb.addCoil (HeaterCoil);
// Set Weather station ID
mb.Ireg (SensorIDIreg, 0x5758);
// Set unused register to zero
mb.Ireg (SensorRainSinceMidnightIreg, 0);
mb.Ireg (SensorSnowFallIreg, 0);
Serial.println(F("Weather station v0.1.0"));
Serial.println(F("Weather station v0.2.2"));
Serial.println(F("(C)2024 M.T. Konstapel"));
Serial.println(F("This project is free and open source"));
Serial.println(F("More details: https://meezenest.nl/mees/"));
@ -346,6 +471,14 @@ void setup() {
}
}
// The standard library of the Si7021 sets the heater element to the default 3.1mA, but we want the full power
// We could alter the library, but than we break compatibility. So for this one time we do a raw-write to the
// heater register.
const uint8_t SI7021_I2C_ADDRESS =(0x40);
const uint8_t SI7021_CMD_WRITE_HEATER_CONTROL_REG =(0x51);
const uint8_t SI7021_HEATER_FULL_BLAST =(0x0F); // Set heater to 94mA
i2c.writeByte(SI7021_I2C_ADDRESS, SI7021_CMD_WRITE_HEATER_CONTROL_REG, SI7021_HEATER_FULL_BLAST);
// Initialize BMP280 pressure sensor
Serial.print(F("Pressure sensor BMP280 "));
if (bmp280.initialize())
@ -425,7 +558,9 @@ void setup() {
// is implemented in the library that averages the wind speed over a certain
// time period, which defaults to 1 second. Longer intervals result in more
// accurate measurements, but cause delay in the measurement
calibrationParams.windSpeedMeasurementPeriodMillis = 1000;
// Dutch metrology institute (KNMI) defines that the windspeed and gust should
// be calculated from 3 seconds measurements.
calibrationParams.windSpeedMeasurementPeriodMillis = 3000;
// Now we can set all the calibration parameters at once
weatherMeterKit.setCalibrationParams(calibrationParams);
@ -467,11 +602,22 @@ void loop() {
mb.Ireg (SensorTemperatureIreg, MeasuredData.Temperature);
mb.Ireg (SensorHumidityIreg, MeasuredData.Humidity);
mb.Ireg (SensorPressureIreg, MeasuredData.Pressure);
mb.Ireg (SensorTemperatureBackupIreg, MeasuredData.TemperatureBackup);
mb.Ireg (SensorLuminosityIreg, MeasuredData.Luminosity);
mb.Ireg (SensorRainfallRawIreg, MeasuredData.RainfallCounter);
mb.Ireg (SensorStatusBitsIreg, MeasuredData.StatusBits);
// Debug wind vane
//Serial.print(F("\n Measured ADC: "));
//Serial.print(analogRead(windDirectionPin));
// enable or disable smart heater
if (mb.Coil (HeaterCoil)) {
MeasuredData.StatusBits |= 0x04; // Set bit
} else {
MeasuredData.StatusBits &= 0x0B; // Reset bit
}
digitalWrite(LED_BUILTIN, LOW); // LED as heartbeat

@ -43,15 +43,19 @@ class EpeverChargeController(minimalmodbus.Instrument):
@retry(wait_fixed=200, stop_max_attempt_number=5)
def retriable_read_register(
self, registeraddress, number_of_decimals, functioncode
self, registeraddress, number_of_decimals, functioncode, signed=False
):
return self.read_register(
registeraddress, number_of_decimals, functioncode, False
registeraddress, number_of_decimals, functioncode, signed
)
@retry(wait_fixed=200, stop_max_attempt_number=5)
def retriable_read_bit(self, registeraddress, functioncode):
return self.read_bit(registeraddress, functioncode)
@retry(wait_fixed=200, stop_max_attempt_number=5)
def retriable_write_bit(self, registeraddress, data, functioncode):
return self.write_bit(registeraddress, data, functioncode)
#Address range 0x3000
def get_id(self):
@ -60,7 +64,7 @@ class EpeverChargeController(minimalmodbus.Instrument):
def get_wind_direction(self):
"""PV array rated current"""
return self.retriable_read_register(1, 0, 4)
return self.retriable_read_register(1, 1, 4)
def get_wind_speedl(self):
"""PV array rated power (low 16 bits)"""
@ -72,7 +76,7 @@ class EpeverChargeController(minimalmodbus.Instrument):
def get_temperature(self):
"""Rated Battery's voltage"""
return self.retriable_read_register(4, 2, 4)
return self.retriable_read_register(4, 2, 4, True)
def get_rain(self):
"""Rated charging current to battery"""
@ -93,3 +97,17 @@ class EpeverChargeController(minimalmodbus.Instrument):
def get_pressure(self):
"""Charging mode: 0x0001 = PWM"""
return self.retriable_read_register(9, 1, 4)
def get_temperature_backup(self):
"""Charging mode: 0x0001 = PWM"""
return self.retriable_read_register(13, 2, 4,True)
def get_status_bits(self):
"""Charging mode: 0x0001 = PWM"""
return self.retriable_read_register(14, 0, 4)
def enable_heater(self):
self.retriable_write_bit(0, 1, 5)
def disable_heater(self):
self.retriable_write_bit(0, 0, 5)

@ -594,7 +594,9 @@ elif dump_file:
dump_all_registers()
else:
status = 1
print("Enable heater function")
controller.enable_heater()
while (1):
time.sleep(3) # Sleep for 3 seconds
print ("Retrieving all known registers.")
@ -608,6 +610,8 @@ else:
rawdat['Temperature'] = controller.get_temperature()
rawdat['Humidity'] = controller.get_humidity()
rawdat['Pressure'] = controller.get_pressure()
rawdat['Temp backup'] = controller.get_temperature_backup()
rawdat['Status bits'] = controller.get_status_bits()
print (json.dumps(rawdat, indent=1, sort_keys=False))

Loading…
Cancel
Save