Carlos Orts
Published © MIT

Hand Tool Anemometer DIY for M5Dial

A portable handheld solid-state anemometer built with a M5Dial, a WindQX solid-state sensor, a 3D-printed case, and a rechargeable battery.

IntermediateFull instructions provided2 hours206
Hand Tool Anemometer DIY for M5Dial

Things used in this project

Hardware components

M5Stack Dial v1.1 - ESP32-S3 Smart Rotary Knob with 1.28" Round Touch Screen
M5Stack Dial v1.1 - ESP32-S3 Smart Rotary Knob with 1.28" Round Touch Screen
×1
WindQX SA.01P Solid-State Anemometer
×1
Battery 3.7v 3400mAh 18650 Li-ion with PH1.25mm 2P
×1
Grove - 4 pin Male Jumper to Grove 4 pin Conversion Cable
Seeed Studio Grove - 4 pin Male Jumper to Grove 4 pin Conversion Cable
×1

Software apps and online services

M5Stack UIFlow 2.0

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
3D Printer (generic)
3D Printer (generic)

Story

Read more

Custom parts and enclosures

Handle

M5Dial case

Schematics

Connectivity

The WindQX sensor communicates over I2C at address id 54. Using the i2c0 login interface at 100 KHz. Connect it to the M5Stack DIAL Grove Port A (bottom right connector) using a standard Grove cable:

Code

Fritzing diagram

JSON
No preview (download only).

UIFliow 2 export code

