{"id":258270,"date":"2015-05-29T17:44:02","date_gmt":"2015-05-29T13:44:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=258270"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=258270","title":{"rendered":"\u041c\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0432\u0435\u0449\u0435\u0439: \u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0437\u0430\u043c\u043e\u043a"},"content":{"rendered":"<p>             \u0422\u0430\u043a \u0441\u043b\u043e\u0436\u0438\u043b\u0438\u0441\u044c \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430, \u0447\u0442\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0443 \u043c\u0435\u043d\u044f \u043e\u0434\u043d\u043e\u043a\u043e\u043c\u043d\u0430\u0442\u043d\u0430\u044f \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u043d\u0435 \u0436\u0438\u0432\u0443, \u0430 \u0441\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0435 \u00ab\u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c\u00bb \u043c\u043d\u0435 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u044f \u0435\u0435 \u0441\u0434\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0440\u0432\u0438\u0441 Airbnb, \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c. \u0418 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u0431\u044b \u044d\u0442\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u0435\u0435, \u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442. \u041d\u043e \u044f \u043d\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c\u2026<\/p>\n<p>  \u0411\u044b\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u0430\u0440\u0443 \u0440\u0430\u0437 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u044f \u043d\u0435 \u043c\u043e\u0433 \u043b\u0438\u0447\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0433\u043e\u0441\u0442\u044f \u0438 \u0432\u0440\u0443\u0447\u0438\u0442\u044c \u0435\u043c\u0443 \u043a\u043b\u044e\u0447. \u041e\u0431\u044b\u0447\u043d\u043e \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b, \u043e\u0442 \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u043f\u043e\u0434 \u043a\u043e\u0432\u0440\u0438\u043a \u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0441\u044c\u0435\u0440\u0436\u043a\u0443. \u041c\u043d\u0435 \u0436\u0435 \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0430\u0442\u044c \u0432 \u0441\u0432\u043e\u0438 \u0434\u0435\u043b\u0430 \u043f\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0438 \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 \u043a\u043e\u043c\u0438\u043b\u044c\u0444\u043e \u043f\u0440\u044f\u0442\u0430\u0442\u044c \u043a\u043b\u044e\u0447 \u043f\u043e\u0434 \u043a\u043e\u0432\u0440\u0438\u043a\u043e\u043c.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0447\u0442\u043e-\u0442\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435. \u041c\u044b\u0441\u043b\u0438\u043b \u044f \u0442\u0430\u043a: \u0441\u043c\u0430\u0440\u0444\u043e\u043d\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0435\u0441\u0442\u044c \u0443 \u043c\u043d\u043e\u0433\u0438\u0445, \u0430 \u0435\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0438\u0445 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u043e\u0441\u0442\u0435\u0439, \u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0443 \u0432\u0441\u0435\u0445. \u041d\u0435\u0443\u0436\u0435\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d\u043e \u0434\u043b\u044f iPhone \u0438 Android, \u0447\u0442\u043e\u0431\u044b \u0441\u043e \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0434\u0432\u0435\u0440\u043d\u043e\u0439 \u0437\u0430\u043c\u043e\u043a? \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d\u043e. \u041d\u0430\u0448\u0435\u043b \u0434\u0432\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.<\/p>\n<p>  1. <a href=\"https:\/\/lockitron.com\/\">Lockitron Bolt<\/a>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u0433\u0430\u0434\u0436\u0435\u0442\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u2014 \u044d\u0442\u043e \u043d\u0430\u043a\u043b\u0430\u0434\u043a\u0430-\u0441\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0432\u043e\u0434 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0434\u0432\u0435\u0440\u043d\u043e\u0439 \u0437\u0430\u043c\u043e\u043a, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u0430\u044f \u043f\u043e Bluetooth. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c Bridge, \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0439 \u043a \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u2014 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u043f\u043e \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u043c\u0443 \u043a\u0430\u043d\u0430\u043b\u0443 \u0441\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0432\u043e\u0434\u043e\u043c. \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0432\u0441\u0435 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043c\u0430\u0440\u0444\u043e\u043d\u043e\u0432 \u0438 \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u043c\u043e\u0440\u0434\u0443. \u041c\u043e\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0438 \u0434\u0440\u0443\u0437\u044c\u044f\u043c, \u0447\u0442\u043e \u0431\u044b \u043e\u043d\u0438 \u0441\u0430\u043c\u0438 \u0432\u043e\u0448\u043b\u0438, \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043b\u044f \u043d\u0438 \u043d\u0438\u0445 \u0434\u0432\u0435\u0440\u044c \u0447\u0435\u0440\u0435\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442.<\/p>\n<p>  \u0426\u0435\u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 $99 \u0437\u0430 \u0441\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0432\u043e\u0434 + $79 \u0437\u0430 Bridge + \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430.<\/p>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c \u0433\u0430\u0434\u0436\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439, \u043d\u043e \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u043d \u0435\u0449\u0435 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432. \u041f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043a\u0430\u0437\u044b \u043d\u0430 \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044e. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0441\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0432\u043e\u0434 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d \u043d\u0430 \u043e\u0442\u043f\u0438\u0440\u0430\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0440\u0430\u043d\u0438\u0435 \u0437\u0430\u043c\u043a\u0430 \u0432 \u043f\u043e\u043b \u043e\u0431\u043e\u0440\u043e\u0442\u0430, \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u043c\u043a\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b \u043d\u0430 \u0435\u0433\u043e \u0440\u043e\u0434\u0438\u043d\u0435 \u0432 \u0421\u0428\u0410. \u0423 \u043c\u0435\u043d\u044f \u0436\u0435 \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u043e\u0432\u044b\u0439 \u0437\u0430\u043c\u043e\u043a \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\/\u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c 1 \u043f\u043e\u043b\u043d\u044b\u0439 \u043e\u0431\u043e\u0440\u043e\u0442 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430. \u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u0440\u0435\u0437\u0430\u0442\u044c \u0432 \u0434\u0432\u0435\u0440\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043c\u043e\u043a, \u043d\u043e \u0441\u043c. \u00ab\u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445\u00bb.  <\/div>\n<\/div>\n<p>  2. <a href=\"http:\/\/www.kwikset.com\/kevo\">Kevo Smart Lock<\/a>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u0433\u0430\u0434\u0436\u0435\u0442\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\u042d\u0442\u043e \u0441\u0430\u043c\u043e\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0437\u0430\u043c\u043e\u043a \u0441\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0432\u043e\u0434\u043e\u043c, Bluetooth-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0438 \u0441\u0435\u043d\u0441\u043e\u0440\u043d\u044b\u043c \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u00ab\u043a\u043b\u044e\u0447\u0430\u00bb \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0440\u0435\u043b\u043e\u043a \u0438\u043b\u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0448\u0442\u0430\u0442\u043d\u0443\u044e \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435\u0439. \u0415\u0441\u043b\u0438 \u0432 \u0437\u043e\u043d\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u0435\u0441\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0438\u043b\u0438 \u0431\u0440\u0435\u043b\u043e\u043a, \u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043a\u043e\u0441\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0437\u0430\u043c\u043a\u0443 \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f. \u041e\u0447\u0435\u043d\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u043d\u043e.<\/p>\n<p>  \u0426\u0435\u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 $202 + \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430.<\/p>\n<p>  \u042f \u0443\u0436\u0435 \u0434\u0430\u0436\u0435 \u043d\u0430\u0447\u0430\u043b \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c \u0437\u0430\u043a\u0430\u0437, \u043a\u0430\u043a \u043c\u043d\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u043b\u043e\u0441\u044c, \u0430 \u0441\u043c\u043e\u0433\u0443 \u043b\u0438 \u044f \u0435\u0433\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0432\u043e\u044e \u043c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0434\u0432\u0435\u0440\u044c. \u0418 \u0442\u0443\u0442 \u043c\u0435\u043d\u044f \u0436\u0434\u0430\u043b \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u0441\u044e\u0440\u043f\u0440\u0438\u0437. \u041d\u0435 \u0441\u043c\u043e\u0433\u0443. \u0422\u043e\u043b\u0449\u0438\u043d\u0430 \u0434\u0432\u0435\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043d\u0430\u0434\u043e, \u0438 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 \u0442\u043e\u0440\u0446\u0430 \u0434\u0432\u0435\u0440\u0438 \u0434\u043e \u043d\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.  <\/div>\n<\/div>\n<p>  \u0412\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0442\u044f\u0436\u0435\u043b\u044b\u0435 \u043c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0432\u0435\u0440\u0438 \u0442\u043e\u043b\u0449\u0438\u043d\u043e\u0439 60 \u043c\u043c \u0432 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u0445 \u0436\u0438\u043b\u0438\u0449\u0430\u0445 \u0432 \u0421\u0428\u0410 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b, \u0432\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0447\u0435\u0433\u043e \u0438 \u0443\u043c\u043d\u044b\u0435 \u0437\u0430\u043c\u043a\u0438 \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0434\u0432\u0435\u0440\u0435\u0439 \u0442\u043e\u0436\u0435 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b. \u00ab\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439\u00bb \u0442\u0438\u043f \u0437\u0430\u043c\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0432\u0435\u0440\u044c \u0442\u043e\u043b\u0449\u0438\u043d\u043e\u0439 \u0434\u043e 55 \u043c\u043c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0434\u0435\u0440\u0435\u0432\u044f\u043d\u043d\u0443\u044e.<\/p>\n<p>  \u042d\u0442\u043e \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u043e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. <b>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430.<\/b><\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0441\u0435\u0431\u0435. \u0420\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u0441\u0444\u0435\u0440\u0435 \u0418\u0422, \u043d\u043e \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u043c\u043e\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u0430. \u0418\u043c\u0435\u044e \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0440\u043e\u0431\u043e\u0442\u043e\u0442\u0435\u0445\u043d\u0438\u043a\u0435, \u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u043d\u043e \u043d\u0435 \u0432\u0441\u0435 \u0438\u0437 \u0412\u0423\u0417\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u043f\u0435\u043b \u0437\u0430\u0431\u044b\u0442\u044c. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u00ab\u0438\u0437\u0434\u0435\u043b\u0438\u044f\u00bb \u0443 \u043c\u0435\u043d\u044f \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u0440\u0430\u0437\u0443, \u0431\u0435\u0437 \u043c\u043e\u0435\u0433\u043e \u0432\u0435\u0440\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f.<\/p>\n<p>  \u0412\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430 \u043e\u043d\u0430 \u0442\u0430\u043a:<\/p>\n<p>  <i>\u041a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 &lt;=&gt; \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 &lt;=&gt; \u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c<\/i><\/p>\n<p>  \u041f\u0440\u043e\u0435\u043a\u0442 \u044f \u043d\u0430\u0447\u0430\u043b \u0431\u0435\u0437 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0430, \u0431\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439, \u043a\u0430\u043a \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0433\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u044f\u0432\u0438\u043b\u043e, \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 Arduino. \u0414\u0430\u043b\u0435\u0435 \u0431\u044b\u043b \u043f\u043e\u0447\u0442\u0438 \u043c\u0435\u0441\u044f\u0446 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043a\u0443\u0440\u0441 \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043d\u0430\u0432\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 C++.<\/p>\n<p>  \u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u044f \u0434\u0443\u043c\u0430\u043b \u043d\u0430\u0434 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0412\u043e \u0432\u0441\u0435\u0445 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0432 \u0421\u0435\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0446\u0438\u043b\u0438\u043d\u0434\u0440 \u0437\u0430\u043c\u043a\u0430 \u0436\u0435\u0441\u0442\u043a\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u043b\u0441\u044f \u0441 \u0441\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0432\u043e\u0434\u043e\u043c, \u0438 \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e, \u0442.\u043a. \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043c\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u043d\u0430\u0440\u0443\u0436\u0438 \u043a\u043b\u044e\u0447\u043e\u043c, \u0430 \u0436\u0435\u0441\u0442\u043a\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u043b\u043e. \u041d\u0443 \u0438 \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\/\u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u043c\u043e\u0435\u0433\u043e \u0437\u0430\u043c\u043a\u0430 \u043d\u0443\u0436\u0435\u043d \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u043f\u043e\u043b\u043d\u044b\u0439 \u043e\u0431\u043e\u0440\u043e\u0442 \u0446\u0438\u043b\u0438\u043d\u0434\u0440\u0430, \u0430 \u0441\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0432\u043e\u0434\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 180\u00b0. \u0411\u044b\u043b\u0438 \u043c\u044b\u0441\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0432\u043e\u0434, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0438\u0437 \u043f\u0440\u0438\u0432\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u043e\u0442\u043e\u0440\u0430, \u0441\u0446\u0435\u043f\u043b\u0435\u043d\u0438\u044f \u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0443\u0433\u043b\u0430, \u043d\u043e \u044f \u0435\u0435 \u043e\u0442\u0432\u0435\u0440\u0433 \u0432 \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0442\u0430\u043b\u043b\u043e\u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435\u043f\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438.<br \/>  \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0441\u044f \u043a\u0430\u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0439 \u0446\u0438\u043b\u0438\u043d\u0434\u0440 \u0434\u043b\u044f \u0437\u0430\u043c\u043a\u0430, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u043b\u0435\u043a\u0442\u043e\u043c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439, \u0447\u0442\u043e \u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b\u0441\u044f \u043a\u043b\u044e\u0447\u043e\u043c \u0441\u043d\u0430\u0440\u0443\u0436\u0438, \u0440\u0443\u043a\u043e\u044f\u0442\u043a\u043e\u0439 \u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043f\u0440\u0438\u0432\u043e\u0434\u043e\u043c \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043e\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u041d\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0442\u0430\u043a\u043e\u0433\u043e \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b.<\/p>\n<p>  \u041d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0430\u043c\u043e\u043a CISA \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0432 35 \u0442.\u0440. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0439 \u0437\u0430\u043c\u043e\u043a (\u0442\u043e\u0433\u043e \u0436\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f) \u043d\u0430 \u043d\u0435\u0433\u043e, \u0431\u043b\u0430\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435, \u043d\u043e \u0446\u0435\u043d\u0430\u2026<\/p>\n<p>  \u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u2014 \u0432\u044b\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u0422\u0443\u0442 \u0438 \u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u00ab\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0437\u0430\u043c\u043e\u043a\u00bb. \u0418\u0442\u0430\u043a:  <\/p>\n<ol>\n<li>\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0437\u0430\u043c\u043e\u043a \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0437\u0430\u043c\u043a\u043e\u043c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b;<\/li>\n<li>\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0437\u0430\u043c\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u0433\u043e\u0441\u0442\u0438 \u043c\u043e\u0433\u043b\u0438 \u0432\u043e\u0439\u0442\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0443 \u0432 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0445\u043e\u0437\u044f\u0438\u043d\u0430 \u0438 \u043c\u043e\u0433\u043b\u0438 \u0432 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0445\u043e\u0437\u044f\u0438\u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 \u0438\u0437 \u043d\u0435\u0435 \u0432\u044b\u0439\u0442\u0438, \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u044f\u0449\u0438\u043a \u0438\u043b\u0438 \u043a\u0430\u043a\u0438\u043c-\u043b\u0438\u0431\u043e \u0438\u043d\u044b\u043c \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c;<\/li>\n<li>\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430 \u0437\u0430\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0437\u0430\u043c\u043a\u0438 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043a\u043b\u044e\u0447\u0430\u043c\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0437\u0430\u043c\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0438 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438;<\/li>\n<li>\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0437\u0430\u043c\u043e\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0435\u043d \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0436\u0430\u0440\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043d\u0435 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u044d\u0432\u0430\u043a\u0443\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043f\u0438\u0442\u0430\u043d\u0438\u0438;<\/li>\n<li>\u0425\u043e\u0437\u044f\u0438\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u0437\u0430\u043c\u043e\u043a, \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u0432 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u043b\u0438 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435;<\/li>\n<li>\u0413\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u00ab\u0433\u043e\u0441\u0442\u0435\u0432\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c\u00bb, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0442 \u0445\u043e\u0437\u044f\u0438\u043d\u0430, \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0437\u0430\u043c\u043a\u0430;<\/li>\n<li>\u00ab\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u043a\u043b\u044e\u0447\u00bb \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0431\u043b\u0438\u0437\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u0430\u043c\u043a\u0430;<\/li>\n<li>\u00ab\u0413\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u043a\u043b\u044e\u0447\u00bb \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.<\/li>\n<\/ol>\n<p>  \u041f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043c\u0435\u0436\u0434\u0443 Arduino Ethernet \u0438 Arduino Yun. \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, Yun \u2014 \u0441\u0430\u043c\u043e\u0435 \u0442\u043e, \u0447\u0442\u043e \u0434\u043e\u043a\u0442\u043e\u0440 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043b. \u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c \u043d\u0430 \u043b\u0438\u043d\u0443\u043a\u0441\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043d\u0430 \u043d\u0435\u043c \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0438 \u0432 \u043d\u0443\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0442\u0434\u0430\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c. \u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0443\u043f\u0438\u0442\u044c \u0443 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u0438 \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041d\u043e \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u043d\u044f \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u043e \u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044d\u0442\u043e \u0431\u044b\u043b\u0438 \u0442\u0440\u0435\u0432\u043e\u0436\u043d\u044b\u0435 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 IP, \u0430 \u043f\u043e\u0442\u043e\u043c \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u0435\u043d\u044f \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c. \u041e\u0434\u0438\u043d \u0437\u0430\u043c\u043e\u043a \u043d\u0430 Yun \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u00ab\u0440\u0430\u0437-\u0434\u0432\u0430\u00bb, \u0430 \u0434\u0432\u0430 \u0437\u0430\u043c\u043a\u0430? \u0410 \u0435\u0441\u043b\u0438 \u0443 \u0434\u0432\u0443\u0445 \u0437\u0430\u043c\u043a\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0445\u043e\u0437\u044f\u0435\u0432\u0430 \u0438 \u0433\u043e\u0441\u0442\u0438? \u0418 \u0442.\u0434.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u043f\u0430\u043b \u043d\u0430 Arduino Ethernet.<\/p>\n<p>  \u0422\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0440\u0435\u0448\u0438\u043b\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441 \u0441 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u043c. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u0440\u0438\u0433\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043c\u043e\u043a YLI \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c, \u0446\u0435\u043d\u043e\u0439 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u0435\u0435 3 \u0442.\u0440. \u0422\u0430\u043a\u0438\u0435 \u0441\u0442\u043e\u044f\u0442 \u0432 \u043e\u0444\u0438\u0441\u0430\u0445, \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0430\u0445 \u0438 \u0442.\u043f. \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0445, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 \u043a\u0443\u0447\u0435\u0439 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0421\u041a\u0423\u0414-\u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  \u041f\u0438\u0442\u0430\u043d\u0438\u0435 12\u0412, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0441\u043a\u043e\u0432\u043e\u0439 \u0442\u043e\u043a \u0441\u043e\u043b\u0435\u043d\u043e\u0438\u0434\u0430 900 \u043c\u0410. \u041e\u0441\u043e\u0431\u0430\u044f \u0444\u0438\u0448\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0432\u0435\u0440\u0435\u0439: \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432 \u0434\u0432\u0435\u0440\u043d\u0443\u044e \u043a\u043e\u0440\u043e\u0431\u043a\u0443, \u0448\u0438\u0440\u0438\u043d\u0430 37 \u043c\u043c (\u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043e\u0431\u044b\u0447\u043d\u043e 40-50 \u043c\u043c).<\/p>\n<p>  \u0422\u0430\u043a\u0438\u0435 \u0437\u0430\u043c\u043a\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u0434\u0432\u0443\u0445 \u0442\u0438\u043f\u043e\u0432, \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u0431\u0435\u0437 \u043f\u0438\u0442\u0430\u043d\u0438\u044f (NO) \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0435 \u0431\u0435\u0437 \u043f\u0438\u0442\u0430\u043d\u0438\u044f (NC). \u0412 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0445 \u0434\u043b\u044f \u043b\u044e\u0434\u0435\u0439 \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f NO, \u0447\u0442\u043e \u0431\u044b \u0432 \u043d\u0435\u0448\u0442\u0430\u0442\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0449\u0435\u0439\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043f\u0438\u0442\u0430\u043d\u0438\u044f, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043b\u044e\u0434\u0438 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441\u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u043a\u0438\u043d\u0443\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0437\u043e\u043d\u0443.<\/p>\n<p>  \u041e\u0442 \u0437\u0430\u043c\u043a\u0430 \u0438\u0434\u0435\u0442 5 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432:<br \/>  \u041a\u0440\u0430\u0441\u043d\u044b\u0439: +12\u0412<br \/>  \u0427\u0435\u0440\u043d\u044b\u0439: \u0417\u0435\u043c\u043b\u044f<br \/>  \u041e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439: \u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435. \u041d\u0430 \u043d\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u043e +4,8 \u0412. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0437\u0430\u043c\u043e\u043a \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044c \u043f\u0440\u043e\u0432\u043e\u0434 \u043d\u0430 \u0437\u0435\u043c\u043b\u044e.<br \/>  \u0417\u0435\u043b\u0435\u043d\u044b\u0439 \u0438 \u0411\u0435\u043b\u044b\u0439: \u0414\u0430\u0442\u0447\u0438\u043a \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u0434\u0432\u0435\u0440\u0438. \u041a\u043e\u0433\u0434\u0430 \u0434\u0432\u0435\u0440\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u0430, \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u0440\u0430\u0437\u043e\u043c\u043a\u043d\u0443\u0442\u044b, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0430 \u2014 \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b.<\/p>\n<h4>\u0418\u0442\u0430\u043a, \u0441\u043e\u0431\u0435\u0440\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f<\/h4>\n<p>  \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c 12 \u0412 \u0446\u0435\u043f\u044c\u044e \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0437\u0430\u043c\u043a\u0430 \u0431\u0443\u0434\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u0435\u0432\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440. \u0417\u0430\u043c\u044b\u043a\u0430\u0442\u044c \u043d\u0430 \u0437\u0435\u043c\u043b\u044e \u043f\u0440\u043e\u0432\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u0447\u0435\u0440\u0435\u0437 N-P-N \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440. \u0414\u043b\u044f \u043a\u0440\u0430\u0441\u043e\u0442\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0434\u0432\u0443\u0445\u0446\u0432\u0435\u0442\u043d\u044b\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434, \u0447\u0442\u043e \u0431\u044b \u0441\u0432\u0435\u0442\u0438\u043b \u0437\u0435\u043b\u0435\u043d\u044b\u043c, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043c\u043e\u043a \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0435\u043d \u0438 \u043a\u0440\u0430\u0441\u043d\u044b\u043c, \u043a\u043e\u0433\u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u0435\u043d. \u0414\u043b\u044f \u043f\u0440\u0438\u0434\u0430\u043d\u0438\u044f \u0434\u0440\u0430\u043c\u0430\u0442\u0438\u0437\u043c\u0430 \u0432\u0441\u0435\u0439 \u0441\u0446\u0435\u043d\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043f\u044c\u0435\u0437\u043e\u043f\u0438\u0449\u0430\u043b\u043a\u0443. \u0414\u043b\u044f \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0438\u0437\u043d\u0443\u0442\u0440\u0438, \u043a\u0430\u043a \u043d\u0430 \u0434\u0432\u0435\u0440\u044f\u0445 \u0441 \u0434\u043e\u043c\u043e\u0444\u043e\u043d\u043e\u043c, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u0430\u043a\u0442\u043e\u0432\u0443\u044e \u043a\u043d\u043e\u043f\u043a\u0443.<\/p>\n<p>  \u0421\u043a\u0435\u0442\u0447 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u043e UART, \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0435\u0442 \u0438\u0445 \u0438 \u0443\u043c\u0435\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0437\u0430\u043c\u043e\u043a. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u0437\u0430\u043c\u043a\u0430 (\u0430\u043a\u0442\u0438\u0432\u0435\u043d \u0438\u043b\u0438 \u043d\u0435\u0442) \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0434\u0432\u0435\u0440\u0438 (\u043e\u0442\u043a\u0440\u044b\u0442\u0430 \u0438\u043b\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u0430)<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/kuleshov.msk.ru\/locks\/prototip1_bb.png\" alt=\"image\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0435\u0442\u0447<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>#include &lt;EEPROM.h&gt;  \/\/ \u0426\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u044b\/\u0432\u044b\u0445\u043e\u0434\u044b #define BEEPER  5  \/\/ \u041f\u0438\u0449\u0430\u043b\u043a\u0430 #define BUTTON  2  \/\/ \u041a\u043d\u043e\u043f\u043a\u0430 #define LED_RED 6  \/\/ \u0421\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043c\u043a\u0430 #define LED_GREEN  3 \/\/ \u0421\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043c\u043a\u0430 #define LOCK_POWER  7 \/\/ \u0417\u0430\u0442\u0432\u043e\u0440 \u043f\u043e\u043b\u0435\u0432\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u0430, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0446\u0435\u043f\u044c\u044e \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0437\u0430\u043c\u043a\u0430 #define LOCK_OPEN  9 \/\/ \u0412\u0445\u043e\u0434 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u043c\u043e\u043a #define NO_PIN  8 \/\/ \u0414\u0430\u0442\u0447\u0438\u043a \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u0434\u0432\u0435\u0440\u0438  \/\/ \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0434\u043b\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 loop() #define EVENT_NONE  0  \/\/ \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 #define EVENT_BUTTON  1 \/\/ \u041d\u0430\u0436\u0430\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0430 #define EVENT_ACTIVATE  2 \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0437\u0430\u043c\u043a\u0430 #define EVENT_DEACTIVATE  3 \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0437\u0430\u043c\u043a\u0430 #define EVENT_OPEN  4 \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0437\u0430\u043c\u043e\u043a #define EVENT_SERIAL  99 \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 UART  char deviceID[12];  int eventButton = EVENT_NONE; int lockActive = LOW;  String inputString = &quot;&quot;;  void pressButton(){ \/\/ \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438   eventButton = EVENT_BUTTON; }  void setup(){   pinMode(BEEPER, OUTPUT);   pinMode(LED_RED, OUTPUT);   pinMode(LED_GREEN, OUTPUT);   pinMode(LOCK_POWER, OUTPUT);   pinMode(LOCK_OPEN, OUTPUT);   pinMode(BUTTON, INPUT);   pinMode(NO_PIN, INPUT);   Serial.begin(9600);     inputString.reserve(30);   attachInterrupt(0, pressButton, RISING);     eventButton = EVENT_NONE;   lockActive = EEPROM.read(0); \/\/ \u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0437\u0430\u043c\u043a\u0430 &quot;\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e&quot;     digitalWrite(LOCK_POWER, lockActive);   digitalWrite(LED_RED, lockActive);   digitalWrite(LED_GREEN, !lockActive); }  int commandProcessor(String incomingString){   incomingString.trim();   incomingString.toUpperCase();   if (incomingString == &quot;OPEN&quot;) {     return EVENT_OPEN;   }   else if (incomingString == &quot;ACTIVATE&quot;) {     return EVENT_ACTIVATE;   }   else if (incomingString == &quot;DEACTIVATE&quot;) {     return EVENT_DEACTIVATE;   }   else {     return EVENT_NONE;   } }  void loop(){    \/\/ \u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432    if (eventButton == EVENT_SERIAL){     \/\/ \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u043c\u0430\u043d\u0434 \u043e\u0442 Serial     inputString.trim();     inputString.toUpperCase();     if (inputString == &quot;STATUS&quot;) { \/\/\u0417\u0430\u043f\u0440\u043e\u0441 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0437\u0430\u043c\u043a\u0430       if (lockActive == HIGH) {         Serial.println(&quot;ACTIVE&quot;);       }       else {         Serial.println(&quot;NOTACTIVE&quot;);       }     }     else if (inputString == &quot;DOOR&quot;) { \/\/ \u0417\u0430\u043f\u0440\u043e\u0441 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0432\u0435\u0440\u0438 \u043f\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0443       if (digitalRead(NO_PIN) == HIGH) {         Serial.println(&quot;CLOSE&quot;);       }       else {         Serial.println(&quot;OPEN&quot;);       }     }     else if (inputString == &quot;NORMAL OPEN&quot;) { \/\/ \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0437\u0430\u043c\u043a\u0430       if (EEPROM.read(0) != LOW) {         EEPROM.write(0, LOW);         delay(10);       }     }     else if (inputString == &quot;NORMAL CLOSE&quot;) {       if (EEPROM.read(0) != HIGH) {         EEPROM.write(0, HIGH);         delay(10);       }     }      \/\/ \u0417\u0430\u0442\u0435\u043c \u043e\u0431\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b     eventButton = commandProcessor(inputString);      inputString = &quot;&quot;;   }    \/\/ \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u0439    if (eventButton == EVENT_BUTTON) {     eventButton = EVENT_OPEN; \/\/ \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0435 \u0440\u0435\u0448\u0430\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u0438 \u0438\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435   }   else if (eventButton == EVENT_ACTIVATE) {     lockActive = HIGH;     digitalWrite(LOCK_POWER, HIGH);     digitalWrite(LED_RED, HIGH);     digitalWrite(LED_GREEN, LOW);     tone(BEEPER, 700, 50);   }   else if (eventButton == EVENT_DEACTIVATE) {     lockActive = LOW;     digitalWrite(LOCK_POWER, LOW);     digitalWrite(LED_RED, LOW);     digitalWrite(LED_GREEN, HIGH);     tone(BEEPER, 700, 50);   }     else if (eventButton == EVENT_OPEN) {     digitalWrite(LOCK_OPEN, HIGH);     if (lockActive == HIGH) {       tone(BEEPER, 750, 50);     }     delay(10);     digitalWrite(LOCK_OPEN, LOW);     eventButton = EVENT_NONE;   }    eventButton = EVENT_NONE; }  void serialEvent() {   while (Serial.available()) {     char inChar = (char)Serial.read();     inputString += inChar;     if (inChar == '\\n') {       eventButton = EVENT_SERIAL;     }   } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412\u044b\u0432\u043e\u0434\u044b \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.  <\/p>\n<ol>\n<li>Arduino \u2014 \u044d\u0442\u043e \u0412\u0435\u0441\u0447\u044c!<\/li>\n<li>\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0435 \u043d\u0430\u0432\u044b\u043a\u0438 \u043d\u0435 \u043f\u0440\u043e\u043f\u044c\u0435\u0448\u044c, \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u044f \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u0433\u043e \u043f\u043e\u043c\u043d\u044e;<\/li>\n<li>Ethernet Shield \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0445\u043e\u0434\u043e\u0432 Arduino Uno, \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0442\u044c \u043d\u0430 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u044b, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u0442\u0432\u043e\u0440 \u043f\u043e\u043b\u0435\u0432\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u0430 \u0438 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0438\u043d\u0443, \u043a\u043d\u043e\u043f\u043a\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0437\u0430\u043c\u043e\u043a \u0438\u043b\u0438 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u043d\u044b\u0439 \u043a\u043b\u044e\u0447.<\/li>\n<\/ol>\n<h4>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/h4>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u0433\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u00ab\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 arduino \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u00bb \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432, \u0438\u043b\u0438 \u043a\u0430\u043a \u043d\u0430 Yun \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u043b\u0444\u0438-\u0431\u0443\u0434\u043a\u0443 \u0434\u043b\u044f \u043a\u043e\u0442\u0430.<\/p>\n<p>  \u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0431\u044b\u043b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 <a href=\"http:\/\/habrahabr.ru\/post\/219107\/\">\u043e\u0431\u0437\u043e\u0440 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Ninja Blocks<\/a>. \u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u044f \u0447\u0438\u0442\u0430\u043b \u044d\u0442\u043e\u0442 \u043e\u0431\u0437\u043e\u0440, \u0441\u0435\u0440\u0432\u0438\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a.<\/p>\n<p>  \u0422\u043e\u0442 \u0436\u0435 \u0430\u0432\u0442\u043e\u0440  <a href=\"http:\/\/habrahabr.ru\/users\/ivizil\/\" class=\"user_link\">ivizil<\/a> \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b <a href=\"http:\/\/habrahabr.ru\/post\/257115\/\">\u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u044b<\/a>. \u042f \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0437\u0430 \u043c\u0435\u0441\u044f\u0446 \u0434\u043e \u044d\u0442\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u043e\u0442\u0432\u0435\u0440\u0433 \u0435\u0433\u043e \u043f\u043e \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u044d\u0441\u0442\u0435\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438. \u0411\u043e\u043c\u0431\u0438\u0442\u044c \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u043a\u0430\u0436\u0434\u044b\u0435 5-10 \u0441\u0435\u043a\u0443\u043d\u0434 \u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c \u0436\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u043e\u0434\u043d\u043e\u0439 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u0441\u0443\u0442\u043a\u0438 \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 \u044d\u0441\u0442\u0435\u0442\u0438\u0447\u043d\u043e.<\/p>\n<p>  \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0441\u044f \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 XMPP. \u041a\u043b\u0438\u0435\u043d\u0442 \u043d\u0430 Arduino \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442 \u043d\u0435\u0433\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b: \u00ab\u0432\u043a\u043b\u044e\u0447\u0438\u0441\u044c\u00bb, \u00ab\u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0441\u044c\u00bb, \u00ab\u043e\u0442\u043a\u0440\u043e\u0439\u0441\u044f\u00bb \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u00ab\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u00bb, \u00ab\u0434\u0432\u0435\u0440\u044c\u00bb. \u0413\u043e\u0441\u0442\u044c \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a XMPP \u043a\u043b\u0438\u0435\u043d\u0442, \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442 \u043a\u0442\u043e, \u043a\u0430\u043a\u0443\u044e \u0438 \u043a\u0443\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c.<\/p>\n<p>  \u0423\u0432\u044b, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 XMPP \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0430 Arduino \u043d\u0435 \u043d\u0430\u0448\u043b\u043e\u0441\u044c. \u0411\u0443\u0434\u0435\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u0440\u044b\u043c \u0434\u043e\u0431\u0440\u044b\u043c Telnet.<\/p>\n<h4>\u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f<\/h4>\n<p>  \u0412 \u0446\u0435\u043b\u044f\u0445 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u043e\u0432 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043f\u043e\u0441\u0430\u0434\u0438\u0442\u044c \u0437\u0430\u0442\u0432\u043e\u0440 \u043f\u043e\u043b\u0435\u0432\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u0430 \u0438 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043d\u0430 \u043e\u0434\u0438\u043d \u0432\u044b\u0445\u043e\u0434. \u0417\u0430\u043c\u043a\u0443 \u0440\u0435\u0437\u043a\u043e \u0441\u0442\u0430\u043b\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u044f \u0440\u0438\u0433\u0435\u043b\u044f. \u0417\u0430\u043c\u0435\u0440\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438, \u0447\u0442\u043e \u043d\u0430 \u0437\u0430\u043c\u043a\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 12\u0412 \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u0435\u0435 11\u0412. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u0437\u0430\u0442\u0432\u043e\u0440\u0435 5\u0412, \u043c\u0435\u0436\u0434\u0443 \u0438\u0441\u0442\u043e\u043a\u043e\u043c \u0438 \u0437\u0435\u043c\u043b\u0435\u0439 11,8\u0412, \u0430 \u043a\u043e\u0433\u0434\u0430 4,8\u0412 \u2014 10,9\u0412. \u041f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u0442\u0432\u043e\u0440\u043e\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u0438\u043f\u043e\u043b\u044f\u0440\u043d\u044b\u0439 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440 \u0432 \u0446\u0435\u043f\u044c 12\u0412, \u043d\u0443 \u0438 \u0443\u0447\u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b.<\/p>\n<p>  \u0414\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Telnet-\u0441\u0435\u0440\u0432\u0435\u0440. \u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043d\u0430 \u0447\u0435\u043c, \u044f \u0440\u0435\u0448\u0438\u043b \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 Python. \u041f\u0440\u0438\u0437\u043d\u0430\u044e\u0441\u044c, \u043c\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 Python \u0432\u0435\u0441\u044c\u043c\u0430 \u0448\u0430\u043f\u043e\u0447\u043d\u043e\u0435. \u042f \u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u043d\u0430 \u043d\u0435\u043c \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043d \u043a\u0440\u043e\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u0435\u043d \u0438 \u0434\u0430\u0436\u0435 \u0441\u043c\u043e\u0433 \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u00abHello World!\u00bb.<\/p>\n<p>  \u041d\u0430\u0447\u0430\u043b \u0433\u0443\u0433\u043b\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Telnet \u043d\u0430 Python \u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Twisted. \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0432\u0437\u044f\u043b \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0447\u0430\u0442-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0435\u0433\u043e \u0434\u043e \u00ab\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u00bb.<\/p>\n<p>  \u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p>  \u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443. \u041f\u0440\u0438 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c 10 \u0441\u0435\u043a\u0443\u043d\u0434. <\/p>\n<p>  \u041f\u0440\u0438 \u0443\u0434\u0430\u0447\u043d\u043e\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0430 \u043d\u0430\u0448 \u043b\u0438 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440. \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430 \u043d\u0435\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434, \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u043d\u0435\u043c\u0443 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e, \u0445\u0440\u0430\u043d\u044f\u0449\u0435\u0435\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 mySQL, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 MD5 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 MD5 \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u043c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u043d\u044b\u043c \u0438 \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0432 \u043e\u0437\u043d\u0430\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0433\u043e \u043c\u044b \u0437\u0430\u0436\u0436\u0435\u043c \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043a\u043e\u043c\u0430\u043d\u0434 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043a\u0430\u043a \u0434\u043b\u044f UART.<\/p>\n<p>  \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043c\u044b \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0442\u0430\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u043a\u0430\u043a \u00ab\u0437\u0430\u043c\u043e\u043a\u00bb.<\/p>\n<p>  \u00ab\u041a\u043b\u044e\u0447\u0438\u00bb \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0431\u044b \u0441\u0442\u0430\u0442\u044c \u00ab\u043a\u043b\u044e\u0447\u0435\u043c\u00bb. \u0422\u0430 \u0436\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043d\u0430\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f: \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043a \u043d\u0435\u0439 \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043b\u044e\u0447 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c, \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c MD5 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e. \u0415\u0441\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u0442 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c, \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00ab\u043a\u043b\u044e\u0447\u00bb \u0438 \u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u00ab\u0437\u0430\u043c\u043a\u0430\u043c\u00bb.<\/p>\n<p>  \u0412 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Factory \u043f\u0430\u0440\u0441\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u0430\u0435\u043c \u0442\u0443\u0434\u0430-\u0441\u044e\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 Python<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">from twisted.protocols import basic from twisted.internet import reactor from twisted.internet.protocol import ServerFactory  from twisted.protocols.basic import LineOnlyReceiver from twisted.application import service, internet import hashlib  import threading import MySQLdb from MySQLdb import Error import random   class ChatProtocol(LineOnlyReceiver):       name = &quot;&quot;     isKey = False     authKey = &quot;&quot;          def getSecret(self,isKey):         if not self.factory.conn:             self.factory.mySQLdbConnect()         if isKey:             reqTable = &quot;lockkeys&quot;         else:             reqTable = &quot;locks&quot;         try:             cursor = self.factory.conn.cursor()             cursor.execute(&quot;SELECT `secret` FROM `&quot; + reqTable + &quot;` WHERE id='&quot; + self.getName() + &quot;'&quot;)             rows = cursor.fetchall()                                      if cursor.rowcount &gt; 0:                 cursor.close()                 return rows[0][0].strip()              else:                 cursor.close()                 return None                      except Error as e:             print(e)             return None          finally:             cursor.close()                  def validKey(self,lockID):         if not self.isKey:             return False         if self.transport.getPeer().host == &quot;127.0.0.1&quot;:             return True         if not self.factory.conn:             self.factory.mySQLdbConnect()         try:             cursor = self.factory.conn.cursor()             cursor.execute(&quot;SELECT `rights` FROM `hosts` WHERE (`lock`='&quot; + lockID + &quot;') AND (`lockkey`='&quot;+ self.getName() + &quot;')&quot;)             rows = cursor.fetchall()                          if cursor.rowcount &gt; 0:                 cursor.close()                 return rows[0][0]             else:                 cursor.close()                 return False         except Error as e:             print(e)             return False          finally:             cursor.close()                  def getName(self):          if self.name!=&quot;&quot;:              return self.name          return self.transport.getPeer().host       def connectionMade(self):          print &quot;New connection from &quot;+self.getName()         if self.transport.getPeer().host == &quot;127.0.0.1&quot;:             self.isKey = True          d = {self.getName() : self}         self.factory.clients.update(d)      def connectionLost(self, reason):          print &quot;Lost connection from &quot;+self.getName()          self.factory.clients.pop(self.getName())          self.factory.sendMessageToAllclients(self.getName()+&quot; has disconnected.&quot;)                def lineReceived(self, line):          #print self.getName()+&quot; said &quot;+line         #if line[:3] == &quot;\/OK&quot;         if line[:5]==&quot;\/KEY:&quot;:             str1 = '123456789'             str2 = 'qwertyuiopasdfghjklzxcvbnm'             str3 = str2.upper()             str4 = str1+str2+str3             ls = list(str4)             random.shuffle(ls)             self.authKey = ''.join([random.choice(ls) for x in range(12)])             self.sendLine(&quot;ANSW:&quot;+self.authKey)             oldName = self.getName()              self.name = line[5:].strip()              self.factory.clients.pop(oldName)             self.factory.clients.update({self.getName() : self})             self.isKey = False             print oldName+&quot; has requested to be Key ID:&quot;+self.getName()         elif line==&quot;\/EXIT&quot;:              self.transport.loseConnection()         elif line[:6]==&quot;\/ANSW:&quot;:             secret = self.getSecret(True)             if secret:                 m = hashlib.md5()                 m.update(self.authKey + secret)                 if m.hexdigest() == line[6:].strip():                     self.isKey = True                     print self.getName() + &quot; was authorisated as Key&quot;                 else:                     self.sendLine(&quot;Authorisation fail&quot;)                     self.transport.loseConnection()                          else:                 self.sendLine(&quot;Authorisation fail&quot;)                 self.transport.loseConnection()                            if self.isKey: #Only from keys                          if line[:6]==&quot;\/OPEN:&quot;:                 if self.validKey(line[6:]):                     adresat = self.factory.clients.get(line[6:],None)                     if adresat:                         adresat.sendLine(&quot;OPEN:&quot; + self.getName() +  &quot;\\r\\n&quot;)                     else:                         self.sendLine(&quot;DeviceID=&quot;+ line[6:] + &quot; is not online\\r\\n&quot;)             elif line[:10]==&quot;\/ACTIVATE:&quot;:                 if self.validKey(line[10:]):                     adresat = self.factory.clients.get(line[10:],None)                     if adresat:                         adresat.sendLine(&quot;ACTIVATE:&quot; + self.getName() +  &quot;\\r\\n&quot;)                     else:                         self.sendLine(&quot;DeviceID=&quot;+ line[10:] + &quot; is not online\\r\\n&quot;)             elif line[:12]==&quot;\/DEACTIVATE:&quot;:                 if self.validKey(line[12:]):                     adresat = self.factory.clients.get(line[12:],None)                     if adresat:                         adresat.sendLine(&quot;DEACTIVATE:&quot; + self.getName() +  &quot;\\r\\n&quot;)                     else:                         self.sendLine(&quot;DeviceID=&quot;+ line[12:] + &quot; is not online\\r\\n&quot;)                    else: # Only from locks             if line[:4]==&quot;\/ID:&quot;:                  oldName = self.getName()                  self.name = line[4:].strip()                  self.factory.clients.pop(oldName)                 self.factory.clients.update({self.getName() : self})                 print oldName+&quot; changed name to &quot;+self.getName()              elif line[:4]==&quot;\/RE:&quot;:                 secret = self.getSecret(self.isKey)                 if secret == None:                     self.sendLine(&quot;Your Device ID is not register in Command Server&quot;)                     self.transport.loseConnection()                 else:                     requestCode = line[4:]                     m = hashlib.md5()                     m.update(requestCode + secret)                     self.sendLine(&quot;AUTH:&quot; + m.hexdigest() + &quot;\\r\\n&quot;)             elif line[:4]==&quot;\/OK:&quot;:                 adresat = self.factory.clients.get(line[4:],None)                 if adresat:                     adresat.sendLine(&quot;OK:&quot; + self.getName())             else:                  self.factory.sendMessageToAllclients(self.getName()+&quot; says &quot;+line)          def sendLine(self, line):          self.transport.write(line+&quot;\\r\\n&quot;)                     class ChatProtocolFactory(ServerFactory):       protocol = ChatProtocol      clients = {}           def mySQLdbConnect(self):         try:             self.conn = MySQLdb.connect(host='127.0.0.1',user='guestlock',passwd='passw',db='guestlock')         except Error as e:             print(e)             return False         else:             return True                  def __init__(self):         print &quot;Starting server...&quot;          self.clients = {}         if self.mySQLdbConnect():             print &quot;Server ready!&quot;         else:             print &quot;Data base error. Server doesn't work correctly.&quot;               def sendMessageToAllclients(self, mesg):          for client in self.clients.values():             client.sendLine(mesg)    factory = ChatProtocolFactory() application = service.Application(&quot;CommandServer&quot;) internet.TCPServer(12345, factory).setServiceParent(application) <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0421\u0435\u0440\u0432\u0435\u0440 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043a \u0434\u0435\u043c\u043e\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0442\u0430\u0442\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0434\u0435\u043c\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 twistd  <\/p>\n<pre><code class=\"bash\">$twistd -y CommandServer.ry <\/code><\/pre>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0435\u0442\u0447<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>#include &lt;EEPROM.h&gt; #include &lt;SPI.h&gt; #include &lt;Ethernet.h&gt; #include &lt;MD5.h&gt;  \/\/ \u0426\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0432\u0445\u043e\u0434\u044b\/\u0432\u044b\u0445\u043e\u0434\u044b #define BEEPER  5  \/\/ \u041f\u0438\u0449\u0430\u043b\u043a\u0430 #define BUTTON  2  \/\/ \u041a\u043d\u043e\u043f\u043a\u0430 #define LOCK_POWER 7  \/\/ \u0417\u0430\u043c\u043e\u043a \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d  #define LED_DEACTIVE  6 \/\/ \u0417\u0430\u043c\u043e\u043a \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d   #define LOCK_OPEN  9  \/\/ \u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0437\u0430\u043c\u043a\u0430 #define LED_ETHERNET  8 \/\/ \u0418\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 #define NO_PIN  A0  \/\/\u0414\u0430\u0442\u0447\u0438\u043a NO \u0437\u0430\u043c\u043a\u0430 \u0410\u041d\u0410\u041b\u041e\u0413\u041e\u0412\u042b\u0419   \/\/ \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0434\u043b\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 loop() #define EVENT_NONE  0 #define EVENT_ETHERNET 98 #define EVENT_SERIAL  99   #define RECONNECT_TIME  5000 \/\/ \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443, \u043c\u0441   char deviceID[12]; byte mac[] = {    0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; EthernetClient client; IPAddress server(192,168,1,7); long port = 12345;  unsigned long lastConnectionTime = 0;        unsigned long disconnectTime = 0; boolean lastConnected = false;                  volatile int eventButton = EVENT_NONE;  \/\/ \u0418\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0434\u043b\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 loop() int lockActive = LOW;  String inputString = &quot;&quot;;         String ethernetString = &quot;&quot;;  long requestCode;  void pressButton(){ \/\/ \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438   lockOpen(); }  void majorBeep() {   tone(BEEPER, 750, 50); }  void minorBeep() {   tone(BEEPER, 300, 100); }   void lockActivate(boolean lockState){   digitalWrite(LOCK_POWER, lockState);   digitalWrite(LED_DEACTIVE, !lockState);   lockActive = lockState;   majorBeep(); }  void lockOpen() {   digitalWrite(LOCK_OPEN, HIGH);   delay(50);   digitalWrite(LOCK_OPEN, LOW);   majorBeep(); }  void lockSetDefaultState(int state){   if (EEPROM.read(0) != state) {      EEPROM.write(0, state);      delay(10);   }   majorBeep(); }  boolean serverAuthRequest() {   if (!client.connected()){     return false;   }   client.print(&quot;\/ID:&quot;);   client.println(deviceID);   delay(1000);   char rCode[6];   ultoa(random(99999),rCode,16);    unsigned char* hash=MD5::make_hash(rCode);   char *md5str = MD5::make_digest(hash, 16);    client.print(&quot;\/RE:&quot;);   client.println(md5str);    String answerHash = md5str;   answerHash.trim();   for (int i=0; EEPROM.read(50+i) != 0; i++){     answerHash += char(EEPROM.read(50+i));   }     char *aCode = (char*)malloc(answerHash.length()+1);   ;   answerHash.toCharArray(aCode,answerHash.length()+1);    hash=MD5::make_hash(aCode);   md5str = MD5::make_digest(hash, 16);    answerHash = md5str;    free(md5str);   free(aCode);    unsigned long mm = millis();   ethernetString = &quot;&quot;;   while (millis()-mm &lt; RECONNECT_TIME) {     if (client.available()) {       char inChar = client.read();       ethernetString += inChar;       if (inChar == '\\n') {         ethernetString.trim();         if (ethernetString.startsWith(&quot;AUTH:&quot;)) {            ethernetString = ethernetString.substring(5);           break;         }          else {           ethernetString = &quot;&quot;;         }       }      }   }   return (ethernetString == answerHash); }   boolean serverConnect() {   if (client.connect(server, port)) {     lastConnectionTime = millis();     if (serverAuthRequest()) {       Serial.println(&quot;Server autenfication sucsesseful&quot;);       majorBeep();       digitalWrite(LED_ETHERNET, HIGH);       ethernetString = &quot;&quot;;       return true;     }      else{       Serial.println(&quot;Server autenfication fail&quot;);       minorBeep();       digitalWrite(LED_ETHERNET, LOW);       ethernetString = &quot;&quot;;       client.stop();       return false;     }   }      else {     Serial.println(&quot;Connection fail&quot;);     client.stop();     digitalWrite(LED_ETHERNET, LOW);     disconnectTime = millis();     ethernetString = &quot;&quot;;     return false;   } }   void setup(){   pinMode(BEEPER, OUTPUT);   pinMode(LOCK_OPEN, OUTPUT);   pinMode(BUTTON, INPUT);   pinMode(LOCK_POWER, OUTPUT);   pinMode(LED_DEACTIVE, OUTPUT);   pinMode(LED_ETHERNET, OUTPUT);     lockActivate(EEPROM.read(0));    Serial.begin(9600);    randomSeed(analogRead(A1));    for (int i=1; i&lt;12; i++) {     deviceID[i-1] = EEPROM.read(i);   }    Serial.print(&quot;Device ID: &quot;);    Serial.println(deviceID);     delay(1000);   \/\/ start the Ethernet connection using a DNS server:   Ethernet.begin(mac);    Serial.print(&quot;My IP address: &quot;);   Serial.println(Ethernet.localIP());    if (!serverConnect()) {     disconnectTime = millis();   }    inputString.reserve(30);   attachInterrupt(0, pressButton, RISING);   eventButton = EVENT_NONE; }  boolean commandProcessor(String incomingString, int commandSource){      boolean result = true;   String report = &quot;OK&quot;;   incomingString.trim();   incomingString.toUpperCase();   if (incomingString.startsWith(&quot;OPEN&quot;)) {     lockOpen();   }    else if (incomingString.startsWith(&quot;ACTIVATE&quot;)) {     lockActivate(HIGH);   }    else if (incomingString.startsWith(&quot;DEACTIVATE&quot;)) {     lockActivate(LOW);   }    else if (incomingString.startsWith(&quot;STATUS&quot;)) {     if (lockActive == HIGH) {       report = &quot;ACTIVE&quot;;     }      else {       report = &quot;NOTACTIVE&quot;;     }       }   else if (incomingString.startsWith(&quot;DOOR&quot;)) {     if (analogRead(NO_PIN) &gt; 1000) {       report = &quot;CLOSE&quot;;     }      else {       report = &quot;OPEN&quot;;     }   }   else {     result = false;   }    if (result && (commandSource == EVENT_ETHERNET) && client.connected()) {     if (incomingString.indexOf(&quot;:&quot;) &gt; 0) {       client.print(&quot;\/&quot; + report + incomingString.substring(incomingString.indexOf(&quot;:&quot;)));     }      else {       client.println(&quot;\/&quot; + report);     }       }      if (result && (commandSource == EVENT_SERIAL)) {     Serial.println(report);   }  }    void ethernetEvent() {   if (client.available()) {     char inChar = client.read();     ethernetString += inChar;     if (inChar == '\\n') {       eventButton = EVENT_ETHERNET;     }    } }   void loop(){    if (eventButton == EVENT_ETHERNET) {     commandProcessor(ethernetString, eventButton);     ethernetString = &quot;&quot;;     eventButton = EVENT_NONE;   }    if (eventButton == EVENT_SERIAL) {     commandProcessor(inputString, eventButton);     inputString = &quot;&quot;;     eventButton = EVENT_NONE;   }    if (!client.connected() && lastConnected) {     Serial.println(&quot;Disconnecting.&quot;);     minorBeep();     digitalWrite(LED_ETHERNET, LOW);     disconnectTime = millis();     client.stop();   }    lastConnected = client.connected();    if ((!lastConnected) && (millis() &gt; disconnectTime+RECONNECT_TIME)) {     disconnectTime = millis();     serverConnect();   }    ethernetEvent(); }  void serialEvent() {   while (Serial.available()) {     char inChar = (char)Serial.read();     inputString += inChar;     if (inChar == '\\n') {       eventButton = EVENT_SERIAL;     }    } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<h4>ProtoShield<\/h4>\n<p>  \u0412 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u043c\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e \u0438 \u0437\u0430\u0445\u043e\u0447\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0442\u0430\u043a \u044d\u0442\u043e \u043f\u0430\u0440\u0443 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0432\u0430\u0436\u043d\u044b\u0445 \u0438\u043b\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u043e-\u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 \u044d\u0442\u043e \u0432\u0441\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0445\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u00ab\u041a\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u043e\u0434 \u0440\u0435\u0437\u0430\u0442\u044c?!!\u00bb<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/kuleshov.msk.ru\/locks\/maket.jpg\" alt=\"image\"\/><\/p>\n<p>  \u0417\u0430\u043a\u0443\u043f\u0430\u0435\u043c Arduino ProtoShield \u0437\u0430 240 \u0440\u0443\u0431. \u041f\u0430\u044f\u043b\u044c\u043d\u0438\u043a, \u0444\u043b\u044e\u0441 \u0438 \u043f\u0440\u0438\u043f\u043e\u0439 \u0435\u0441\u0442\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/kuleshov.msk.ru\/locks\/shield.png\" alt=\"image\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/kuleshov.msk.ru\/locks\/shield.jpg\" alt=\"\u0428\u0438\u043b\u0434 \u0437\u0430\u043c\u043a\u0430\"\/><\/p>\n<p>  \u0412\u044b\u0432\u043e\u0434\u044b \u043f\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438:  <\/p>\n<ol>\n<li>Python \u0448\u0442\u0443\u043a\u0430 \u043c\u043e\u0449\u043d\u0430\u044f, \u043d\u043e \u043d\u0435\u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0430\u044f;<\/li>\n<li>\u041f\u0430\u044f\u0442\u044c \u044f \u043d\u0435 \u0440\u0430\u0437\u0443\u0447\u0438\u043b\u0441\u044f;<\/li>\n<li>\u0421\u0435\u0440\u0432\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 Rapsberry Pi;<\/li>\n<li>\u041d\u0430\u0434\u043e \u0437\u0430\u043a\u0430\u0437\u0430\u0442\u044c \u0443 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441;<\/li>\n<li>\u041c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u00ab\u0438\u0437\u0434\u0435\u043b\u0438\u0435\u00bb \u043d\u0430 \u00ab\u043e\u0431\u044a\u0435\u043a\u0442\u00bb \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0433\u043e\u0441\u0442\u0435\u0439.<\/li>\n<\/ol>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0433\u043e\u0441\u0442\u044e \u0434\u0432\u0435\u0440\u044c, \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435 \u044f \u0443\u0436\u0435 \u0441\u043c\u043e\u0433\u0443. \u041d\u0435\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u043c \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u043e\u0432 \u0433\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442\u2026             <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/259127\/\"> http:\/\/habrahabr.ru\/post\/259127\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>             \u0422\u0430\u043a \u0441\u043b\u043e\u0436\u0438\u043b\u0438\u0441\u044c \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430, \u0447\u0442\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0443 \u043c\u0435\u043d\u044f \u043e\u0434\u043d\u043e\u043a\u043e\u043c\u043d\u0430\u0442\u043d\u0430\u044f \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u043d\u0435 \u0436\u0438\u0432\u0443, \u0430 \u0441\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0435 \u00ab\u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c\u00bb \u043c\u043d\u0435 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u044f \u0435\u0435 \u0441\u0434\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0440\u0432\u0438\u0441 Airbnb, \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c. \u0418 \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u0431\u044b \u044d\u0442\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u0435\u0435, \u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442. \u041d\u043e \u044f \u043d\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c\u2026<\/p>\n<p>  \u0411\u044b\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u0430\u0440\u0443 \u0440\u0430\u0437 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u044f \u043d\u0435 \u043c\u043e\u0433 \u043b\u0438\u0447\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0433\u043e\u0441\u0442\u044f \u0438 \u0432\u0440\u0443\u0447\u0438\u0442\u044c \u0435\u043c\u0443 \u043a\u043b\u044e\u0447. \u041e\u0431\u044b\u0447\u043d\u043e \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b, \u043e\u0442 \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u043f\u043e\u0434 \u043a\u043e\u0432\u0440\u0438\u043a \u0434\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0441\u044c\u0435\u0440\u0436\u043a\u0443. \u041c\u043d\u0435 \u0436\u0435 \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0432\u044f\u0449\u0430\u0442\u044c \u0432 \u0441\u0432\u043e\u0438 \u0434\u0435\u043b\u0430 \u043f\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0438 \u043a\u0430\u043a-\u0442\u043e \u043d\u0435 \u043a\u043e\u043c\u0438\u043b\u044c\u0444\u043e \u043f\u0440\u044f\u0442\u0430\u0442\u044c \u043a\u043b\u044e\u0447 \u043f\u043e\u0434 \u043a\u043e\u0432\u0440\u0438\u043a\u043e\u043c.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-258270","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/258270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=258270"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/258270\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=258270"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=258270"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=258270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}