Skip to content

Commit 8af4dd2

Browse files
Tinyu-Zhaolbuque
authored andcommitted
lib/module: Add PM2.5 Module Support.
Signed-off-by: Tinyu-Zhao <[email protected]>
1 parent 7afb0dd commit 8af4dd2

File tree

8 files changed

+481
-0
lines changed

8 files changed

+481
-0
lines changed

docs/en/module/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Module
1717
nbiot.rst
1818
odrive.rst
1919
plus.rst
20+
pm25.rst
2021
pps.rst
2122
rca.rst
2223
relay_2.rst

docs/en/module/pm25.rst

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
2+
PM25.Module
3+
===========
4+
5+
.. include:: ../refs/module.pm25.ref
6+
7+
PM2.5 Air Quality Module is an ambient air quality testing Module. This product adopts PMSA003 digital universal particulate matter concentration sensor. It can quickly collect and calculate the number of suspended particles of different particle sizes in the air per unit volume.
8+
9+
The other two versions come with the STH30 and SHT20, which can be used to measure ambient temperature and humidity.
10+
11+
Support the following products:
12+
13+
14+
================== ================== ==================
15+
|PM25Module| |PM25Module-SHT20| |PM25Module-SHT30|
16+
================== ================== ==================
17+
18+
Micropython Example:
19+
20+
.. literalinclude:: ../../../examples/module/pm25/pm25_core2_example.py
21+
:language: python
22+
:linenos:
23+
24+
25+
UIFLOW2 Example:
26+
27+
|example.png|
28+
29+
.. only:: builder_html
30+
31+
|pm25_core2_example.m5f2|
32+
33+
class PM25Module
34+
----------------
35+
36+
Constructors
37+
------------
38+
39+
.. class:: PM25Module()
40+
41+
Init Module PM2.5 with UART.
42+
43+
UIFLOW2:
44+
45+
|init.png|
46+
47+
48+
Methods
49+
-------
50+
51+
.. method:: PM25Module.set_module_power(state)
52+
53+
Set the PM25Module power state.
54+
55+
:param state: Set to True to enable power, False to disable.
56+
57+
UIFLOW2:
58+
59+
|set_module_power.png|
60+
61+
.. method:: PM25Module.get_module_power() -> bool
62+
63+
Get the PM25Module power state.
64+
65+
:param state: Get the module power state.
66+
67+
UIFLOW2:
68+
69+
|get_module_power.png|
70+
71+
.. method:: PM25Module.set_module_mode(mode)
72+
73+
Set the PM25Module work mode.
74+
75+
:param mode:
76+
77+
Options:
78+
79+
- ``Active mode``: 1
80+
- ``Passive mode``: 0
81+
82+
UIFLOW2:
83+
84+
|set_module_mode.png|
85+
86+
.. method:: PM25Module.refresh_data()
87+
88+
Refresh the PM25Module data.
89+
90+
:param mode:
91+
92+
Options:
93+
94+
- ``Active mode``: 1
95+
- ``Passive mode``: 0
96+
97+
UIFLOW2:
98+
99+
|refresh_data.png|
100+
101+
.. method:: PM25Module.request_air_data()
102+
103+
Request PM25Module air data.
104+
105+
UIFLOW2:
106+
107+
|request_air_data.png|
108+
109+
.. method:: PM25Module.get_pm_data(data_num)
110+
111+
Select the type of particulate matter data to retrieve.
112+
113+
:param int data_num: The options range from standard PM concentrations to counts of particles of specific sizes in 0.1 liters of air.
114+
115+
Options:
116+
117+
- ``PM1.0 Concentration(Std)``: 0
118+
- ``PM2.5 Concentration(Std)``: 1
119+
- ``PM10 Concentration(Std)``: 2
120+
- ``PM1.0 Concentration(Env)``: 3
121+
- ``PM2.5 Concentration(Env)``: 4
122+
- ``PM10 Concentration(Env)``: 5
123+
- ``Particels more than 0.3um in 0.1 liters of air``: 6
124+
- ``Particels more than 0.5um in 0.1 liters of air``: 7
125+
- ``Particels more than 1.0um in 0.1 liters of air``: 8
126+
- ``Particels more than 2.5um in 0.1 liters of air``: 9
127+
- ``Particels more than 5.0um in 0.1 liters of air``: 10
128+
- ``Particels more than 10um in 0.1 liters of air``: 11
129+
130+
UIFLOW2:
131+
132+
|get_pm_data.png|
133+
134+
135+
.. method:: PM25Module.get_temperature()
136+
137+
Get PM25Module environmental temperature data.
138+
139+
UIFLOW2:
140+
141+
|get_temperature.png|
142+
143+
.. method:: PM25Module.get_humidity()
144+
145+
Get PM25Module environmental humidity data.
146+
147+
UIFLOW2:
148+
149+
|get_humidity.png|