JSON
{"version":"V2.0","versionNumber":"V2.4.2","type":"dial","components":[{"name":"page0","type":"lvgl_page","layer":1,"screenId":"builtin","screenName":"","id":"mHCGGQKg=ar=93hc","createTime":1770624026273,"backgroundColor":"#000000","isLVGL":true,"isSelected":true},{"name":"Device","type":"lvgl_label","layer":2,"screenId":"builtin","screenName":"","id":"sTQQI%B@L&d3Doss","createTime":1770626552805,"x":89,"y":223,"color":"#d3bb9f","backgroundColor":"#ffffff","bg_opacity":0,"text":"WindQX","font":"lv.font_montserrat_14","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"dialWind","type":"lvgl_arc","layer":3,"screenId":"builtin","screenName":"","id":"z$uWD$xa^8=sP9dF","createTime":1770626878903,"x":5,"y":5,"width":230,"height":100,"minValue":0,"maxValue":120,"currentValue":50,"rotation":0,"knobColor":"#2193f3","indicatorColor":"#216ff3","backgroundColor":"#ffffff","mode":"NORMAL","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"History","type":"lvgl_chart","layer":13,"screenId":"builtin","screenName":"","id":"lEdWnO`OAwJe@Gdo","createTime":1770627098623,"x":60,"y":175,"width":120,"height":45,"mode":"LINE","modeOption":[{"label":"Line","value":"LINE"},{"label":"Bar","value":"BAR"}],"pointNum":10,"hdiv":3,"vdiv":5,"backgroundRadius":7,"backgroundColor":"#000000","borderColor":"#9b9393","borderWidth":2,"showXAxis":false,"showY1Axis":false,"showY2Axis":false,"xAxisMinValue":0,"xAxisMaxValue":100,"xAxisMajorTicks":4,"xAxisMajorTickLen":5,"xAxisMinorTicks":1,"xAxisMinorTickLen":5,"xAxisLabelShow":true,"y1AxisMinValue":0,"y1AxisMaxValue":100,"y1AxisMajorTicks":4,"y1AxisMajorTickLen":10,"y1AxisMinorTicks":1,"y1AxisMinorTickLen":5,"y1AxisLabelShow":true,"y2AxisMinValue":0,"y2AxisMaxValue":100,"y2AxisMajorTicks":4,"y2AxisMajorTickLen":10,"y2AxisMinorTicks":1,"y2AxisMinorTickLen":5,"y2AxisLabelShow":true,"pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"diallTemp","type":"lvgl_arc","layer":10,"screenId":"builtin","screenName":"","id":"rv%nhtV`BMC=1**1","createTime":1770628986509,"x":142,"y":91,"width":70,"height":100,"minValue":5,"maxValue":70,"currentValue":50,"rotation":0,"knobColor":"#f39b21","indicatorColor":"#f3cb21","backgroundColor":"#e7e3e7","mode":"NORMAL","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"lblWind","type":"lvgl_label","layer":4,"screenId":"builtin","screenName":"","id":"bYgAAI`OC=7WNAuA","createTime":1770632055970,"x":88,"y":49,"color":"#ffffff","backgroundColor":"#000000","bg_opacity":0,"text":"20","font":"lv.font_montserrat_24","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"kmh","type":"lvgl_label","layer":5,"screenId":"builtin","screenName":"","id":"u2v#BGHG1G$mpQNl","createTime":1770632159562,"x":132,"y":57,"color":"#ffffff","backgroundColor":"#000000","bg_opacity":0,"text":"km/h","font":"lv.font_montserrat_14","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"lblTemp","type":"lvgl_label","layer":11,"screenId":"builtin","screenName":"","id":"w+2JdSf5lrIF7oNH","createTime":1770632223375,"x":161,"y":120,"color":"#d5940e","backgroundColor":"#000000","bg_opacity":0,"text":"37","font":"lv.font_montserrat_16","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"celsius","type":"lvgl_label","layer":12,"screenId":"builtin","screenName":"","id":"rIw`DeXXK8pXVB^P","createTime":1770632223375,"x":178,"y":115,"color":"#d5940e","backgroundColor":"#000000","bg_opacity":0,"text":"C","font":"lv.font_montserrat_14","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"AlarmSelector","type":"lvgl_slider","layer":6,"screenId":"builtin","screenName":"","id":"dL_BgQILRISKWYF*","createTime":1770634695225,"x":29,"y":103,"width":100,"height":9,"minValue":0,"maxValue":140,"currentValue":50,"color":"#216ff3","backgroundColor":"#ffffff","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"AlarmNumber","type":"lvgl_label","layer":7,"screenId":"builtin","screenName":"","id":"x#7#fkKwl@XXhPXx","createTime":1770632223375,"x":86,"y":138,"color":"#216ff3","backgroundColor":"#000000","bg_opacity":0,"text":"50","font":"lv.font_montserrat_16","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"AlarmLED","type":"lvgl_led","layer":9,"screenId":"builtin","screenName":"","id":"og7D38dxjO4U+VHA","createTime":1770803911689,"x":68,"y":144,"width":1,"color":"#ff0000","state":true,"pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"isSelected":false},{"name":"AlarmICON","type":"lvgl_image","layer":8,"screenId":"builtin","screenName":"","id":"lO6lFqnHvl8CypVg","createTime":1770805720619,"x":47,"y":127,"imagePath":"iconAlarm.png","pageId":"mHCGGQKg=ar=93hc","isLVGL":true,"scaleX":1,"scaleY":1,"rotation":0,"isSelected":false}],"resources":[{"hardware":["hardware_button","hardware_pin_button","i2c","speaker","timer","touch","rotary"]}],"units":[],"hats":[],"caps":[],"chains":[],"bases":[],"plcmodules":[],"i2cs":[{"id":"i2c0","portType":"A","userPort":[15,13],"freq":"100000"}],"chainBus":[],"blockly":"<variables><variable id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</variable><variable id=\"T0s:OzB-Ryasf:oe[Cp;\">data</variable><variable id=\"/9!WMg:DjJ*xY1M1kY:F\">rawWind1</variable><variable id=\"t{KSk-V|lh[zMho$E,22\">SA01_ADDR</variable><variable id=\"Alf(A1wup;8.$m(1cTq)\">rawWind2</variable><variable id=\"0`hb=s0srh+3IK$9f1Oj\">wind_kmh</variable><variable id=\"jT`yQ0tE#i5ZFLQ27$^p\">rawTemp3</variable><variable id=\";;2((0-]VFW;d(zK4a`z\">rawTemp4</variable><variable id=\"@KP.n4]00IbHR+u`S/Ii\">temp_c</variable><variable id=\"+#F[avKdN?Wb8$5[H61N\">last_min_ms</variable><variable id=\"PIfb5!6R33_MLT:tvxq+\">now_ms</variable></variables><block type=\"basic_on_setup\" id=\"setup_block\" deletable=\"false\" x=\"-909\" y=\"-970\"><mutation isBegin=\"true\"></mutation><field name=\"UPDATEOP\">true</field><statement name=\"FUNC\"><block type=\"system_m5_begin\" id=\"Uu(Ec2ry%y4ZF!S#J5}s\"><next><block type=\"rotary_init\" id=\"9nn!??3b3f+_W#u[C2E*\"><mutation mode=\"builtin\"></mutation><field name=\"MODE\">builtin</field><next><block type=\"math_change\" id=\"}x7QiZX:tmp?L?3eJM1h\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field><value name=\"DELTA\"><shadow type=\"math_number\" id=\"l}[{N?vJ^HYdT=mQF,B+\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">20</field></shadow></value><next><block type=\"variables_set\" id=\"KPm#9ORIz-Q1?@izn*EH\"><field name=\"VAR\" id=\"t{KSk-V|lh[zMho$E,22\">SA01_ADDR</field><value name=\"VALUE\"><block type=\"math_number\" id=\"2xph`gw,rvX90R*cl-}6\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">54</field></block></value><next><block type=\"lvgl_page_screen_load\" id=\"Wan(9fv-uHna*|+;MTod\"><field name=\"NAME\">page0</field><next><block type=\"lvgl_chart_add_series\" id=\"@+fNGHFJf!p.E2/)CvEB\"><field name=\"NAME\">History</field><field name=\"VARNAME\">speed</field><field name=\"OPTION\">PRIMARY_Y</field><value name=\"COLOR\"><block type=\"color_rgb_palette\" id=\"Hp]b5ornhlO}(_Mn.WX4\"><mutation mode=\"palette\"></mutation><field name=\"MODE\">palette</field><field name=\"COLOR\">#3366ff</field></block></value><next><block type=\"lvgl_chart_set_update_mode\" id=\"a:CRBoLvvFE=S;#C}mBn\"><field name=\"NAME\">History</field><field name=\"OPTION\">SHIFT</field><next><block type=\"lvgl_chart_set_point_count\" id=\"tZ`a0*(*~UeE*@?QT,uI\"><field name=\"NAME\">History</field><value name=\"VALUE\"><shadow type=\"math_number\" id=\",:UQn7JSBp?![]{D}/q9\"><mutation max=\"Infinity\" min=\"2\" precision=\"0\"></mutation><field name=\"NUM\">10</field></shadow></value><next><block type=\"lvgl_chart_set_axis_range\" id=\")NxH7.nK+;V-k702f3sb\"><field name=\"NAME\">History</field><field name=\"OPTION\">PRIMARY_Y</field><value name=\"VALUE1\"><shadow type=\"math_number\" id=\"Q,LanqM:jg*1(3qsNy1V\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value><value name=\"VALUE2\"><shadow type=\"math_number\" id=\"~k^4-=uUA5@+fo9jZkL~\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">60</field></shadow></value><next><block type=\"lvgl_chart_set_point_size\" id=\"EV9r1v;5^|TMpr+FZVt9\"><field name=\"NAME\">History</field><value name=\"VALUE1\"><shadow type=\"math_number\" id=\";za]E_2e_(U=j_0l*[c:\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">10</field></shadow></value><value name=\"VALUE2\"><shadow type=\"math_number\" id=\"$#?MAC1)#O@.|GB?W%=W\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">10</field></shadow></value><next><block type=\"variables_set\" id=\";1L)A,vf}8}M]YHs}[Ht\"><field name=\"VAR\" id=\"+#F[avKdN?Wb8$5[H61N\">last_min_ms</field><value name=\"VALUE\"><block type=\"time_get_ticks_ms\" id=\"e2Gv^^R2e(cT1][BVRR;\"></block></value><next><block type=\"lvgl_label_set_text\" id=\"5|7g*R+Wm/%P:g;Gxizm\"><field name=\"NAME\">Device</field><value name=\"VALUE\"><shadow type=\"text\" id=\"w9{nz(Tir%@2CET8U$LE\"><field name=\"TEXT\">WindQX</field></shadow></value><next><block type=\"lvgl_arc_set_value\" id=\"S9hm^sEE2Ys]7ef[0Nnc\"><field name=\"NAME\">dialWind</field><value name=\"VALUE\"><shadow type=\"math_number\" id=\"+0):@K)!)qQi3Z-v}oN4\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">20</field></shadow></value><next><block type=\"lvgl_label_set_text\" id=\"xPLT1,6$8_%FXX_S{R5E\"><field name=\"NAME\">lblWind</field><value name=\"VALUE\"><shadow type=\"text\" id=\"UFA9@^%reJc71aascoXP\"><field name=\"TEXT\">20</field></shadow></value><next><block type=\"lvgl_label_set_text\" id=\"6|4?,G89l5mic%{E:5`3\"><field name=\"NAME\">kmh</field><value name=\"VALUE\"><shadow type=\"text\" id=\"TR$x/v@C0wBU=4Lp(rdu\"><field name=\"TEXT\">km/h</field></shadow></value><next><block type=\"lvgl_slider_set_range\" id=\"!,IRfq;@jc.3t8At0CYT\"><field name=\"NAME\">AlarmSelector</field><value name=\"MIN\"><shadow type=\"math_number\" id=\",o1vZQflUMd4Xq//%1Xk\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value><value name=\"MAX\"><shadow type=\"math_number\" id=\"Gy4gs`0SGUJS_j:*}~Fi\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">100</field></shadow></value><next><block type=\"lvgl_slider_set_value\" id=\":0fa0kV(*Vp_%tLlC}~_\"><field name=\"NAME\">AlarmSelector</field><value name=\"VALUE\"><shadow type=\"math_number\" id=\"l;z,loE/PW(8Q47]O(~t\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">50</field></shadow><block type=\"variables_get\" id=\"jcB]Xm;lZTxejZk$VIM3\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field></block></value><next><block type=\"lvgl_label_set_text\" id=\"N+,iv_U+eXzR1.!-j;F%\"><field name=\"NAME\">AlarmNumber</field><value name=\"VALUE\"><shadow type=\"text\" id=\"2QuM*36lJ;#y)L$/y[?q\"><field name=\"TEXT\">0</field></shadow><block type=\"variables_get\" id=\"8HG1u7(K8PhEw5TGcE?l\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field></block></value><next><block type=\"lvgl_led_set_state\" id=\"[FAp*Bjrnl]O1VmOH;8A\"><field name=\"NAME\">AlarmLED</field><field name=\"VALUE\">off</field><next><block type=\"lvgl_led_set_size\" id=\"+74kVj53~DH:m@)agvzY\"><field name=\"NAME\">AlarmLED</field><value name=\"WIDTH\"><shadow type=\"math_number\" id=\"j$^gOMT$B(M23z(qde)N\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value><value name=\"HEIGHT\"><shadow type=\"math_number\" id=\"1Z.^?Dg`c#M#dJosb4nn\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value><next><block type=\"lvgl_arc_set_value\" id=\"gJHT}!+UlnN)f4`Tmven\"><field name=\"NAME\">diallTemp</field><value name=\"VALUE\"><shadow type=\"math_number\" id=\"Wl(=i)v2XRz61_Rz~Fk!\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value><next><block type=\"lvgl_label_set_text\" id=\"Gx2fGI%D{}p7w*S5,:.M\"><field name=\"NAME\">lblTemp</field><value name=\"VALUE\"><shadow type=\"text\" id=\";0HRLC(t1cSzQ}+~]csY\"><field name=\"TEXT\">0</field></shadow></value><next><block type=\"lvgl_label_set_text\" id=\"qMU$.`sVS]o{+m`!)NS:\"><field name=\"NAME\">celsius</field><value name=\"VALUE\"><shadow type=\"text\" id=\"/oE(hq*HS,Q*j4o2TXV?\"><field name=\"TEXT\">C</field></shadow></value><next><block type=\"i2c_init\" id=\"Dx`0{!8AgNPDB-MY[+5C\"><field name=\"NAME\">0</field><field name=\"FREQ\">100000</field><value name=\"SCL\"><shadow type=\"math_number\" id=\"g_45;b}H}k!_{;Hie}9{\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">15</field></shadow></value><value name=\"SDA\"><shadow type=\"math_number\" id=\"QJ.L#lvFSxK:vZ+9;ICY\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">13</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type=\"basic_on_loop\" id=\"loop_block\" deletable=\"false\" x=\"-170\" y=\"-890\"><mutation isUpdate=\"false\"></mutation><field name=\"UPDATEOP\">false</field><statement name=\"FUNC\"><block type=\"controls_if\" id=\"VF]W8(n+=rkNV@[`0tEB\"><value name=\"IF0\"><block type=\"button_get_status\" id=\"rzxMo1$lwXsQj8#Xmf%/\"><field name=\"NAME\">BtnA</field><field name=\"OPTION\">isHolding</field></block></value><statement name=\"DO0\"><block type=\"power_shut_down\" id=\"_d{d{Wo[@8l:Wl:CC(M^\"></block></statement><next><block type=\"variables_set\" id=\"ou8ffh.S1z}O4]1tU)xX\"><field name=\"VAR\" id=\"T0s:OzB-Ryasf:oe[Cp;\">data</field><value name=\"VALUE\"><block type=\"i2c_readfrom\" id=\"R1!:Ft4XOXS=hi^|SCl!\"><field name=\"NAME\">0</field><field name=\"STOP\">True</field><value name=\"ADDR\"><shadow type=\"math_number\" id=\"=S|FXj9EUe~gdlr(jhB9\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow><block type=\"variables_get\" id=\"sk%*Ac;evdmTt.Tin:Fe\"><field name=\"VAR\" id=\"t{KSk-V|lh[zMho$E,22\">SA01_ADDR</field></block></value><value name=\"NBYTES\"><shadow type=\"math_number\" id=\"nWXZjx6ff`vE)61GroX_\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">4</field></shadow></value></block></value><next><block type=\"variables_set\" id=\"yqjEo`iZke8:!B$+:p|h\"><field name=\"VAR\" id=\"/9!WMg:DjJ*xY1M1kY:F\">rawWind1</field><value name=\"VALUE\"><block type=\"lists_getIndex\" id=\")KEJk.ic-F]TpE(oTJE|\"><mutation statement=\"false\" at=\"true\"></mutation><field name=\"MODE\">GET</field><field name=\"WHERE\">FROM_START</field><value name=\"VALUE\"><block type=\"variables_get\" id=\"FQ0lgvA!J.41-E7U6DAK\"><field name=\"VAR\" id=\"T0s:OzB-Ryasf:oe[Cp;\">data</field></block></value><value name=\"AT\"><block type=\"math_number\" id=\"Og4SbMI}JoKvQFWk?83N\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></block></value></block></value><next><block type=\"variables_set\" id=\"k0~ZSAs[C*+-vE}A!sOq\"><field name=\"VAR\" id=\"Alf(A1wup;8.$m(1cTq)\">rawWind2</field><value name=\"VALUE\"><block type=\"lists_getIndex\" id=\"miBu%I62G*;dbXx#K,@X\"><mutation statement=\"false\" at=\"true\"></mutation><field name=\"MODE\">GET</field><field name=\"WHERE\">FROM_START</field><value name=\"VALUE\"><block type=\"variables_get\" id=\":Dz6Z.B^.uyR;/eWQVM2\"><field name=\"VAR\" id=\"T0s:OzB-Ryasf:oe[Cp;\">data</field></block></value><value name=\"AT\"><block type=\"math_number\" id=\"M6yf#17VJFpHdr%[JXqc\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">2</field></block></value></block></value><next><block type=\"variables_set\" id=\":`sIh/}b:f1o+Wr-,1d?\"><field name=\"VAR\" id=\"0`hb=s0srh+3IK$9f1Oj\">wind_kmh</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"cZ[MnVRNSPuiIv6de9qY\"><field name=\"OP\">DIVIDE</field><value name=\"A\"><shadow type=\"math_number\" id=\"P60AsT%eysMErf.VFcy=\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"math_arithmetic\" id=\"aAfw969vj#|VoJ=yltU?\"><field name=\"OP\">ADD</field><value name=\"A\"><shadow type=\"math_number\" id=\"nr5Vi|Aj`.}{iv0ogIRH\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"math_arithmetic\" id=\"G8Nix-x3q.iw*b7.b4%5\"><field name=\"OP\">MULTIPLY</field><value name=\"A\"><shadow type=\"math_number\" id=\"U^!~W!m=I7XCj{)OGJ~C\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"variables_get\" id=\"#Es*JOpm0Q48qw[iu%L;\"><field name=\"VAR\" id=\"/9!WMg:DjJ*xY1M1kY:F\">rawWind1</field></block></value><value name=\"B\"><shadow type=\"math_number\" id=\"[)aCh%$S*qIJ31x7QXVt\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">256</field></shadow></value></block></value><value name=\"B\"><shadow type=\"math_number\" id=\"YmI?P}c^fp,[xrw$RMsp\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"variables_get\" id=\"6wkpVy@hq@-HK=/{??Xf\"><field name=\"VAR\" id=\"Alf(A1wup;8.$m(1cTq)\">rawWind2</field></block></value></block></value><value name=\"B\"><shadow type=\"math_number\" id=\"=$yXMt}0V_g^Lk,B98m5\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">10</field></shadow></value></block></value><next><block type=\"lvgl_label_set_text\" id=\"z!1}/Pq^Wd04d!1WmRAb\"><field name=\"NAME\">lblWind</field><value name=\"VALUE\"><shadow type=\"text\" id=\"^ThFKGno=*O{Soj.%Sf~\"><field name=\"TEXT\">20</field></shadow><block type=\"variables_get\" id=\"m-ul0S7kT}qq|i%(ji0l\"><field name=\"VAR\" id=\"0`hb=s0srh+3IK$9f1Oj\">wind_kmh</field></block></value><next><block type=\"lvgl_arc_set_value\" id=\"Bk@-)QcKk+dMR{bP:cYw\"><field name=\"NAME\">dialWind</field><value name=\"VALUE\"><shadow type=\"math_number\" id=\"si,(2ni.W9Cvz?p5GPf~\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">20</field></shadow><block type=\"math_convent_int\" id=\"Xvu$]w~?aAa(LHCkXc]J\"><value name=\"VALUE\"><block type=\"math_round_decimal_place\" id=\"zL%zaIlRTjq?ce8T_obR\"><value name=\"VALUE\"><shadow type=\"math_number\" id=\"KA}N!%BvyP;4kPnEBZKL\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">3.14</field></shadow><block type=\"variables_get\" id=\"LJ$[pxO)7z2~q!m/IGPv\"><field name=\"VAR\" id=\"0`hb=s0srh+3IK$9f1Oj\">wind_kmh</field></block></value><value name=\"QWER\"><shadow type=\"math_number\" id=\"bxj{e]j7Xn)i0$$9xR(.\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value></block></value></block></value><next><block type=\"variables_set\" id=\"~12BUm.kEgyOf}e(#_`v\"><field name=\"VAR\" id=\"jT`yQ0tE#i5ZFLQ27$^p\">rawTemp3</field><value name=\"VALUE\"><block type=\"lists_getIndex\" id=\"iO:h{Uk,AZ~b7r{Zw(_$\"><mutation statement=\"false\" at=\"true\"></mutation><field name=\"MODE\">GET</field><field name=\"WHERE\">FROM_START</field><value name=\"VALUE\"><block type=\"variables_get\" id=\"0AZ?hD}1DrRwD#Kf$eCB\"><field name=\"VAR\" id=\"T0s:OzB-Ryasf:oe[Cp;\">data</field></block></value><value name=\"AT\"><block type=\"math_number\" id=\"36Na7gpSspTs9M2A:y1)\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">3</field></block></value></block></value><next><block type=\"variables_set\" id=\":0;yn]po*!?VogHr#Mj^\"><field name=\"VAR\" id=\";;2((0-]VFW;d(zK4a`z\">rawTemp4</field><value name=\"VALUE\"><block type=\"lists_getIndex\" id=\"RtoT~j5=K:KoHfGoBM5j\"><mutation statement=\"false\" at=\"true\"></mutation><field name=\"MODE\">GET</field><field name=\"WHERE\">FROM_START</field><value name=\"VALUE\"><block type=\"variables_get\" id=\"x6@LjcCYP.U}DJwizbpL\"><field name=\"VAR\" id=\"T0s:OzB-Ryasf:oe[Cp;\">data</field></block></value><value name=\"AT\"><block type=\"math_number\" id=\"L$Fy?nM_%*|D/N+V4@!o\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">4</field></block></value></block></value><next><block type=\"variables_set\" id=\"u+n];]Q*Tl5M@+f9u};E\"><field name=\"VAR\" id=\"@KP.n4]00IbHR+u`S/Ii\">temp_c</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"kuWg;1.M~NX!{1EtTtlc\"><field name=\"OP\">MINUS</field><value name=\"A\"><shadow type=\"math_number\" id=\"lV$8R=?|$kw,Hn14?Xbp\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"math_arithmetic\" id=\"6U9CO;uNP,x3wk@$Sd.K\"><field name=\"OP\">DIVIDE</field><value name=\"A\"><shadow type=\"math_number\" id=\"P60AsT%eysMErf.VFcy=\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"math_arithmetic\" id=\"U/3@:L_RAF0S{w!1!z%?\"><field name=\"OP\">ADD</field><value name=\"A\"><shadow type=\"math_number\" id=\"nr5Vi|Aj`.}{iv0ogIRH\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"math_arithmetic\" id=\"/ktim+ThZh!;]Zm!_k1s\"><field name=\"OP\">MULTIPLY</field><value name=\"A\"><shadow type=\"math_number\" id=\"U^!~W!m=I7XCj{)OGJ~C\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"variables_get\" id=\"t-,6=Gb0~zi:Cmiy%1;#\"><field name=\"VAR\" id=\"jT`yQ0tE#i5ZFLQ27$^p\">rawTemp3</field></block></value><value name=\"B\"><shadow type=\"math_number\" id=\"5:n,I}]nGs*t]LVK/%?9\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">256</field></shadow></value></block></value><value name=\"B\"><shadow type=\"math_number\" id=\"YmI?P}c^fp,[xrw$RMsp\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"variables_get\" id=\"!#UXz@TUhte/aW[mM0Xe\"><field name=\"VAR\" id=\";;2((0-]VFW;d(zK4a`z\">rawTemp4</field></block></value></block></value><value name=\"B\"><shadow type=\"math_number\" id=\"A2Is+E;.X2X14=x{KD^d\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">100</field></shadow></value></block></value><value name=\"B\"><shadow type=\"math_number\" id=\"jtBms}aX?YjFD0vLVg@~\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">40</field></shadow></value></block></value><next><block type=\"variables_set\" id=\"NY6Dq444ove13o_SlmdZ\"><field name=\"VAR\" id=\"@KP.n4]00IbHR+u`S/Ii\">temp_c</field><value name=\"VALUE\"><block type=\"math_convent_int\" id=\"=_8X%lPHZR/|V^LZgh81\"><value name=\"VALUE\"><block type=\"math_round_decimal_place\" id=\"UKs,WE/KFEsNQ+AXR~G2\"><value name=\"VALUE\"><shadow type=\"math_number\" id=\"KA}N!%BvyP;4kPnEBZKL\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">3.14</field></shadow><block type=\"variables_get\" id=\"a6rhqVw)*Ia7Aa0[)!:@\"><field name=\"VAR\" id=\"@KP.n4]00IbHR+u`S/Ii\">temp_c</field></block></value><value name=\"QWER\"><shadow type=\"math_number\" id=\"l|?T:qI/_}Su(3j$0e/l\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value></block></value></block></value><next><block type=\"lvgl_label_set_text\" id=\".LJ;(.32KG*X9]q_1,bm\"><field name=\"NAME\">lblTemp</field><value name=\"VALUE\"><shadow type=\"text\" id=\"^ThFKGno=*O{Soj.%Sf~\"><field name=\"TEXT\">20</field></shadow><block type=\"variables_get\" id=\"w+`4Ouby$[s~;Em67S*b\"><field name=\"VAR\" id=\"@KP.n4]00IbHR+u`S/Ii\">temp_c</field></block></value><next><block type=\"lvgl_arc_set_value\" id=\".iIV|f,A4(,p{fQXmLL*\"><field name=\"NAME\">diallTemp</field><value name=\"VALUE\"><shadow type=\"math_number\" id=\"v@)B{1qF}+USzzM#;J|S\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">20</field></shadow><block type=\"variables_get\" id=\"$a.H5xag}m!iXMbks36,\"><field name=\"VAR\" id=\"@KP.n4]00IbHR+u`S/Ii\">temp_c</field></block></value><next><block type=\"controls_if\" id=\"g#B`-8DxJZ2HYa#qC:}x\"><value name=\"IF0\"><block type=\"rotary_get_status\" id=\"/pukcbwpY[zD9pK3EL3q\"><field name=\"NAME\">rotary</field></block></value><statement name=\"DO0\"><block type=\"math_change\" id=\"xRMcY(SG}ECxG(*O#M_+\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field><value name=\"DELTA\"><shadow type=\"math_number\" id=\"Uiobis8i+u[xg!{m2#s`\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"rotary_get_increments\" id=\"J3fWbTDR9?{9UY3KmLbH\"><field name=\"NAME\">rotary</field></block></value><next><block type=\"controls_if\" id=\"AvUx|B|H|c7zodt3do3m\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"$~8XQDnP4A:FcRIai1=+\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"variables_get\" id=\"_U?m2exSZa}/xi5#m}]~\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"sEI-_[/t2Y`d?/4F|4$g\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">100</field></block></value></block></value><statement name=\"DO0\"><block type=\"math_change\" id=\"a,prLe2@4]y!Y0fSELIx\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field><value name=\"DELTA\"><shadow type=\"math_number\" id=\"~$2bcfslI2VY^H27cAHt\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value></block></statement><next><block type=\"lvgl_slider_set_value\" id=\"*2j1qXjPh%9I2NsV[?SS\"><field name=\"NAME\">AlarmSelector</field><value name=\"VALUE\"><shadow type=\"math_number\" id=\"oipl0/SFO-?EelP2_AXI\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow><block type=\"variables_get\" id=\"l}G;1dd2zG,KpA5-_t=S\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field></block></value><next><block type=\"lvgl_label_set_text\" id=\"rHh#c}E5o4=A$9wU+F~z\"><field name=\"NAME\">AlarmNumber</field><value name=\"VALUE\"><shadow type=\"text\" id=\"Be2OGn:jsO+bK02X9baQ\"><field name=\"TEXT\">hello M5</field></shadow><block type=\"variables_get\" id=\"2yGIBM:K^KUT|DTRzzWL\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field></block></value></block></next></block></next></block></next></block></statement><next><block type=\"controls_ifelse\" id=\"p83fia:rO(_xj6,~B|S~\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"a{KaSvj$*rGnL/=P-UN2\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"variables_get\" id=\"H;=dV~;}3aI%kR/WeS.B\"><field name=\"VAR\" id=\"0`hb=s0srh+3IK$9f1Oj\">wind_kmh</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"Jj]dO*Li2R[AfM:89`{L\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field></block></value></block></value><statement name=\"DO0\"><block type=\"lvgl_led_set_size\" id=\"0}t{GJdk%^f~R`KsD[+v\"><field name=\"NAME\">AlarmLED</field><value name=\"WIDTH\"><shadow type=\"math_number\" id=\"EQw~$V434+eM9SspnAOW\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">10</field></shadow></value><value name=\"HEIGHT\"><shadow type=\"math_number\" id=\"Hdb,o@(a03EXNI;FH(OC\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">10</field></shadow></value><next><block type=\"lvgl_led_set_state\" id=\"rN-|Yu.|AFl-g%ZL6*D,\"><field name=\"NAME\">AlarmLED</field><field name=\"VALUE\">on</field><next><block type=\"controls_repeat_ext\" id=\"KH[ir-b;6Y-^o),Uqf$(\"><value name=\"TIMES\"><shadow type=\"math_number\" id=\"ZowJxr~!4|8m9p3F?hvE\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">3</field></shadow></value><statement name=\"DO\"><block type=\"speaker_tone\" id=\"IgTqhzH-ml#r0w+nTmp:\"><value name=\"FREQ\"><shadow type=\"math_number\" id=\"h(9]#U|J0qBa)C+Ghm4w\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">5000</field></shadow></value><value name=\"MS\"><shadow type=\"math_number\" id=\"r8)9xb/-3z=*seB@l{,7\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">500</field></shadow></value><next><block type=\"speaker_tone\" id=\"ZEIBFX^AD8~LT9,wTxL7\"><value name=\"FREQ\"><shadow type=\"math_number\" id=\"GjPIBM9P~]-B$UOG5~xj\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">15000</field></shadow></value><value name=\"MS\"><shadow type=\"math_number\" id=\"g]ZYT`^O,{Wze1{DdRZ0\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">500</field></shadow></value></block></next></block></statement></block></next></block></next></block></statement><statement name=\"ELSE\"><block type=\"lvgl_led_set_state\" id=\"bJ2@n3S|W8htEk-bc3i8\"><field name=\"NAME\">AlarmLED</field><field name=\"VALUE\">off</field><next><block type=\"lvgl_led_set_size\" id=\"u{DtRNGZjz[7n_6R?3:f\"><field name=\"NAME\">AlarmLED</field><value name=\"WIDTH\"><shadow type=\"math_number\" id=\"{@RkL*OFa_$^mn~ba,*8\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value><value name=\"HEIGHT\"><shadow type=\"math_number\" id=\"*@|BdrA@5xgdpz.UnBqt\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow></value></block></next></block></statement><next><block type=\"variables_set\" id=\"zbOfb$1a}Dd{.cAlgb9|\"><field name=\"VAR\" id=\"PIfb5!6R33_MLT:tvxq+\">now_ms</field><value name=\"VALUE\"><block type=\"time_get_ticks_ms\" id=\"TYOL$2C@(rk^?Lvs.J$o\"></block></value><next><block type=\"controls_if\" id=\"PODAj%L!S?uUQU*hs?U`\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"I*o)`U{b[Q:kz!Lj4D{z\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"math_arithmetic\" id=\"a3#w{)fa1,Ds~Y*q#Qxi\"><field name=\"OP\">MINUS</field><value name=\"A\"><shadow type=\"math_number\" id=\"Yx;U0Me9QkWPSS;O1HmG\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"variables_get\" id=\"cH+QF}ChB1DoK1%Xuk*6\"><field name=\"VAR\" id=\"PIfb5!6R33_MLT:tvxq+\">now_ms</field></block></value><value name=\"B\"><shadow type=\"math_number\" id=\"0)P;xrVt;O`c;x(K.)]@\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">1</field></shadow><block type=\"variables_get\" id=\"j=z_,1dPChIWgu13yT;+\"><field name=\"VAR\" id=\"+#F[avKdN?Wb8$5[H61N\">last_min_ms</field></block></value></block></value><value name=\"B\"><block type=\"math_number\" id=\"zfuC?`~o5mbJS6oys8Y6\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">10000</field></block></value></block></value><statement name=\"DO0\"><block type=\"variables_set\" id=\"J!/5q?Wp:9]x!?]Z(Jml\"><field name=\"VAR\" id=\"+#F[avKdN?Wb8$5[H61N\">last_min_ms</field><value name=\"VALUE\"><block type=\"time_get_ticks_ms\" id=\"*46x2!_f_b_H##$:1A]J\"></block></value><next><block type=\"lvgl_chart_set_series_next_value\" id=\"~/_$ENI=14{T6QE=I9W`\"><field name=\"NAME\">History</field><field name=\"SERIES\">speed</field><value name=\"VALUE\"><shadow type=\"math_number\" id=\"sJOH3Pb1knDu)].5Hqh`\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">0</field></shadow><block type=\"math_round\" id=\"7EP%GE,N,607OJu371Z*\"><field name=\"OP\">ROUND</field><value name=\"NUM\"><shadow type=\"math_number\" id=\"~{6Qnns|+SF,84?dQ,7a\" disabled=\"true\"><mutation max=\"Infinity\" min=\"-Infinity\" precision=\"0\"></mutation><field name=\"NUM\">3.1</field></shadow><block type=\"variables_get\" id=\"SSwW*7MIV75Ye{|Eg9z{\"><field name=\"VAR\" id=\"0`hb=s0srh+3IK$9f1Oj\">wind_kmh</field></block></value></block></value></block></next></block></statement><next><block type=\"time_sleep_millisecond\" id=\"[]@[b83q.^{@yO^~zgOH\"><value name=\"MS\"><shadow type=\"math_number\" id=\"oKygrm[$9||UguOz|Y?e\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">250</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type=\"lvgl_slider_event\" id=\"gw)BK/nV$^yJMeUXuLPP\" x=\"-909\" y=\"-50\"><field name=\"NAME\">AlarmSelector</field><field name=\"OPTION\">VALUE_CHANGED</field><statement name=\"FUNC\"><block type=\"lvgl_label_set_text\" id=\"G=/B-kK4tq!bj9vIEzT3\"><field name=\"NAME\">AlarmNumber</field><value name=\"VALUE\"><shadow type=\"text\" id=\"f5g@.-Z]CrrY:~R7Ju4y\"><field name=\"TEXT\">hello M5</field></shadow><block type=\"lvgl_slider_get_value\" id=\"{mbd%eNf:xGi;Yg|0Gd#\"><field name=\"NAME\">AlarmSelector</field></block></value><next><block type=\"variables_set\" id=\"vIi9v+1dZbW^exM+3y-L\"><field name=\"VAR\" id=\"2cCv{bbK=bqY_99?=3RN\">alarmHightSpeed</field><value name=\"VALUE\"><block type=\"lvgl_slider_get_value\" id=\"[o@ejU(|00t=~W3s^fZ%\"><field name=\"NAME\">AlarmSelector</field></block></value></block></next></block></statement></block>","screen":[{"simulationName":"Built-in","type":"builtin","width":240,"height":240,"scale":0.9,"screenName":"","blockId":"","screenColorType":0,"id":"builtin","createTime":1770624026272}],"logicWhenNum":0,"customList":[]}

Credits

Carlos Orts
14 projects • 23 followers
Enterprise Architect, maker, travel writer, visionary entrepreneur and experienced IT tourism executive,

Comments