Hardware components | ||||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Project Introduction
Our Project, Smart Sourdough Starter, aims to develop a solution to allow users to maintain their sourdough more easily by applying what we have learnt in this module. By using this Smart Sourdough Starter, we can reduce the workload required when people ferment sourdough since it will monitor the sourdough for them.
Problem Statement
How can we design a device to monitor the status of the sourdough when it is fermenting?
Background Information
Sourdough is used to make a type of bread. Some people want to grow sourdough at home but they may not know how to do it properly or they are not able to keep track of it daily. Therefore we made this project to assist them in checking their sourdough to ensure it ferments correctly and safely. Sourdough is used to make sour bread and requires specific conditions to ferment properly. How it ferments will affect the quality of the bread and if not fermented properly, it can be wasted. Some people want to ferment sourdough at home but they may not know how to do it properly or they are not able to keep check of it daily. Therefore we made this project to assist them in checking their sourdough to ensure it ferments correctly and safely.
What happens when a sourdough starter is not taken care of:
Background Research
Optimal conditions for the sourdough starter to ferment are as follows:
Temperature: 21.1°C to 26.7°C, Humidity: 60% to 80%, Moisture: 60% to 80%, pH value: 3.5 to 5
A rough summary on the process of sourdough:
- Sourdough is a mix of one part flour and one part water.
- Sourdough needs to be “fed” daily with flour and water when fermentin
- Once it is done fermenting, it can be used to make bread by adding part of the sourdough starter to strongflour, water, and salt.
- The dough needs to be proved (left aside) in a container twice for about 3 hours before being baked.
Some common issues and mistakes when growing sourdough:
- Wrong temperature
- Excessive heat will kill the yeast. Insufficient heat will slow the fermentation.
- Sourdough neglected for too long
- Mold and harmful bacteria will develop if not maintained.
- Too acidic
- This leads to the starter being suffocated, and fermentation has become anaerobic.
- Wrong humidity
- Humidity affect the moisture of the dough and change its consistency. Excessive humidity can cause mold to grow on the dough.
Our Flowchart
M5Stack 1 (pH sensor)
PythonIt reads the input from the pH sensor then sends the data to M5Stack 2 via ESP-Now
from m5stack import *
from m5ui import *
from uiflow import *
import espnow
import wifiCfg
import time
from easyIO import *
setScreenColor(0x222222)
gradient = None
counter = None
data = None
current_month = None
current_day = None
first_day = None
first_month = None
my_4pH_voltage = None
my_7pH_Voltage = None
pH = None
yIntercept = None
voltsReading = None
wifiCfg.wlan_ap.active(True)
wifiCfg.wlan_sta.active(True)
espnow.init()
rectangle0 = M5Rect(0, 0, 320, 45, 0xFFFFFF, 0xFFFFFF)
label0 = M5TextBox(106, 12, "Data Read", lcd.FONT_DejaVu18, 0x000000, rotate=0)
label7 = M5TextBox(68, 70, "pH Value:", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
label5 = M5TextBox(142, 210, "Done", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label8 = M5TextBox(184, 70, "Text", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
label6 = M5TextBox(20, 134, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label2 = M5TextBox(61, 224, "^", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label3 = M5TextBox(244, 224, "^", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label1 = M5TextBox(50, 197, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label4 = M5TextBox(233, 197, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
espnow.add_peer('98:f4:ab:6b:9f:7d', id=1)
current_month = 1
current_day = 1
first_day = 1
first_month = 1
while not (btnB.isPressed()):
if btnA.isPressed():
first_day = first_day + 1
if first_day > 31:
first_day = 1
label1.setText(str(first_day))
wait(1)
elif btnC.isPressed():
first_month = first_month + 1
if first_month >= 5:
first_month = 1
label4.setText(str(first_month))
wait(1)
label6.setText(str((str('First Date of recording') + str(((str(first_day) + str(((str('/') + str(first_month))))))))))
wait(1)
espnow.send(id=1, data=str(({'first_day':first_day,'first_month':first_month})))
my_4pH_voltage = 0.715
my_7pH_Voltage = 0.536
pH = 0
gradient = (4 - 7) / (my_4pH_voltage - my_7pH_Voltage)
yIntercept = 7 - gradient * my_7pH_Voltage
while True:
while not (btnB.isPressed()):
if btnA.isPressed():
current_day = current_day + 1
if current_day >= 32 or current_day < first_day and current_month <= current_month:
current_day = first_day
label1.setText(str(current_day))
wait(1)
elif btnC.isPressed():
current_month = current_month + 1
if current_month >= 4 or current_day < first_day and current_month <= current_month:
current_month = current_month
label4.setText(str(current_month))
wait(1)
label6.setText(str((str('Current date of recording') + str(((str(current_day) + str(((str('/') + str(current_month))))))))))
voltsReading = 0
for count in range(6):
voltsReading = (analogRead(36)) / 1000 + voltsReading
voltsReading = voltsReading / 6
pH = gradient * voltsReading + yIntercept
data = {'pH':pH,'current_month':current_month,'current_day':current_day}
label8.setText(str(pH))
espnow.send(id=1, data=str(data))
wait(3)
wait_ms(2)
M5Stack 2 (Reciever)
PythonIt recieves readings and data from M5Stack 2 and displays the data for the user
import math
from m5stack import *
from m5ui import *
from uiflow import *
import espnow
import wifiCfg
import unit
import json
BACKGROUND_COLOR = 0x59b2de
setScreenColor(BACKGROUND_COLOR)
wifiCfg.wlan_ap.active(True)
wifiCfg.wlan_sta.active(True)
espnow.init()
tempLabel = M5TextBox(6, 68, "Daily Temperature:", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
tempValLabel = M5TextBox(210, 68, "0", lcd.FONT_UNICODE, 0xFFFFFF, rotate=0)
phLabel = M5TextBox(14, 180, "Daily pH Value:", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
phValLabel = M5TextBox(176, 180, "0", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
humidityLabel = M5TextBox(14, 103, "Daily Humidity:", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
humidityValLabel = M5TextBox(187, 103, "0", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
moistureLabel = M5TextBox(14, 140, "Daily Moisture:", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
moistureValLabel = M5TextBox(176, 140, "0", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
titleBorder = M5Rect(0, 0, 320, 45, 0xFFFFFF, 0xffffff)
title = M5TextBox(56, 9, "Daily Conditions", lcd.FONT_DejaVu24, 0xff0000, rotate=0)
dailyMsgLabel = M5TextBox(24, 119, "text", lcd.FONT_DejaVu18, 0x000000, rotate=0)
buttonB_label = M5TextBox(129, 224, "Message", lcd.FONT_Default, 0xFFFFFF, rotate=0)
buttonA_label = M5TextBox(50, 224, "Daily", lcd.FONT_Default, 0xFFFFFF, rotate=0)
huge_box = M5Rect(0, 0, 320, 250, BACKGROUND_COLOR, BACKGROUND_COLOR)
menu_list = {
"HOME": [
titleBorder,
title,
tempLabel,
tempValLabel,
phLabel,
phValLabel,
humidityLabel,
humidityValLabel,
moistureLabel,
moistureValLabel,
buttonA_label,
buttonB_label,
],
"MESSAGE": [
dailyMsgLabel,
buttonA_label,
buttonB_label,
]
}
TOTAL_TEMP = 0
TOTAL_HUMID = 0
TOTAL_PH = 0
TOTAL_MOIST = 0
TOTAL_DAY = 1
bad = False
DATA_RECEIVED = None
def show_menu(menuName: str):
global CURRENT_MENU, TOTAL_PH, TOTAL_TEMP, TOTAL_MOIST, TOTAL_HUMID
if CURRENT_MENU == menuName:
return
huge_box.hide()
for menuItem in menu_list[menuName]:
menuItem.show()
if type(DATA_RECEIVED)==type({}):
if menuName == "HOME":
updateValLabels("AVERAGE")
elif menuName == "MESSAGE":
if bad:
dailyMsgLabel.setText("Something's wrong! Check Data!")
else:
dailyMsgLabel.setText("Everything is doing fine")
CURRENT_MENU = menuName
CURRENT_MENU = ""
show_menu("HOME")
def updateValLabels(updateWith: str):
def ave(val):
return round(val/TOTAL_DAY, 2)
if updateWith == "AVERAGE":
phValLabel.setText(str(ave(TOTAL_PH)))
moistureValLabel.setText(str(ave(TOTAL_MOIST)))
humidityValLabel.setText(str(ave(TOTAL_HUMID)) + "%")
tempValLabel.setText(str(ave(TOTAL_TEMP)) + "C")
valThresholds = [ #ph
(60, 80),
(-1, 1000),
(3.5, 6),#humid
(21.1, 30), #temp
] #hmoist
def recv_cb(_):
global mac, DATA_RECEIVED, TOTAL_DAY, TOTAL_PH, TOTAL_TEMP, TOTAL_HUMID, TOTAL_MOIST, bad
mac, _, DATA_RECEIVED = espnow.recv_data(encoder='str')
DATA_RECEIVED = DATA_RECEIVED.replace("'", '"')
DATA_RECEIVED = json.loads(DATA_RECEIVED)
counter = 0
bad = False
for key in DATA_RECEIVED:
if key == "total time":
continue
if not (DATA_RECEIVED[key] > valThresholds[counter][0] and DATA_RECEIVED[key] < valThresholds[counter][1]):
bad = True
break
counter += 1
if bad==False:
rgb.setColorAll(0x00FF00)
else:
rgb.setColorAll(0xFF0000)
TOTAL_TEMP += DATA_RECEIVED["temp"]
TOTAL_PH += DATA_RECEIVED["pH"]
TOTAL_HUMID += DATA_RECEIVED["humid"]
TOTAL_MOIST += DATA_RECEIVED["moist"]
TOTAL_DAY = DATA_RECEIVED["total time"]
if CURRENT_MENU == "HOME":
updateValLabels("AVERAGE")
def showHome():
show_menu("HOME")
def showMessage():
show_menu("MESSAGE")
espnow.recv_cb(recv_cb)
btnA.wasPressed(showHome)
btnB.wasPressed(showMessage)
M5Stack 3 (Earth&ENV sensor)
PythonIt reads the input from the Earth and Env sensors as well as recieves data from M5Stack 1 and sends the data to M5Stack 3 via ESP-Now
from m5stack import *
from m5ui import *
from uiflow import *
import espnow
import wifiCfg
import json
import unit
setScreenColor(0x222222)
env3_0 = unit.get(unit.ENV3, unit.PORTA)
earth_0 = unit.get(unit.EARTH, unit.PORTB)
mac = None
Data_send = None
total_days = None
current_month = None
current_day = None
first_day = None
months = None
first_month = None
wifiCfg.wlan_ap.active(True)
wifiCfg.wlan_sta.active(True)
espnow.init()
rectangle0 = M5Rect(0, 0, 320, 45, 0xFFFFFF, 0xFFFFFF)
label5 = M5TextBox(16, 224, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label1 = M5TextBox(16, 59, "Mac Address:", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label2 = M5TextBox(16, 88, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label3 = M5TextBox(12, 134, "Data Sent:", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label4 = M5TextBox(12, 167, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label0 = M5TextBox(126, 14, "Data Sent", lcd.FONT_Default, 0x000000, rotate=0)
def recv_cb(_):
global mac,Data_send,total_days,current_month,current_day,first_day,months,first_month
mac, _, Data_send = espnow.recv_data(encoder='str')
total_days = 0
Data_send = Data_send.replace("'", '"')
Data_send = json.loads(Data_send)
if len(Data_send) <= 2:
first_day = Data_send['first_day']
first_month = Data_send['first_month']
else:
current_day = Data_send['current_day']
current_month = Data_send['current_month']
label5.setText(str(Data_send))
if current_day != 0:
if first_month != current_month:
while not first_month == current_month:
current_month = current_month - 1
total_days = (months[current_month]) + total_days
total_days = current_day + total_days
elif first_month == current_month:
total_days = current_day
total_days = total_days - first_day
Data_send = {'pH':(Data_send['pH']),'humid':(env3_0.humidity),'temp':(env3_0.temperature),'moist':(earth_0.analogValue),'total time':total_days}
espnow.send(id=1, data=str(Data_send))
label4.setText(str(Data_send))
pass
espnow.recv_cb(recv_cb)
espnow.add_peer('f0:08:d1:c7:31:59', id=1)
label2.setText(str(espnow.get_mac_addr()))
current_month = 0
current_day = 0
months = {1:31,2:28,3:31,0:0}
{"components":[{"id":"____screen","createTime":1675817385628,"name":"screen","x":0,"y":0,"width":320,"height":240,"backgroundColor":"#222222","backgroundImage":"","type":"screen"},{"id":"____buttonA","createTime":1675817385628,"name":"ButtonA","buttonIndex":0,"x":35,"y":216,"width":64,"height":24,"text":"ButtonA","visibility":false,"type":"button"},{"id":"____buttonB","createTime":1675817385628,"name":"ButtonB","buttonIndex":1,"x":125,"y":216,"width":64,"height":24,"text":"ButtonB","visibility":false,"type":"button"},{"id":"____buttonC","createTime":1675817385628,"name":"ButtonC","buttonIndex":2,"x":215,"y":216,"width":64,"height":24,"text":"ButtonC","visibility":false,"type":"button"},{"id":"W*iwM+fcy44$Ofc*","createTime":1675817406127,"name":"rectangle0","x":0,"y":0,"width":320,"height":45,"borderColor":"#FFFFFF","backgroundColor":"#FFFFFF","type":"rectangle","layer":4},{"id":"zM!bjiX5n#QuOz!Y","createTime":1675817426303,"isCoreTwo":false,"isPaper":false,"name":"label0","x":106,"y":12,"color":"#000000","text":"Data Read","font":"lcd.FONT_DejaVu18","rotation":0,"type":"label","layer":5},{"id":"5bM&uY+D*u5WFvvr","createTime":1675817480404,"isCoreTwo":false,"isPaper":false,"name":"label7","x":68,"y":70,"color":"#FFFFFF","text":"pH Value:","font":"lcd.FONT_DejaVu18","rotation":0,"type":"label","layer":12},{"id":"jHvK_uhBb#UO5qaH","createTime":1675817480404,"isCoreTwo":false,"isPaper":false,"name":"label8","x":184,"y":70,"color":"#FFFFFF","text":"Text","font":"lcd.FONT_DejaVu18","rotation":0,"type":"label","layer":13},{"id":"-2piaTspPefi$uw#","createTime":1675866304604,"isCoreTwo":false,"isPaper":false,"name":"label1","x":50,"y":197,"color":"#FFFFFF","text":"Text","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":26},{"id":"Z`z+sb20uH4MDO3k","createTime":1675867768832,"isCoreTwo":false,"isPaper":false,"name":"label4","x":233,"y":197,"color":"#FFFFFF","text":"Text","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":29},{"id":"mr!JKBXEF+w%b`mx","createTime":1675885624809,"isCoreTwo":false,"isPaper":false,"name":"label5","x":142,"y":210,"color":"#FFFFFF","text":"Done","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":12},{"id":"#dF$QN4azBi+5wqc","createTime":1675885675620,"isCoreTwo":false,"isPaper":false,"name":"label6","x":20,"y":134,"color":"#FFFFFF","text":"Text","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":13},{"id":"A+kA2bIoxmK00ngC","createTime":1675886979384,"isCoreTwo":false,"isPaper":false,"name":"label2","x":61,"y":224,"color":"#FFFFFF","text":"^","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":18},{"id":"1RGlDr0Iv=Xkg0*=","createTime":1675886992001,"isCoreTwo":false,"isPaper":false,"name":"label3","x":244,"y":224,"color":"#FFFFFF","text":"^","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":19}],"type":"fire","versions":"Beta","units":[],"hats":[],"blockly":"<variables><variable id=\"m]5dUxJ+Y{F:F*vd=(0,\">gradient</variable><variable id=\"?s0aU/_AF,:wPZJ^-59b\">counter</variable><variable id=\"CXCfadItPvi1[]:/FDN3\">data</variable><variable id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</variable><variable id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</variable><variable id=\"reut22T~Zmli@+XBPzH.\">first_day</variable><variable id=\"=U|l_o(Ls6dvKY}1M4n[\">first_month</variable><variable id=\"D[LVOSyFVO!F3w0p%wD:\">4pH_voltage</variable><variable id=\"a6t+hA/0+tk}-H0D|PUd\">7pH_Voltage</variable><variable id=\"jnXn[.Dhm?*Qa[Cl/SeZ\">pH</variable><variable id=\"Ta[L5!0/5i@G9T3[SLmk\">yIntercept</variable><variable id=\"LGGq^8)J-FF69@]s4iLH\">voltsReading</variable></variables><block type=\"basic_on_setup\" id=\"setup_block\" deletable=\"false\" x=\"351\" y=\"360\"><next><block type=\"espnow_add_peer\" id=\",Zf?2]+~!bW8e3UCza^`\"><field name=\"MAC\">98:f4:ab:6b:9f:7d</field><field name=\"ID\">1</field><next><block type=\"variables_set\" id=\"UT#M2/43#HZxxO%!xgsd\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field><value name=\"VALUE\"><block type=\"math_number\" id=\"l(O;p~j/1UzW3Kr)k3--\"><field name=\"NUM\">1</field></block></value><next><block type=\"variables_set\" id=\"Wtn0nyA~Dps`J?XkY1RG\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field><value name=\"VALUE\"><block type=\"math_number\" id=\"AU7qx9R|2bWas*K12,47\"><field name=\"NUM\">1</field></block></value><next><block type=\"variables_set\" id=\"2N*$~Wz`R|3/,;@MOa)Y\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field><value name=\"VALUE\"><block type=\"math_number\" id=\"Q*(SwILh6Q8LmlNfeSL@\"><field name=\"NUM\">1</field></block></value><next><block type=\"variables_set\" id=\"ntAb:Io(MflIXMtpgk]U\"><field name=\"VAR\" id=\"=U|l_o(Ls6dvKY}1M4n[\">first_month</field><value name=\"VALUE\"><block type=\"math_number\" id=\"@d]/|9;V_FJWCDM1ZR(A\"><field name=\"NUM\">1</field></block></value><next><block type=\"controls_whileUntil\" id=\"W-LCP:QQ;^0PQZ?L#a:[\"><field name=\"MODE\">UNTIL</field><value name=\"BOOL\"><block type=\"button_ispressed\" id=\"@Yk,Y0sq|#1~P.69zm`R\"><field name=\"BUTTON\">B</field><field name=\"EVENT\">isPressed</field></block></value><statement name=\"DO\"><block type=\"controls_if\" id=\"kYdMd]~Q}[Uv08bo,;zz\"><mutation elseif=\"1\"></mutation><value name=\"IF0\"><block type=\"button_ispressed\" id=\"+I4vr+$krC}31qXl@5c)\"><field name=\"BUTTON\">A</field><field name=\"EVENT\">isPressed</field></block></value><statement name=\"DO0\"><block type=\"variables_set\" id=\"V0ZRJQ2A#ui|;Xffz-G.\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"wd=pGWAp;svRpbiGO(KN\"><field name=\"OP\">ADD</field><value name=\"A\"><block type=\"variables_get\" id=\"0FEw3Q+?+oM,zltZ3sW-\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"|~Rpi:ik4V_Z?fRx|pSh\"><field name=\"NUM\">1</field></block></value></block></value><next><block type=\"controls_if\" id=\"j|r5F4v)SaY,L]a]31;*\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"]Jw]ZCg{gj,e/[;VMwnc\"><field name=\"OP\">GT</field><value name=\"A\"><block type=\"variables_get\" id=\"DT:NM=![s85NU4w6j_HD\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"_6k2RIlNjw.G28r[OzV=\"><field name=\"NUM\">31</field></block></value></block></value><statement name=\"DO0\"><block type=\"variables_set\" id=\"xhm$KIL${WB_fzxE1p)B\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field><value name=\"VALUE\"><block type=\"math_number\" id=\"5aS2,0ySXuK10fM61q;4\"><field name=\"NUM\">1</field></block></value></block></statement><next><block type=\"label_set_text\" id=\"2jRbJ.,L.yo,qy*;EDN#\"><field name=\"COMPONENT\">label1</field><value name=\"TEXT\"><shadow type=\"text\" id=\"7*J;=Rf-X8bN[qFu:|~P\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"GY94-X3+-q_U4{^6;7*y\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field></block></value><next><block type=\"timer_delay\" id=\"WKKB.*6UdU]wRHVzPp/-\"><value name=\"DELAY\"><shadow type=\"math_number\" id=\"([h$t280O}BU.239N;0)\"><field name=\"NUM\">1</field></shadow></value></block></next></block></next></block></next></block></statement><value name=\"IF1\"><block type=\"button_ispressed\" id=\"(svPes}M8Be^xby-Y9eF\"><field name=\"BUTTON\">C</field><field name=\"EVENT\">isPressed</field></block></value><statement name=\"DO1\"><block type=\"variables_set\" id=\"*[dzho-4l^(Mun$q!LdJ\"><field name=\"VAR\" id=\"=U|l_o(Ls6dvKY}1M4n[\">first_month</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"]]5yM$deoFsVforj!Hij\"><field name=\"OP\">ADD</field><value name=\"A\"><block type=\"variables_get\" id=\"|,^Oh#O;VTsiO]y5W,ma\"><field name=\"VAR\" id=\"=U|l_o(Ls6dvKY}1M4n[\">first_month</field></block></value><value name=\"B\"><block type=\"math_number\" id=\";;,z,2wC8Nau5Z?-vb:$\"><field name=\"NUM\">1</field></block></value></block></value><next><block type=\"controls_if\" id=\"Mfgpqy^zPZrj)vUjJF#u\"><value name=\"IF0\"><block type=\"logic_compare\" id=\":/I}cIFl{GasqKH#B6H{\"><field name=\"OP\">GTE</field><value name=\"A\"><block type=\"variables_get\" id=\"UY;^1/=(bIq9SNv1NVaB\"><field name=\"VAR\" id=\"=U|l_o(Ls6dvKY}1M4n[\">first_month</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"2G[)/ZoOB`EELaU6o$D5\"><field name=\"NUM\">5</field></block></value></block></value><statement name=\"DO0\"><block type=\"variables_set\" id=\"`Sm2BRIW1P`2uvSC5F_$\"><field name=\"VAR\" id=\"=U|l_o(Ls6dvKY}1M4n[\">first_month</field><value name=\"VALUE\"><block type=\"math_number\" id=\"EWI6NLUEna@Bkc3~Z/|T\"><field name=\"NUM\">1</field></block></value></block></statement><next><block type=\"label_set_text\" id=\"mceg]NE3nJ3xes:PEs[!\"><field name=\"COMPONENT\">label4</field><value name=\"TEXT\"><shadow type=\"text\" id=\".^XKL*7GkPoJbTV+o33_\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"Dj$MDoq*V1tLRm{B]j_H\"><field name=\"VAR\" id=\"=U|l_o(Ls6dvKY}1M4n[\">first_month</field></block></value><next><block type=\"timer_delay\" id=\"Q(4!Zgg7BT`0j)dx45+:\"><value name=\"DELAY\"><shadow type=\"math_number\" id=\"*;EF2#q2;,.cH{9;_T.f\"><field name=\"NUM\">1</field></shadow></value></block></next></block></next></block></next></block></statement><next><block type=\"label_set_text\" id=\"VQy|;Z!r8.#P:r[U[8NK\"><field name=\"COMPONENT\">label6</field><value name=\"TEXT\"><shadow type=\"text\" id=\";.p=CO5ogSdr[j*$x_a-\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"text_add\" id=\"wLkE:CT66]@mv/CXYmlu\"><value name=\"arg0\"><shadow type=\"text\" id=\"D_w]cBgmuHsT-5CSsV*M\"><field name=\"TEXT\">First Date of recording</field></shadow></value><value name=\"arg1\"><block type=\"text_add\" id=\"S?;MVX`*h)E4])mUIo`t\"><value name=\"arg0\"><shadow type=\"text\" id=\"lRqSbL;8(80_vw4t$m$i\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\"?:zbNync@}x!$2DNWW[e\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field></block></value><value name=\"arg1\"><block type=\"text_add\" id=\"!1^u|J~19TYp?d2%n$W[\"><value name=\"arg0\"><shadow type=\"text\" id=\"cF9A-)10B7uQPkw`hNeF\"><field name=\"TEXT\">/</field></shadow></value><value name=\"arg1\"><block type=\"variables_get\" id=\"t#g5e2-MNqTC_lgX%ThA\"><field name=\"VAR\" id=\"=U|l_o(Ls6dvKY}1M4n[\">first_month</field></block></value></block></value></block></value></block></value></block></next></block></statement><next><block type=\"timer_delay\" id=\"pRVFqaBBpsM{6gb]Y6^@\"><value name=\"DELAY\"><shadow type=\"math_number\" id=\"UYofkW.o$h}$h.qTyuti\"><field name=\"NUM\">1</field></shadow></value><next><block type=\"espnow_send\" id=\"$t8[-Qwe/@c`?6de])Zs\"><field name=\"ID\">1</field><value name=\"DATA\"><shadow type=\"text\" id=\",pk;$2Unw[Q{P?1@BBG3\"><field name=\"TEXT\"></field></shadow><block type=\"map_on_loop\" id=\"fnuIs)`4;.XwDM3,[rmD\"><statement name=\"LOOP\"><block type=\"create_map_key\" id=\"5cnF5K25DNmE}7Nu!@p(\"><value name=\"key\"><block type=\"text\" id=\"GF9+gxeaKvQf[#[$On9F\"><field name=\"TEXT\">first_day</field></block></value><value name=\"value\"><block type=\"variables_get\" id=\"RLiuCtzq8S~}*=tM34tD\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field></block></value><next><block type=\"create_map_key\" id=\"BAa??nBxtCjT@hu?-L}$\"><value name=\"key\"><block type=\"text\" id=\"I?epAnhF]5xv$;6M7:hS\"><field name=\"TEXT\">first_month</field></block></value><value name=\"value\"><block type=\"variables_get\" id=\"Gu1L{!G$CJ8id;*wN:;X\"><field name=\"VAR\" id=\"=U|l_o(Ls6dvKY}1M4n[\">first_month</field></block></value></block></next></block></statement></block></value><next><block type=\"variables_set\" id=\"L)a2-l7vt3lfv7|Jpyj-\"><field name=\"VAR\" id=\"D[LVOSyFVO!F3w0p%wD:\">4pH_voltage</field><value name=\"VALUE\"><block type=\"math_number\" id=\":5({QGTM%K1)zJB,L*NJ\"><field name=\"NUM\">0.715</field></block></value><next><block type=\"variables_set\" id=\"czMGbA5jT9~Y%krqk$[2\"><field name=\"VAR\" id=\"a6t+hA/0+tk}-H0D|PUd\">7pH_Voltage</field><value name=\"VALUE\"><block type=\"math_number\" id=\"*HNV6SMviS17.B{^;]!K\"><field name=\"NUM\">0.536</field></block></value><next><block type=\"variables_set\" id=\"jFl$8mc9iQw80~`KkG64\"><field name=\"VAR\" id=\"jnXn[.Dhm?*Qa[Cl/SeZ\">pH</field><value name=\"VALUE\"><block type=\"math_number\" id=\"PXrGC`Ktngkv5jvJxnI}\"><field name=\"NUM\">0</field></block></value><next><block type=\"variables_set\" id=\"NCp.BgFAqZDR8B={01Vg\"><field name=\"VAR\" id=\"m]5dUxJ+Y{F:F*vd=(0,\">gradient</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"oAPhW:cYNn}@q/wz2(OP\"><field name=\"OP\">DIVIDE</field><value name=\"A\"><block type=\"math_arithmetic\" id=\"vL].^e@suP/NT}~KY[jr\"><field name=\"OP\">MINUS</field><value name=\"A\"><block type=\"math_number\" id=\"{I%W/*r:ieIb{O~!-~}n\"><field name=\"NUM\">4</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"TPZ8$9fZr)PD0Wf}1kRy\"><field name=\"NUM\">7</field></block></value></block></value><value name=\"B\"><block type=\"math_arithmetic\" id=\"lqT7C]1e6fR#FAK[fG)s\"><field name=\"OP\">MINUS</field><value name=\"A\"><block type=\"variables_get\" id=\"lR0?:{Sw`;XDk^6e/HW*\"><field name=\"VAR\" id=\"D[LVOSyFVO!F3w0p%wD:\">4pH_voltage</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"o1HdZrbp@9,y!Dwfim$_\"><field name=\"VAR\" id=\"a6t+hA/0+tk}-H0D|PUd\">7pH_Voltage</field></block></value></block></value></block></value><next><block type=\"variables_set\" id=\"+a5A]tCH::V4+Up}Goq7\"><field name=\"VAR\" id=\"Ta[L5!0/5i@G9T3[SLmk\">yIntercept</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"fSVP,PiTx2:*B!WUg^G)\"><field name=\"OP\">MINUS</field><value name=\"A\"><block type=\"math_number\" id=\"0qFUXDA1T;l)BZwn%Sn4\"><field name=\"NUM\">7</field></block></value><value name=\"B\"><block type=\"math_arithmetic\" id=\"Oh,g5.3ss_fpF.zBu{{U\"><field name=\"OP\">MULTIPLY</field><value name=\"A\"><block type=\"variables_get\" id=\"^C{7bRcRUk{D7gT+MdP(\"><field name=\"VAR\" id=\"m]5dUxJ+Y{F:F*vd=(0,\">gradient</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"t%=Q^2Br1TcodMZ;WQWX\"><field name=\"VAR\" id=\"a6t+hA/0+tk}-H0D|PUd\">7pH_Voltage</field></block></value></block></value></block></value><next><block type=\"basic_on_loop\" id=\"6B}?8N8Dd6Mgt|+pIdmY\"><statement name=\"LOOP\"><block type=\"controls_whileUntil\" id=\"S$~b/`?_[IrHD]!PX;iT\"><field name=\"MODE\">UNTIL</field><value name=\"BOOL\"><block type=\"button_ispressed\" id=\"pdWM4;9Z/@%ohrj4?H._\"><field name=\"BUTTON\">B</field><field name=\"EVENT\">isPressed</field></block></value><statement name=\"DO\"><block type=\"controls_if\" id=\"pS9qQdT,PMFg/~*00xjx\"><mutation elseif=\"1\"></mutation><value name=\"IF0\"><block type=\"button_ispressed\" id=\"pM_oWCDcN]YGV{hvmW0D\"><field name=\"BUTTON\">A</field><field name=\"EVENT\">isPressed</field></block></value><statement name=\"DO0\"><block type=\"variables_set\" id=\"D(bN/~Qfd3;2e^91XnQ:\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"Q;y`}S:Fq$-o(70PpBUT\"><field name=\"OP\">ADD</field><value name=\"A\"><block type=\"variables_get\" id=\",E:b0Z=)jqF=*Th.9={g\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"Lkue(7|45T@e9(!HzpF9\"><field name=\"NUM\">1</field></block></value></block></value><next><block type=\"controls_if\" id=\"C3wX;ezo1tc2O*C.w|ah\"><value name=\"IF0\"><block type=\"logic_operation\" id=\"ZN[+3bPFH.O,L//4sOOn\"><field name=\"OP\">OR</field><value name=\"A\"><block type=\"logic_compare\" id=\"L,1HoBMd#+L}s1B}0zzS\"><field name=\"OP\">GTE</field><value name=\"A\"><block type=\"variables_get\" id=\"o}U~!?QD`qj(th~]xDPo\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"qePhC#dy^jP5PoGrLm;N\"><field name=\"NUM\">32</field></block></value></block></value><value name=\"B\"><block type=\"logic_operation\" id=\"SR[$,jg3v3j4@O(zpMZM\"><field name=\"OP\">AND</field><value name=\"A\"><block type=\"logic_compare\" id=\"^A:8xv}dTC;F-N(#S4Ft\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"e~pzN%+gZ8}yKx|?a4?N\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"+dJmVZwIs#Ax5Cy!A=;A\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field></block></value></block></value><value name=\"B\"><block type=\"logic_compare\" id=\"2E9A[mewbA4,HIA5Nt2+\"><field name=\"OP\">LTE</field><value name=\"A\"><block type=\"variables_get\" id=\"l,t2YFG%k`_y0qFOccdQ\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"4Xp.7DW8tsKUMi),6036\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value></block></value></block></value></block></value><statement name=\"DO0\"><block type=\"variables_set\" id=\"/ib@*2E!f+ws4gEIMVkt\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field><value name=\"VALUE\"><block type=\"variables_get\" id=\"H!FE[4x7J{s/PLTR0Mhg\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field></block></value></block></statement><next><block type=\"label_set_text\" id=\"T!zwpQk2Eix~Z.ypAt$A\"><field name=\"COMPONENT\">label1</field><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"_,3+D0RPg%Nj/flxOVV#\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field></block></value><next><block type=\"timer_delay\" id=\"2eKpMYWbQxqCKZ@C$pol\"><value name=\"DELAY\"><shadow type=\"math_number\" id=\"l#oSh$kcm__6_=bopvce\"><field name=\"NUM\">1</field></shadow></value></block></next></block></next></block></next></block></statement><value name=\"IF1\"><block type=\"button_ispressed\" id=\"i6D,Lsqs%MJ!.s;+La~U\"><field name=\"BUTTON\">C</field><field name=\"EVENT\">isPressed</field></block></value><statement name=\"DO1\"><block type=\"variables_set\" id=\"P6|A5zimS|Y+ONTLY4FN\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"8{,7LXn1Kl]A_AwWCRcN\"><field name=\"OP\">ADD</field><value name=\"A\"><block type=\"variables_get\" id=\"C[DtQLLC;Rve)}P7P1;W\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"]kzNeyXLuuM5(fUH+_#p\"><field name=\"NUM\">1</field></block></value></block></value><next><block type=\"controls_if\" id=\"WUdE#kJT7O^e-`#zE4GV\"><value name=\"IF0\"><block type=\"logic_operation\" id=\"yGs?*AW2lvjOf@ZPBj,7\"><field name=\"OP\">OR</field><value name=\"A\"><block type=\"logic_compare\" id=\"t$Bh$G6@z9n*Fb3R:4R0\"><field name=\"OP\">GTE</field><value name=\"A\"><block type=\"variables_get\" id=\"AU=KCd2vWy{hbW3k+HDM\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"Qy,g[uCmWK[H{J3:LvPK\"><field name=\"NUM\">4</field></block></value></block></value><value name=\"B\"><block type=\"logic_operation\" id=\"e/Ar,-gG}hqZWh-M%e5`\"><field name=\"OP\">AND</field><value name=\"A\"><block type=\"logic_compare\" id=\"VCb)h]|JHEhHtev@R/D@\"><field name=\"OP\">LT</field><value name=\"A\"><block type=\"variables_get\" id=\"`SzG|9sYsF8~-g$wVHY4\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"jbMi?CnuF:1Tw6B/N/_D\"><field name=\"VAR\" id=\"reut22T~Zmli@+XBPzH.\">first_day</field></block></value></block></value><value name=\"B\"><block type=\"logic_compare\" id=\"gtU9:^|T(9?^)0gF2:3S\"><field name=\"OP\">LTE</field><value name=\"A\"><block type=\"variables_get\" id=\"|zKsB%]IA/*lxz}T{0vm\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"Cq?$6G(r~.8uQyJw_e/*\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value></block></value></block></value></block></value><statement name=\"DO0\"><block type=\"variables_set\" id=\"S$N#Dy/Ey/VZENmLW(,?\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field><value name=\"VALUE\"><block type=\"variables_get\" id=\"%tN-C%pchyO80l:.FR*,\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value></block></statement><next><block type=\"label_set_text\" id=\"LwcEf$BToov/?4HLlL^6\"><field name=\"COMPONENT\">label4</field><value name=\"TEXT\"><shadow type=\"text\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"_!jJW8e+2TGHSC-iN5[7\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value><next><block type=\"timer_delay\" id=\"ZE;7Qa0(XXw+bx/d)+DL\"><value name=\"DELAY\"><shadow type=\"math_number\" id=\"b6wRE[aH8DoxSBqjDpiu\"><field name=\"NUM\">1</field></shadow></value></block></next></block></next></block></next></block></statement><next><block type=\"label_set_text\" id=\"c6RW8XR(QOFgkF?p9uxH\"><field name=\"COMPONENT\">label6</field><value name=\"TEXT\"><shadow type=\"text\" id=\"{th3S6tz|0:v;R])x{rA\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"text_add\" id=\"utpEM+.%6%!=hSi$t38*\"><value name=\"arg0\"><shadow type=\"text\" id=\"YGv001h./k52D!=z?`UV\"><field name=\"TEXT\">Current date of recording</field></shadow></value><value name=\"arg1\"><block type=\"text_add\" id=\";ei$MZ*`Bpi^{`yRB%CP\"><value name=\"arg0\"><shadow type=\"text\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\"U^/,}%=!,$NvFm^LkQXG\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field></block></value><value name=\"arg1\"><block type=\"text_add\" id=\"{Qn|Y$;PlrAJ=5.DDfwd\"><value name=\"arg0\"><shadow type=\"text\" id=\"v]gVzgzzHb3J?uVaFzH|\"><field name=\"TEXT\">/</field></shadow></value><value name=\"arg1\"><block type=\"variables_get\" id=\"Iu6FigH2$%LnsRlsLOnS\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value></block></value></block></value></block></value></block></next></block></statement><next><block type=\"variables_set\" id=\"oio:D;a@4@A!$^Wh;CCV\"><field name=\"VAR\" id=\"LGGq^8)J-FF69@]s4iLH\">voltsReading</field><value name=\"VALUE\"><block type=\"math_number\" id=\"!~/QjdQmZMTMI05TV_aW\"><field name=\"NUM\">0</field></block></value><next><block type=\"controls_repeat\" id=\"SAAJrE]YlTS#cP2@/@K|\"><field name=\"TIMES\">6</field><statement name=\"DO\"><block type=\"variables_set\" id=\"nW4BoEbd]A|YVX?FQ~|i\"><field name=\"VAR\" id=\"LGGq^8)J-FF69@]s4iLH\">voltsReading</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"p(3igptK@$N[Yi}GLX/e\"><field name=\"OP\">ADD</field><value name=\"A\"><block type=\"math_arithmetic\" id=\"{npULO[ib1*=@l5=W#;$\"><field name=\"OP\">DIVIDE</field><value name=\"A\"><block type=\"pins_analog_read\" id=\"WcgH#}wUVnzss~S]:IzA\"><field name=\"PIN\">36</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"qa[!pI,=ttFf$dO.8q#4\"><field name=\"NUM\">1000</field></block></value></block></value><value name=\"B\"><block type=\"variables_get\" id=\"{Sjo`|CN[/}g=y}isOM2\"><field name=\"VAR\" id=\"LGGq^8)J-FF69@]s4iLH\">voltsReading</field></block></value></block></value></block></statement><next><block type=\"variables_set\" id=\"4]VZFg)]eCJ,@z$+-f1d\"><field name=\"VAR\" id=\"LGGq^8)J-FF69@]s4iLH\">voltsReading</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"uE2C;_]kAPr5|B0Y)S|)\"><field name=\"OP\">DIVIDE</field><value name=\"A\"><block type=\"variables_get\" id=\"{?,n;ssmw@@G)U$K2KM6\"><field name=\"VAR\" id=\"LGGq^8)J-FF69@]s4iLH\">voltsReading</field></block></value><value name=\"B\"><block type=\"math_number\" id=\",lDG^j#yFn7!$)XA}5Fe\"><field name=\"NUM\">6</field></block></value></block></value><next><block type=\"variables_set\" id=\"PEwq`Hru2`Y+Tq^^ofPu\"><field name=\"VAR\" id=\"jnXn[.Dhm?*Qa[Cl/SeZ\">pH</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"0e9Q~^@lS)x%[aN[MwTs\"><field name=\"OP\">ADD</field><value name=\"A\"><block type=\"math_arithmetic\" id=\"4TVOrjNFRX^RubakDbUR\"><field name=\"OP\">MULTIPLY</field><value name=\"A\"><block type=\"variables_get\" id=\"~#mi`+^:~sqrIO)J$@z~\"><field name=\"VAR\" id=\"m]5dUxJ+Y{F:F*vd=(0,\">gradient</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"rBEbWnf?w3PJaI?J3Lh#\"><field name=\"VAR\" id=\"LGGq^8)J-FF69@]s4iLH\">voltsReading</field></block></value></block></value><value name=\"B\"><block type=\"variables_get\" id=\"k+ssj0Jep{N()!d*{_DL\"><field name=\"VAR\" id=\"Ta[L5!0/5i@G9T3[SLmk\">yIntercept</field></block></value></block></value><next><block type=\"variables_set\" id=\"OqB/^I6M0Swanx{To7i:\"><field name=\"VAR\" id=\"CXCfadItPvi1[]:/FDN3\">data</field><value name=\"VALUE\"><block type=\"map_on_loop\" id=\"F6/A.~;@PeVFY-($4uwl\"><statement name=\"LOOP\"><block type=\"create_map_key\" id=\"A]{n9P/9;-4*n*vM9^D!\"><value name=\"key\"><block type=\"text\" id=\"3yPvG]:!mo#j|d}tzv#e\"><field name=\"TEXT\">pH</field></block></value><value name=\"value\"><block type=\"variables_get\" id=\"t))27r6TRcV+^06n};,K\"><field name=\"VAR\" id=\"jnXn[.Dhm?*Qa[Cl/SeZ\">pH</field></block></value><next><block type=\"create_map_key\" id=\"[7uuOcuCb}Ix-~$W!=A7\"><value name=\"key\"><block type=\"text\" id=\"=s;*?;=D}t=$p_E]riFh\"><field name=\"TEXT\">current_month</field></block></value><value name=\"value\"><block type=\"variables_get\" id=\"a1?aID8(!1?vKEH|!CsP\"><field name=\"VAR\" id=\"_HeRH{o(:Dr]U7XX%`OD\">current_month</field></block></value><next><block type=\"create_map_key\" id=\"1gi~;P99xB6{#GLWR{6^\"><value name=\"key\"><block type=\"text\" id=\"LuojCPxJJhNDPRxEw(l0\"><field name=\"TEXT\">current_day</field></block></value><value name=\"value\"><block type=\"variables_get\" id=\"Efa|m6x]b5IufkWPu]qC\"><field name=\"VAR\" id=\"6GUZobtL8U;Vf4r(XMKt\">current_day</field></block></value></block></next></block></next></block></statement></block></value><next><block type=\"label_set_text\" id=\".0CiZzF@@(0:t~/cVT3G\"><field name=\"COMPONENT\">label8</field><value name=\"TEXT\"><shadow type=\"text\" id=\"|}.Az.Ty8RUom9~2jWqB\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"ztbAWA+J1tF#f]?[HEzb\"><field name=\"VAR\" id=\"jnXn[.Dhm?*Qa[Cl/SeZ\">pH</field></block></value><next><block type=\"espnow_send\" id=\"Dqg;uYNH7^kEg[I62d;J\"><field name=\"ID\">1</field><value name=\"DATA\"><shadow type=\"text\" id=\"Ob]l%w9z2a.v`Q8ieQi0\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\")_B#`dk+0HSlyq_-]rRN\"><field name=\"VAR\" id=\"CXCfadItPvi1[]:/FDN3\">data</field></block></value><next><block type=\"timer_delay\" id=\"5+8(E^3Sm+jTyNe2xx5Q\"><value name=\"DELAY\"><shadow type=\"math_number\" id=\"fL8uo6#_Wp}(9`z3;Wa2\"><field name=\"NUM\">3</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></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><block type=\"variables_get\" id=\"$g@l~``*U!=V_9T^f?hU\" disabled=\"true\" x=\"830\" y=\"570\"><field name=\"VAR\" id=\"m]5dUxJ+Y{F:F*vd=(0,\">gradient</field></block><block type=\"math_number\" id=\"4oko}=ZN}HbN2R-=_kJ@\" disabled=\"true\" x=\"850\" y=\"630\"><field name=\"NUM\">0.536</field></block><block type=\"math_number\" id=\"OM.Yr^MdW!gR9uXEY!Ze\" disabled=\"true\" x=\"885\" y=\"1233\"><field name=\"NUM\">31</field></block><block type=\"variables_set\" id=\"]=T~]GK^b!Q72/`A8+;E\" disabled=\"true\" x=\"382\" y=\"1371\"><field name=\"VAR\" id=\"?s0aU/_AF,:wPZJ^-59b\">counter</field><value name=\"VALUE\"><block type=\"math_number\" id=\"i3m``Qd5LoSV@yRyWJvd\" disabled=\"true\"><field name=\"NUM\">1</field></block></value></block><block type=\"math_number\" id=\"mKb;:l%%!/vg8WWQ}Duk\" disabled=\"true\" x=\"647\" y=\"1449\"><field name=\"NUM\">0</field></block><block type=\"math_number\" id=\"Tt$XqMX3?~yQFF^wDX#]\" disabled=\"true\" x=\"695\" y=\"1762\"><field name=\"NUM\">0</field></block><block type=\"variables_get\" id=\"t+%{v1jLHT#%5k,Kn#NQ\" disabled=\"true\" x=\"765\" y=\"2237\"><field name=\"VAR\" id=\"CXCfadItPvi1[]:/FDN3\">data</field></block><block type=\"get_map_key\" id=\";p=:jY5}!(v|w,BM)9j!\" disabled=\"true\" x=\"641\" y=\"2442\"><value name=\"key\"><block type=\"text\" id=\"27Gx9Sy`e$Z[/k`De+T5\" disabled=\"true\"><field name=\"TEXT\">pH</field></block></value></block>","Blockly.Remotes":[],"Blockly.RemotePlus":[{"id":"__title","blockId":"","createTime":1675940120696,"name":"M5RemoteTitle","dragAndDrop":false,"resizable":false,"options":{"minWidth":1,"minHeight":1,"maxWidth":6,"maxHeight":10,"defaultWidth":2,"defaultHeight":1},"w":2,"h":1,"bgColor":"#0080FF","color":"#fff","fontsize":"M","label":"M5Remote","interval":3000,"code":"","event":"","dataSource":"none","ezdataToken":"","topic":"","needShadow":false,"type":"title","x":0,"y":0}],"modules":[],"cbIdList_":[],"eventCBIdList_":[]}
{"components":[{"id":"____screen","createTime":1675944164186,"name":"screen","x":0,"y":0,"width":320,"height":240,"backgroundColor":"#222222","backgroundImage":"","type":"screen"},{"id":"____buttonA","createTime":1675944164186,"name":"ButtonA","buttonIndex":0,"x":35,"y":216,"width":64,"height":24,"text":"ButtonA","visibility":false,"type":"button"},{"id":"____buttonB","createTime":1675944164186,"name":"ButtonB","buttonIndex":1,"x":125,"y":216,"width":64,"height":24,"text":"ButtonB","visibility":false,"type":"button"},{"id":"____buttonC","createTime":1675944164186,"name":"ButtonC","buttonIndex":2,"x":215,"y":216,"width":64,"height":24,"text":"ButtonC","visibility":false,"type":"button"},{"id":"x*1c8CPg^lqX#axe","createTime":1675944188496,"isCoreTwo":false,"isPaper":false,"name":"label0","x":126,"y":14,"color":"#000000","text":"Data Sent","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":33},{"id":"Tav74Kmqz6e+O5m@","createTime":1675944191189,"name":"rectangle0","x":0,"y":0,"width":320,"height":45,"borderColor":"#FFFFFF","backgroundColor":"#FFFFFF","type":"rectangle","layer":3},{"id":"dN^Hp8jy`!FWAcTa","createTime":1675944239505,"isCoreTwo":false,"isPaper":false,"name":"label1","x":16,"y":59,"color":"#FFFFFF","text":"Mac Address:","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":29},{"id":"7HW*1N1rcBdr5RAa","createTime":1675944251296,"isCoreTwo":false,"isPaper":false,"name":"label2","x":16,"y":88,"color":"#FFFFFF","text":"Text","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":30},{"id":"6emX#jli4H#XclXH","createTime":1675944254671,"isCoreTwo":false,"isPaper":false,"name":"label3","x":12,"y":134,"color":"#FFFFFF","text":"Data Sent:","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":31},{"id":"rVom6c^FFueuBKJn","createTime":1675944264331,"isCoreTwo":false,"isPaper":false,"name":"label4","x":12,"y":167,"color":"#FFFFFF","text":"Text","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":32},{"id":"b&LD3MR0qe*U0#Vz","createTime":1675945253232,"isCoreTwo":false,"isPaper":false,"name":"label5","x":16,"y":224,"color":"#FFFFFF","text":"Text","font":"lcd.FONT_Default","rotation":0,"type":"label","layer":10,"width":null,"height":null,"radius":null}],"type":"fire","versions":"Beta","units":[{"id":"=RFM1VqaKptpZJV2","createTime":1675945563358,"hidden":false,"type":"env3","name":"env3_0","port":"A","default":["A","E","PAHUB","Custom"],"pb_port":[0,1,2,3,4,5],"new_pb_port":"0","user_port":["21","22"],"icon":"env3.png"},{"id":"veq6CADZM+*iN%vU","createTime":1675945567726,"stickType":"stick","type":"earth","name":"earth_0","port":"B","default":["B","D","Custom"],"user_port":["21","22"],"icon":"earth.png"}],"hats":[],"blockly":"<variables><variable id=\"3hxo7=7SV+G$h=N$SV[Z\">mac</variable><variable id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</variable><variable id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</variable><variable id=\"@Nk/-/ZLstJ)o8vR_`UA\">current_month</variable><variable id=\"Jypy0kJz97lB;yT_Av(_\">current_day</variable><variable id=\"3E`?7_E89VCz]oKYD%YR\">first_day</variable><variable id=\"ItOMZ$1t=1=.q~6J-yW~\">months</variable><variable id=\"7Q0fV}nq3qEaeB]*P~H^\">first_month</variable></variables><block type=\"basic_on_setup\" id=\"setup_block\" deletable=\"false\" x=\"-10\" y=\"110\"><next><block type=\"espnow_add_peer\" id=\"(K2a{H[QG=WA!8^)Nl#D\"><field name=\"MAC\">f0:08:d1:c7:31:59</field><field name=\"ID\">1</field><next><block type=\"label_set_text\" id=\"YD__C4HW=!YG[=W{LASn\"><field name=\"COMPONENT\">label2</field><value name=\"TEXT\"><shadow type=\"text\" id=\"#vLO#OdH2bq?7s4g~`s-\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"espnow_get_mac_addr\" id=\"O)EWn/e~ku90#}?cmD{e\"></block></value><next><block type=\"variables_set\" id=\"s}b#~,FPO+,2R8cJUH{z\"><field name=\"VAR\" id=\"@Nk/-/ZLstJ)o8vR_`UA\">current_month</field><value name=\"VALUE\"><block type=\"math_number\" id=\"H]QKIxV#a3u$]]JTPWh3\"><field name=\"NUM\">0</field></block></value><next><block type=\"variables_set\" id=\".$Y=Asdj/npJ8|Bkn-3q\"><field name=\"VAR\" id=\"Jypy0kJz97lB;yT_Av(_\">current_day</field><value name=\"VALUE\"><block type=\"math_number\" id=\"1_Jw_h4v.A2^/Xn1SPDB\"><field name=\"NUM\">0</field></block></value><next><block type=\"variables_set\" id=\"tw|hOlfJR.pX@CjxD)MA\"><field name=\"VAR\" id=\"ItOMZ$1t=1=.q~6J-yW~\">months</field><value name=\"VALUE\"><block type=\"map_on_loop\" id=\"oW3s+jO@Q?mVYPPd:jt%\"><statement name=\"LOOP\"><block type=\"create_map_key\" id=\"SDxOakwszHF7di[]q6E[\"><value name=\"key\"><block type=\"math_number\" id=\"4OJ}YUEQVg:j67v$BMs1\"><field name=\"NUM\">1</field></block></value><value name=\"value\"><block type=\"math_number\" id=\"]=~2]{yiT)t?Qg%!6w9K\"><field name=\"NUM\">31</field></block></value><next><block type=\"create_map_key\" id=\"|Qp+@~==2#h|H`kxW7he\"><value name=\"key\"><block type=\"math_number\" id=\")m`XRF31jhSwTE`7ybtP\"><field name=\"NUM\">2</field></block></value><value name=\"value\"><block type=\"math_number\" id=\"uaiPB,7|Um;)w,$/P!i.\"><field name=\"NUM\">28</field></block></value><next><block type=\"create_map_key\" id=\"|/V=rm^{_?JKdA_/8Ev^\"><value name=\"key\"><block type=\"math_number\" id=\"59ri=-#Ad$0oC==%]Z%Y\"><field name=\"NUM\">3</field></block></value><value name=\"value\"><block type=\"math_number\" id=\"0_e#{H9,KdO;Y{RhU5I1\"><field name=\"NUM\">31</field></block></value><next><block type=\"create_map_key\" id=\"@G0fKH)@[Ro$at%~pnD5\"><value name=\"key\"><block type=\"math_number\" id=\"Y]gDd@FdT9)NLoboKNmE\"><field name=\"NUM\">0</field></block></value><value name=\"value\"><block type=\"math_number\" id=\"+A}*y=[5fKx4UI.[y5A4\"><field name=\"NUM\">0</field></block></value></block></next></block></next></block></next></block></statement></block></value></block></next></block></next></block></next></block></next></block></next></block><block type=\"espnow_recv_cb\" id=\",:U?FmGY_0+p3FB|M(Jg\" x=\"430\" y=\"150\"><value name=\"MAC_ADDR\"><block type=\"variables_get\" id=\"#(ZY*xFrdF(qf))LqGD~\"><field name=\"VAR\" id=\"3hxo7=7SV+G$h=N$SV[Z\">mac</field></block></value><value name=\"DATA\"><block type=\"variables_get\" id=\",Z=VWLlsUUw1I}G4wv`p\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value><statement name=\"FUNC\"><block type=\"variables_set\" id=\"Co_@o%~IrPVfNJ=Wxh(=\"><field name=\"VAR\" id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</field><value name=\"VALUE\"><block type=\"math_number\" id=\"nD-IeeJDjb)XkYHcJ}cB\"><field name=\"NUM\">0</field></block></value><next><block type=\"variables_set\" id=\"xI4iMwv6h0@BZ)n5-]A}\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field><value name=\"VALUE\"><block type=\"text_replace\" id=\"+M/X^$;IfVaUAhG9sXEH\"><value name=\"FROM\"><block type=\"text\" id=\"CdAx0#ZN3#YTNLHD$p~S\"><field name=\"TEXT\">'</field></block></value><value name=\"TO\"><block type=\"text\" id=\"wg{`+}l=~Dd-*O4dA48j\"><field name=\"TEXT\">\"</field></block></value><value name=\"TEXT\"><block type=\"variables_get\" id=\"T,o@VpM%oMud-z|$wsmK\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value></block></value><next><block type=\"variables_set\" id=\"ZbAc=*u}S!8=rUm6z4FL\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field><value name=\"VALUE\"><block type=\"loads_json\" id=\"RVs*EATDtz0W%C2%{!.c\"><value name=\"JSON_VAR\"><block type=\"variables_get\" id=\"ClW@(QDI,{g)6B]);+j!\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value></block></value><next><block type=\"controls_if\" id=\"|s2o*hAaq`bi[BfrPjIZ\"><mutation else=\"1\"></mutation><value name=\"IF0\"><block type=\"logic_compare\" id=\"x}ysx?.|b!)BI@qg_Y*/\"><field name=\"OP\">LTE</field><value name=\"A\"><block type=\"lists_length\" id=\"TBTfQx67!g4a[Gr=c:^:\"><value name=\"VALUE\"><block type=\"variables_get\" id=\"5*a|gitWH?XlD/.hu0ZK\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value></block></value><value name=\"B\"><block type=\"math_number\" id=\"45wP:`kjbJquIRo-[D`{\"><field name=\"NUM\">2</field></block></value></block></value><statement name=\"DO0\"><block type=\"variables_set\" id=\"B?Az_nj2Ti)JW|u?B`{,\"><field name=\"VAR\" id=\"3E`?7_E89VCz]oKYD%YR\">first_day</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"b!A*-PhW2/7KEWg]uRz5\"><value name=\"key\"><block type=\"text\" id=\"J?Svkumz+@lpql:n)0Qs\"><field name=\"TEXT\">first_day</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\".a[uT925_2k9z3yZy:@|\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value></block></value><next><block type=\"variables_set\" id=\"hrE%LU3,$]5jO#N.^FX:\"><field name=\"VAR\" id=\"7Q0fV}nq3qEaeB]*P~H^\">first_month</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"UFFl/:)5(^bf|nRSfjuP\"><value name=\"key\"><block type=\"text\" id=\"k+vqCYHhiJM_2q=}^#Qw\"><field name=\"TEXT\">first_month</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"?.iyx}jjCQHi7@cK5KhM\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value></block></value></block></next></block></statement><statement name=\"ELSE\"><block type=\"variables_set\" id=\"IQ?4J!U$V,5VD8!:I~f3\"><field name=\"VAR\" id=\"Jypy0kJz97lB;yT_Av(_\">current_day</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"5eOk3M6J16vr95G#dpj7\"><value name=\"key\"><block type=\"text\" id=\"pYo/?Dv[/Z7Ei1$uSY;D\"><field name=\"TEXT\">current_day</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"(X1u.uaGO/%18roZs?13\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value></block></value><next><block type=\"variables_set\" id=\"ir{fW4T(A!^oUV!WP.Aj\"><field name=\"VAR\" id=\"@Nk/-/ZLstJ)o8vR_`UA\">current_month</field><value name=\"VALUE\"><block type=\"get_map_key\" id=\"5+-hCG51_:T$5d+M(%4R\"><value name=\"key\"><block type=\"text\" id=\"OhlGUC9YO0nnJ0[u=X*l\"><field name=\"TEXT\">current_month</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"_0yrETU0=z]C)ST5eoW9\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value></block></value></block></next></block></statement><next><block type=\"label_set_text\" id=\"?[P!el`O|aOq=+)FbE9,\"><field name=\"COMPONENT\">label5</field><value name=\"TEXT\"><shadow type=\"text\" id=\"_M]qF3AvFre;E={?]2hS\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"*{D}EcUQ/y:EWN369dPM\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value><next><block type=\"controls_if\" id=\"Ni^$|?FD~~Fbo!i#z?~5\"><value name=\"IF0\"><block type=\"logic_compare\" id=\"dOm=TMx-+[~?Uk=Leg34\"><field name=\"OP\">NEQ</field><value name=\"A\"><block type=\"variables_get\" id=\",afX#)Cb1.S{1X5(h^p]\"><field name=\"VAR\" id=\"Jypy0kJz97lB;yT_Av(_\">current_day</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"qTh7e6i/gs7:1egC`[dO\"><field name=\"NUM\">0</field></block></value></block></value><statement name=\"DO0\"><block type=\"controls_if\" id=\"-;o!=_sThLkCqgv|#X{I\"><mutation elseif=\"1\"></mutation><value name=\"IF0\"><block type=\"logic_compare\" id=\"$gOsR_3NV,IxRLvYGa#B\"><field name=\"OP\">NEQ</field><value name=\"A\"><block type=\"variables_get\" id=\"dBF.YgU7:h8_|bQt}}v?\"><field name=\"VAR\" id=\"7Q0fV}nq3qEaeB]*P~H^\">first_month</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"lu7ExOR[-tL+0WEwg$ob\"><field name=\"VAR\" id=\"@Nk/-/ZLstJ)o8vR_`UA\">current_month</field></block></value></block></value><statement name=\"DO0\"><block type=\"controls_whileUntil\" id=\"/`^dpl41JbY}O{^syG6Z\"><field name=\"MODE\">UNTIL</field><value name=\"BOOL\"><block type=\"logic_compare\" id=\"F;W5zp8-K}mAQ%_Df)`@\"><field name=\"OP\">EQ</field><value name=\"A\"><block type=\"variables_get\" id=\"0FCB0SI9nHzl44-^*P%c\"><field name=\"VAR\" id=\"7Q0fV}nq3qEaeB]*P~H^\">first_month</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"/yIQgstV9+qHDrA-w[3_\"><field name=\"VAR\" id=\"@Nk/-/ZLstJ)o8vR_`UA\">current_month</field></block></value></block></value><statement name=\"DO\"><block type=\"variables_set\" id=\"57`X8q+,!G8Bzr;6a|Md\"><field name=\"VAR\" id=\"@Nk/-/ZLstJ)o8vR_`UA\">current_month</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"tj+Y`8$1N4om}Xl+j#V)\"><field name=\"OP\">MINUS</field><value name=\"A\"><block type=\"variables_get\" id=\"bNvKhHI8:MhIwt$n$QIA\"><field name=\"VAR\" id=\"@Nk/-/ZLstJ)o8vR_`UA\">current_month</field></block></value><value name=\"B\"><block type=\"math_number\" id=\"Pe/IJzGatiWE;wxtV$97\"><field name=\"NUM\">1</field></block></value></block></value><next><block type=\"variables_set\" id=\"16sGWFDV2ejdJ{NEwApf\"><field name=\"VAR\" id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"^QggkbFk[zB;TL$KV4Ji\"><field name=\"OP\">ADD</field><value name=\"A\"><block type=\"get_map_key\" id=\"VIpbFbCC!7/dprQTzvh@\"><value name=\"key\"><block type=\"variables_get\" id=\"Nj6b+hY0?2eC@M,iYR46\"><field name=\"VAR\" id=\"@Nk/-/ZLstJ)o8vR_`UA\">current_month</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"+U^`r2ZfgM(HVWQ)]bNn\"><field name=\"VAR\" id=\"ItOMZ$1t=1=.q~6J-yW~\">months</field></block></value></block></value><value name=\"B\"><block type=\"variables_get\" id=\"B.fm;p)x}?m;VQPBsqzs\"><field name=\"VAR\" id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</field></block></value></block></value></block></next></block></statement><next><block type=\"variables_set\" id=\"fK;,j0?~JYezG/B%2E1$\"><field name=\"VAR\" id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"^FRy{4Ek?$~M(iY~ktM3\"><field name=\"OP\">ADD</field><value name=\"A\"><block type=\"variables_get\" id=\".+j%h4,#/M@/j{MieZdO\"><field name=\"VAR\" id=\"Jypy0kJz97lB;yT_Av(_\">current_day</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\".+y+AZALSAYctzs/,(DK\"><field name=\"VAR\" id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</field></block></value></block></value></block></next></block></statement><value name=\"IF1\"><block type=\"logic_compare\" id=\"hZ!vO#=b*q07BaXU91V~\"><field name=\"OP\">EQ</field><value name=\"A\"><block type=\"variables_get\" id=\"7*Jj9lBi_G=g5J]FOs1V\"><field name=\"VAR\" id=\"7Q0fV}nq3qEaeB]*P~H^\">first_month</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"v.Z}-6(z9kV!shJ|DFdN\"><field name=\"VAR\" id=\"@Nk/-/ZLstJ)o8vR_`UA\">current_month</field></block></value></block></value><statement name=\"DO1\"><block type=\"variables_set\" id=\"hYOeNheF!RE#:G]FxscE\"><field name=\"VAR\" id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</field><value name=\"VALUE\"><block type=\"variables_get\" id=\"pN$#trvZYt=H]Nz;Tbpa\"><field name=\"VAR\" id=\"Jypy0kJz97lB;yT_Av(_\">current_day</field></block></value></block></statement><next><block type=\"variables_set\" id=\"cm2Gb.H*~lFxA5W3z~.S\"><field name=\"VAR\" id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</field><value name=\"VALUE\"><block type=\"math_arithmetic\" id=\"EM]ljyd2:vo,6T5%vz^D\"><field name=\"OP\">MINUS</field><value name=\"A\"><block type=\"variables_get\" id=\"CIilMiEueLxFWoPK@hwk\"><field name=\"VAR\" id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</field></block></value><value name=\"B\"><block type=\"variables_get\" id=\"zVKvh-u*zRwBcNRX$[(-\"><field name=\"VAR\" id=\"3E`?7_E89VCz]oKYD%YR\">first_day</field></block></value></block></value><next><block type=\"variables_set\" id=\"yxpFp|pzFu/eh6N_Mp@a\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field><value name=\"VALUE\"><block type=\"map_on_loop\" id=\"}l_pJQ#{rc/3V,z9wf/6\"><statement name=\"LOOP\"><block type=\"create_map_key\" id=\"e8gk7SqVHt:1tBi#0p5m\"><value name=\"key\"><block type=\"text\" id=\"1jm5zD]%v/IbxV!mpr{(\"><field name=\"TEXT\">pH</field></block></value><value name=\"value\"><block type=\"get_map_key\" id=\"E@gYTm,?lnPX)cWuIuhU\"><value name=\"key\"><block type=\"text\" id=\"$_~zFqZfhCnAMfLLp39O\"><field name=\"TEXT\">pH</field></block></value><value name=\"map\"><block type=\"variables_get\" id=\"4W%g1qyup[kWe|@(7w@;\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value></block></value><next><block type=\"create_map_key\" id=\"zz4DT_oF7?G,pg~r/D/3\"><value name=\"key\"><block type=\"text\" id=\"L]}IlQT4EIRk~%N#M1Bs\"><field name=\"TEXT\">humid</field></block></value><value name=\"value\"><block type=\"dht12_get_humidity\" id=\".SH8)6p8w7!0Cz]+2a(D\"><field name=\"VARNAME\">env3_0</field></block></value><next><block type=\"create_map_key\" id=\"wc@fH4c^ilts!K96:o84\"><value name=\"key\"><block type=\"text\" id=\"DKy+}`:M6zzBE^#YU*hT\"><field name=\"TEXT\">temp</field></block></value><value name=\"value\"><block type=\"dht12_get_temperature\" id=\"_PXPY,BeZ~OO(c=qGE#!\"><field name=\"VARNAME\">env3_0</field></block></value><next><block type=\"create_map_key\" id=\"]$%BLaDeRc.LVpZ:c=dg\"><value name=\"key\"><block type=\"text\" id=\":UCKL.v+Z|!;hfA#zV4u\"><field name=\"TEXT\">moist</field></block></value><value name=\"value\"><block type=\"earth_a_read\" id=\"T~dyo$qLc4clg5v?x],v\"><field name=\"VARNAME\">earth_0</field></block></value><next><block type=\"create_map_key\" id=\"en8+Gq|pkQR)$3(/;p70\"><value name=\"key\"><block type=\"text\" id=\"?0F*v%Q=vY42j_mt92nL\"><field name=\"TEXT\">total time</field></block></value><value name=\"value\"><block type=\"variables_get\" id=\"r8sm/x/q6o5I/v*pF,Z_\"><field name=\"VAR\" id=\"pbu4qg~+P9p5IVc;#qQo\">total_days</field></block></value></block></next></block></next></block></next></block></next></block></statement></block></value><next><block type=\"espnow_send\" id=\":nsJH;wqNW6V+daf6P!G\"><field name=\"ID\">1</field><value name=\"DATA\"><shadow type=\"text\" id=\")!_X%S3T@0B[aYSXi-~l\"><field name=\"TEXT\"></field></shadow><block type=\"variables_get\" id=\"=duh)!@p~rM?6R*[Z-QN\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value><next><block type=\"label_set_text\" id=\"=[3TwR`Id}tuVi]hKYpE\"><field name=\"COMPONENT\">label4</field><value name=\"TEXT\"><shadow type=\"text\" id=\"AG@b@5ZANLXY=6NHtk:D\"><field name=\"TEXT\">Hello M5</field></shadow><block type=\"variables_get\" id=\"34-{ZI|lUo#:I+ErSW9-\"><field name=\"VAR\" id=\"BOCQUORM$f]`@xh|)lmd\">Data_send</field></block></value></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></statement></block>","Blockly.Remotes":[],"Blockly.RemotePlus":[{"id":"__title","blockId":"","createTime":1675945186480,"name":"M5RemoteTitle","dragAndDrop":false,"resizable":false,"options":{"minWidth":1,"minHeight":1,"maxWidth":6,"maxHeight":10,"defaultWidth":2,"defaultHeight":1},"w":2,"h":1,"bgColor":"#0080FF","color":"#fff","fontsize":"M","label":"M5Remote","interval":3000,"code":"","event":"","dataSource":"none","ezdataToken":"","topic":"","needShadow":false,"type":"title","x":0,"y":0}],"modules":[],"cbIdList_":[],"eventCBIdList_":[]}
Comments