docs/en/refs/module.pm25.ref

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
.. |PM25Module| image:: https://static-cdn.m5stack.com/resource/docs/products/module/PM2.5%20AIR%20QUALITY%20KIT%20(Excluding%20Core)/img-3fdafe0e-bb11-4ad5-b6d6-061919cc735b.webp
2+
:height: 200px
3+
:width: 200px
4+
.. |PM25Module-SHT20| image:: https://static-cdn.m5stack.com/resource/docs/products/base/pm2.5/pm2.5_01.webp
5+
:height: 200px
6+
:width: 200px
7+
.. |PM25Module-SHT30| image:: https://static-cdn.m5stack.com/resource/docs/products/app/PM2.5%20Air%20Quality%20Kit(SHT30)/img-1e1a8f8e-bea0-4cd1-a82d-274c22ad7e79.webp
8+
:height: 200px
9+
:width: 200px
10+
:target: https://docs.m5stack.com/en/app/PM2.5%20Air%20Quality%20Kit(SHT30)
11+
12+
13+
.. |init.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/init.png
14+
.. |set_module_power.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/set_module_power.png
15+
.. |get_module_power.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/get_module_power.png
16+
.. |set_module_mode.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/set_module_mode.png
17+
.. |refresh_data.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/refresh_data.png
18+
.. |request_air_data.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/request_air_data.png
19+
.. |get_pm_data.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/get_pm_data.png
20+
.. |get_temperature.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/get_temperature.png
21+
.. |get_humidity.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/get_humidity.png
22+
23+
.. |example.png| image:: https://static-cdn.m5stack.com/mpy_docs/module/pm25/example.png
24+
25+
.. |pm25_core2_example.m5f2| raw:: html
26+
27+
<a
28+
href="https://uiflow2.m5stack.com/?example=https://raw.githubusercontent.com/m5stack/uiflow-micropython/develop/examples/module/pm25/pm25_core2_example.m5f2"
29+
target="_blank"
30+
>
31+
pm25_core2_example.m5f2
32+
</a>
33+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"version":"V2.0","versionNumber":"V2.1.8","type":"core2","components":[{"name":"screen","type":"screen","layer":0,"screenId":"builtin","screenName":"","id":"__core2_screen","createTime":1732601661387,"x":0,"y":0,"width":320,"height":240,"backgroundColor":"#222222","size":0,"isSelected":true},{"name":"title0","type":"title","layer":1,"screenId":"builtin","screenName":"","id":"caIN*glZAO@wx#Mk","createTime":1732609164861,"x":0,"y":0,"color":"#ffffff","backgroundColor":"#0000FF","text":"PM2.5 Module Example","textOffset":3,"font":"Widgets.FONTS.DejaVu18","isSelected":false,"width":321,"height":19},{"name":"label0","type":"label","layer":2,"screenId":"builtin","screenName":"","id":"s*y&gkqVV-6vRT6%","createTime":1732609221990,"x":1,"y":26,"color":"#ffffff","backgroundColor":"#222222","text":"PM1.0 Env:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false,"width":98,"height":20},{"name":"label1","type":"label","layer":3,"screenId":"builtin","screenName":"","id":"y5-yJ00!X+x0I0*X","createTime":1732609221990,"x":1,"y":52,"color":"#ffffff","backgroundColor":"#222222","text":"PM2.5 Env:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false,"width":98,"height":20},{"name":"label2","type":"label","layer":4,"screenId":"builtin","screenName":"","id":"uFIz+*lXQ1Lm8VbF","createTime":1732609221990,"x":1,"y":77,"color":"#ffffff","backgroundColor":"#222222","text":"PM10 Env:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false},{"name":"label3","type":"label","layer":5,"screenId":"builtin","screenName":"","id":"wPEekxYZHrKCFt5q","createTime":1732609287615,"x":1,"y":100,"color":"#ffffff","backgroundColor":"#222222","text":"Particles 0.3um:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false},{"name":"label4","type":"label","layer":6,"screenId":"builtin","screenName":"","id":"z95MRF6B^N7ewwxQ","createTime":1732609289872,"x":1,"y":124,"color":"#ffffff","backgroundColor":"#222222","text":"Particles 0.5um:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false},{"name":"label5","type":"label","layer":7,"screenId":"builtin","screenName":"","id":"uCGr%JNF0L8ES$SG","createTime":1732609292106,"x":1,"y":145,"color":"#ffffff","backgroundColor":"#222222","text":"Particles 1.0um:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false},{"name":"label6","type":"label","layer":8,"screenId":"builtin","screenName":"","id":"va23b2-`vOJF6tF#","createTime":1732609295307,"x":1,"y":167,"color":"#ffffff","backgroundColor":"#222222","text":"Particles 2.5um:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false},{"name":"label7","type":"label","layer":9,"screenId":"builtin","screenName":"","id":"f-gbC4l6eXubAKuK","createTime":1732609298386,"x":1,"y":189,"color":"#ffffff","backgroundColor":"#222222","text":"Particles 5um:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false},{"name":"label8","type":"label","layer":10,"screenId":"builtin","screenName":"","id":"hsh!Hj9@nGQBARIk","createTime":1732609298386,"x":1,"y":210,"color":"#ffffff","backgroundColor":"#222222","text":"Particles 10um:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false},{"name":"label9","type":"label","layer":1,"screenId":"builtin","screenName":"","id":"gpQlO_+Szbn21$vv","createTime":1732612821215,"x":191,"y":26,"color":"#ffffff","backgroundColor":"#222222","text":"Temp:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false,"width":53,"height":20},{"name":"label10","type":"label","layer":2,"screenId":"builtin","screenName":"","id":"hl`F631gEcKw^nn^","createTime":1732612825477,"x":191,"y":52,"color":"#ffffff","backgroundColor":"#222222","text":"Humi:","engine":"gfx","font":"Widgets.FONTS.DejaVu18","rotation":0,"isSelected":false,"width":53,"height":20}],"resources":[{"hardware":["hardware_button","hardware_pin_button","imu","speaker","touch","mic"]},{"module":["module_pm25"]}],"units":[],"hats":[],"bases":[],"i2cs":[],"blockly":"<block type=\"basic_on_setup\" id=\"setup_block\" deletable=\"false\" x=\"-410\" y=\"-70\"><mutation isBegin=\"true\"></mutation><field name=\"UPDATEOP\">true</field><statement name=\"FUNC\"><block type=\"system_m5_begin\" id=\"system_m5_begin\"><next><block type=\"module_pm25_init\" id=\"Fwc55)zGf}?7=Z`|8;1(\"><field name=\"NAME\">pm25_0</field><value name=\"UART\"><shadow type=\"module_pm25_id_option\" id=\"^z_}Mwpfx/|QCAKL4^T^\"><field name=\"VALUE\">2</field></shadow></value><next><block type=\"module_pm25_set_module_mode\" id=\"kFPlP{q?4G]}?Lpt!:]0\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_mode_option\" id=\"3~Cni!(q=9#=/jRRF=A}\"><field name=\"VALUE\">0</field></shadow></value><next><block type=\"module_pm25_set_module_power\" id=\"zf2zKq_9#2*AY^$N`RmE\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_state_option\" id=\"pIjlJ)}C$=%1y`nROHF|\"><field name=\"VALUE\">True</field></shadow></value><next><block type=\"text_print\" id=\"-FzIwqU~)EAQ+*OcV`z2\"><value name=\"TEXT\"><shadow type=\"text\" id=\"^W?KBXoE=p:5jK9|UmHL\"><field name=\"TEXT\">hello M5</field></shadow><block type=\"module_pm25_get_module_power\" id=\"CI]L1@R5op8)gT;u_*)9\"><field name=\"NAME\">pm25_0</field></block></value></block></next></block></next></block></next></block></next></block></statement></block><block type=\"basic_on_loop\" id=\"loop_block\" deletable=\"false\" x=\"-410\" y=\"190\"><mutation isUpdate=\"true\"></mutation><field name=\"UPDATEOP\">true</field><statement name=\"FUNC\"><block type=\"system_m5_update\" id=\"system_m5_update\"><next><block type=\"module_pm25_request_air_data\" id=\"/AF`]NGIbQH6ZbTx4$RB\"><field name=\"NAME\">pm25_0</field><next><block type=\"module_pm25_refresh_data\" id=\":=J#|9rstQk)N*{9bCTC\"><field name=\"NAME\">pm25_0</field><next><block type=\"label_set_text\" id=\"23Lb1yi0ZY?PqG+lYPqw\"><field name=\"NAME\">label0</field><value name=\"TEXT\"><shadow type=\"text\" id=\"e%m{;R[BNFz7H!msZTlJ\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"3(i|s)JuaOlaUfi6`g4e\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"SQta{0PVAxY.HK|4?_q*\"><field name=\"TEXT\">PM1.0 Env:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_pm_data\" id=\"5C`C[9r}1xazEy*yI%8=\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_data_option\" id=\"~?%{azxlwK9CsdBa0YQ7\"><field name=\"VALUE\">3</field></shadow></value></block></value></block></value><next><block type=\"label_set_text\" id=\"dTWp4J{(wO,y5x)Au_GZ\"><field name=\"NAME\">label1</field><value name=\"TEXT\"><shadow type=\"text\" id=\"e%m{;R[BNFz7H!msZTlJ\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"=yPFTMW{tHp;(yScsKjS\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"l11Tgi0fSK(DbitHS/Ip\"><field name=\"TEXT\">PM2.5 Env:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_pm_data\" id=\"uSC*vdQqpqah`y0NbH:%\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_data_option\" id=\"Rb,ge7yw}C:r`x8M[c-0\"><field name=\"VALUE\">4</field></shadow></value></block></value></block></value><next><block type=\"label_set_text\" id=\"SE8,*p}unY@bL-b}]c~0\"><field name=\"NAME\">label2</field><value name=\"TEXT\"><shadow type=\"text\" id=\"A0~XKU`_!|~L`A:]w0)2\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"~;6xK.E`@M~L+bxT^Mv1\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"%yJnp;W;BSJM`v;WSIS0\"><field name=\"TEXT\">PM10 Env:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_pm_data\" id=\"`VAPMcOAM03R0xTzkj}W\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_data_option\" id=\"?Ys`TLrgXu]Ry|qW}7r_\"><field name=\"VALUE\">5</field></shadow></value></block></value></block></value><next><block type=\"label_set_text\" id=\"lk(H/O0oi%`.?5[X*QJb\"><field name=\"NAME\">label3</field><value name=\"TEXT\"><shadow type=\"text\" id=\"?VNPu^oJeF8C{ou#k5%W\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"J#VwH#EKZ-lv6mqt~PrE\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"5Tbb,Mj]-U}8_t3w/$lo\"><field name=\"TEXT\">Particles 0.3um:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_pm_data\" id=\"=Y!Qx!i!mI0R.q8?r1DP\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_data_option\" id=\"Y+f@.$(:?2.WY7b!l*tu\"><field name=\"VALUE\">6</field></shadow></value></block></value></block></value><next><block type=\"label_set_text\" id=\"YD!9ACKG^9I#DRZX2+Uj\"><field name=\"NAME\">label4</field><value name=\"TEXT\"><shadow type=\"text\" id=\"VEm?]mXl);Li[AG9[ny+\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"VE/~0g75|76q)zwy}5w$\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"-$lI?wbvtcak?2Vw31Y_\"><field name=\"TEXT\">Particles 0.5um:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_pm_data\" id=\"oNBSA-X4A~[a6%jh56*b\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_data_option\" id=\"^?TS`XdplbKb-f7CL]xN\"><field name=\"VALUE\">7</field></shadow></value></block></value></block></value><next><block type=\"label_set_text\" id=\"m+x#b7~ens1I(@9c6*#(\"><field name=\"NAME\">label5</field><value name=\"TEXT\"><shadow type=\"text\" id=\"#6iQoj[$)/}*,)denMr(\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"XJ9Sas++VYqmEoCJ|Lg6\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"9Q#nI^^bxS9dAu7]J-X@\"><field name=\"TEXT\">Particles 1.0um:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_pm_data\" id=\"BEvG!(aMA5v?3zHF=AqV\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_data_option\" id=\"/Q86|G8?t99GF1-Ugs50\"><field name=\"VALUE\">8</field></shadow></value></block></value></block></value><next><block type=\"label_set_text\" id=\"vEnl#mHp-.T[uc0]q,BU\"><field name=\"NAME\">label6</field><value name=\"TEXT\"><shadow type=\"text\" id=\")`Fi^hX[H:gD*m$:]0;_\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"YY`:AG_Q|{tz1EM@_3c=\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"REZy9/Cz%rol$CLq6~!V\"><field name=\"TEXT\">Particles 2.5um:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_pm_data\" id=\"_91lV(JRQprC=#JjOjL~\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_data_option\" id=\"a!/a.VMPxxn=MS=eP=Yw\"><field name=\"VALUE\">9</field></shadow></value></block></value></block></value><next><block type=\"label_set_text\" id=\"=OXX;,+?%v`kUWhq_1Jp\"><field name=\"NAME\">label7</field><value name=\"TEXT\"><shadow type=\"text\" id=\"pAkdgW7Z//,tek_MfM~r\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"WWsN,$C-y/$+:{Q!B*AM\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"nHX]ZY/Z/PloK#vXo2.y\"><field name=\"TEXT\">Particles 5um:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_pm_data\" id=\".Ztr@!ZC[cywqO|_QMg0\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_data_option\" id=\"(77~OL{-J(8lYifBvC7)\"><field name=\"VALUE\">10</field></shadow></value></block></value></block></value><next><block type=\"label_set_text\" id=\"_T#%K_:M7nJjn(AJm$,*\"><field name=\"NAME\">label8</field><value name=\"TEXT\"><shadow type=\"text\" id=\"D2gc@r3={4=`8/RG6Y*/\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"]bQ)ZKj1#V@myrk8,uvQ\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"^]:t2o!;(XaBS~C:|IE?\"><field name=\"TEXT\">Particles 10um:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_pm_data\" id=\"lP$22x3pheX9{b^E8(~q\"><field name=\"NAME\">pm25_0</field><value name=\"VALUE\"><shadow type=\"module_pm25_data_option\" id=\"^E_@{=;_P)otEvu@*Qk?\"><field name=\"VALUE\">11</field></shadow></value></block></value></block></value><next><block type=\"label_set_text\" id=\"-%=;++kAX.d)rqZkpf!j\"><field name=\"NAME\">label9</field><value name=\"TEXT\"><shadow type=\"text\" id=\"D2gc@r3={4=`8/RG6Y*/\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\",X6s7YjE^fEvXSDX~d|{\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"6n+92bxPf7VIBR,4T3X9\"><field name=\"TEXT\">Temp:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_temperature\" id=\"iY$+%VM2wXy-4OTz)_1N\"><field name=\"NAME\">pm25_0</field></block></value></block></value><next><block type=\"label_set_text\" id=\"U+qgX9+lN#If8`pdqos|\"><field name=\"NAME\">label10</field><value name=\"TEXT\"><shadow type=\"text\" id=\"D2gc@r3={4=`8/RG6Y*/\"><field name=\"TEXT\">Label</field></shadow><block type=\"text_add_str\" id=\"O}L*(ATu~+wrg-Y1X=Zr\"><value name=\"VALUE1\"><shadow type=\"text\" id=\"vLl%uzpG5npBwI21PW6s\"><field name=\"TEXT\">Humi:</field></shadow></value><value name=\"VALUE2\"><block type=\"module_pm25_get_humidity\" id=\"G]k{#KYdtL%_7$M_xq+Q\"><field name=\"NAME\">pm25_0</field></block></value></block></value><next><block type=\"time_sleep_millisecond\" id=\"/-FiMsbX=[KLA;=W9mt6\"><value name=\"MS\"><shadow type=\"math_number\" id=\"$p):(9{/l|I1JMMf,FO:\"><mutation max=\"Infinity\" min=\"0\" precision=\"0\"></mutation><field name=\"NUM\">100</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></statement></block>","screen":[{"simulationName":"Built-in","type":"builtin","width":320,"height":240,"scale":0.78,"screenName":"","blockId":"","screenColorType":0,"id":"builtin","createTime":1732601661386}],"logicWhenNum":0,"customList":[]}

0 commit comments

Comments
 (0)