{"id":74408,"date":"2020-03-17T08:43:01","date_gmt":"2020-03-17T05:43:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/podklyuchaem-schetchik-vody-k-umnomu-domu"},"modified":"2020-03-17T08:43:01","modified_gmt":"2020-03-17T05:43:01","slug":"podklyuchaem-schetchik-vody-k-umnomu-domu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/podklyuchaem-schetchik-vody-k-umnomu-domu","title":{"rendered":"Vesi loendur \u00fchendamine nutika koju","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u043b\u0438 \u043a\u0430\u043a \u0438\u0445 \u0447\u0430\u0441\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u201c\u0443\u043c\u043d\u044b\u0439 \u0434\u043e\u043c\u201d, \u0431\u044b\u043b\u0438 \u0436\u0443\u0442\u043a\u043e \u0434\u043e\u0440\u043e\u0433\u0438\u043c\u0438 \u0438 \u0438\u0445 \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u043b\u0438\u0448\u044c \u0431\u043e\u0433\u0430\u0447\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u044b \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438, \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0440\u043e\u0437\u0435\u0442\u043a\u0430\u043c\u0438, \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u0435\u0439, \u0432\u043e\u0434\u043e\u0441\u043d\u0430\u0431\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u043c\u0438. \u0418 \u0434\u0430\u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u0440\u0438\u0432\u043e\u0440\u0443\u043a\u0438\u0439 DIY-\u0448\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043e\u0431\u0449\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c\u0443 \u0438 \u0437\u0430 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430.<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/dd24780d31dfd57ae4c5df96182e02d3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u044d\u0442\u043e \u043b\u0438\u0431\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0438, \u043b\u0438\u0431\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b. \u041e\u043d\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043b\u0435\u0433\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0432\u0440\u043e\u0434\u0435 \u201c\u043f\u0440\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0432\u0435\u0442\u201d \u0438\u043b\u0438 \u201c\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0432\u043e\u0437\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0442\u0443\u0448\u0438\u0442 \u0441\u0432\u0435\u0442 \u0432\u043e \u0432\u0441\u0435\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435\u201d. \u041d\u043e \u0432\u043e\u0442 \u0441 \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0435\u0439 \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c. \u0412 \u043b\u0443\u0447\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0433\u0440\u0430\u0444\u0438\u043a \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0438 \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u0438, \u0438\u043b\u0438 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0440\u043e\u0437\u0435\u0442\u043a\u0435.<\/p>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u0441\u0435\u0431\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0438 \u0432\u043e\u0434\u044b \u0441 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043d\u044b\u043c \u0432\u044b\u0445\u043e\u0434\u043e\u043c. \u0427\u0435\u0440\u0435\u0437 \u043a\u0430\u0436\u0434\u044b\u0439 \u043b\u0438\u0442\u0440 \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0432\u0448\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0433\u0435\u0440\u043a\u043e\u043d \u0438 \u0437\u0430\u043c\u044b\u043a\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0430\u043a\u0442. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0434\u0435\u043b\u043e \u0437\u0430 \u043c\u0430\u043b\u044b\u043c \u2014 \u043f\u0440\u0438\u0446\u0435\u043f\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u043e\u0432\u043e\u0434\u0430\u043c \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0432\u043e\u0434\u044b \u043f\u043e \u0447\u0430\u0441\u0430\u043c \u0438 \u0434\u043d\u044f\u043c \u043d\u0435\u0434\u0435\u043b\u0438. \u041d\u0443 \u0430 \u0435\u0441\u043b\u0438 \u0441\u0442\u043e\u044f\u043a\u043e\u0432 \u0434\u043b\u044f \u0432\u043e\u0434\u044b \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0442\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435, \u0447\u0435\u043c \u043b\u0430\u0437\u0438\u0442\u044c \u043f\u043e \u0442\u0440\u0443\u0434\u043d\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u043d\u0438\u0448\u0430\u043c \u0441 \u0444\u043e\u043d\u0430\u0440\u0438\u043a\u043e\u043c.<\/p>\n<p>\u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043c\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 ESP8266, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u0441\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u0432\u043e\u0434\u044b \u0438 \u043f\u043e MQTT \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0443\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043d\u0430 micropython \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 uasyncio. \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u044f \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u041f\u043e\u0435\u0445\u0430\u043b\u0438!<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>\u0421\u0445\u0435\u043c\u0430<\/h3>\n<p>\n<img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/2e66c8e0d2ebc7b3a646ab82e5fbbd45.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0421\u0435\u0440\u0434\u0446\u0435\u043c \u0432\u0441\u0435\u0439 \u0441\u0445\u0435\u043c\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 ESP8266. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f ESP-12, \u043d\u043e \u043c\u043e\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0431\u0440\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u043c ESP-07, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438. \u0411\u043b\u0430\u0433\u043e \u043e\u043d\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0438 \u043f\u043e \u0432\u044b\u0432\u043e\u0434\u0430\u043c, \u0438 \u043f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0443, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0430\u043d\u0442\u0435\u043d\u043d\u0435 \u2014 \u0443 ESP-12 \u043e\u043d\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f, \u0430 \u0443 ESP-07 \u2014 \u0432\u043d\u0435\u0448\u043d\u044f\u044f. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u0430\u043d\u0442\u0435\u043d\u043d\u044b WiFi \u0441\u0438\u0433\u043d\u0430\u043b \u0432 \u043c\u043e\u0435\u0439 \u0432\u0430\u043d\u043d\u043e\u0439 \u043b\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e.<\/p>\n<p>\u041e\u0431\u0432\u044f\u0437\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f:<\/p>\n<ul>\n<li>\u043a\u043d\u043e\u043f\u043a\u0430 \u0440\u0435\u0441\u0435\u0442 \u0441 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u043e\u0439 \u0438 \u043a\u043e\u043d\u0434\u0435\u043d\u0441\u0430\u0442\u043e\u0440\u043e\u043c (\u0445\u043e\u0442\u044f \u0438 \u0442\u043e \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f)<\/li>\n<li>\u0421\u0438\u0433\u043d\u0430\u043b enable (CH_PD) \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442 \u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044e<\/li>\n<li>GPIO15 \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442 \u043a \u0437\u0435\u043c\u043b\u0435. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435, \u043d\u043e \u043c\u043d\u0435 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u0447\u0435\u0433\u043e \u043d\u0430 \u044d\u0442\u0443 \u043d\u043e\u0433\u0443 \u0446\u0435\u043f\u043b\u044f\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e<\/li>\n<\/ul>\n<p>\n\u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044c GPIO2 \u043d\u0430 \u0437\u0435\u043c\u043b\u044e, \u0430 \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u044f \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043a\u043d\u043e\u043f\u043a\u0443 Boot. \u0412 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u044d\u0442\u043e\u0442 \u043f\u0438\u043d \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044e. <\/p>\n<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0438 GPIO2 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u2014 \u043f\u0440\u0438 \u043f\u043e\u0434\u0430\u0447\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0435\u0442\u0430. \u0422\u0430\u043a \u043c\u043e\u0434\u0443\u043b\u044c \u043b\u0438\u0431\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044d\u0442\u043e\u0442 \u0432\u044b\u0432\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 GPIO. \u041d\u0443 \u0430 \u0440\u0430\u0437 \u0442\u0430\u043c \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0430, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0432\u0435\u0441\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0435 \u043a\u0430\u043a\u0443\u044e \u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c UART, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u0435\u043b \u043d\u0430 \u0433\u0440\u0435\u0431\u0435\u043d\u043a\u0443. \u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u2014 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e \u0442\u0443\u0434\u0430 USB-UART \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a. \u041d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c \u043e\u0442 3.3\u0412. \u0415\u0441\u043b\u0438 \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a \u043d\u0430 \u044d\u0442\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0430\u0442\u044c 5\u0412, \u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0433\u043e\u0440\u0438\u0442.<\/p>\n<p>\u0421 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0432 \u0432\u0430\u043d\u043d\u043e\u0439 \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435\u0442 \u2014 \u0440\u043e\u0437\u0435\u0442\u043a\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u043c\u0435\u0442\u0440\u0435 \u043e\u0442 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432, \u0442\u0430\u043a \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0443 \u043e\u0442 220\u0412. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0443 \u043c\u0435\u043d\u044f \u0431\u0443\u0434\u0435\u0442 \u0442\u0440\u0443\u0434\u0438\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=6P86Suw8E4A\">\u0431\u043b\u043e\u0447\u043e\u043a HLK-PM03<\/a><\/noindex> \u043e\u0442 Tenstar Robot. \u041b\u0438\u0447\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0442\u0443\u0433\u043e \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0439 \u0438 \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u043e\u0439, \u0430 \u0442\u0443\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0432 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u0435.<\/p>\n<p>\u0414\u043b\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u044f \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0439 \u043a GPIO2. \u0412\u043f\u0440\u043e\u0447\u0435\u043c \u0440\u0430\u0441\u043f\u0430\u0438\u0432\u0430\u0442\u044c \u044f \u0435\u0433\u043e \u043d\u0435 \u0441\u0442\u0430\u043b, \u0442.\u043a. \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 ESP-07 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434, \u043f\u0440\u0438\u0447\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0439 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 GPIO2. \u041d\u043e \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u043f\u0443\u0441\u043a\u0430\u0439 \u0431\u0443\u0434\u0435\u0442 \u2014 \u0432\u0434\u0440\u0443\u0433 \u044f \u0437\u0430\u0445\u043e\u0447\u0443 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u044d\u0442\u043e\u0442 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043d\u0430 \u043a\u043e\u0440\u043f\u0443\u0441.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c\u0443. \u0423 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u0432\u043e\u0434\u044b \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438, \u0443 \u043d\u0438\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0447\u0442\u043e \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u044d\u0442\u043e \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u044b \u2014 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0433\u0435\u0440\u043a\u043e\u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043b\u0438\u0442\u0440. \u0412\u044b\u0432\u043e\u0434\u044b \u0433\u0435\u0440\u043a\u043e\u043d\u043e\u0432 \u0443 \u043c\u0435\u043d\u044f \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u044b \u0432 GPIO12\/GPIO13. \u041f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 \u044f \u0431\u0443\u0434\u0443 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f. <\/p>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044f \u0437\u0430\u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b R8 \u0438 R9 \u0438 \u0432 \u043c\u043e\u0435\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043f\u043b\u0430\u0442\u044b \u0438\u0445 \u043d\u0435\u0442. \u041d\u043e \u0440\u0430\u0437 \u044f \u0443\u0436\u0435 \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u0441\u0445\u0435\u043c\u0443 \u043d\u0430 \u0432\u0441\u0435\u043e\u0431\u0449\u0435\u0435 \u043e\u0431\u043e\u0437\u0440\u0435\u043d\u0438\u0435, \u0442\u043e \u0441\u0442\u041e\u0438\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043e\u043f\u043b\u043e\u0448\u043d\u043e\u0441\u0442\u044c. \u0420\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b \u043d\u0443\u0436\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u043f\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u0440\u0442 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0433\u043b\u044e\u043a\u0430\u043d\u0435\u0442 \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043d\u0430 \u043f\u0438\u043d\u0435, \u0430 \u0433\u0435\u0440\u043a\u043e\u043d \u0437\u0430\u043a\u043e\u0440\u043e\u0442\u0438\u0442 \u044d\u0442\u0443 \u043b\u0438\u043d\u0438\u044e \u043d\u0430 \u0437\u0435\u043c\u043b\u044e (\u0441 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u0442\u0435\u0447\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 3.3\u0412\/1000\u041e\u043c = 3.3\u043c\u0410).<\/p>\n<p>\u041f\u043e\u0440\u0430 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u043f\u0430\u0434\u0435\u0442 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u0442\u0432\u043e. \u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432. \u041d\u043e \u044d\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e \u0431\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043e\u0431\u043c\u0435\u043d\u0430. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0415\u0441\u043b\u0438 \u0431\u044b \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u0435\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0437\u0430\u0432\u0435\u043b\u0441\u044f (\u0438\u043b\u0438 \u0437\u0430\u0432\u0435\u043b\u0441\u044f \u043f\u043e\u0437\u0436\u0435), \u0442\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043d\u0435 \u0441\u043c\u043e\u0433 \u0431\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u044b \u043d\u0435\u0432\u0435\u0440\u043d\u043e.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0435 \u043f\u0430\u043c\u044f\u0442\u0438, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u043e I2C. \u041e\u0441\u043e\u0431\u044b\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0444\u043b\u0435\u0448 \u043f\u0430\u043c\u044f\u0442\u0438 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442 \u2014 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0432\u0441\u0435\u0433\u043e 2 \u0447\u0438\u0441\u043b\u0430 (\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u0438\u0442\u0440\u043e\u0432 \u043f\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430\u043c \u0433\u043e\u0440\u044f\u0447\u0435\u0439 \u0438 \u0445\u043e\u043b\u043e\u0434\u043d\u043e\u0439 \u0432\u043e\u0434\u044b). \u0414\u0430\u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442. \u0410 \u0432\u043e\u0442 \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0446\u0438\u043a\u043b\u043e\u0432 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435. \u0423 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u044d\u0442\u043e 100 \u0442\u044b\u0441 \u0446\u0438\u043a\u043b\u043e\u0432, \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430. <\/p>\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u044d\u0442\u043e \u043c\u043d\u043e\u0433\u043e. \u041d\u043e \u044f \u0437\u0430 4 \u0433\u043e\u0434\u0430 \u043f\u0440\u043e\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0432\u043e\u0435\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u043b \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 500 \u043a\u0443\u0431\u043e\u0432 \u0432\u043e\u0434\u044b, \u044d\u0442\u043e 500 \u0442\u044b\u0441 \u043b\u0438\u0442\u0440\u043e\u0432! \u0418 500 \u0442\u044b\u0441 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432\u043e \u0444\u043b\u0435\u0448. \u0418 \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u043b\u043e\u0434\u043d\u0430\u044f \u0432\u043e\u0434\u0430. \u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u0435\u0440\u0435\u043f\u0430\u0438\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0443 \u043a\u0430\u0436\u0434\u044b\u0435 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442, \u043d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0435\u0441\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b FRAM. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 I2C EEPROM, \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u043e\u043e\u043e\u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0446\u0438\u043a\u043b\u043e\u0432 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0438 (\u0441\u043e\u0442\u043d\u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432). \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043a\u0430 \u0432\u0441\u0435 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0434\u043e\u0435\u0434\u0443 \u0434\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0430\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043a\u0430 \u043f\u043e\u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u044b\u0447\u043d\u0430\u044f 24LC512.<\/p>\n<h3>\u041f\u0435\u0447\u0430\u0442\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0430<\/h3>\n<p>\n\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043b\u0430\u0442\u0443 \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445. \u041f\u043e\u0442\u043e\u043c\u0443 \u043f\u043b\u0430\u0442\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u043e\u0434\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f. \u041d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0431\u0430\u0432\u0448\u0438\u0441\u044c \u0431\u0438\u0442\u044b\u0439 \u0447\u0430\u0441 \u0441 c \u043b\u0430\u0437\u0435\u0440\u043d\u044b\u043c \u0443\u0442\u044e\u0433\u043e\u043c \u0438 \u043f\u0430\u044f\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0441\u043a\u043e\u0439 (\u0431\u0435\u0437 \u043d\u0435\u0435 \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 comme il faut), \u044f \u0432\u0441\u0435 \u0436\u0435 \u0440\u0435\u0448\u0438\u043b \u0437\u0430\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043b\u0430\u0442\u044b \u0443 \u043a\u0438\u0442\u0430\u0439\u0446\u0435\u0432.<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/f202a5eaf1ba49b69301427c67b946fe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0423\u0436\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043a\u0430\u0437\u043e\u043c \u043f\u043b\u0430\u0442\u044b \u044f \u0441\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u043b, \u0447\u0442\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u0444\u043b\u0435\u0448 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 \u0448\u0438\u043d\u0443 I2C \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0446\u0435\u043f\u0438\u0442\u044c \u0447\u0442\u043e \u043d\u0438\u0431\u0443\u0434\u044c \u0435\u0449\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u0438\u0441\u043f\u043b\u0435\u0439. \u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u043d\u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u2014 \u043f\u043e\u043a\u0430 \u0435\u0449\u0435 \u0432\u043e\u043f\u0440\u043e\u0441, \u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0441\u0442\u0438 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u043d\u0443\u0436\u043d\u043e. \u041d\u0443 \u0430 \u0440\u0430\u0437 \u044f \u0441\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u043f\u043b\u0430\u0442\u044b \u0437\u0430\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0444\u0430\u0431\u0440\u0438\u043a\u0435, \u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u044f \u043e\u0434\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u043f\u043b\u0430\u0442\u043e\u0439 \u0443\u0436\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0441\u043c\u044b\u0441\u043b\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u0438\u043d\u0438\u0438 \u043d\u0430 I2C \u2014 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0437\u0430\u0434\u043d\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043b\u0430\u0442\u044b.<\/p>\n<p>\u0421 \u043e\u0434\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u0440\u0430\u0437\u0432\u043e\u0434\u043a\u043e\u0439 \u0442\u0430\u043a\u0436\u0435 \u0441\u0432\u044f\u0437\u0430\u043d \u0431\u044b\u043b \u043e\u0434\u0438\u043d \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u0441\u044f\u043a. \u0422.\u043a. \u043f\u043b\u0430\u0442\u0430 \u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043e\u0434\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f, \u0442\u043e \u0434\u043e\u0440\u043e\u0436\u043a\u0438 \u0438 SMD \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0430 \u0432\u044b\u0432\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u0440\u0430\u0437\u044a\u0435\u043c\u044b \u0438 \u0431\u043b\u043e\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0441 \u0434\u0440\u0443\u0433\u043e\u0439. \u041a\u043e\u0433\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0441\u044f\u0446 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u043b\u0430\u0442\u044b, \u0442\u043e \u0437\u0430\u0431\u044b\u043b \u043f\u0440\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043b\u0430\u043d \u0438 \u0440\u0430\u0441\u043f\u0430\u044f\u043b \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430 \u043b\u0438\u0446\u0435\u0432\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435. \u0418 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u0434\u0435\u043b\u043e \u0434\u043e\u0448\u043b\u043e \u0434\u043e \u043f\u0440\u0438\u043f\u0430\u0438\u0432\u0430\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u043b\u044e\u0441 \u0438 \u043c\u0438\u043d\u0443\u0441 \u0440\u0430\u0437\u0432\u0435\u0434\u0435\u043d\u044b \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043a\u043e\u043b\u0445\u043e\u0437\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0430\u043c\u0438. \u041d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u044b\u0448\u0435 \u044f \u0443\u0436\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b \u0440\u0430\u0437\u0432\u043e\u0434\u043a\u0443, \u043d\u043e \u0437\u0435\u043c\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u043b\u0430\u0442\u044b \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0432\u043e\u0434\u044b \u043a\u043d\u043e\u043f\u043a\u0438 Boot (\u0445\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u043e\u0435 \u0434\u043e\u0440\u043e\u0436\u043a\u0443 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438).<\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0432\u043e\u0442 \u0442\u0430\u043a<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/4e6eb30617d35ecdc0ea2fd96888d850.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>\u041a\u043e\u0440\u043f\u0443\u0441<\/h3>\n<p>\n\u0421\u043b\u0435\u0434\u0443\u0449\u0438\u0439 \u0448\u0430\u0433 \u2014 \u043a\u043e\u0440\u043f\u0443\u0441. \u041f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 3D \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0430 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041e\u0441\u043e\u0431\u043e \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0441\u044f \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u043a\u043e\u0440\u043e\u0431\u043a\u0443 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438 \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u044b\u0440\u0435\u0437\u044b \u0432 \u043d\u0443\u0436\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445. \u041a\u0440\u044b\u0448\u043a\u0430 \u043a\u0440\u0435\u043f\u0438\u0442\u0441\u044f \u043a \u043a\u043e\u0440\u043f\u0443\u0441\u0443 \u043d\u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0441\u0430\u043c\u043e\u0440\u0435\u0437\u0430\u0445.<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/f95f8b62e3756694a854770ac58af8aa.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u042f \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b, \u0447\u0442\u043e \u043a\u043d\u043e\u043f\u043a\u0430 Boot \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u043a\u0430\u043a \u043a\u043d\u043e\u043f\u043a\u0430 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u2014 \u0432\u043e\u0442 \u0435\u0435 \u0438 \u0432\u044b\u0432\u0435\u0434\u0435\u043c \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u043d\u044e\u044e \u043f\u0430\u043d\u0435\u043b\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u201c\u043a\u043e\u043b\u043e\u0434\u0435\u0446\u201d \u0433\u0434\u0435 \u0436\u0438\u0432\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0430.<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/9097247e5c0220f8bfbe915d4178b101.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0412\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043f\u0435\u043d\u044c\u043a\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0430 \u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0432\u0438\u043d\u0442\u043e\u043c \u041c3 (\u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0435\u0441\u0442\u0430 \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c)<\/p>\n<p>\u0414\u0438\u0441\u043f\u043b\u0435\u0439 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u043b \u0443\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u043b \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0447\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u0440\u043f\u0443\u0441\u0430. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0432\u0443\u0445\u0441\u0442\u0440\u043e\u0447\u043d\u0438\u043a \u0432 \u044d\u0442\u043e\u0442 \u043a\u043e\u0440\u043f\u0443\u0441 \u043d\u0435 \u0432\u043b\u0430\u0437\u0438\u043b, \u0437\u0430\u0442\u043e \u0432 \u0441\u0443\u0441\u0435\u043a\u0430\u0445 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0441\u044f OLED \u0434\u0438\u0441\u043f\u043b\u0435\u0439 SSD1306 128&#215;32. \u041c\u0430\u043b\u043e\u0432\u0430\u0442, \u043d\u043e \u043c\u043d\u0435 \u043d\u0430 \u043d\u0435\u0433\u043e \u043d\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0433\u043b\u0430\u0437\u0435\u0442\u044c \u2014 \u043f\u043e\u043a\u0430\u0442\u0438\u0442. <\/p>\n<p>\u041f\u0440\u0438\u043a\u0438\u0434\u044b\u0432\u0430\u044f \u0438 \u0442\u0430\u043a \u0438 \u044d\u0434\u0430\u043a \u043a\u0430\u043a \u043e\u0442 \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u0438\u043b\u0435\u043f\u0438\u0442\u044c \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u043f\u043e\u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0440\u043f\u0443\u0441\u0430. \u042d\u0440\u0433\u043e\u043d\u043e\u043c\u0438\u043a\u0430, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0438\u0436\u0435 \u043f\u043b\u0438\u043d\u0442\u0443\u0441\u0430 \u2014 \u043a\u043d\u043e\u043f\u043a\u0430 \u0441\u0432\u0435\u0440\u0445\u0443, \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0441\u043d\u0438\u0437\u0443. \u041d\u043e \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b, \u0447\u0442\u043e \u0438\u0434\u0435\u044f \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u043f\u0440\u0438\u0448\u043b\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u043e\u0437\u0434\u043d\u043e \u0438 \u043b\u0435\u043d\u044c \u0431\u044b\u043b\u043e \u043f\u0435\u0440\u0435\u0440\u0430\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043b\u0430\u0442\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443.<\/p>\n<p>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u0441\u0431\u043e\u0440\u0435. \u0414\u0438\u0441\u043f\u043b\u0435\u0439\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u0440\u0438\u043a\u043b\u0435\u0435\u043d \u043d\u0430 \u0441\u043e\u043f\u043b\u0438 \u0442\u0435\u0440\u043c\u043e\u043a\u043b\u0435\u0439<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/138e26deea889334623135fc3b3ff25b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/db9d43f7a9a2fb398e78eff5f30a6d5e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u041a\u0414\u041f\u0412<\/p>\n<h3>\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430<\/h3>\n<p>\n\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u0414\u043b\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u043e\u0434\u0435\u043b\u043e\u043a \u043c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a Python (<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.micropython.org\/en\/latest\/esp8266\/esp8266\/tutorial\/intro.html\">micropython<\/a><\/noindex>)- \u043a\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0439 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439. \u0411\u043b\u0430\u0433\u043e \u0442\u0443\u0442 \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0441 \u0446\u0435\u043b\u044c\u044e \u0432\u044b\u0436\u0438\u043c\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u2014 \u0432\u0441\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 \u043f\u0438\u0442\u043e\u043d\u0430. <\/p>\n<p>\u0412\u0440\u043e\u0434\u0435 \u0431\u044b \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0434\u0430 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u2014 \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430\u043c\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<ul>\n<li>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0442\u044b\u043a\u0430\u0435\u0442 \u0432 \u043a\u043d\u043e\u043f\u043a\u0443 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0439<\/li>\n<li>\u041b\u0438\u0442\u0440\u044b \u0442\u0438\u043a\u0430\u044e\u0442 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u043e \u0444\u043b\u0435\u0448 \u043f\u0430\u043c\u044f\u0442\u0438<\/li>\n<li>\u041c\u043e\u0434\u0443\u043b\u044c \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c WiFi \u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u043d\u043d\u0435\u043a\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e<\/li>\n<li>\u041d\u0443 \u0430 \u0431\u0435\u0437 \u043c\u043e\u0440\u0433\u0430\u044e\u0449\u0435\u0439 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435\u043b\u044c\u0437\u044f<\/li>\n<\/ul>\n<p>\n\u041d\u0435\u043b\u044c\u0437\u044f \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0447\u0442\u043e \u043e\u0434\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430, \u0435\u0441\u043b\u0438 \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0442\u0443\u043f\u0438\u0442. \u042f \u0443\u0436\u0435 \u043d\u0430\u0435\u043b\u0441\u044f \u043a\u0430\u043a\u0442\u0443\u0441\u043e\u0432 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0430\u043a \u0438 \u0432\u0438\u0436\u0443 \u0433\u043b\u044e\u043a\u0438 \u0432 \u0441\u0442\u0438\u043b\u0435 \u201c\u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043b\u0438\u0442\u0440, \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u043b\u0441\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u0439\u201d \u0438\u043b\u0438 \u201c\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u044c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0438\u0442\u0441\u044f \u043a WiFi\u201d. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0435\u0449\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0435\u0440\u0435\u0442\u044c\u0441\u044f \u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0438\u043b\u0438 \u043d\u0435\u0430\u0442\u043e\u043c\u0430\u0440\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u041d\u0443 \u0438 \u043a\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c \u0438 \u0441\u0440\u0430\u0437\u0443 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0448\u0443.<\/p>\n<p>\u0412 <noindex><a rel=\"nofollow\" href=\"https:\/\/geektimes.ru\/post\/287666\/\">\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043f\u043e\u0441\u0435\u0440\u044c\u0435\u0437\u043d\u0435\u0435<\/a><\/noindex> \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u044e\u0449\u0443\u044e \u043c\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438 FreeRTOS, \u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043c\u043e\u0434\u0435\u043b\u044c <noindex><a rel=\"nofollow\" href=\"https:\/\/habrahabr.ru\/post\/337420\/\">\u0441\u043e\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c (coroutines) \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 uasync <\/a><\/noindex>. \u041f\u0440\u0438\u0447\u0435\u043c \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u0440\u0443\u0442\u0438\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u043e\u043c\u0431\u043e\u0432\u0430\u044f \u2014 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0438 \u0441\u0435\u0431\u0435 \u043b\u043e\u0433\u0438\u043a\u0443, \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u0430\u0436\u0438 \u0432 \u043a\u0430\u043a\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0436\u043d\u043e.<\/p>\n<p>\u0420\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u044e\u0449\u0435\u0439 \u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u043e\u0439 \u043c\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0444\u0430\u043a\u0443\u043b\u044c\u0442\u0430\u0442\u0438\u0432\u043d\u043e. \u0410 \u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u0430\u0432\u0430\u0439\u0442\u0435, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043a\u043e\u0434\u0443.<\/p>\n<pre><code class=\"python\">#####################################\n# Counter class - implements a single water counter on specified pin\n#####################################\nclass Counter():\n    debounce_ms = const(25)\n    \n    def __init__(self, pin_num, value_storage):\n        self._value_storage = value_storage\n        \n        self._value = self._value_storage.read()\n        self._value_changed = False\n\n        self._pin = Pin(pin_num, Pin.IN, Pin.PULL_UP)\n\n        loop = asyncio.get_event_loop()\n        loop.create_task(self._switchcheck())  # Thread runs forever<\/code><\/pre>\n<p>\n\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0430 Counter. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0438\u0437 EEPROM (value_storage) \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430 \u2014 \u0442\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f. <\/p>\n<p>\u041f\u0438\u043d \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0442\u044f\u0436\u043a\u043e\u0439 \u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f: \u0435\u0441\u043b\u0438 \u0433\u0435\u0440\u043a\u043e\u043d \u0437\u0430\u043c\u043a\u043d\u0443\u0442 \u2014 \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 \u043d\u043e\u043b\u044c, \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u043e\u043c\u043a\u043d\u0443\u0442 \u043b\u0438\u043d\u0438\u044f \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044e \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0447\u0438\u0442\u0430\u0435\u0442 \u0435\u0434\u0438\u043d\u0438\u0446\u0443.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0442\u0443\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u043f\u0440\u043e\u0441 \u043f\u0438\u043d\u0430. \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0437\u0430\u0434\u0430\u0447\u0443. \u0412\u043e\u0442 \u0435\u0435 \u043a\u043e\u0434<\/p>\n<pre><code class=\"python\">    \"\"\" Poll pin and advance value when another litre passed \"\"\"\n    async def _switchcheck(self):\n        last_checked_pin_state = self._pin.value()  # Get initial state\n\n        # Poll for a pin change\n        while True:\n            state = self._pin.value()\n            if state != last_checked_pin_state:\n                # State has changed: act on it now.\n                last_checked_pin_state = state\n                if state == 0:\n                    self._another_litre_passed()\n\n            # Ignore further state changes until switch has settled\n            await asyncio.sleep_ms(Counter.debounce_ms)<\/code><\/pre>\n<p>\n\u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 25\u043c\u0441 \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u0440\u0435\u0431\u0435\u0437\u0433\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u043e\u043d\u0430 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0434\u0430\u0447\u0430 (\u043f\u043e\u043a\u0430 \u044d\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043f\u0438\u0442 \u2014 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438). \u041a\u0430\u0436\u0434\u044b\u0435 25\u043c\u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u0438\u043d \u0438 \u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u0433\u0435\u0440\u043a\u043e\u043d\u0430 \u0437\u0430\u043c\u043a\u043d\u0443\u043b\u0438\u0441\u044c, \u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0448\u0435\u043b \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043b\u0438\u0442\u0440 \u0438 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. <\/p>\n<pre><code class=\"python\">    def _another_litre_passed(self):\n        self._value += 1\n        self._value_changed = True\n\n        self._value_storage.write(self._value)<\/code><\/pre>\n<p>\n\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u043b\u0438\u0442\u0440\u0430 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u0430 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0447\u0435\u0442\u0447\u0438\u043a. \u041d\u0443 \u0438 \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0430 \u0444\u043b\u0435\u0448\u043a\u0443 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c.<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u201c\u0434\u043e\u0441\u0442\u0443\u043f\u0430\u0442\u043e\u0440\u044b\u201d<\/p>\n<pre><code class=\"python\">    def value(self):\n        self._value_changed = False\n        return self._value\n\n    def set_value(self, value):\n        self._value = value\n        self._value_changed = False<\/code><\/pre>\n<p>\n\u041d\u0443 \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043f\u0440\u0435\u043b\u0435\u0441\u0442\u044f\u043c\u0438 \u043f\u0438\u0442\u043e\u043d\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 uasync \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430 waitable (\u043a\u0430\u043a \u044d\u0442\u043e \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438-\u0442\u043e? \u0422\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u0442\u044c?)<\/p>\n<pre><code class=\"python\">    def __await__(self):\n        while not self._value_changed:\n            yield from asyncio.sleep(0)\n\n        return self.value()\n\n    __iter__ = __await__  <\/code><\/pre>\n<p>\n\u042d\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0436\u0434\u0435\u0442 \u043f\u043e\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0444\u043b\u0430\u0436\u043e\u043a _value_changed. \u041f\u0440\u0438\u043a\u043e\u043b \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0443\u0441\u043d\u0443\u0442\u044c \u043d\u0430 \u0432\u044b\u0437\u043e\u0432\u0435 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0441\u043f\u0430\u0442\u044c \u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p><b class=\"spoiler_title\">\u0410 \u043a\u0430\u043a \u0436\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f?<\/b>\u0414\u0430, \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0432\u044b \u043c\u0435\u043d\u044f \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0442\u0440\u043e\u043b\u043b\u0438\u0442\u044c, \u043c\u043e\u043b \u0441\u0430\u043c \u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043b \u043f\u0440\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u0430 \u043d\u0430 \u0434\u0435\u043b\u0435 \u0443\u0441\u0442\u0440\u043e\u0438\u043b \u0442\u0443\u043f\u043e\u0439 \u043e\u043f\u0440\u043e\u0441 \u043f\u0438\u043d\u0430. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b. \u0412 ESP8266 \u043c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0444\u0440\u043e\u043d\u0442\u0443, \u0438 \u0434\u0430\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u0438\u0442\u043e\u043d\u0435. \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u044d\u0442\u043e\u0433\u043e \u0431\u044b \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0431\u0443\u0434\u044c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u0435\u0434\u043e\u043c\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u2014 \u0442\u0430\u043a\u0438\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0436\u0434\u0435\u0442, \u043f\u043e\u043a\u0430 \u0443 \u043d\u0435\u0433\u043e \u043d\u0435 \u0441\u043f\u0440\u043e\u0441\u044f\u0442 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e (\u0438\u043b\u0438 \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e?) \u043c\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435, \u043e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u0430\u043c\u043e \u0441\u043b\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MQTT \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 EEPROM. \u0418 \u0442\u0443\u0442 \u0443\u0436\u0435 \u0432\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u2014 \u0432 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0442\u0435\u043a, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u0431 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u044b\u0442\u044c. \u0415\u0441\u0442\u044c \u043f\u043b\u044e\u0448\u043a\u0438 \u0442\u0438\u043f\u0430 micropython.schedule(), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043a\u0443\u044e \u043d\u0438\u0431\u0443\u0434\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u201c\u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a \u0438 \u0441\u0440\u0430\u0437\u0443\u201d, \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u201c\u0430 \u0442\u043e\u043b\u043a\u0443-\u0442\u043e?\u201d. \u0412\u0434\u0440\u0443\u0433 \u043c\u044b \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u0430\u043a\u043e\u0435 \u043d\u0438\u0431\u0443\u0434\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0430 \u0442\u0443\u0442 \u0432\u043a\u043b\u0438\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0440\u0442\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0418\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u0440\u0438\u0435\u0445\u0430\u043b\u043e \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430 \u043f\u043e\u043a\u0430 \u043c\u044b \u0435\u0449\u0435 \u0441\u0442\u0430\u0440\u043e\u0435 \u043d\u0435\u0434\u043e\u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0438. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0443\u0436\u043d\u043e \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043b\u0438 \u0432\u044b\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a-\u0442\u043e \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443. <\/p>\n<p>\u0410 \u0435\u0449\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043b\u0435\u0442\u0430\u0435\u0442 RuntimeError: schedule stack full \u0438 \u043a\u0442\u043e \u0435\u0433\u043e \u0437\u043d\u0430\u0435\u0442 \u043f\u043e\u0447\u0435\u043c\u0443?<\/p>\n<p>\u0421 \u044f\u0432\u043d\u044b\u043c \u043e\u043f\u0440\u043e\u0441\u043e\u043c \u0438 uasync \u043e\u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u043a-\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u0435\u0435 \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f<\/p>\n<p>\u0420\u0430\u0431\u043e\u0442\u0443 \u0441 EEPROM \u044f \u0432\u044b\u043d\u0435\u0441 \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043b\u0430\u0441\u0441<\/p>\n<pre><code class=\"python\">class EEPROM():\n    i2c_addr = const(80)\n\n    def __init__(self, i2c):\n        self.i2c = i2c\n        self.i2c_buf = bytearray(4) # Avoid creation\/destruction of the buffer on each call\n\n\n    def read(self, eeprom_addr):\n        self.i2c.readfrom_mem_into(self.i2c_addr, eeprom_addr, self.i2c_buf, addrsize=16)\n        return ustruct.unpack_from(\"&lt;I\", self.i2c_buf)[0]    \n        \n    \n    def write(self, eeprom_addr, value):\n        ustruct.pack_into(\"&lt;I\", self.i2c_buf, 0, value)\n        self.i2c.writeto_mem(self.i2c_addr, eeprom_addr, self.i2c_buf, addrsize=16)<\/code><\/pre>\n<p>\n\u0412 \u043f\u0438\u0442\u043e\u043d\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441 \u0431\u0430\u0439\u0442\u0430\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u043e\u0432\u0430\u0442\u043e, \u0430 \u0432\u0435\u0434\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0430\u0439\u0442\u044b \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044e \u043c\u0435\u0436\u0434\u0443 \u0446\u0435\u043b\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0438 \u0431\u0430\u0439\u0442\u0430\u043c\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 ustruct.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 I2C \u0438 \u0430\u0434\u0440\u0435\u0441 \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u044f \u0432\u0441\u0435 \u044d\u0442\u043e \u0437\u0430\u0432\u0435\u0440\u043d\u0443\u043b \u0432 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0438 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u043a<\/p>\n<pre><code class=\"python\">class EEPROMValue():\n    def __init__(self, i2c, eeprom_addr):\n        self._eeprom = EEPROM(i2c)\n        self._eeprom_addr = eeprom_addr\n        \n\n    def read(self):\n        return self._eeprom.read(self._eeprom_addr)\n\n\n    def write(self, value):\n        self._eeprom.write(self._eeprom_addr, value)<\/code><\/pre>\n<p>\n\u0421\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442 I2C \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438<\/p>\n<pre><code class=\"python\">i2c = I2C(freq=400000, scl=Pin(5), sda=Pin(4))<\/code><\/pre>\n<p>\n\u041f\u043e\u0434\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c\u0443 \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043f\u043e MQTT. \u041d\u0443 \u0441\u0430\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u2014 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043d\u0430\u0448\u043b\u0430\u0441\u044c <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/peterhinch\/micropython-mqtt\/tree\/master\/mqtt_as\">\u0433\u043e\u0442\u043e\u0432\u0430\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/a><\/noindex>. \u0412\u043e\u0442 \u0435\u0435 \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0412\u0441\u0435 \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043e \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 CounterMQTTClient, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u043c MQTTClient. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438<\/p>\n<pre><code class=\"python\">#####################################\n# Class handles both counters and sends their status to MQTT\n#####################################\nclass CounterMQTTClient(MQTTClient):\n\n    blue_led = Pin(2, Pin.OUT, value = 1)\n    button = Pin(0, Pin.IN)\n\n    hot_counter = Counter(12, EEPROMValue(i2c, EEPROM_ADDR_HOT_VALUE))\n    cold_counter = Counter(13, EEPROMValue(i2c, EEPROM_ADDR_COLD_VALUE))<\/code><\/pre>\n<p>\n\u0422\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0438\u043d\u044b \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0438 \u0438 \u043a\u043d\u043e\u043f\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u0445\u043e\u043b\u043e\u0434\u043d\u043e\u0439 \u0438 \u0433\u043e\u0440\u044f\u0447\u0435\u0439 \u0432\u043e\u0434\u044b.<\/p>\n<p>\u0421 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043d\u0435 \u0432\u0441\u0435 \u0442\u0430\u043a \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e<\/p>\n<pre><code class=\"python\">    def __init__(self):\n        self.internet_outage = True\n        self.internet_outages = 0\n        self.internet_outage_start = ticks_ms()\n\n        with open(\"config.txt\") as config_file:\n            config['ssid'] = config_file.readline().rstrip()\n            config['wifi_pw'] = config_file.readline().rstrip()\n            config['server'] = config_file.readline().rstrip()\n            config['client_id'] = config_file.readline().rstrip()\n            self._mqtt_cold_water_theme = config_file.readline().rstrip()\n            self._mqtt_hot_water_theme = config_file.readline().rstrip()\n            self._mqtt_debug_water_theme = config_file.readline().rstrip()\n\n        config['subs_cb'] = self.mqtt_msg_handler\n        config['wifi_coro'] = self.wifi_connection_handler\n        config['connect_coro'] = self.mqtt_connection_handler\n        config['clean'] = False\n        config['clean_init'] = False\n        super().__init__(config)\n\n        loop = asyncio.get_event_loop()\n        loop.create_task(self._heartbeat())\n        loop.create_task(self._counter_coro(self.cold_counter, self._mqtt_cold_water_theme))\n        loop.create_task(self._counter_coro(self.hot_counter, self._mqtt_hot_water_theme))\n        loop.create_task(self._display_coro())<\/code><\/pre>\n<p>\n\u0414\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 mqtt_as \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0440\u0430\u0437\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u2014 config. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u044f\u0432\u043d\u043e. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u0434\u0435 \u044f \u0438\u0445 \u0445\u0440\u0430\u043d\u044e \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u0430\u0439\u043b\u0435 config.txt. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u0434 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043a\u043b\u0435\u043f\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u043b\u043e\u043a \u043a\u043e\u0434\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0440\u0443\u0442\u0438\u043d \u0434\u043b\u044f \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412\u043e\u0442 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0440\u0443\u0442\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0438<\/p>\n<pre><code class=\"python\">    async def _counter_coro(self, counter, topic):\n        # Publish initial value\n        value = counter.value()\n        await self.publish(topic, str(value))\n\n        # Publish each new value\n        while True:\n            value = await counter\n            await self.publish_msg(topic, str(value))<\/code><\/pre>\n<p>\n\u041a\u043e\u0440\u0443\u0442\u0438\u043d\u0430 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0436\u0434\u0435\u0442 \u043d\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430 \u0438 \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u2014 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MQTT. \u041f\u0435\u0440\u0432\u044b\u0439 \u043a\u0443\u0441\u043e\u0447\u0435\u043a \u043a\u043e\u0434\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u043e\u0434\u0438\u0447\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043d\u0435 \u0442\u0435\u0447\u0435\u0442.<\/p>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 MQTTClient \u0441\u0430\u043c \u0441\u0435\u0431\u044f \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442, \u0441\u0430\u043c \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043f\u043e WiFi \u0438 \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u0435\u0442. \u041f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f WiFi \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430\u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0432\u044b\u0437\u043e\u0432\u043e\u043c wifi_connection_handler<\/p>\n<pre><code class=\"python\">    async def wifi_connection_handler(self, state):\n        self.internet_outage = not state\n        if state:\n            self.dprint('WiFi is up.')\n            duration = ticks_diff(ticks_ms(), self.internet_outage_start) \/\/ 1000\n            await self.publish_debug_msg('ReconnectedAfter', duration)\n        else:\n            self.internet_outages += 1\n            self.internet_outage_start = ticks_ms()\n            self.dprint('WiFi is down.')\n            \n        await asyncio.sleep(0)<\/code><\/pre>\n<p>\n\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0447\u0435\u0441\u0442\u043d\u043e \u0441\u043b\u0438\u0437\u0430\u043d\u0430 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 (internet_outages) \u0438 \u0438\u0445 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041f\u0440\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u044f. <\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438 \u0433\u043e\u0432\u043e\u0440\u044f, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 sleep \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0442\u0430\u043b\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u2014 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u043e\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 await, \u0430 \u0442\u0430\u043a \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0442\u0435\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 await.<\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u0441\u0432\u044f\u0437\u0438 \u0441 WiFi \u043d\u0443\u0436\u043d\u043e \u0435\u0449\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u043c (\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c). \u042d\u0442\u0438\u043c \u0442\u043e\u0436\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u0430 \u043d\u0430\u043c \u0432\u044b\u043f\u0430\u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e \u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e<\/p>\n<pre><code class=\"python\">    async def mqtt_connection_handler(self, client):\n        await client.subscribe(self._mqtt_cold_water_theme)\n        await client.subscribe(self._mqtt_hot_water_theme)<\/code><\/pre>\n<p>\n\u0422\u0443\u0442 \u043c\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u2014 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u043c\u0435\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"python\">    def mqtt_msg_handler(self, topic, msg):\n        topicstr = str(topic, 'utf8')\n        self.dprint(\"Received MQTT message topic={}, msg={}\".format(topicstr, msg))\n\n        if topicstr == self._mqtt_cold_water_theme:\n            self.cold_counter.set_value(int(msg))\n\n        if topicstr == self._mqtt_hot_water_theme:\n            self.hot_counter.set_value(int(msg))<\/code><\/pre>\n<p>\n\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0438 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0435\u043c\u044b (\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f) \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432<\/p>\n<p>\u041f\u0430\u0440\u043e\u0447\u043a\u0430 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/p>\n<pre><code class=\"python\">    # Publish a message if WiFi and broker is up, else discard\n    async def publish_msg(self, topic, msg):\n        self.dprint(\"Publishing message on topic {}: {}\".format(topic, msg))\n        if not self.internet_outage:\n            await self.publish(topic, msg)\n        else:\n            self.dprint(\"Message was not published - no internet connection\")<\/code><\/pre>\n<p>\n\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e. \u0415\u0441\u043b\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u0442 \u2014 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0410 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"python\">    async def publish_debug_msg(self, subtopic, msg):\n        await self.publish_msg(\"{}\/{}\".format(self._mqtt_debug_water_theme, subtopic), str(msg))\n<\/code><\/pre>\n<p>\n\u0422\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u0430 \u043c\u044b \u0435\u0449\u0435 \u043d\u0435 \u043c\u043e\u0440\u0433\u0430\u043b\u0438 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c. \u0412\u043e\u0442<\/p>\n<pre><code class=\"python\">    # Blink flash LED if WiFi down\n    async def _heartbeat(self):\n        while True:\n            if self.internet_outage:\n                self.blue_led(not self.blue_led()) # Fast blinking if no connection\n                await asyncio.sleep_ms(200) \n            else:\n                self.blue_led(0) # Rare blinking when connected\n                await asyncio.sleep_ms(50)\n                self.blue_led(1)\n                await asyncio.sleep_ms(5000)<\/code><\/pre>\n<p>\n\u042f \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043b 2 \u0440\u0435\u0436\u0438\u043c\u0430 \u043c\u043e\u0440\u0433\u0430\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u043f\u0430\u043b\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 (\u0438\u043b\u0438 \u043e\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f), \u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u043e\u0440\u0433\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u043e. \u0415\u0441\u043b\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u2014 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u043e\u0440\u0433\u0430\u0435\u0442 \u0440\u0430\u0437 \u0432 5 \u0441\u0435\u043a\u0443\u043d\u0434. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0440\u0435\u0436\u0438\u043c\u044b \u043c\u043e\u0440\u0433\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041d\u043e \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u044d\u0442\u043e \u0442\u0430\u043a, \u0431\u0430\u043b\u043e\u0432\u0441\u0442\u0432\u043e. \u041c\u044b \u0436\u0435 \u0435\u0449\u0435 \u043d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0437\u0430\u043c\u0430\u0445\u043d\u0443\u043b\u0438\u0441\u044c.<\/p>\n<pre><code class=\"python\">    async def _display_coro(self):\n        display = SSD1306_I2C(128,32, i2c)\n    \n        while True:\n            display.poweron()\n            display.fill(0)\n            display.text(\"COLD: {:.3f}\".format(self.cold_counter.value() \/ 1000), 16, 4)\n            display.text(\"HOT:  {:.3f}\".format(self.hot_counter.value() \/ 1000), 16, 20)\n            display.show()\n            await asyncio.sleep(3)\n            display.poweroff()\n\n            while self.button():\n                await asyncio.sleep_ms(20)<\/code><\/pre>\n<p>\n\u0412\u043e\u0442 \u044d\u0442\u043e \u0442\u043e, \u043e \u0447\u0435\u043c \u044f \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u2014 \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e \u0441 \u043a\u043e\u0440\u0443\u0442\u0438\u043d\u0430\u043c\u0438. \u042d\u0442\u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0412\u0421\u0401 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u041a\u043e\u0440\u0443\u0442\u0438\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0436\u0434\u0435\u0442 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u043d\u0430 3 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u041d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432. <\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0435\u0449\u0435 \u043f\u0430\u0440\u0430 \u043c\u0435\u043b\u043e\u0447\u0435\u0439. \u0412\u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044d\u0442\u043e \u0432\u0441\u0435 \u0445\u043e\u0437\u044f\u0439\u0441\u0442\u0432\u043e (\u043f\u0435\u0440\u0435)\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0438\u043a\u043b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043e\u0442\u0441\u044b\u043b\u043a\u043e\u0439 \u0440\u0430\u0437\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0440\u0430\u0437 \u0432 \u043c\u0438\u043d\u0443\u0442\u0443. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u2014 \u043e\u0441\u043e\u0431\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u044f \u0434\u0443\u043c\u0430\u044e, \u043d\u0435 \u043d\u0443\u0436\u043d\u043e<\/p>\n<pre><code class=\"python\">   async def main(self):\n        while True:\n            try:\n                await self._connect_to_WiFi()\n                await self._run_main_loop()\n                    \n            except Exception as e:\n                self.dprint('Global communication failure: ', e)\n                await asyncio.sleep(20)\n\n    async def _connect_to_WiFi(self):\n        self.dprint('Connecting to WiFi and MQTT')\n        sta_if = network.WLAN(network.STA_IF)\n        sta_if.connect(config['ssid'], config['wifi_pw'])\n        \n        conn = False\n        while not conn:\n            await self.connect()\n            conn = True\n\n        self.dprint('Connected!')\n        self.internet_outage = False\n\n    async def _run_main_loop(self):\n        # Loop forever\n        mins = 0\n        while True:\n            gc.collect()  # For RAM stats.\n            mem_free = gc.mem_free()\n            mem_alloc = gc.mem_alloc()\n\n            try:\n                await self.publish_debug_msg(\"Uptime\", mins)\n                await self.publish_debug_msg(\"Repubs\", self.REPUB_COUNT)\n                await self.publish_debug_msg(\"Outages\", self.internet_outages)\n                await self.publish_debug_msg(\"MemFree\", mem_free)\n                await self.publish_debug_msg(\"MemAlloc\", mem_alloc)\n            except Exception as e:\n                self.dprint(\"Exception occurred: \", e)\n            mins += 1\n\n            await asyncio.sleep(60)<\/code><\/pre>\n<p>\n\u041d\u0443 \u0435\u0449\u0435 \u043f\u0430\u0440\u043e\u0447\u043a\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u044b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f<\/p>\n<pre><code class=\"python\">#####################################\n# Constants and configuration\n#####################################\n\n\nconfig['keepalive'] = 60\nconfig['clean'] = False\nconfig['will'] = ('\/ESP\/Wemos\/Water\/LastWill', 'Goodbye cruel world!', False, 0)\n\nMQTTClient.DEBUG = True\n\nEEPROM_ADDR_HOT_VALUE = const(0)\nEEPROM_ADDR_COLD_VALUE = const(4)<\/code><\/pre>\n<p>\n\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0432\u0441\u0435 \u0442\u0430\u043a<\/p>\n<pre><code class=\"python\">client = CounterMQTTClient()\nloop = asyncio.get_event_loop()\nloop.run_until_complete(client.main())<\/code><\/pre>\n<h3>\u0427\u0442\u043e-\u0442\u043e \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u043c\u043e\u0435\u0439 \u0441\u0442\u0430\u043b\u043e<\/h3>\n<p>\n\u0418\u0442\u0430\u043a, \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0435\u0441\u0442\u044c. \u0424\u0430\u0439\u043b\u0438\u043a\u0438 \u044f \u0437\u0430\u043b\u0438\u0432\u0430\u043b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b ampy \u2014 \u043e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043b\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e (\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0441\u0430\u043c\u043e\u043c ESP-07) \u0444\u043b\u0435\u0448\u043a\u0443 \u0438 \u043f\u043e\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043a\u0430\u043a \u043a \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c. \u0422\u0443\u0434\u0430 \u0436\u0435 \u044f \u0437\u0430\u043b\u0438\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043c\u043d\u043e\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 mqtt_as, uasyncio, ssd1306 \u0438 collections (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 mqtt_as).<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u2026 \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c MemoryError. \u041f\u0440\u0438\u0447\u0435\u043c \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u044f \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u044c \u0433\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0443\u0442\u0435\u043a\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c, \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u044f \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0434\u0435\u0431\u0430\u0433 \u043f\u0440\u0438\u043d\u0442\u043e\u0432, \u0442\u0435\u043c \u0440\u0430\u043d\u044c\u0448\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0430 \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0433\u0443\u0433\u043b\u0435\u0436 \u043f\u0440\u0438\u0432\u0435\u043b \u043c\u0435\u043d\u044f \u043a \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e, \u0447\u0442\u043e \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0432\u0441\u0435\u0433\u043e 30\u043a\u0431 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 65 \u043a\u0431 \u043a\u043e\u0434\u0430 (\u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438) \u043d\u0443 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f. <\/p>\n<p>\u041d\u043e \u0432\u044b\u0445\u043e\u0434 \u0435\u0441\u0442\u044c. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f micropython \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u0434 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 .py \u0444\u0430\u0439\u043b\u0430 \u2014 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u041f\u0440\u0438\u0447\u0435\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u043d \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435, \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0431\u0430\u0439\u0442\u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0442\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u041d\u0443 \u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0442\u043e\u0436\u0435 \u043d\u0443\u0436\u0435\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043a\u0438.<\/p>\n<p>\u0422\u0440\u044e\u043a \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043e\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0435\u043c\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435, \u0430 \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430\u043b\u0438\u0442\u044c \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0431\u0430\u0439\u0442\u043a\u043e\u0434. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 micropython \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/micropython\/micropython\/tree\/master\/mpy-cross\">\u0443\u0442\u0438\u043b\u0438\u0442\u0443 mpy-cross<\/a><\/noindex>.<\/p>\n<p>\u042f \u043d\u0435 \u0441\u0442\u0430\u043b \u043f\u0438\u0441\u0430\u0442\u044c Makefile, \u0430 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u0448\u0435\u043b\u0441\u044f \u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u0438\u043a\u0438 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438) \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a<\/p>\n<pre><code class=\"bash\">mpy-cross water_counter.py<\/code><\/pre>\n<p>\n\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043b\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u0438\u043a\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c .mpy, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 .py \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u0412\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u044f \u0432\u0435\u043b \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 (IDE?) ESPlorer. \u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043b\u0438\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438 \u0442\u0443\u0442 \u0436\u0435 \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 water_counter.py (.mpy). \u041d\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u044d\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u043e\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0435\u0449\u0435 \u0444\u0430\u0439\u043b \u0441 \u0438\u043c\u0435\u043d\u0435\u043c main.py. \u041f\u0440\u0438\u0447\u0435\u043c \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e .py, \u0430 \u043d\u0435 \u043f\u0440\u0435\u0434-\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 .mpy. \u0412\u043e\u0442 \u0435\u0433\u043e \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435<\/p>\n<pre><code class=\"python\">import water_counter<\/code><\/pre>\n<p>\n\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u2014 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041d\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0443\u0433\u0440\u043e\u0436\u0430\u044e\u0449\u0435 \u043c\u0430\u043b\u043e \u2014 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 1\u043a\u0431. \u0423 \u043c\u0435\u043d\u044f \u0435\u0449\u0435 \u0435\u0441\u0442\u044c \u043f\u043b\u0430\u043d\u044b \u043f\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0438 \u044d\u0442\u043e\u0433\u043e \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u0430 \u043c\u043d\u0435 \u044f\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u043b\u043e\u0432\u0430\u0442\u043e. \u041d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0438 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439 \u0435\u0441\u0442\u044c \u0432\u044b\u0445\u043e\u0434.<\/p>\n<p>\u0414\u0435\u043b\u043e \u0432\u043e\u0442 \u0432 \u0447\u0435\u043c. \u0414\u0430\u0436\u0435 \u043f\u0440\u0438 \u0442\u043e\u043c, \u0447\u0442\u043e \u0444\u0430\u0439\u043b\u044b \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0431\u0430\u0439\u0442\u043a\u043e\u0434 \u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043d\u0430 \u0434\u0435\u043b\u0435 \u043e\u043d\u0438 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043e\u0442\u0442\u0443\u0434\u0430. \u041d\u043e \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f micropython \u0443\u043c\u0435\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0431\u0430\u0439\u0442\u043a\u043e\u0434 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u0444\u043b\u0435\u0448 \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443. \u042d\u0442\u043e \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e, \u0445\u043e\u0442\u044f \u043d\u0430 \u043c\u043e\u0435\u043c \u043d\u0435\u0442\u0431\u0443\u043a\u0435 \u044d\u0442\u043e \u0437\u0430\u043d\u044f\u043b\u043e \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043c \u0443 \u043c\u0435\u043d\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043b\u0438\u043d\u0443\u043a\u0441).<\/p>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ul>\n<li>\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pfalcon\/esp-open-sdk\">ESP Open SDK<\/a><\/noindex>. \u042d\u0442\u0430 \u0448\u0442\u0443\u043a\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043f\u043e\u0434 ESP8266. \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u044f \u0432\u044b\u0431\u0438\u0440\u0430\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 STANDALONE=yes)<\/li>\n<li>\u0421\u043a\u0430\u0447\u0430\u0442\u044c <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/micropython\/micropython\">\u0441\u043e\u0440\u0446\u044b micropython<\/a><\/noindex><\/li>\n<li>\u041d\u0443\u0436\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0437\u0430\u043a\u0438\u043d\u0443\u0442\u044c \u0432 ports\/esp8266\/modules \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 micropython<\/li>\n<li>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/micropython\/micropython\/blob\/master\/ports\/esp8266\/README.md\">ports\/esp8266\/README.md<\/a><\/noindex><\/li>\n<li>\u0417\u0430\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 (\u044f \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u044e \u043d\u0430 \u0432\u0438\u043d\u0434\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438 ESP8266Flasher \u0438\u043b\u0438 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u043c esptool\u2019\u043e\u043c)<\/li>\n<\/ul>\n<p>\n\u0412\u0441\u0435, \u0442\u0435\u043f\u0435\u0440\u044c &#8216;import ssd1306&#8217; \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u044d\u0442\u043e \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0422\u0430\u043a\u0438\u043c \u0442\u0440\u044e\u043a\u043e\u043c \u044f \u0437\u0430\u043b\u0438\u043b \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0434 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0443 \u043c\u0435\u043d\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443 \u043c\u0435\u043d\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u043e\u043a\u043e\u043b\u043e 8.5\u043a\u0431 \u041e\u0417\u0423. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c. \u041d\u0443 \u0430 \u0435\u0441\u043b\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0442\u044c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0437\u0430\u0442\u043e\u043b\u043a\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443.<\/p>\n<h3>\u0418 \u0447\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u043b\u0430\u0442\u044c?<\/h3>\n<p>\n\u041e\u043a, \u0436\u0435\u043b\u0435\u0437\u043a\u0430 \u0441\u043f\u0430\u044f\u043d\u0430, \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430, \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u0430, \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043b\u0435\u043f\u043b\u0435\u043d\u043e \u043d\u0430 \u0441\u0442\u0435\u043d\u0443 \u0438 \u0440\u0430\u0434\u043e\u0441\u0442\u043d\u043e \u043c\u043e\u0440\u0433\u0430\u0435\u0442 \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u043e\u0439. \u041d\u043e \u043f\u043e\u043a\u0430 \u044d\u0442\u043e \u0432\u0441\u0435 \u0447\u0435\u0440\u043d\u044b\u0439 \u044f\u0449\u0438\u043a (\u0432 \u043f\u0440\u044f\u043c\u043e\u043c \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u043d\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435) \u0438 \u0442\u043e\u043b\u043a\u0443 \u043e\u0442 \u043d\u0435\u0433\u043e \u0435\u0449\u0435 \u043c\u0430\u043b\u043e\u0432\u0430\u0442\u043e. \u041f\u043e\u0440\u0430 \u0447\u0442\u043e \u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 MQTT \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0448\u043b\u044e\u0442\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n<p>\u041c\u043e\u0439 \u201c\u0443\u043c\u043d\u044b\u0439 \u0434\u043e\u043c\u201d \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u043d\u0430 <noindex><a rel=\"nofollow\" href=\"https:\/\/majordomo.smartliving.ru\/\">\u0441\u0438\u0441\u0442\u0435\u043c\u0435 Majordomo<\/a><\/noindex>. \u041c\u043e\u0434\u0443\u043b\u044c MQTT \u0442\u043e \u043b\u0438 \u0435\u0441\u0442\u044c \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u0442\u043e \u043b\u0438 \u043b\u0435\u0433\u043a\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u043c\u0430\u0440\u043a\u0435\u0442\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u2014 \u0443\u0436\u0435 \u043d\u0435 \u043f\u043e\u043c\u043d\u044e \u043e\u0442\u043a\u0443\u0434\u0430 \u043e\u043d \u0443 \u043c\u0435\u043d\u044f \u0432\u0437\u044f\u043b\u0441\u044f. MQTT \u0448\u0442\u0443\u043a\u0430 \u043d\u0435 \u0441\u0430\u043c\u043e\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u0430\u044f \u2014 \u043d\u0443\u0436\u0435\u043d \u0442.\u043d. \u0431\u0440\u043e\u043a\u0435\u0440 \u2014 \u0441\u0435\u0440\u0432\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442, \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c MQTT \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e mosquitto, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 (\u043a\u0430\u043a \u0438 majordomo) \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u0432\u0441\u0435 \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u043d\u0435\u0442\u0431\u0443\u043a\u0435.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0445\u043e\u0442\u044c \u0440\u0430\u0437 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0443\u0442 \u0436\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432 \u0441\u043f\u0438\u0441\u043a\u0435.<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/98690a39b11f5d1f1fd5f6d0991a899a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u042d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u043c\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u2014 \u0432\u0441\u0435 \u044d\u0442\u043e out of scope \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 majordomo \u043c\u043e\u0433\u0443 \u043f\u043e\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/channel\/UChButpZaL5kUUl_zTyIDFkQ\">\u043a\u0430\u043d\u0430\u043b \u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430 \u0412 \u041e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u0435<\/a><\/noindex> \u2014 \u0442\u043e\u0432\u0430\u0440\u0438\u0449 \u0442\u043e\u0436\u0435 \u0441\u0442\u0440\u043e\u0438\u0442 \u0443\u043c\u043d\u044b\u0439 \u0434\u043e\u043c \u0438 \u0434\u043e\u0445\u043e\u0434\u0447\u0438\u0432\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u041f\u043e\u043a\u0430\u0436\u0443 \u043b\u0438\u0448\u044c \u043f\u0430\u0440\u0443 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0437\u0430 \u0441\u0443\u0442\u043a\u0438<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/8a70c25aeeee87f932015e4a82a9aa4b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043d\u043e\u0447\u044c\u044e \u0432\u043e\u0434\u043e\u0439 \u043f\u043e\u0447\u0442\u0438 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f. \u041f\u0430\u0440\u0443 \u0440\u0430\u0437 \u043a\u0442\u043e-\u0442\u043e \u0441\u0445\u043e\u0434\u0438\u043b \u0432 \u0442\u0443\u0430\u043b\u0435\u0442, \u0438, \u043f\u043e\u0445\u043e\u0436\u0435 \u0444\u0438\u043b\u044c\u0442\u0440 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0441\u043c\u043e\u0441\u0430 \u043f\u0430\u0440\u0443 \u043b\u0438\u0442\u0440\u043e\u0432 \u0437\u0430 \u043d\u043e\u0447\u044c \u043f\u043e\u0441\u0430\u0441\u044b\u0432\u0430\u0435\u0442. \u0423\u0442\u0440\u043e\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442. \u041e\u0431\u044b\u0447\u043d\u043e \u044f \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0432\u043e\u0434\u043e\u0439 \u0438\u0437 \u0431\u043e\u0439\u043b\u0435\u0440\u0430, \u043d\u043e \u0442\u0443\u0442 \u044f \u0437\u0430\u0445\u043e\u0442\u0435\u043b \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0432\u0430\u043d\u043d\u0443\u044e \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b \u043d\u0430 \u0433\u043e\u0440\u043e\u0434\u0441\u043a\u0443\u044e \u0433\u043e\u0440\u044f\u0447\u0443\u044e \u0432\u043e\u0434\u0443 \u2014 \u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043d\u0430 \u043d\u0438\u0436\u043d\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435.<\/p>\n<p>\u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u044f \u0443\u0437\u043d\u0430\u043b, \u0447\u0442\u043e \u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0442\u0443\u0430\u043b\u0435\u0442 \u044d\u0442\u043e 6-7\u043b \u0432\u043e\u0434\u044b, \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0434\u0443\u0448 \u2014 20-30\u043b, \u043f\u043e\u043c\u044b\u0442\u044c \u043f\u043e\u0441\u0443\u0434\u0443 \u043e\u043a\u043e\u043b\u043e 20\u043b, \u0430 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0443\u0436\u043d\u043e 160\u043b. \u0417\u0430 \u0434\u0435\u043d\u044c \u043c\u043e\u044f \u0441\u0435\u043c\u044c\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0433\u0434\u0435-\u0442\u043e \u043e\u043a\u043e\u043b\u043e 500-600\u043b.<\/p>\n<p>\u0414\u043b\u044f \u043e\u0441\u043e\u0431\u043e \u043b\u044e\u0431\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/07a8546bc278c019d286ccba56f2b820.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041e\u0442\u0441\u044e\u0434\u0430 \u044f \u0443\u0437\u043d\u0430\u043b \u0447\u0442\u043e \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u043a\u0440\u0430\u043d\u0435 \u0432\u043e\u0434\u0430 \u0442\u0435\u0447\u0435\u0442 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 1\u043b \u0437\u0430 5\u0441.<\/p>\n<p>\u041d\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c. \u0412 majordomo \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0434\u043d\u044f\u043c, \u043d\u0435\u0434\u0435\u043b\u044f\u043c \u0438 \u043c\u0435\u0441\u044f\u0446\u0430\u043c. \u0412\u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0438\u043a\u0430\u0445<\/p>\n<p><img decoding=\"async\" alt=\"\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443\" src=\"\/wp-content\/uploads\/2020\/03\/068d6db756efc80db5b0c5fa648a0877.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u041f\u043e\u043a\u0430 \u0443 \u043c\u0435\u043d\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e. \u0427\u0435\u0440\u0435\u0437 \u043c\u0435\u0441\u044f\u0446 \u044d\u0442\u043e\u0442 \u0433\u0440\u0430\u0444\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u2014 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0434\u043d\u044e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0438\u043a. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u043f\u043e\u0440\u0442\u044f\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0432\u0432\u043e\u0436\u0443 \u0432\u0440\u0443\u0447\u043d\u0443\u044e (\u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0442\u043e\u043b\u0431\u0438\u043a). \u0418 \u043f\u043e\u043a\u0430 \u043d\u0435 \u044f\u0441\u043d\u043e, \u0442\u043e \u043b\u0438 \u044f \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0430\u043b \u0441\u0430\u043c\u044b\u0435 \u043f\u0435\u0440\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0447\u0442\u0438 \u043d\u0430 \u043a\u0443\u0431 \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u043e \u043b\u0438 \u044d\u0442\u043e \u0431\u0430\u0433 \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 \u0438 \u043d\u0435 \u0432\u0441\u0435 \u043b\u0438\u0442\u0440\u044b \u043f\u043e\u0448\u043b\u0438 \u0432 \u0437\u0430\u0447\u0435\u0442. \u041d\u0443\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>\u041d\u0430\u0434 \u0441\u0430\u043c\u0438\u043c\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u043c\u0438 \u0435\u0449\u0435 \u043f\u043e\u043a\u043e\u043b\u0434\u043e\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u043e, \u043f\u043e\u0431\u0435\u043b\u0438\u0442\u044c, \u043f\u043e\u043a\u0440\u0430\u0441\u0438\u0442\u044c. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u044f \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443 \u0432 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 \u0432\u0434\u0440\u0443\u0433 \u0442\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u0443\u0442\u0435\u043a\u0430\u0435\u0442. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0443 \u043a\u0430\u043a-\u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434\u044b, \u043a\u043e\u0433\u0434\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442. \u041f\u043e\u043a\u0430 \u0432\u0441\u0435 \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u0434\u0435\u0438.<\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>\n\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u043e\u044f \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430 \u0441\u0442\u0430\u043b\u0430 \u0447\u0443\u0442\u043e\u0447\u043a\u0443 \u0443\u043c\u043d\u0435\u0435. \u0421 \u0442\u0430\u043a\u0438\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u043c\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u043e\u0434\u044b \u0432 \u0434\u043e\u043c\u0435. \u0415\u0441\u043b\u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u044f \u0432\u043e\u0437\u043c\u0443\u0449\u0430\u043b\u0441\u044f \u201c\u043e\u043f\u044f\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0434\u044b \u0437\u0430 \u043c\u0435\u0441\u044f\u0446 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u043b\u0438\u201d, \u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u044f \u0441\u043c\u043e\u0433\u0443 \u043d\u0430\u0439\u0442\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041a\u043e\u043c\u0443-\u0442\u043e \u043f\u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u043c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d \u0432 \u043c\u0435\u0442\u0440\u0435 \u043e\u0442 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430. \u041d\u043e \u0432 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043e\u0442\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u044f \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u043f\u0435\u0440\u0435\u0441\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0443, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u044f\u043a\u043e\u0432 \u0432\u043e\u0434\u044b, \u0430 \u0441\u0430\u043c\u0438 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0438, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043d\u0430 \u043b\u0435\u0441\u0442\u043d\u0438\u0447\u043d\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0435. \u0422\u0430\u043a \u0447\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043d\u044f\u0442\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u043a\u0441\u0442\u0430\u0442\u0438.<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u044f \u0442\u043e\u0436\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c. \u042f \u0443\u0436\u0435 \u043f\u0440\u0438\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0441\u044c \u043a \u043c\u043e\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u043c. \u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u0439\u043b\u0435\u0440-\u0433\u043e\u0440\u043e\u0434\u0441\u043a\u0430\u044f \u0432\u043e\u0434\u0430 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c 3 \u043a\u0440\u0430\u043d\u0430 \u0432 \u0442\u0440\u0443\u0434\u043d\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u043d\u0438\u0448\u0435. \u0411\u044b\u043b\u043e \u0431\u044b \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0435\u0439. \u041d\u0443 \u0438, \u0441\u0430\u043c\u043e \u0441\u043e\u0431\u043e\u0439, \u0437\u0430\u0449\u0438\u0442\u0443 \u043e\u0442 \u043f\u0440\u043e\u0442\u0435\u0447\u0435\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u041e\u0438\u0442.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u0441\u0432\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 ESP8266. \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043d\u0430 micropython \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u0440\u0443\u0442\u0438\u043d \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0447\u043d\u043e. \u042f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043d\u044e\u0430\u043d\u0441\u043e\u0432 \u0438 \u043a\u043e\u0441\u044f\u043a\u043e\u0432, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u043f\u043e\u0445\u043e\u0434\u0443. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u0432\u0441\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b, \u043b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u043a\u0430\u043a \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e \u043f\u0440\u043e\u0449\u0435 \u043f\u0440\u043e\u043c\u043e\u0442\u0430\u0442\u044c \u043b\u0438\u0448\u043d\u0435\u0435, \u0447\u0435\u043c \u043f\u043e\u0442\u043e\u043c \u0434\u043e\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0435\u0434\u043e\u0441\u043a\u0430\u0437\u0430\u043d\u043e.<\/p>\n<p>\u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u044f \u043e\u0442\u043a\u0440\u044b\u0442 \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u0440\u0438\u0442\u0438\u043a\u0438.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grafalex82\/WaterMeter\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/easyeda.com\/editor#id=%7C22b1dc7469f045d1a97160dd76647c4c%7C1b87dd112b7949cfb40f412b40f98e09\">\u0421\u0445\u0435\u043c\u0430 \u0438 \u043f\u043b\u0430\u0442\u0430<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/cad.onshape.com\/documents\/5f3dc0e54cb4b2a42d2d7384\/v\/9ec48c3fd374e797db5aece7\/e\/e4a4facc97d991164f090cc5\">\u041c\u043e\u0434\u0435\u043b\u044c \u043a\u043e\u0440\u043f\u0443\u0441\u0430<\/a><\/noindex><br \/>\n<br \/>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/411259\/\">habr.com<\/a> <\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u043b\u0438 \u043a\u0430\u043a \u0438\u0445 \u0447\u0430\u0441\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u201c\u0443\u043c\u043d\u044b\u0439 \u0434\u043e\u043c\u201d, \u0431\u044b\u043b\u0438 \u0436\u0443\u0442\u043a\u043e \u0434\u043e\u0440\u043e\u0433\u0438\u043c\u0438 \u0438 \u0438\u0445 \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u043b\u0438\u0448\u044c \u0431\u043e\u0433\u0430\u0447\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u044b \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438, \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0440\u043e\u0437\u0435\u0442\u043a\u0430\u043c\u0438, \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u0435\u0439, \u0432\u043e\u0434\u043e\u0441\u043d\u0430\u0431\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u043c\u0438. \u0418 \u0434\u0430\u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u0440\u0438\u0432\u043e\u0440\u0443\u043a\u0438\u0439 DIY-\u0448\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043e\u0431\u0449\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c\u0443 \u0438 \u0437\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":74409,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-74408","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u043b\u0438 \u043a\u0430\u043a \u0438\u0445 \u0447\u0430\u0441\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u201c\u0443\u043c\u043d\u044b\u0439 \u0434\u043e\u043c\u201d, \u0431\u044b\u043b\u0438 \u0436\u0443\u0442\u043a\u043e \u0434\u043e\u0440\u043e\u0433\u0438\u043c\u0438 \u0438 \u0438\u0445 \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u043b\u0438\u0448\u044c \u0431\u043e\u0433\u0430\u0447\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u044b \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438, \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0440\u043e\u0437\u0435\u0442\u043a\u0430\u043c\u0438, \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u0435\u0439, \u0432\u043e\u0434\u043e\u0441\u043d\u0430\u0431\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u043c\u0438. \u0418 \u0434\u0430\u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u0440\u0438\u0432\u043e\u0440\u0443\u043a\u0438\u0439 DIY-\u0448\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043e\u0431\u0449\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c\u0443 \u0438 \u0437\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/podklyuchaem-schetchik-vody-k-umnomu-domu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u043b\u0438 \u043a\u0430\u043a \u0438\u0445 \u0447\u0430\u0441\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u201c\u0443\u043c\u043d\u044b\u0439 \u0434\u043e\u043c\u201d, \u0431\u044b\u043b\u0438 \u0436\u0443\u0442\u043a\u043e \u0434\u043e\u0440\u043e\u0433\u0438\u043c\u0438 \u0438 \u0438\u0445 \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u043b\u0438\u0448\u044c \u0431\u043e\u0433\u0430\u0447\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u044b \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438, \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0440\u043e\u0437\u0435\u0442\u043a\u0430\u043c\u0438, \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u0435\u0439, \u0432\u043e\u0434\u043e\u0441\u043d\u0430\u0431\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u043c\u0438. \u0418 \u0434\u0430\u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u0440\u0438\u0432\u043e\u0440\u0443\u043a\u0438\u0439 DIY-\u0448\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043e\u0431\u0449\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c\u0443 \u0438 \u0437\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/podklyuchaem-schetchik-vody-k-umnomu-domu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-17T05:43:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-17T05:43:01+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Veem\u00f5\u00f5tja \u00fchendamine nutikoduga | ProHoster","description":"Kuni hiljuti olid koduautomaatikas\u00fcsteemid, v\u00f5i nagu neid sageli nimetatakse, \"nutikodud\", \u00e4\u00e4rmiselt kallid ja neid said endale lubada vaid rikkaimad. T\u00e4nap\u00e4eval on turul saadaval piisavalt odavad komplektid koos anduritega, nuppudega\/l\u00fclititega ja rakendusseadmetega valguse, pistikute, ventilatsiooni, veetootmise ja muude tarbijate haldamiseks. Isegi k\u00f5ige vasak k\u00e4si DIY-entusiast saab nautida seda imelist maailmas ja","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/podklyuchaem-schetchik-vody-k-umnomu-domu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0432\u043e\u0434\u044b \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443 | ProHoster","og:description":"\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u043b\u0438 \u043a\u0430\u043a \u0438\u0445 \u0447\u0430\u0441\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u201c\u0443\u043c\u043d\u044b\u0439 \u0434\u043e\u043c\u201d, \u0431\u044b\u043b\u0438 \u0436\u0443\u0442\u043a\u043e \u0434\u043e\u0440\u043e\u0433\u0438\u043c\u0438 \u0438 \u0438\u0445 \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u043b\u0438\u0448\u044c \u0431\u043e\u0433\u0430\u0447\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u044b \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438, \u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0440\u043e\u0437\u0435\u0442\u043a\u0430\u043c\u0438, \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0446\u0438\u0435\u0439, \u0432\u043e\u0434\u043e\u0441\u043d\u0430\u0431\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f\u043c\u0438. \u0418 \u0434\u0430\u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u0440\u0438\u0432\u043e\u0440\u0443\u043a\u0438\u0439 DIY-\u0448\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043e\u0431\u0449\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c\u0443 \u0438 \u0437\u0430","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/podklyuchaem-schetchik-vody-k-umnomu-domu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-17T05:43:01+00:00","article:modified_time":"2020-03-17T05:43:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"74408","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:15:29","updated":"2022-09-28 09:19:03"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/74408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=74408"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/74408\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/74409"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=74408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=74408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=74408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}