рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп
рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдШрд░ рдмрдирд╛рдпрд╛, рдПрдХ рдХрдВрдХрд╛рд▓ред рдореЗрд░реЗ рд▓рдХреНрдЬрд░реА рдФрд▓ рдореЗрдВ рдХреЛрдИ рдЧреИрд╕ рдирд╣реАрдВ рд╣реИ рдФрд░ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдХрдВрдХрд╛рд▓ рдЪреБрдирд╛ - рдмрд╛рдХреА рд╕рдм рдХреБрдЫ, рдореЗрд░реЗ рд▓рд┐рдП, рдмрд┐рдЬрд▓реА рдХреЗ рд╕рд╛рде рдЧрд░реНрдореА рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реЛрдЧрд╛ред рдЦреИрд░, рдпрд╣ рднреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рд╕рд╕реНрддреА рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдШрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкрд╛рдЗрдк рдлреЗрдВрдХ рджрд┐рдП, рдмреИрдЯрд░реА рдХреЛ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛, рдПрдХ рдмреЙрдпрд▓рд░, рдпрд╣ рдЧрд░реНрдо рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЧрд▓рдд рдерд╛ред
рдЦреБрдж рдХреА рдмрд╛рдд рд╕реБрдирдХрд░, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдПрдХ рдЯреЙрдб рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдореИрдВ рдШрд░ рдкрд░ рдирд╣реАрдВ рд╣реВрдВ (рджрд┐рди рдореЗрдВ 12-16 рдШрдВрдЯреЗ), рд╣реАрдЯрд┐рдВрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЖрдЧрдорди рд╕реЗ рдкрд╣рд▓реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдХрд╛рд▓ рдХреА рдереЛрдбрд╝реА рд╕реА рдЬрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рддрд╛рдкрдорд╛рди рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд╣реА рд╕реНрдерд┐рддрд┐ рдЬрдм рдШрд░ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╣реАрдВред рдЦреИрд░, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдбрд╝рдХ рдкрд░ рддрд╛рдкрдорд╛рди рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдмреЙрдпрд▓рд░ рдХреЗ рд╣реИрдВрдбрд▓ рдХреЛ рдореЛрдбрд╝рдирд╛, рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХреЛрд╖реЗрд░ рдирд╣реАрдВ рд╣реИред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рдмрд┐рдирд╛, рдХрд╣реАрдВ рднреА, рдмреЙрдпрд▓рд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдмрд╛рд╣рд░реА рдирд┐рдпрдВрддреНрд░рдг рд░рд┐рд▓реЗ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд░реНрдХ рд╣реИрдВред рдмреЗрд╢рдХ, рдЖрдк рддреБрд░рдВрдд рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмреЙрдпрд▓рд░ рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП, рдРрд╕реЗ рдмреЙрдпрд▓рд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдорд╛рдирд╡реАрдп рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВ рджрд┐рдорд╛рдЧ рдХреЗ рд╕рд╛рде рдмреИрдардирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЖрддреНрдорд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреЗрд╢рд╛рдм рдХрд░рддрд╛ рдерд╛, рдереЛрдбрд╝рд╛ рд╕реА рд╕реАрдЦрддрд╛ рдерд╛, рднрд▓реЗ рд╣реА рдЖрд░реНрдбрд┐рдиреЛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:
- рд╕реЗрдЯрдкреЙрдЗрдВрдЯ рддрд╛рдкрдорд╛рди рдирд┐рдпрдВрддреНрд░рдг
- рдмрд╛рд╣рд░ рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддрд╛рдкрдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢реАрддрд▓рдХ рддрд╛рдкрдорд╛рди рдирд┐рдпрдВрддреНрд░рдг
- рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдордп рдХреНрд╖реЗрддреНрд░, рджрд┐рди рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рдардВрдбрд╛, рд░рд╛рдд рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рдЧрд░реНрдо
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб, рдСрдЯреЛ рджрд┐рди-рд░рд╛рдд рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде
- рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдХреЗ рд▓рд┐рдП рдореИрдиреБрдЕрд▓ рдореЛрдб, рдХреЛрдИ рдСрдЯреЛ рд╕рдВрдХреНрд░рдордг рдирд╣реАрдВ
- рдЧреИрд░-рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб, рдЬрд╣рд╛рдВ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рд╢реАрддрд▓рдХ рддрд╛рдкрдорд╛рди рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмреЙрдпрд▓рд░ рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- рд╣реАрдЯрд┐рдВрдЧ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ, рдмрдЯрди рдФрд░ рд╕реНрдХреНрд░реАрди рд╕реЗ рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ / рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
рдпрд╣ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдерд╛, рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЬреЛрдбрд╝рд╛:
- рд╕реНрдЯреНрд░реАрдЯ рд▓реИрдВрдк рдирд┐рдпрдВрддреНрд░рдг (рдПрд▓рдИрдбреА рд╕реНрдкреЙрдЯрд▓рд╛рдЗрдЯ)
- рдЕрд▓рд╛рд░реНрдо рд╕рд┐рд╕реНрдЯрдо рдореЛрд╢рди рд╕реЗрдВрд╕рд░, рд╕рд╛рдЗрд░рди рдФрд░ рд╕реНрдЯреНрд░реАрдЯ рд▓реИрдВрдк рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ
- рдкреНрд░рддрд┐ рджрд┐рди / рдорд╛рд╣ / рд╡рд░реНрд╖ + рд╡рд░реНрд╖ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЙрдпрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЦрдкрдд рдКрд░реНрдЬрд╛ рдХреА рдкреИрдорд╛рдЗрд╢
- рджреАрдкрдХ рдХреА рдзреАрдореА рдЪрдордХ рд╕реЗ рд╣реА рдЕрд▓рд╛рд░реНрдо рдореЛрдб
- рдПрдХ рджреАрдкрдХ рдХреЗ рддреЗрдЬреА рд╕реЗ рдЭрдкрдХреА рдФрд░ рдПрдХ рдореЛрд╣рд┐рдиреА рдХреА рдЫреЛрдЯреА рдмреАрдк рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреЗрдд рдореЛрдб
- рдПрдХ рджреАрдкрдХ рдХреЗ рддреЗрдЬреА рд╕реЗ рдЭрдкрдХреА рдФрд░ рдПрдХ рдореЛрд╣рд┐рдиреА рдХреЗ рдирд┐рд░рдВрддрд░ рд╣рд╛рдЙрд▓рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рдореЛрдб
рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛, рд░реВрд╕реА рдореЗрдВ рдХреБрдЫ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ Arduino do-it-tooers рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдереЛрдбрд╝рд╛ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдмрд┐рд▓реНрдХреБрд▓ рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдлрд▓ рд░рд╣рд╛ред
рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреНрдпрд╛ рдерд╛
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ Arduino Nano + ESP8266 рдХреЗ рдЬрдВрдЧрд▓реА рдЭреБрдВрдб рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди ESP рдПрдХ рдврд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдЕрд▓рдЧ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ? рд╣рд╛рдВ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рд╕рдм рдерд╛, рд▓реЗрдХрд┐рди рд╢рдмреНрдж рд╕реЗ рдХреЛрдИ рдкреИрд╕рд╛ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдирдпрд╛ рд▓реЛрд╣рд╛ рдирд╣реАрдВ рдЦрд░реАрджрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдИрдПрд╕рдкреА рдПрдХ рдврд╛рд▓ рдХреА рддрд░рд╣ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? рдЕрдм рдореБрдЭреЗ рдпрд╛рдж рднреА рдирд╣реАрдВ рд╣реИред
Arduino рдиреЗ рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ GPIO рдХреА рдЖрд╡рд╢реНрдпрдХ рдорд╛рддреНрд░рд╛ рдереА, рдФрд░ ESP рдиреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ Blynk рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рдЬрд╛рдирддрд╛ рдерд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд GPIO рдирд╣реАрдВ рдерд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ UART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреБрдж рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛, рдФрд░ JSON рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рднреЗрдЬрд╛ред рдпрд╣ рдпреЛрдЬрдирд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рддрдХ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╢рд┐рдХрд╛рдпрдд рдХреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛрдбреЗрдХ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рддреБрд░рдВрдд рдЖрд░рдХреНрд╖рдг рдХрд░ рджреВрдВрдЧрд╛, рдЙрд╕ рд╕рдордп рдореИрдВ рдмрд╣реБрдд рдХреБрд╢рд▓ рдирд╣реАрдВ рдерд╛ (рдФрд░ рдЕрдм рднреА рдореИрдВ рдЗрд╕реЗ рдФрд░ рдмреЗрд╣рддрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛), рдЗрд╕рд▓рд┐рдП рдЧрд░реНрднрд╡рддреА рдорд╣рд┐рд▓рд╛рдУрдВ рдФрд░ рдмрдЪреНрдЪреЛрдВ рдХреЛ рди рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдм рдХреБрдЫ Arduino IDE рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рд░рд╛рдд рддрдХ рдпрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдХрд┐ рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИ, рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЖрджрд┐рдо рд╣реИред
рд▓реЛрд╣рд╛
рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╕рд╛рд▓ рдмреАрдд рдЪреБрдХрд╛ рд╣реИ, рд╡рд┐рддреНрдд рдиреЗ ESP32 рдбреЗрд╡рд┐рдЯрдХ v1 рдЦрд░реАрджрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд GPIO рд╣реИ, рдЗрдВрдЯрд░рдиреЗрдЯ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рд╕реБрдкрд░ рдирд┐рдпрдВрддреНрд░рдХ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред рдЪреБрдЯрдХреБрд▓реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдХрд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ рдмрд╣реБрдд рдкрд╕рдВрдж рдЖрдпрд╛ред
рд▓реЛрд╣реЗ рдХреА рд╕реВрдЪреА:
- ESP32 рджреЗрд╡рдХреА v1 рдирд╛рдо рдЪреАрди
- 3 рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ DS18B20, рдШрд░ рдХреЗ рдЕрдВрджрд░ рдХрд╛ рддрд╛рдкрдорд╛рди, рдмрд╛рд╣рд░ рдФрд░ рдкрд╛рдЗрдк рдореЗрдВ рд╢реАрддрд▓рдХ рдХрд╛ рддрд╛рдкрдорд╛рди
- 4 рд░рд┐рд▓реЗ рдХрд╛ рдмреНрд▓реЙрдХ
- рдкреАрд░ рд╕реЗрдВрд╕рд░ HC-SR501
рдореИрдВрдиреЗ рдПрдХ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рдИ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд┐рдВрд╕ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдореИрдХреНрд░реЛрдЬрд╝ рд╕реЗ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдХреНрдпреЛрдВ FreeRTOS рдФрд░ Arduino Core
Arduino рдкрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрд╕реА Blynk рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк Arinoino Core рд╕реЗ рджреВрд░ рдирд╣реАрдВ рдЬрд╛рддреЗред
рдлреНрд░реАрдЖрд░рдЯреАрдУрдПрд╕ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдкреВрд░реНрдг рдФрджреНрдпреЛрдЧрд┐рдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдХрд╛рдо рдХреЗ рд╕рдорд╛рди рд▓реЛрд╣реЗ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдп рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд░реЛрдХ рджрд┐рдпрд╛, рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рд╣рдЯрд╛ рджрд┐рдпрд╛ - рдпрд╣ рд╕рдм Arduino рдХреЛрдб рдХреА рдПрдХ рд▓рдВрдмреА рдЙрд▓рдЭрди рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реИ, рдЬрдм рдЕрдВрдд рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓реВрдк рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмрджрд▓реЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
FreeRTOS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрджрд┐ рдХреЗрд╡рд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╢рдХреНрддрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, Arduino рдореЗрдВ рд╕рднреА рдХреЛрдб рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдереНрд░реЗрдб рдореЗрдВ, рдпрджрд┐ рдХреБрдЫ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрд░реА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рддреЗрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕ рдЯреЙрд░реНрдЪ рдХреА рдЪрдордХ рдФрд░ рдПрдХ рдЬрд▓рдкрд░реА рдмреАрдкрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рддрд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
FreeRTOS рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
тЖТ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреВрд░реЗ рдХреЛрдбреЗрдХ рд╕реЗ рд▓рд┐рдВрдХ
рдЗрд╕рд▓рд┐рдП, FreeRTOS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕реЗрдЯрдЕрдк рдлрд╝рдВрдХреНрд╢рди рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ, FreeRTOS рдХрд╛рд░реНрдп (рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рдХрд╛рд░реНрдп) рдЗрд╕рдореЗрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реВрдк рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╢реАрддрд▓рдХ рдХреЗ рддрд╛рдкрдорд╛рди рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдХрд╛рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
void calculate_water_temp(void *pvParameters) { while (true) { if (heating_mode == 3) {} else { if (temp_outside > -20) max_water_temp = 60; if (temp_outside <= -20 && temp_outside > -25) max_water_temp = 65; if (temp_outside <= -25 && temp_outside > -30) max_water_temp = 70; if (temp_outside <= -30) max_water_temp = 85; } vTaskDelay(1000 / portTICK_RATE_MS); } }
рдЗрд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ _void pvParameters
рдХреЛ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЕрдВрддрд╣реАрди рд▓реВрдк рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ while (true)
ред
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рддрд╛рдкрдорд╛рди рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ (рдпрджрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ) рдФрд░ рдлрд┐рд░ рдХрд╛рд░реНрдп 1 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП vTaskDelay(1000 / portTICK_RATE_MS)
рджреНрд╡рд╛рд░рд╛ euthanized рд╣реИред рдЗрд╕ рдореЛрдб рдореЗрдВ, рдпрд╣ рд╕реАрдкреАрдпреВ рд╕рдордп рдХрд╛ рдЙрдкрднреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЪрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рдВрджрд░реНрдн, рд╕рдордп рдЖрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╣рд╛рдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛ рдХрд╛рд░реНрдп рд╕реЗрдЯрдЕрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ xTaskCreate
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
xTaskCreate(calculate_water_temp, "calculate_water_temp", 2048, NULL, 1, NULL);
рдХрдИ рддрд░реНрдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП, calcul_water_temp рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рдХрд╛рд░реНрдп рдХреЛрдб рдФрд░ 2048 рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд╕реНрдЯреИрдХ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИред
рд╕реНрдЯреИрдХ рдХрд╛ рдЖрдХрд╛рд░ рд╢реБрд░реВ рдореЗрдВ рд╕рднреА рдХреЛ 1024 рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдореИрдВрдиреЗ рдЯрд╛рдЗрдк рдХрд░рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдзрд┐ рдХреА рдЧрдгрдирд╛ рдХреА, рдпрджрд┐ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рд╕рд╛рде рдЧрд┐рд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ (рдЬреИрд╕рд╛ рдХрд┐ uart рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл 2 рдмрд╛рд░ рд╕реНрдЯреИрдХ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛рдпрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ 2 рдмрд╛рд░ рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдЬрдм рддрдХ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рдореЗрдореЛрд░реА рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рдмрдЪрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ESP32 рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдЗрд╕рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред
рдЖрдк рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдПрдХ рд╣реИрдВрдбрд▓ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдХрд╛рд░реНрдп рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рд╣рдЯрд╛рдПрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЕрдВрддрд┐рдо NULL рд╣реИред рдПрдХ рд╣реИрдВрдбрд▓ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
TaskHandle_t slow_blink_handle;
рдЕрдЧрд▓рд╛, рдЬрдм рдХреЛрдИ рдХрд╛рд░реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ xTaskCreate
рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ xTaskCreate рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
xTaskCreate(outside_lamp_blinks, "outside_lamp_blynk", 10000, (void *)1000, 1, &slow_blink_handle);
рдФрд░ рдпрджрд┐ рд╣рдо рдХрд╛рд░реНрдп рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рдХрд░рддреЗ рд╣реИрдВ:
vTaskDelete(slow_blink_handle);
рдпрд╣ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рджрд╣рд╢рдд_рдХрдВрдЯреНрд░реЛрд▓ panic_control
рдХреЛрдб рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдлреНрд░реАрдЯреНрд░реЙрд╕ рдореНрдпреВрдЯреЗрдХреНрд╕ рдкреЗрд╢реЗрд╡рд░реЛрдВ
рдореНрдпреВрдЯреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдЯрдХрд░рд╛рд╡ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ uart, wifi, рдЖрджрд┐ рдЬреИрд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рд╡рд╛рдИрдлрд╛рдИ рдФрд░ рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдмрдирд╛рдПрдБ:
SemaphoreHandle_t wifi_mutex;
setup
рдПрдХ рдореНрдпреВрдЯреЗрдХреНрд╕ рдмрдирд╛рдПрдВ:
wifi_mutex = xSemaphoreCreateMutex();
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╣рдореЗрдВ рдХрд╛рд░реНрдп рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдореНрдпреВрдЯреЗрдХреНрд╕ рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдмрд╛рдХреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрддрд╛ рдЪрд▓ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╕реНрдд рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:
xSemaphoreTake(wifi_mutex, portMAX_DELAY);
portMAX_DELAY
- рд╕рдВрд╕рд╛рдзрди рдФрд░ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдореБрдХреНрдд рд╣реЛрдиреЗ рддрдХ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдЗрд╕ рд╕рдордп рд╕рднреА рдХрд╛рд░реНрдп рд╕реЛрдПрдВрдЧреЗред
рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдореНрдпреВрдЯреЗрдХреНрд╕ рджреЗрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрдиреНрдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ:
xSemaphoreGive(wifi_mutex);
рдЖрдк рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ send_data_to_blynk
рдореЗрдВ send_data_to_blynk send_data_to_blynk
рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдореНрдпреВрдЯреЗрдХреНрд╕ рдХрд╛ рдЧреИрд░-рдЙрдкрдпреЛрдЧ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЬреЗрдЯреАрдПрдЬреА рдбреАрдмрдЧ рдХреЗ рджреМрд░рд╛рди, рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд▓рдЧрд╛рддрд╛рд░ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИрдВ рдЬреЛ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЧрд╛рдпрдм рд╣реЛ рдЧрдИрдВред
рддрд╕реЛрдХ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг
get_temps
- рдкреНрд░рддреНрдпреЗрдХ 30 рд╕реЗрдХрдВрдб рдореЗрдВ рд╕реЗрдВрд╕рд░ рд╕реЗ рддрд╛рдкрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдЕрдзрд┐рдХ рдмрд╛рд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
get_time_task
- NTP рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЖрд░рдЯреАрд╕реА рдореЙрдбреНрдпреВрд▓ DS3231 рд╕реЗ рд╕рдордп рдирд┐рдХрд▓ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕рд╛рд▓ рдХреЗ рдХрд╛рдо рдХреЗ рдмрд╛рдж рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд▓рдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рдордп рд╣реАрдЯрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ - рджрд┐рди рдпрд╛ рд░рд╛рддред рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдЗрдВрдЯрд░рдиреЗрдЯ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдордп рдмрд╕ рдлреНрд░реАрдЬ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдмрд╕ рдПрдХ рд╣реА рд░рд╣реЗрдЧрд╛ред рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдИ рдЗрдВрдЯрд░рдиреЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдордп рд╣рдореЗрд╢рд╛ 0:00:00 рд╣реЛрдЧрд╛ - рд░рд╛рдд рдореЗрдВ рд╣реАрдЯрд┐рдВрдЧ рдореЛрдбред
calculate_water_temp
- рдКрдкрд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
detect_pir_move
- HC-SR501 рд╕реЗрдВрд╕рд░ рд╕реЗ рдореЛрд╢рди рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рд╕реЗрдВрд╕рд░ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ рдмрдирд╛рддрд╛ рд╣реИ + 3.3V рдЬрдм рдЧрддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ digitalRead
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реИрд╕реЗ, рдЗрд╕ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рди рдХреЛ GND - pinMode(pir_pin, INPUT_PULLDOWN);
рддрдХ рдЦреАрдВрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП pinMode(pir_pin, INPUT_PULLDOWN);
heating_control
- рд╣реАрдЯрд┐рдВрдЧ рдореЛрдб рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ред
out_lamp_control
- рдПрдХ рд╕реНрдЯреНрд░реАрдЯ рд▓реИрдВрдк рдХрд╛ рдирд┐рдпрдВрддреНрд░рдгред
рдЬрдм рдЧрддрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ panic_control
- рд╕рд╛рдпрд░рди рдФрд░ рд╕реНрдкреЙрдЯрд▓рд╛рдЗрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдпрд░рди рдФрд░ рдЪрдордХрддреА рд░реЛрд╢рдиреА рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, outside_lamp_blinks
рдФрд░ siren_beeps
ред FreeRTOS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЪрдордХрддреА рдФрд░ рдмреАрдкреНрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░, рдЕрдиреНрдп рдХрд╛рд░реНрдп рдЖрдкрдХреЗ рдХрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВред FreeRTOS рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдп рдореЗрдВ рдХреЛрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдЧрд╛ред loop
рдореЗрдВ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп loop
рд╕рдм рдХреБрдЫ рдЗрддрдиреА рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рддред
guard_control
- рдЧрд╛рд░реНрдб рдореЛрдб рдХрд╛ рдирд┐рдпрдВрддреНрд░рдгред
send_data_to_blynk
- Blynk рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬреЗрдВред
run_blynk
- Blynk.run()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреБрдЕрд▓ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдХреЗ рд░реВрдк рдореЗрдВ Blynk.run()
рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЖрд╡реЗрджрди рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рддрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, Blynk.run()
рдПрдХ loop
рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣рд╛рдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдХрд╛рдо рдмрдирд╛ рджрд┐рдпрд╛ред
write_setting_to_pref
рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдХреЙрд░реНрдб рд╕реЗрдЯрд┐рдВрдЧ рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб write_setting_to_pref
ред рдкреНрд░реАрдлрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
count_heated_hours
- рдмреЙрдпрд▓рд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рд╕рдордп рдХреА рдЧрд┐рдирддреАред рдореИрдВрдиреЗ рдмрд╕ рдпрд╣ рдХрд┐рдпрд╛ рд╣реИ, рдЕрдЧрд░ рдмреЙрдпрд▓рд░ рдХреЛ рдЯрд╛рд╕реНрдХ рд▓реЙрдиреНрдЪ (рдкреНрд░рддреНрдпреЗрдХ 30 рд╕реЗрдХрдВрдб) рдХреЗ рдХреНрд╖рдг рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдПрдХ рд╕реЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
send_heated_hours_to_app
- рдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ рдорд╛рди рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ 0.00833 (1/120 рдШрдВрдЯреЗ) рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдмреЙрдпрд▓рд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреНрд░рд╛рдкреНрдд рдШрдВрдЯреЛрдВ рдХреЛ рдмрд┐рд▓рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
feed_watchdog
- рд╡реЙрдЪрдбреЙрдЧ рдлрд╝реАрдбред рдореБрдЭреЗ рд╡реЙрдЪрдбреЙрдЧ рд▓рд┐рдЦрдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдирд┐рдпрдВрддреНрд░рдХ рдЬрдо рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╣рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рд╡реЙрдЪрдбреЙрдЧ рдЯрд╛рдЗрдорд░ 10 рд╕реЗрдХрдВрдб, рдирд┐рдпрдВрддреНрд░рдХ 10 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рдареАрдХ рд╣реИред
heart_beat
- рдПрдХ рдирд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпред рдЬрдм рдореИрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдмреЛрд░реНрдб рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрд▓рдИрдбреА рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ UART рдПрд▓рдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ - Serial.begin(9600);
рд╕реНрдерд╛рдкрд┐рдд Serial.begin(9600);
рдФрд░ UART рдореЗрдВ рдПрдХ рд▓рдВрдмреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЦреЗрдВред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдИрдПрд╕рдкреА 32 рдПрдирд╡реАрдПрд╕ рд▓реЗрд╡рд▓рд┐рдВрдЧ рдкрд╣рдирддреЗ рд╣реИрдВ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╡рд░рдг рдмрд▓реНрдХрд┐ рдХреНрд░реВрдб рд╣реИрдВ, рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░, рдмрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рд░ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА
Arduino рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП EEPROM рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЫреЛрдЯреА рд╕реА рдореЗрдореЛрд░реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдФрд░ рдорд┐рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рдХреЛ рдХреЗрд╡рд▓ рд╕реЗрдХреНрдЯрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдорд┐рдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
ESP32 рдореЗрдВ рдХреЛрдИ EEPROM рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░ 4 рдПрдордмреА рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХрдВрдЯреНрд░реЛрд▓рд░ рдлрд░реНрдорд╡реЗрдпрд░ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрднрд╛рдЧ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ - NVS, FATFS, SPIFFSред рдпрд╣ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪреБрдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛ рд░рд╣реЗ рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ Int рдХреЗ рд╣реИрдВ, рдореИрдВрдиреЗ NVS - рдЧреИрд░-рд╡реЙрд▓рд┐рдЯрд╛рдЗрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рдЪреБрдирд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рднрд╛рдЬрди рдЫреЛрдЯреЗ, рдЕрдХреНрд╕рд░ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐, рдЖрдкрдХреЛ NVS рдХреЗ рд╕рдВрдЧрдарди рдореЗрдВ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
EEPROM рдФрд░ FLASH рдХреА рддрд░рд╣, рдУрд╡рд░рд░рд╛рдЗрдЯрд┐рдВрдЧ рдбреЗрдЯрд╛ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ, EEPROM рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ 100,000 рд╕реЗ 1,000,000 рдмрд╛рд░ рддрдХ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ FLASH рд╕реЗрдХреНрдЯрд░ рд╕рдорд╛рди рд╣реИред рдпрджрд┐ рд╣рдо рдПрдХ рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдмрд╛рд░ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо 60 рд╕реЗрдХрдВрдб x 60 рдорд┐рдирдЯ x 24 рдШрдВрдЯреЗ = 86,400 рдмрд╛рд░ / рджрд┐рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдЗрд╕ рдореЛрдб рдореЗрдВ, рдмрд╛рдЗрдЯ 11 рджрд┐рдиреЛрдВ рддрдХ рдЪрд▓реЗрдЧрд╛, рдЬреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реИред рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдмрд╛рдЗрдЯ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрд▓рдмреНрдз рд░рд╣реЗрдЧреАред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Arduino EEPROM рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ update()
put()
рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рдмрджрд▓рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЖрдк рд╣рд░ рджреВрд╕рд░реЗ рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдореЛрдб рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд╛рдлреА рдХрдо рдмрджрд▓рддреЗ рд╣реИрдВред
NVS рдкрд╣рдирдиреЗ рдХреЗ рд╕реНрддрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлреНрд▓реИрд╢ рд╕реЗрдХреНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкреВрд░реЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдорд┐рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, NVS рдореЗрдВ рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкрддреНрд░рд┐рдХрд╛ рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕ рдкрддреНрд░рд┐рдХрд╛ рдХреЛ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рдХреЗ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреБрдВрдЬреА рдХреЗ рдЬреЛрдбрд╝реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ: рдореВрд▓реНрдпред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ EEPROM рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рд╛рд░реНрдердХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдПрдХ рдкрддреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред рдЕрджреНрдпрддрди: рдХреБрдВрдЬреА рдХреА рд▓рдВрдмрд╛рдИ 15 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдг рдирд╣реАрдВ рд╣реИ!
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдорд╛рди рдХреЛ рдХрд┐рд╕реА рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП 1
somekey
, рдФрд░ рдлрд┐рд░ рдорд╛рди 2
рдХреЛ рдЙрд╕реА рдХреБрдВрдЬреА рдкрд░ рд▓рд┐рдЦреЗрдВ, рддреЛ рдкрд╣рд▓рд╛ рдорд╛рди рд╣рдЯрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╣рдЯрд╛рдП рдЧрдП (рдорд┐рдЯрд╛рдП рдЧрдП) рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд▓реЙрдЧ рдореЗрдВ рдПрдХ рдирдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝реА рдЬрд╛рдПрдЧреА:

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ somekey
рдЗрд╕ рдХреБрдВрдЬреА рдХрд╛ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рд▓реЙрдЧ рдЖрдо рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
рдкреГрд╖реНрда рдореЗрдВ рдПрдХ рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЦрд╛рд▓реА - рдЦрд╛рд▓реА, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛, рд╕рдХреНрд░рд┐рдп - рдбреЗрдЯрд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдкреВрд░реНрдг - рдкреВрд░реНрдг рд╣реИ, рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗред рдЬреИрд╕реЗ рд╣реА рдкреГрд╖реНрда рд╕реНрдерд╛рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рд╡рд╣
рд╕рдХреНрд░рд┐рдп рдкреВрд░реНрдг рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓рд╛ рдЦрд╛рд▓реА рдкреГрд╖реНрда рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрд╣рд╛рдБ рддрдХ рдореИрдВрдиреЗ рдПрд╕реНрдкреНрд░реЗрд╕рд┐рдл рд╡реЗрдмрд╕рд╛рдЗрдЯ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдордВрдЪреЛрдВ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд╕рдордЭрд╛, рдкреЗрдЬ рдХреА рд╕рдлрд╛рдИ рддрдм рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЬрдм рдореБрдлреНрдд рдкреЗрдЬ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдорд┐рдЯрд╛рдирд╛ рддрдм рд╣реЛрдЧрд╛ рдЬрдм рдХреЗрд╡рд▓ 1 рдореБрдХреНрдд рдкреГрд╖реНрда рд░рд╣рддрд╛ рд╣реИред
рдпрджрд┐ рдкреГрд╖реНрда рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рд░рд┐рдХреЙрд░реНрдб (рдиреЙрди-рдЗрд░реЗрдЬрд╝реНрдб) рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреГрд╖реНрда рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреГрд╖реНрда рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рд░рд╛рдЗрдЯ-рдЗрд░реЗрдЬ рдСрдкрд░реЗрд╢рди рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реИ, рдЕрдзрд┐рдХ рдкреГрд╖реНрда - рдХрдо рдЕрдХреНрд╕рд░ред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВрдиреЗ рдПрдирд╡реАрдПрд╕ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдЖрдХрд╛рд░ 1 рдПрдордмреА рддрдХ рдмрдврд╝рд╛ рджрд┐рдпрд╛, рдореЗрд░реА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рджрд░ рдкрд░ рдпрд╣ 170 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред NVS рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд▓реЗ рдЬрд╛рдПрдЧрд╛ред
NVS рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, Arduino Core рдХреЗ рд▓рд┐рдП ESP32 рдореЗрдВ рдкреНрд░реЗрдлрд░реЗрдВрд╕ рдХреА рдПрдХ рдЖрд╕рд╛рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдпрд╣рд╛рдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ ред
VisualGDB рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛
рдЬреИрд╕реЗ рд╣реА рдореИрдВрдиреЗ Arduino IDE рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдореБрдЭреЗ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреБрдЦреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реЗ рддреБрд░рдВрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖред рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реАрдПрд╕ рднреА рдПрдХ рдлрд╡реНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд░реНрдбреБрдЗрдиреЛ рдЖрдИрдбреАрдИ рдореЗрдВ 50 рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рджрд░реНрджрдирд╛рдХ рдФрд░ рджрд░реНрджрдирд╛рдХ рд░реВрдк рд╕реЗ рд▓рдВрдмрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдИрдбреАрдИ рдЪреБрдирдиреЗ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдард╛ред рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ VS рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВ, рдореИрдВрдиреЗ VisualGDB рдкрд░ рд╕рдордЭреМрддрд╛ рдХрд┐рдпрд╛ рд╣реИ ред
Arduino IDE рдХреЗ рдмрд╛рдж, ESP32 рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдЖрд╢реНрд░рдп рд╣реИред рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреНрдпрд╛ рд╣реИ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЙрд▓ рдХреА рдЦреЛрдЬ рдФрд░ рдЪрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
VisualGDB рдХреЗ рд╕рд╛рде ESP32 рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрджрд▓рдирд╛
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрд╛рд▓рд┐рдХрд╛ рдХреЛ ESP32 рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╕рд╛рде рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ рдХреЛ csv рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ VisualGDB рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рд▓рд┐рдЦрддреА рд╣реИ:
Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, 0x9000, 0x5000, otadata, data, ota, 0xe000, 0x2000, app0, app, ota_0, 0x10000, 0x140000, app1, app, ota_1, 0x150000,0x140000, spiffs, data, spiffs, 0x290000,0x170000,
рдпрд╣рд╛рдВ рд╣рдо NVS рдХреЗ рддрд╣рдд рдПрдХ рд╕реЗрдХреНрд╢рди, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рджреЛ рд╕реЗрдХреНрд╢рди рдФрд░ рдХреБрдЫ рдФрд░ рд╕реЗрдХреНрд╢рди рджреЗрдЦрддреЗ рд╣реИрдВред рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ app0 (рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди) рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рдкрддреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдСрдлрд╕реЗрдЯ 0x10000 рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдмреВрдЯрд▓реЛрдбрд░ рдЗрд╕рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдлрд╕реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЕрдиреБрднрд╛рдЧ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ "рдУрд╡рд░рд▓реИрдк" рди рдХрд░реЗрдВред рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рд╕реНрд╡рдпрдВ рдСрдлрд╕реЗрдЯ 0x8000 рдкрд░ рд▓рд┐рдЦреА рдЧрдИ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдирд╡реАрдПрд╕ рдХрд╛ рдЖрдХрд╛рд░ 0x5000 - 20KB рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ:
Name, Type, SubType, Offset, Size, Flags app0, app, ota_0, 0x10000, 0x140000, nvs, data, nvs, , 1M, otadata, data, ota, , 0x2000, spiffs, data, spiffs, , 0x170000,
рдирд╛рдо рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЧреНрд░рд┐рдб рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛, рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдирд╡реАрдПрд╕ рдХрд╛ рдЖрдХрд╛рд░ 1 рдПрдордмреА рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдСрдлрд╕реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреБрднрд╛рдЧ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ app0 рдХреЗ рд▓рд┐рдП рдСрдлрд╕реЗрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред CSV рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдиреЛрдЯрдкреИрдб рдореЗрдВ txt рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕рд╣реЗрдЬреЗ рдЧрдП рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП csv рдХреА рдЕрдиреБрдорддрд┐ рдХреЛ рдмрджрд▓ рджреЗрдВред
рдЕрдЧрд▓рд╛, рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрд╛рдЗрдирд░реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рд░реВрдк рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдирд╡рд░реНрдЯрд░ рдЪрд▓рд╛рдПрдВ:
c:\Users\userName\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.3\tools\gen_esp32part.exe part_table_name.csv part_table_name.bin
ред рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдкрдХрд╛ CSV рд╣реИ, рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рдмрд╛рдЗрдирд░реА рд╣реИред
рдкрд░рд┐рдгрд╛рдореА рдмрд╛рдЗрдирд░реА рдХреЛ c:\Users\userName\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.3\tools\partitions\part_table_name.csv
, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣ рдерд╛ рдЬрд┐рд╕реЗ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдирд╣реАрдВред рдЖрдк рдлрд╝рд╛рдЗрд▓ c:\Users\userName\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.3\boards.txt
рдореЗрдВ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рд▓рд┐рдЦрдХрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ esp32doit-devkit-v1.build.partitions=part_table_name
рдЗрди рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рдЬрдм рдЖрд╡реЗрджрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг VisualGDB рдмрд┐рд▓реНрдХреБрд▓ рдЖрдкрдХреЗ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рд▓реЗ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдВрджрд░ рдбрд╛рд▓ рджреЗрдЧрд╛
~project_folder_path\Output\board_name\Debug\project_name.ino.partitions.bin
, рдЬрд╣рд╛рдВ рд╕реЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдмреЛрд░реНрдб рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ред
JTAG рдбрд┐рдмрдЧрд░ CJMC-FT232H
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рдбрд┐рдмрдЧрд░ рд╣реИ рдЬреЛ рдИрдПрд╕рдкреА 32 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдиреЗ рдореБрдЭреЗ рд▓рдЧрднрдЧ 600 рд░реВрдмрд▓ рдХреА рд▓рд╛рдЧрдд рджреА, рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ рдЕрд▓рд┐рдХреНрд╕рдкреНрд░реЗрд╕ред

рдЬрдм рдЖрдк рдбрд┐рдмрдЧрд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рдЙрд╕ рдкрд░ рдЕрдиреБрдкрдпреБрдХреНрдд рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЬрд╝рдбрд┐рдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдореИрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред
рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ ESP32 рджреЗрд╡рдХрд┐рдЯ-v1 рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ:
FT232H - ESP32
AD0 - GPIO13
AD1 - GPIO12
AD2 - GPIO15
AD3 - GPIO14
рдлрд┐рд░, Project -> VisualGDB Project Properties
рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рдЗрд╕рдХреЗ рдмрд╛рдж Test рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдХрднреА-рдХрднреА рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдкрд╣рд▓реА рдмрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рд▓рдЧрддреА рд╣реИ, рдлрд┐рд░ рдЖрдкрдХреЛ рдЯреЗрд╕реНрдЯ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдФрд░ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ, рддреЛ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓рдЧрднрдЧ 5 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдЖрдорддреМрд░ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ESP32 рдореЗрдВ рд╣реА (рдбрд┐рдмрдЧрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ) рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ Debug -> Attach to Running Embedded Firmware
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рджреА Debug -> Attach to Running Embedded Firmware
ред рдХреЛрдб рдореЗрдВ, рдЖрдк рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯреНрд╕ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмреНрд░реЗрдХрдбрд╛рдЙрди рдХреЗ рд╕рдордп рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ Debug -> Windows -> Threads
рд╡рд┐рдВрдбреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдлреНрд░реАрдЯреНрд░реЙрд╕ рдХрд╛рд░реНрдп рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рд╣реИ, рдЬреЛ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧреА рд╣реИред рдбрд┐рдмрдЧрд░ рдХреЗ рдпреЗ рдХрд╛рд░реНрдп рдореЗрд░реЗ рд▓рд┐рдП рдЖрд░рд╛рдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдереЗред
рдЬрдм рдореИрдВрдиреЗ рдПрдирд╡реАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рд▓рдЧрд╛рддрд╛рд░ рдЕрд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрд╛рдзрд┐рдд рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдмрдЧрд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ NVS рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдбрдВрдк рдЬреИрд╕рд╛ рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдордп NVS рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рдпрдВрддреНрд░рдХ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ 2 рдПрдирд╡реАрдПрд╕ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдо рдФрд░ рджреВрд╕рд░рд╛ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдерд╛, рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдореЗрдВ, рдЗрд╕рдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдХрд╛рдо рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреАред
Glitches ESP32
Aliexpress рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рдХреА рддрд░рд╣, рдореЗрд░реЗ ESP32 рдмреЛрд░реНрдб рдХреА рдЕрдкрдиреА рдереА, рдЬрд┐рд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд╣реАрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рд╡рд╣ рдкрд╣реБрдВрдЪреА, рддреЛ рдореИрдВрдиреЗ рдмреЛрд░реНрдб рд╕реЗ I2C рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЦрд┐рд▓рд╛рдпрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдмреЛрд░реНрдб рдиреЗ рд░рд┐рдмреВрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЕрдЧрд░ рдХреЛрдИ рднреА рдЙрдкрднреЛрдЧ рдЙрдкрдХрд░рдг рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рдВрдзрд╛рд░рд┐рддреНрд░ + 5 рд╡реА рдкреИрд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдерд╛ред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред
рдЕрдм рдореИрдВ рдмреЛрд░реНрдб рдХреЛ рдЪреАрдиреА рдЪрд╛рд░реНрдЬ 0.7A, 3.3V рдмреЛрд░реНрдб рдХреЗ рдкреИрд░ рд╕реЗ ds18b20 рд╕реЗрдВрд╕рд░ рдФрд░ 2A рдХреЗ рджреВрд╕рд░реЗ рдЪрд╛рд░реНрдЬ рд╕реЗ рд░рд┐рд▓реЗ рдФрд░ рдореЛрд╢рди рд╕реЗрдВрд╕рд░ рд╕реЗ рдкрд╛рд╡рд░ рджреЗрддрд╛ рд╣реВрдВред рдмреЛрд░реНрдб рдХрд╛ GND рдкреИрд░ рдмреЗрд╢рдХ рдмрд╛рдХреА рд▓реЛрд╣реЗ рдХреЗ GND рдкрд┐рдВрд╕ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рд╕рд╕реНрддрд╛ рдФрд░ рд╣рдВрд╕рдореБрдЦ рд╣рдорд╛рд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдореБрдЭреЗ рдШрд░ рдореЗрдВ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ, рдкреИрд╕реЗ рдФрд░ рдкрд╕реАрдиреЗ рдХреА рдХрдорд╛рдИ рдХреЛ рдмрдЪрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛ред рдлрд┐рд▓рд╣рд╛рд▓, рдЕрдЧрд░ рд╣реАрдЯрд┐рдВрдЧ рдкреВрд░реЗ рджрд┐рди 23 рдбрд┐рдЧреНрд░реА рдХреЛ -5 - -7 рдХреЗ рдмрд╛рд╣рд░ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмреЙрдпрд▓рд░ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рдЧрднрдЧ 11 рдШрдВрдЯреЗ рд╣реИред рдпрджрд┐ рджрд┐рди рдХреЗ рджреМрд░рд╛рди 20 рдбрд┐рдЧреНрд░реА рдФрд░ рд╢рд╛рдо рдХреЛ рдХреЗрд╡рд▓ 23 рдХреЛ рдЧрд░реНрдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рддреЛ рдпрд╣ рдмреЙрдпрд▓рд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 9 рдШрдВрдЯреЗ рд╣реИред рдмреЙрдпрд▓рд░ рдХреА рдХреНрд╖рдорддрд╛ 6 рдХрд┐рд▓реЛрд╡рд╛рдЯ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 2.2 рд░реВрдмрд▓ рдХреЗ рдХрд┐рд▓реЛрд╡рд╛рдЯ рдХреА рд╡рд░реНрддрдорд╛рди рдХреАрдордд рд╣реИ, рдпрд╣ рдкреНрд░рддрд┐ рджрд┐рди рд▓рдЧрднрдЧ 26.4 рд░реВрдмрд▓ рд╣реИред рд╣рдорд╛рд░реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реАрдЯрд┐рдВрдЧ рд╕реАрдЬрди рдХреА рдЕрд╡рдзрд┐ 200 рджрд┐рди рд╣реИ, рд╣реАрдЯрд┐рдВрдЧ рд╕реАрдЬрди рдореЗрдВ рдФрд╕рдд рддрд╛рдкрдорд╛рди рд╕рд┐рд░реНрдл -5 рдбрд┐рдЧреНрд░реА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╣реАрдЯрд┐рдВрдЧ рдХреЗ рдореМрд╕рдо рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 5000r рдмрдЪрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд▓рд╛рдЧрдд 2000r рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рд▓рд╛рдЧрддреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рддрдереНрдп рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдХреА рдПрдХ рддреИрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреА рд▓рд╛рдЧрдд рдХрдо рд╕реЗ рдХрдо 20,000r рд╣реЛрдЧреАред рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХрд╛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╕реА ++ рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреНрдп рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рдШрдВрдЯреЛрдВ рдХреЗ рдЕрдиреБрднрд╡рд╣реАрди рдЧреНрд▓рд┐рдЪ рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рдЕрдиреБрднрд╡)ред рдФрд░ рдЕрдиреБрднрд╡, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
Blynk рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:



рдмреЗрд╢рдХ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЛрдб рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХреГрддрд┐ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдордп рдХреА рдХрдореА рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ рдФрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрдардиреАрдпрддрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдмрд╕ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрд╣рд╛рдиреЗ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдореЗрд░рд╛ рдХреЛрдб рдЗрддрдирд╛ рдбрд░рд╛рд╡рдирд╛ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛, рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЕрдЧрд░ рдореЗрд░рд╛ рд╕реНрдХреНрд░рд┐рдмрд▓ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреАред рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдЯрд┐рдкреНрдкрдгреА рдФрд░ рд╕реБрдЭрд╛рд╡ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред
рд╕рдВрджрд░реНрднреЛрдВ рдХреА рд╕реВрдЪреА