{"id":263317,"date":"2015-08-11T13:52:02","date_gmt":"2015-08-11T09:52:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=263317"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=263317","title":{"rendered":"\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 (NooLite, Raspberry Pi \u0438 WebIOPi)"},"content":{"rendered":"<p> \t\t\u0425\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430 <a href=\"http:\/\/www.noo.com.by\/sistema-noolite.html\">NooLite<\/a> \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 Raspberry Pi Model B (\u0434\u0430\u043b\u0435\u0435 <abbr title=\"Raspberry Pi\">RPI<\/abbr>) \u0432 \u0434\u0432\u0443\u0445\u043a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435.<\/p>\n<p>  \u041e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 NooLite \u043d\u0435\u043e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0430 \u0445\u0430\u0431\u0440\u0435:  <\/p>\n<ul>\n<li><a href=\"http:\/\/habrahabr.ru\/company\/boxowerview\/blog\/165131\">NooLite \u2014 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u0434\u0438\u043e\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0438\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443<\/a>;<\/li>\n<li><a href=\"http:\/\/habrahabr.ru\/company\/boxowerview\/blog\/168039\/\">NooLite-2, \u0438\u043b\u0438 \u0443\u043c\u043d\u044b\u0439 \u0434\u043e\u043c \u0434\u043b\u044f \u0447\u0430\u0439\u043d\u0438\u043a\u043e\u0432<\/a>;<\/li>\n<li>\u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043f\u043e \u0442\u0435\u0433\u0443 \u00abnoolite\u00bb \u0438\u043b\u0438 \u043d\u0430\u0431\u0440\u0430\u0442\u044c \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0433\u0443\u0433\u043b\u0430 \u00absite:habrahabr.ru noolite\u00bb<\/li>\n<\/ul>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e:  <\/p>\n<ul>\n<li>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 <a href=\"https:\/\/code.google.com\/p\/webiopi\/\">WebIOPi<\/a> \u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0443\u044e <a href=\"https:\/\/www.raspberrypi.org\/downloads\/\">Raspbian<\/a> \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f UART \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0430 <a href=\"http:\/\/www.noo.com.by\/modul_mt1132.html\">\u043c\u043e\u0434\u0443\u043b\u044c MT1132 NooLite<\/a>;<\/li>\n<li>\u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0432 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 WebIOPi \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0442\u0438\u043b\u0435 HTTP REST \u0441 GPIO UART;<\/li>\n<li>\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Android \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u0435\u0442\u043e\u043c \u0447\u0435\u0440\u0435\u0437 REST \u0434\u044b\u0440\u043a\u0438<\/li>\n<\/ul>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b<\/h4>\n<p>  <\/p>\n<ul>\n<li><b>backend<\/b> (\u043e\u0431\u0435\u0440\u0442\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f): <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Raspberry_Pi\">RPI<\/a> + <a href=\"https:\/\/code.google.com\/p\/webiopi\/\">WebIOPi<\/a> (UART+REST) + <a href=\"http:\/\/www.noo.com.by\/modul_mt1132.html\">NooLite \u043c\u043e\u0434\u0443\u043b\u044c<\/a>;<\/li>\n<li><b>\u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c<\/b>: \u0441\u0438\u043b\u043e\u0432\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 NooLite \u0441 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u2014 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435;<\/li>\n<li><b>front end<\/b> (\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435): \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 Android, WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043a\u043e\u043d\u0441\u043e\u043b\u044c bash shell (python script)<\/li>\n<\/ul>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043a\u0442\u043e-\u0442\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u0442: \u00ab\u044f \u0431\u044b \u043d\u0435 \u0441\u0442\u0430\u043b \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 RPI \u0440\u0430\u0434\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430, \u2014 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 \u0441 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430, \u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0431\u044b \u0432\u0441\u0435 <s>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u043b\u0430\u0441\u0442\u0438\u043a\u043e\u0432\u044b\u0439 \u0441\u0442\u0430\u043a\u0430\u043d\u0447\u0438\u043a, \u043a\u0430\u043c\u0435\u0448\u0435\u043a \u0438 \u043d\u0438\u0442\u043e\u0447\u043a\u0443<\/s> \u043d\u0430 Arduino \u0441 WiFi \u0448\u0438\u043b\u0434\u043e\u043c \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 AVR \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435\u00bb.<\/p>\n<p>  \u041d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443\u0436\u0435 \u043f\u044b\u043b\u0438\u043b\u0441\u044f \u043d\u0430 \u043f\u043e\u043b\u043a\u0435 RPI \u0438 \u043e\u0434\u043e\u043b\u0435\u0432\u0430\u043b\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u00ab\u0443\u043c\u043d\u043e\u0435\u00bb \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b RPI, \u0440\u0435\u0448\u0438\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u0433\u043e. \u0422\u0430\u043a\u0436\u0435, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f RPI \u0434\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0437\u0430\u043f\u0430\u0441 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u00ab\u0443\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430\u00bb.<\/p>\n<h4>\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/h4>\n<p>  <\/p>\n<ul>\n<li>2\u0445 \u043a\u043e\u043c\u043d\u0430\u0442\u043d\u0430\u044f \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430 \u041f44\u0422 \u0431\u0435\u0437 \u0440\u0435\u043c\u043e\u043d\u0442\u0430 \u0432 \u043d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0435;<\/li>\n<li>RPI (\u0431\u044b\u043b \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d 2 \u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0440\u0430\u0434\u0438);<\/li>\n<li>\u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u00ab\u0443\u043c\u043d\u043e\u0435\u00bb \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435<\/li>\n<\/ul>\n<p>  \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u043b\u0441\u044f \u043a \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u043c \u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c \u0443\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430, \u0432 \u0438\u0442\u043e\u0433\u0435 \u0432\u044b\u0431\u043e\u0440 \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 NooLite \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e:  <\/p>\n<ul>\n<li>\u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u0430\u044f \u0446\u0435\u043d\u0430 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 (Z-Wave, EnOcean, ZigBee);<\/li>\n<li>\u0434\u043e\u0432\u0435\u0440\u044f\u044e \u0442\u043e\u0432\u0430\u0440\u0430\u043c, \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u043c \u0432 \u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0438\u0438;<\/li>\n<li>\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b;<\/li>\n<li>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435;<\/li>\n<li>\u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u0430\u044f \u0438 <a href=\"http:\/\/www.lpdnet.ru\/index.php?go=Pages&amp;in=view&amp;id=28\">\u0440\u0430\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0413\u041a\u0420\u0427 \u0447\u0430\u0441\u0442\u043e\u0442\u0430 433 \u041c\u0413\u0446<\/a><\/li>\n<\/ul>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 <a href=\"http:\/\/habrahabr.ru\/company\/contactless\/blog\/213243\/\">Wiren Board<\/a> \u043d\u0430 \u0431\u0430\u0437\u0435 ARM9 \u0441 \u0431\u043e\u0433\u0430\u0442\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u043e\u0434 \u0432\u0441\u0435 \u043c\u044b\u0441\u043b\u0438\u043c\u044b\u0435 \u0438 \u043d\u0435 \u043c\u044b\u0441\u043b\u0438\u043c\u044b\u0435 \u043d\u0443\u0436\u0434\u044b, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0440\u0430\u0434\u043e\u0432\u0430\u043b\u0430 \u043a\u0438\u043b\u043b\u0435\u0440-\u0444\u0438\u0447\u0430 \u2014 \u0440\u0430\u0434\u0438\u043e\u043c\u043e\u0434\u0443\u043b\u044c \u043d\u0430 433 \u041c\u0413\u0446, \u0447\u0442\u043e \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u043b\u043e\u0432\u044b\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 NooLite. \u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c RPI, \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0433\u043e.<\/p>\n<p>  \u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u00ab\u0443\u043c\u043d\u043e\u0433\u043e\u00bb \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 \u043c\u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u0440\u0435\u0448\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:  <\/p>\n<ol>\n<li><a href=\"#block1\">\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u0434\u0432\u0443\u0445\u043a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435<\/a><\/li>\n<li><a href=\"#block2\">\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u0435\u0442\u043e\u0434 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 RPI \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u043b\u0430\u0431\u043e\u0442\u043e\u0447\u043a\u0438<\/a><\/li>\n<li><a href=\"#block3\">\u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u0431\u0435\u0440\u0442\u043a\u0443 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/a>\n<ul>\n<li><a href=\"#arch\">\u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0449\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/a><\/li>\n<\/ul>\n<\/li>\n<li>\u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043a\u0443\u043f\u043e\u043a <\/li>\n<li>\u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0441 \u0436\u0435\u043d\u043e\u0439<\/li>\n<li>\u043a\u0443\u043f\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b<\/li>\n<li><a href=\"#block3\">\u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043f\u0443\u043b\u044c\u0442\u044b \u0438 \u043e\u0442\u043b\u0430\u0434\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e RPI &gt; NooLite<\/a><\/li>\n<li><a href=\"#block4\">\u043d\u0430\u0439\u0442\u0438 \u0438 \u043a\u0443\u043f\u0438\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 \u0434\u043b\u044f \u043f\u0443\u043b\u044c\u0442\u043e\u0432<\/a><\/li>\n<li>\u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441\u0438\u043b\u043e\u0432\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 <\/li>\n<li><a href=\"#block5\">\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 Android<\/a><\/li>\n<\/ol>\n<p>  \u041f\u0443\u043d\u043a\u0442\u044b 1 \u0438 4-6 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f \u0432 \u0446\u0438\u043a\u043b\u0435.<\/p>\n<p>  \u0426\u0435\u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u0430:  <\/p>\n<ul>\n<li>RPI [1\u0448\u0442];<\/li>\n<li>\u041c\u043e\u0434\u0443\u043b\u044c NooLite MT1132 [1140\u0440 X 1 \u0448\u0442] 1140\u0440;<\/li>\n<li>\u0421\u0438\u043b\u043e\u0432\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 NL [1240\u0440 \u0425 11 \u0448\u0442] 13640\u0440;<\/li>\n<li>\u041f\u0443\u043b\u044c\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u0435 NL [1340\u0440 \u0425 7 \u0448\u0442] 9380\u0440;<\/li>\n<li>\u041f\u0443\u043b\u044c\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0440\u0435\u043b\u043e\u043a NL [1550\u0440 \u0425 1 \u0448\u0442] 1550\u0440;<\/li>\n<li>\u0414\u0430\u0442\u0447\u0438\u043a \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f NL [1550\u0440 \u0425 1 \u0448\u0442] 1550\u0440;<\/li>\n<li>\u041c\u043e\u043d\u0442\u0430\u0436\u043d\u044b\u0435 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u0441\u0430\u043f\u043f\u043e\u0440\u0442\u044b, \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u044b\u0435\/\u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 (\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438), \u0440\u0430\u043c\u043a\u0438 (\u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e);<\/li>\n<li>\u0434\u0440\u0443\u0437\u044c\u044f \u0441 3D \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u043e\u043c \u2014 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e<\/li>\n<\/ul>\n<p>  <b>\u0418\u0442\u043e\u0433\u043e: ~27000\u0440<\/b> + \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043e\u0442 3000\u0440.<br \/>  <a name=\"block1\"><\/a>  <\/p>\n<h4>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435<\/h4>\n<p>  \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u043a\u0430 \u0443\u0433\u043b\u043e\u0432\u043e\u0439 \u0434\u0432\u0443\u0445\u043a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u0439 \u0440\u0430\u0441\u043f\u0430\u0448\u043e\u043d\u043a\u0438 \u041f44\u0422 \u0441 \u044d\u0440\u043a\u0435\u0440\u043e\u043c \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u043d\u0438\u0436\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f24\/f3a\/512\/f24f3a512d94401ebf9d36ae27b645a2.png\"\/><\/p>\n<p>  \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e NooLite \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0445 \u043a\u0440\u043e\u043c\u0435 \u043b\u043e\u0434\u0436\u0438\u0438, \u0432\u0430\u043d\u043d\u043e\u0439 \u0438 \u0442\u0443\u0430\u043b\u0435\u0442\u0430.<\/p>\n<h5>\u041a\u043e\u0440\u0438\u0434\u043e\u0440<\/h5>\n<p>  2 \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0441 \u0440\u0435\u043b\u0435\u0439\u043d\u044b\u043c \u0440\u0435\u0436\u0438\u043c\u043e\u043c (\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\/\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435).<\/p>\n<p>  \u041e\u0434\u043d\u0430 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u044f\u0440\u043a\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f <a href=\"http:\/\/www.noo.com.by\/pm111.html\">PM111<\/a>. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432 \u0442\u0435\u043c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0442\u043e\u043a \u043e\u0441\u0432\u0435\u0449\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u043d\u043e\u0447\u043d\u043e\u043c\u0443 \u0441\u043a\u0438\u0442\u0430\u043b\u044c\u0446\u0443 \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u043e\u0433\u043d\u0435\u0439 \u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0433\u043e\u043b\u043e\u0434\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/82b\/981\/6b6\/82b9816b645c43f09360010da4b2d6bd.png\"\/><\/p>\n<p>  \u041e\u0431\u0435 \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u043c \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0440\u044f\u0434\u043e\u043c \u0441 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u0432\u0435\u0440\u044c\u044e. \u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u00ab\u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0432\u0435\u0442 \u0432\u043e \u0432\u0441\u0435\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435\u00bb.<\/p>\n<p>  \u0422\u0435\u043f\u043b\u043e\u0432\u043e\u0439 \u0434\u0430\u0442\u0447\u0438\u043a \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0434\u0435\u0436\u0443\u0440\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c (\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0442\u0435\u043f\u043b\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432) \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0438 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041e\u0431\u044b\u0447\u043d\u043e \u0432 \u0441\u0432\u0435\u0442\u043b\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0442\u043e\u043a \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u0438\u0433\u0430\u0442\u044c \u0441\u0432\u0435\u0442\u043e\u043c \u0432 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0435 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0439\u0442\u0438.<\/p>\n<p>  \u0418\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043a \u0434\u0430\u0442\u0447\u0438\u043a\u0443:  <\/p>\n<blockquote><p>\u0415\u0441\u043b\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0437\u043b\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 <a href=\"http:\/\/www.noo.com.by\/pm111.html\">PM111<\/a> \u0432\u044b\u0448\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u00ab\u041e\u0441\u0432\u0435\u0449\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u00bb, \u0442\u043e \u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0433\u043e \u0442\u043e\u043a \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0435\u043d (\u043c\u0435\u043d\u0435\u0435 1 \u043c\u043a\u0410), \u0430 \u0442\u0435\u043f\u043b\u043e\u0432\u043e\u0439 \u0441\u0435\u043d\u0441\u043e\u0440 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d. \u041a\u043e\u0433\u0434\u0430 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u0436\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0434\u0430\u0442\u0447\u0438\u043a \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0434\u0435\u0436\u0443\u0440\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c.<\/p><\/blockquote>\n<p>  \u0421\u0432\u0435\u0442 \u0432 \u0442\u0443\u0430\u043b\u0435\u0442\u0435 \u0438 \u0432\u0430\u043d\u043d\u043e\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u043c \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c. \u0421\u0432\u0435\u0442 \u0438 \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440 \u0432 \u0442\u0443\u0430\u043b\u0435\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/yadi.sk\/i\/p2YHdczLiNNNK\">\u0440\u0435\u043b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 F&#038;F PO-415<\/a> (\u0442\u043e\u0436\u0435 \u0431\u0435\u043b\u043e\u0440\u0443\u0441\u044b) \u043d\u0430 DIN \u0440\u0435\u0439\u043a\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/761\/0dd\/00a\/7610dd00a0d14e85bfb6aad508fd7570.png\"\/><\/p>\n<blockquote><p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 6 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u0440\u0435\u043b\u0435 11, 12 \u0437\u0430\u043c\u044b\u043a\u0430\u044e\u0442\u0441\u044f. \u0420\u0430\u0437\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 6 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0442\u0441\u0447\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430 PO-415 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f.<\/p><\/blockquote>\n<p>  \u0421\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043a\u043d\u043e\u043f\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u044b\u0437\u043e\u0432 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 (\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0412\u041a\u041b\/\u0412\u042b\u041a\u041b).<\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0443\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0441\u0432\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u0442\u0430\u0439\u043c\u0435\u0440 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u0432\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u043f\u043e\u0441\u043b\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u041a\u043b\u0430\u0432\u0438\u0448\u0430 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>  \u0418\u0442\u043e\u0433\u043e \u043f\u043e \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0443:  <\/p>\n<ul>\n<li>2 \u0441\u0438\u043b\u043e\u0432\u044b\u0445 \u0431\u043b\u043e\u043a\u0430 \u0440\u0435\u043b\u0435\u0439\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043d\u0430 200 \u0412\u0442 (<a href=\"http:\/\/noo.com.ru\/magazin\/product\/silovoy-blok-sl111-200-nootehnika-noolayt-3\">SU111-200<\/a> \u0432 \u0440\u0435\u043b\u0435\u0439\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435);<\/li>\n<li>1 \u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u0439 3 \u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c (\u041f\u0443\u043b\u044c\u0442 <a href=\"http:\/\/noo.com.ru\/magazin\/product\/pult-rk-312-nootehnika-noolayt\">PK313<\/a>):<br \/> \n<ul>\n<li>\u043a\u043d\u043e\u043f\u043a\u0430 1 \u2014 \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b \u0441\u0432\u0435\u0442 \u0442\u043e\u0447\u043a\u0430 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f 1;<\/li>\n<li>\u043a\u043d\u043e\u043f\u043a\u0430 2 \u2014 \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b \u0441\u0432\u0435\u0442 \u0442\u043e\u0447\u043a\u0430 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f 2;<\/li>\n<li>\u043a\u043d\u043e\u043f\u043a\u0430 3 \u2014 \u0432\u044b\u043a\u043b \u0441\u0432\u0435\u0442 \u0432\u043e \u0432\u0441\u0435\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 (\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d15\/e11\/fde\/d15e11fde6b544e0b8b4a39329018f58.png\"\/><\/p>\n<h5>\u041a\u0443\u0445\u043d\u044f<\/h5>\n<p>  3 \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f:  <\/p>\n<ul>\n<li>\u0441\u0432\u0435\u0442\u0438\u043b\u044c\u043d\u0438\u043a \u043d\u0430\u0434 \u0441\u0442\u043e\u043b\u043e\u043c (<a href=\"http:\/\/noo.com.ru\/magazin\/product\/silovoy-blok-sl111-200-nootehnika-noolayt-3\">SU111-200<\/a> \u0440\u0435\u043b\u0435\u0439\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c);<\/li>\n<li>\u0442\u043e\u0447\u0435\u0447\u043d\u043e\u0435 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u043d\u0430\u0442\u044f\u0436\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043b\u043a\u0435 (<a href=\"http:\/\/noo.com.ru\/magazin\/product\/silovoy-blok-sl111-200-nootehnika-noolayt-3\">SU111-200<\/a> \u0440\u0435\u043b\u0435\u0439\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c);<\/li>\n<li>\u0441\u0432\u0435\u0442\u043e\u0434\u0431\u043e\u0434\u043d\u0430\u044f \u043b\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u043a\u0443\u0445\u043d\u0438 (<a href=\"http:\/\/noo.com.ru\/magazin\/product\/silovoy-blok-sl111-200-nootehnika-noolayt-3\">SU111-200<\/a> \u0440\u0435\u043b\u0435\u0439\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c)<\/li>\n<\/ul>\n<p>  \u0422\u043e\u0447\u043a\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f 3\u0445 \u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u043c \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c (\u043f\u0443\u043b\u044c\u0442 <a href=\"http:\/\/noo.com.ru\/magazin\/product\/pult-rk-311-nootehnika-noolayt\">PK311<\/a>) \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0443 \u0432\u0445\u043e\u0434\u0430 \u043d\u0430 \u043a\u0443\u0445\u043d\u044e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f5e\/6db\/293\/f5e6db29310044d7a028093a8bf6dcfc.png\"\/><\/p>\n<h5>\u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f \u0438 \u0431\u0430\u043b\u043a\u043e\u043d<\/h5>\n<p>  2 \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u043b\u0435\u0439\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 (<a href=\"http:\/\/noo.com.ru\/magazin\/product\/silovoy-blok-sl111-200-nootehnika-noolayt-3\">SU111-200<\/a>):  <\/p>\n<ul>\n<li>\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0433\u043e\u0441\u0442\u0438\u043d\u043e\u0439;<\/li>\n<li>\u0441\u0432\u0435\u0442 \u043d\u0430 \u0431\u0430\u043b\u043a\u043e\u043d\u0435.<\/li>\n<\/ul>\n<p>  \u041a\u0430\u0436\u0434\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f 2-\u043c\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f\u043c\u0438:  <\/p>\n<ul>\n<li>2\u0445 \u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u0439 \u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0431\u0430\u043b\u043a\u043e\u043d\u0435 (\u041f\u0443\u043b\u044c\u0442 <a href=\"http:\/\/noo.com.ru\/magazin\/product\/pult-rk-312-nootehnika-noolayt\">PK313<\/a>):<br \/> \n<ul>\n<li>\u043a\u043d\u043e\u043f\u043a\u0430 1 \u2014 \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b \u0441\u0432\u0435\u0442 \u043d\u0430 \u0431\u0430\u043b\u043a\u043e\u043d\u0435;<\/li>\n<li>\u043a\u043d\u043e\u043f\u043a\u0430 2 \u2014 \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b \u0441\u0432\u0435\u0442 \u0432 \u0433\u043e\u0441\u0442\u0438\u043d\u043e\u0439<\/li>\n<\/ul>\n<\/li>\n<li>2\u0445 \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u044b\u0439 \u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0432 \u0433\u043e\u0441\u0442\u0438\u043d\u043e\u0439 (\u041f\u0443\u043b\u044c\u0442 <a href=\"http:\/\/noo.com.ru\/magazin\/product\/pult-rk-313-nootehnika-noolayt\">PK314<\/a>):<br \/> \n<ul>\n<li>\u043a\u043b\u0430\u0432\u0438\u0448\u0430 1 \u2014 \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b \u0441\u0432\u0435\u0442 \u0432 \u0433\u043e\u0441\u0442\u0438\u043d\u043e\u0439;<\/li>\n<li>\u043a\u043b\u0430\u0432\u0438\u0448\u0430 2 \u2014 \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b \u0441\u0432\u0435\u0442 \u043d\u0430 \u0431\u0430\u043b\u043a\u043e\u043d\u0435<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2cd\/d9e\/241\/2cdd9e24183442d089566677dee0de8c.png\"\/><\/p>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043a\u0442\u043e-\u0442\u043e \u0441\u043f\u0440\u043e\u0441\u0438\u0442 \u00ab\u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0430 \u0431\u0430\u043b\u043a\u043e\u043d\u0435 \u043d\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c 2\u0445 \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u043a\u0430\u043a \u0438 \u0432 \u0433\u043e\u0441\u0442\u0438\u043d\u043e\u0439? \u0438\u043b\u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u043e \u0432\u0441\u0435\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435 \u043a\u043d\u043e\u043f\u043a\u0438?\u00bb.<\/p>\n<p>  \u0422\u0430\u043a \u0443\u0436 \u0432\u044b\u0448\u043b\u043e, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u0431\u0430\u043b\u043a\u043e\u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c 3\u0445 \u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439, \u043d\u043e \u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0443\u043c\u0430\u043b\u0438 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0441\u0430\u043c\u0438\u0445 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0435 \u0438 \u043d\u0430 \u043a\u0443\u0445\u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043a\u043d\u043e\u043f\u043a\u0438, \u0430 \u0432 \u0433\u043e\u0441\u0442\u0438\u043d\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u0435, \u0441\u043f\u0430\u043b\u044c\u043d\u0435 \u0438 \u043d\u0430 \u0431\u0430\u043b\u043a\u043e\u043d\u0435 \u2014 \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u044b\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0438\u0437\u0430\u0439\u043d. <\/p>\n<p>  \u041f\u043e\u0437\u0436\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0434\u0438\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u0435\u0442 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u043c \u0443 \u043a\u0440\u043e\u0432\u0430\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u043f\u043e\u0448\u043b\u043e \u043d\u0430\u043f\u0435\u0440\u0435\u043a\u043e\u0441\u044f\u043a. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0438\u0437\u0430\u0439\u043d \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0431\u044a\u0435\u0437\u0434\u0438\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u044b\u043d\u043a\u043e\u0432, \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u044c \u0434\u044e\u0436\u0438\u043d\u0443 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0441\u0430\u0439\u0442\u043e\u0432, \u043e\u0431 \u044d\u0442\u043e\u043c \u0434\u0430\u043b\u0435\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab<a href=\"#block4\">\u043d\u0430\u0439\u0442\u0438 \u0438 \u043a\u0443\u043f\u0438\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 \u0434\u043b\u044f \u043f\u0443\u043b\u044c\u0442\u043e\u0432<\/a>\u00bb.<\/p>\n<h5>\u0421\u043f\u0430\u043b\u044c\u043d\u044f<\/h5>\n<p>  <b>\u0421\u0435\u043a\u0446\u0438\u044f 1 (\u043a\u0440\u043e\u0432\u0430\u0442\u044c)<\/b><br \/>  \u041e\u0431\u044b\u0447\u043d\u043e \u0441\u0438\u043b\u043e\u0432\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f. \u041e\u0434\u043d\u0430 \u0442\u043e\u0447\u043a\u0430 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u2014 \u043e\u0434\u0438\u043d \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u0431\u043b\u043e\u043a. \u0412 \u043c\u043e\u0435\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u043e \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u043e\u0442 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438. \u0412 \u0441\u043f\u0430\u043b\u044c\u043d\u0435 \u00ab\u0441\u0435\u043a\u0446\u0438\u044f 1\u00bb \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u0435\u0442\u0438\u043b\u044c\u043d\u0438\u043a \u0441 \u0434\u0432\u0443\u043c\u044f \u0441\u0438\u043b\u043e\u0432\u044b\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0434\u0438\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  <b>\u0421\u0435\u043a\u0446\u0438\u044f 2 (\u044d\u0440\u043a\u0435\u0440)<\/b><br \/>  \u041f\u043e\u043c\u0438\u043c\u043e \u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u0445 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u0441\u0435 \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u043a\u0430\u0440\u043c\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0440\u0435\u043b\u043a\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043f\u0443\u043b\u044c\u0442\u0430 \u0438 RPI. \u0414\u043b\u044f \u0431\u0440\u0435\u043b\u043a\u0430:  <\/p>\n<ul>\n<li>\u043a\u043d\u043e\u043f\u043a\u0430 \u0410 (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c\/\u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0432\u0435\u0442 \u0432 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0435 \u0438 \u043d\u0430 \u043a\u0443\u0445\u043d\u0435);<\/li>\n<li>\u043a\u043d\u043e\u043f\u043a\u0430 B (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c\/\u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0432\u0435\u0442 \u0432 \u0433\u043e\u0441\u0442\u0438\u043d\u043e\u0439 \u0438 \u043d\u0430 \u0431\u0430\u043b\u043a\u043e\u043d\u0435);<\/li>\n<li>\u043a\u043d\u043e\u043f\u043a\u0430 \u0421 (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c\/\u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0432\u0435\u0442 \u0432 \u0441\u043f\u0430\u043b\u044c\u043d\u0435)<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a78\/f82\/e8d\/a78f82e8da434711aa8a66d6c40d7050.png\"\/><\/p>\n<p>  <a name=\"block2\"><\/a><\/p>\n<h4>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u043b\u0430\u0431\u043e\u0442\u043e\u0447\u043a\u0438 \u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 NooLite \u0441 \u0434\u043b\u044f RPI<\/h4>\n<p>  \u0421\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443, \u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e. \u0423 NooLite \u0435\u0441\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c <a href=\"http:\/\/www.noo.com.by\/modul_mt1132.html\">MT1132<\/a>. \u041c\u043e\u0434\u0443\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u043f\u043e UART \u043e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e RPI, \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u043e \u0440\u0430\u0434\u0438\u043e\u043a\u0430\u043d\u0430\u043b\u0443 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u0441\u0438\u043b\u043e\u0432\u044b\u0435 \u0431\u043b\u043e\u043a\u0438) \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u00abOK\\r\\n\u00bb \u0432\u0441\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"http:\/\/www.noo.com.by\/assets\/files\/PDF\/MT1132.pdf\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043a \u043c\u043e\u0434\u0443\u043b\u044e<\/a>.  <\/p>\n<table>\n<tr>\n<th>\u041d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f (VCC U\u043f\u0438\u0442)<\/th>\n<th>2.7 \u2014 5.5 \u0412<\/th>\n<\/tr>\n<tr>\n<td>\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Rx <\/td>\n<td>0 \u2014 U\u043f\u0438\u0442<\/td>\n<\/tr>\n<tr>\n<td>TTL HIGH LVL (\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430) \u043f\u0440\u0438 U\u043f\u0438\u0442=5 \u0412<\/td>\n<td>2 \u2014 U\u043f\u0438\u0442 (5 \u0412)<\/td>\n<\/tr>\n<tr>\n<td>TTL LOW LVL (\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043d\u043e\u043b\u044c) \u043f\u0440\u0438 U\u043f\u0438\u0442=5 \u0412<\/td>\n<td>0 \u2014 0.8 \u0412<\/td>\n<\/tr>\n<tr>\n<td>TTL HIGH LVL (\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430) \u043f\u0440\u0438 U\u043f\u0438\u0442=3.3 \u0412<\/td>\n<td>2 \u2014 3.3 \u0412<\/td>\n<\/tr>\n<tr>\n<td>TTL LOW LVL (\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043d\u043e\u043b\u044c) \u043f\u0440\u0438 U\u043f\u0438\u0442=3.3 \u0412<\/td>\n<td>0 \u2014 0.8 \u0412<\/td>\n<\/tr>\n<tr>\n<td>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c UART<\/td>\n<td>9600 \u0431\u043e\u0434<\/td>\n<\/tr>\n<\/table>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ffe\/4ee\/a4d\/ffe4eea4d7a14c25ae45f94c3bef4204.png\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 UART \u043b\u0438\u043d\u0438\u0438 RPI \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 TTL \u0443\u0440\u043e\u0432\u043d\u044f\u043c\u0438 3.3 \u0412, \u0437\u043d\u0430\u0447\u0438\u0442 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 3.3\u0412 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 U \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d37\/959\/89e\/d3795989ef37427ab127ad82d02e2ed0.png\"\/><\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 3 \u043b\u0438\u043d\u0438\u0438 \u043d\u0430 MT1132: VCC, GND \u0438 RX, \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430. \u042f \u0442\u0430\u043a \u0438 \u0434\u0435\u043b\u0430\u043b \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435, \u2014 \u043d\u0435 \u0447\u0438\u0442\u0430\u043b \u043e\u0442\u0432\u0435\u0442 \u00abOK\\r\\n\u00bb \u043e\u0442 MT1132, \u043c\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u0438\u043b\u043e\u0432\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430. \u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u00ab\u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438\u00bb \u043d\u0430 \u0441\u0438\u043b\u043e\u0432\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u043e\u0435 \u043c\u0435\u0440\u0446\u0430\u043d\u0438\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430.<\/p>\n<p>  \u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442, \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0434\u0438\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043f\u0440\u0438 U \u043f\u0438\u0442\u0430\u043d\u0438\u044f 3.3 \u0412 \u2014 3.3 \u043c\u0412\u0442, \u043f\u0440\u0438 U \u043f\u0438\u0442\u0430\u043d\u0438\u044f 5 \u0412 \u2014 5 \u043c\u0412\u0442. \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u0441\u0438\u043b\u043e\u0432\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 70 \u043c.<\/p>\n<h4>\u041f\u0440\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442<\/h4>\n<p>  \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 12 \u0431\u0430\u0439\u0442:<br \/>  <b>ST, B0, B1, B2, B3, B4, B5, B6, B7, B8, CS, SP<\/b><br \/>  <b>ST<\/b> \u2014 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0431\u0430\u0439\u0442, \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u0435\u043d 85<br \/>  <b>B0..B8<\/b> \u2014 payload (\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b)<br \/>  <b>CS<\/b> \u2014 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430. \u041c\u043b\u0430\u0434\u0448\u0438\u0439 \u0431\u0430\u0439\u0442 \u043e\u0442 \u0441\u0443\u043c\u043c\u044b \u043f\u0435\u0440\u0432\u044b\u0445 10 \u0431\u0430\u0439\u0442 (\u0441 ST \u043f\u043e B8)<br \/>  <b>SP<\/b> \u2014 \u0441\u0442\u043e\u043f\u043e\u0432\u044b\u0439 \u0431\u0430\u0439\u0442<\/p>\n<p>  \u041f\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u044b\u043f\u0438\u0441\u0430\u043b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043c\u043d\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0431\u0430\u0439\u0442\u044b:<br \/>  <b>B1<\/b> \u2014 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438:    <\/p>\n<ul>\n<li>0 \u2014 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443;<\/li>\n<li>2 \u2014 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443;<\/li>\n<li>4 \u2014 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443;<\/li>\n<li>9 \u2014 \u043e\u0442\u0432\u044f\u0437\u043a\u0430 (\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0441\u0442\u0438\u0440\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u0441\u0438\u043b\u043e\u0432\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430);<\/li>\n<li>15 \u2014 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 (\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u0431\u043b\u043e\u043a)<\/li>\n<\/ul>\n<p>  <b>B4<\/b> \u2014 \u0430\u0434\u0440\u0435\u0441 \u043a\u0430\u043d\u0430\u043b\u0430 (\u043e\u0442 0 \u0434\u043e 31). \u0412\u0441\u0435\u0433\u043e 32 \u043a\u0430\u043d\u0430\u043b\u0430.<br \/>  \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0430\u0439\u0442\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b.<\/p>\n<p>  <b>B0<\/b> \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043c\u043e\u0434\u0443\u043b\u044f. <br \/>  \u0415\u0441\u043b\u0438 \u0432 <b>B0<\/b> \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 80 (0x50) \u0437\u043d\u0430\u0447\u0438\u0442:   <\/p>\n<ul>\n<li>\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432 \u2014 2;<\/li>\n<li>\u0431\u0438\u0442\u0440\u0435\u0439\u0442 2 \u2014 1000 \u0431\u0438\u0442\/\u0441\u0435\u043a;<\/li>\n<li>\u0440\u0435\u0436\u0438\u043c 0 \u2014 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/034\/067\/d82\/034067d8239e4139b06ce9408ce2d87f.png\"\/><\/p>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e <a href=\"https:\/\/yadi.sk\/i\/wZdJ4mW-iNMa6\">\u0442\u0430\u0431\u043b\u0438\u0446\u0443<\/a> \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043c\u043d\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438.<\/p>\n<h5>\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u0449\u0438\u0442\u0435<\/h5>\n<p>  \u0411\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043b\u0430\u0431\u043e\u0442\u043e\u0447\u043a\u0443 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u0449\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043c\u043e\u043d\u0442\u0430\u0436\u0430:  <\/p>\n<ul>\n<li>RPI \u043a\u0440\u0435\u043f\u0438\u0442\u0441\u044f \u043d\u0430 DIN \u0440\u0435\u0439\u043a\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u0443 \u0434\u0440\u0443\u0437\u0435\u0439 \u043d\u0430 3D \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0435;<\/li>\n<li>\u043c\u043e\u0434\u0443\u043b\u044c MT1132 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u043b\u043e\u0432\u044b\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u043f\u043e \u0440\u0430\u0434\u0438\u043e\u043a\u0430\u043d\u0430\u043b\u0443;<\/li>\n<li>2 \u0440\u043e\u0437\u0435\u0442\u043a\u0438 ~220 \u043d\u0430 DIN \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0440\u043e\u0443\u0442\u0435\u0440\u0430 \u0438 RPI<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/9ab\/684\/784\/9ab6847847b94274ab95a4cdac7379b3.jpg\"\/><\/p>\n<p>  <a name=\"block3\"><\/a><\/p>\n<h4>\u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0432\u044b\u0431\u043e\u0440 \u043e\u0431\u0435\u0440\u0442\u043a\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/h4>\n<p>  <b>Prerequisites:<\/b>  <\/p>\n<ul>\n<li>RPI;<\/li>\n<li>\u043c\u043e\u0434\u0443\u043b\u044c MT1132;<\/li>\n<li>\u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u043c\u0430\u043c\u0430-\u043c\u0430\u043c\u0430 \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0438\u043d\u043e\u0432 MT1132 \u0438 RPI GPIO;<\/li>\n<li>SD \u043a\u0430\u0440\u0442\u0430 \u0441 \u043b\u044e\u0431\u044b\u043c \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c RPI;<\/li>\n<li>\u0434\u043e\u0441\u0442\u0443\u043f \u043a SHELL (bash, csh, korn, etc.) \u043a\u043e\u043d\u0441\u043e\u043b\u0438 RPI (\u043f\u0440\u044f\u043c\u043e\u0439 \u043a\u043b\u0430\u0432\u043e\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u043d\u044b\u0439 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u043e SSH);<\/li>\n<li>\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b;<\/li>\n<li>\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 UART \u0447\u0435\u0440\u0435\u0437 GPIO header \u0432 RPI<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u043e\u0431\u0440\u0430\u0437 \u0441\u043b\u043e\u0432\u0438\u043b \u043f\u0440\u0438\u043a\u043e\u043b\u044c\u043d\u0443\u044e \u0445\u0430\u0440\u0434\u0432\u0430\u0440\u043d\u0443\u044e \u0431\u0430\u0433\u0443 \u043d\u0430 Macbook air, \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 Raspbian-wheezy \u043f\u043e\u0434 \u0440\u0443\u0442\u043e\u043c (\u0445\u043e\u0442\u044f \u043f\u043e \u043c\u043d\u0435 \u044d\u0442\u043e \u0444\u0438\u0447\u0430 \u2014 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u0437\u0430\u043f\u0438\u0441\u0438, \u043b\u0438\u0448\u043d\u0438\u0439 \u0440\u0430\u0437 \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u0448\u044c, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0448\u0435\u0448\u044c \u0434\u0430\u043d\u043d\u044b\u0435):  <\/p>\n<pre><code class=\"bash\">dd bs=1m if=2015-02-16-raspbian-wheezy.img of=\/dev\/disk2<\/code><\/pre>\n<p>  \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u0435\u0440\u043d\u0443\u043b\u0430:  <\/p>\n<pre><code class=\"bash\">dd: \/dev\/disk2: Permission denied <\/code><\/pre>\n<p>  C\u043e \u0441\u043d\u044f\u0442\u044b\u043c lock \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0435, \u043f\u043e\u0434 \u0440\u0443\u0442\u043e\u043c \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0430\u043c\u0438 \u043d\u0430 \/dev\/disk2\u2026.<\/p>\n<p>  \u041f\u043e\u0442\u043e\u043c \u043d\u0430\u0448\u0435\u043b <a href=\"https:\/\/www.raspberrypi.org\/forums\/viewtopic.php?f=5&amp;t=5561\">\u0442\u0440\u044d\u0434 \u043f\u043e \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435<\/a>, \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u043e \u0434\u0443\u0442\u044c \u0432 \u0441\u043b\u043e\u0442 SD \u043d\u0430 \u043c\u0430\u043a\u0435, \u043a\u043e\u043c\u0443-\u0442\u043e \u0441\u043b\u043e\u0442\u043e\u043f\u0440\u0438\u043a\u043b\u0430\u0434\u0441\u0442\u0432\u043e. \u0411\u0438\u0442\u044c \u043c\u0430\u043a\u0431\u0443\u043a \u0432 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0441\u0442\u043e\u0447\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e, \u0438 \u043c\u043d\u0435 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043c\u043e\u0433 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0437\u0430\u0437\u043e\u0440: \u0435\u0441\u043b\u0438 SD \u043a\u0430\u0440\u0442\u0443 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435 \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u0432\u0441\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043a\u043e\u043b\u0445\u043e\u0437\u0438\u0442\u044c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043c\u0430\u043c\u0430-\u043c\u0430\u043c\u0430 \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ebf\/f89\/c4f\/ebff89c4f54a444da08cee2965451eda.jpg\"\/><\/p>\n<p>  \u0421 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u0431\u044b\u043b\u0430 \u043e\u0431\u0435\u0440\u0442\u043a\u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u043b\u043e\u0432\u044b\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 WEB, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u043b\u0430\u0442\u044c REST \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0438 UART \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u2014 \u0432\u044b\u0431\u043e\u0440 \u043f\u0430\u043b \u043d\u0430 <a href=\"https:\/\/code.google.com\/p\/webiopi\/\">WebIOPi.<\/a><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3da\/fa4\/85e\/3dafa485e4fe44f8b9f0c0b7bfffc282.png\"\/><\/p>\n<p>  \u0425\u043e\u0442\u044f, \u0445\u043e\u0442\u0435\u043b \u0441\u043e\u0431\u0440\u0430\u0442\u044c OpenHAB \u0438\u0437-\u0437\u0430 \u043a\u0440\u0443\u0442\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b. <a href=\"http:\/\/habrahabr.ru\/post\/232969\/\">\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u043d\u0430 \u0425\u0430\u0431\u0440\u0435<\/a>.<\/p>\n<p>  \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c, \u0430 \u043f\u043e\u043a\u0430 \u0434\u043b\u044f \u043c\u043e\u0438\u0445 \u00ab\u0445\u043e\u0442\u0435\u043b\u043e\u043a\u00bb \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b.<\/p>\n<p>  <a name=\"arch\"><\/a><\/p>\n<h5>\u041e\u0431\u0449\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/h5>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ebb\/55d\/b61\/ebb55db6163f476fb505ca4e498f2d7f.png\"\/><\/p>\n<p>  <b>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 WebIOPi \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f<\/b><br \/>  \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430:  <\/p>\n<ol>\n<li><a href=\"https:\/\/code.google.com\/p\/webiopi\/wiki\/INSTALL\">\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0438\u0432\u0430\u0435\u043c framework WebIOPi<\/a> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438<br \/> \n<ul>\n<li>Installation;<\/li>\n<li>Running WebIOPi (Daemon);<\/li>\n<li>Auto start at boot<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/code.google.com\/p\/webiopi\/wiki\/Tutorial_Serial\">\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c UART<\/a> \u2014 \u0438\u0437\u043c\u0435\u043d\u044f\u044f 3 \u0444\u0430\u0439\u043b\u0430: \/etc\/inittab, \/boot\/cmdline.txt, \/etc\/webiopi\/config, \u0448\u0430\u0433\u0438:<br \/> \n<ul>\n<li>On-Board UART;<\/li>\n<li>WebIOPi Configuration;<\/li>\n<\/ul>\n<\/li>\n<li>\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u044b\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435<br \/> \n<ul>\n<li>Serial Loopback trick (\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u00ab\u0441\u0442\u0440\u043e\u043a\u0443\u00bb \u0441\u0430\u043c\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e UART \u0438 \u0447\u0438\u0442\u0430\u0435\u043c \u0447\u0435\u0440\u0435\u0437 WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 WEBIOPi \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 Serial Monitor);<\/li>\n<li>\u0432\u0438\u0434\u0435\u043e \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 Serial Monitor \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 <\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/39b\/9d6\/224\/39b9d6224a214d16bb931577c750497c.png\"\/><\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u0436\u0430\u043c\u043f\u0435\u0440\u0430 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f UART \u043f\u0435\u0442\u043b\u0438.<\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 Python \u0441\u043a\u0440\u0438\u043f\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u0438\u0437 RPI SHELL.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">RPI Shell script for MT1132 module<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">#!\/usr\/bin\/python  import sys, getopt  def main(argv):    ch = ''    cmd = ''    try:       opts, args = getopt.getopt(argv,&quot;h:&quot;,[&quot;ch=&quot;,&quot;cmd=&quot;])    except getopt.GetoptError:       print 'mt1132.py --ch &lt;channel_number&gt; --cmd &lt;ON\/OFF\/BIND\/UNBIND&gt;'       sys.exit(2)    for opt, arg in opts:       if opt == '-h':          print 'mt1132.py --ch &lt;channel_number&gt; --cmd &lt;ON\/OFF\/BIND\/UNBIND&gt;'          sys.exit()       elif opt in (&quot;--ch&quot;):          ch = arg       elif opt in (&quot;--cmd&quot;):          cmd = arg    print 'Channel: ', ch    print 'Command: ', cmd    if cmd=='ON' and ch!='':         if ch=='0':                 print 'Switch ON channel 0'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00a7, 0x00aa])         elif ch=='1':                 print 'Switch ON channel 1'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00a8, 0x00aa])         elif ch=='2':                 print 'Switch ON channel 2'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00a9, 0x00aa])         elif ch=='3':                 print 'Switch ON channel 3'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00aa, 0x00aa])         elif ch=='4':                 print 'Switch ON channel 4'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00ab, 0x00aa])         elif ch=='5':                 print 'Switch ON channel 5'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00ac, 0x00aa])         elif ch=='6':                 print 'Switch ON channel 6'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00ad, 0x00aa])         elif ch=='7':                 print 'Switch ON channel 7'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa])         elif ch=='8':                 print 'Switch ON channel 8'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00af, 0x00aa])         elif ch=='9':                 print 'Switch ON channel 9'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00b0, 0x00aa])         elif ch=='10':                 print 'Switch ON channel 10'                 serial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00b1, 0x00aa])    if cmd=='OFF' and ch!='':         if ch=='0':                 print 'Switch OFF channel 0'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00a5, 0x00aa])         elif ch=='1':                 print 'Switch OFF channel 1'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00a6, 0x00aa])         elif ch=='2':                 print 'Switch OFF channel 2'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00a7, 0x00aa])         elif ch=='3':                 print 'Switch OFF channel 3'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00a8, 0x00aa])         elif ch=='4':                 print 'Switch OFF channel 4'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00a9, 0x00aa])         elif ch=='5':                 print 'Switch OFF channel 5'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00aa, 0x00aa])         elif ch=='6':                 print 'Switch OFF channel 6'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00ab, 0x00aa])         elif ch=='7':                 print 'Switch OFF channel 7'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00ac, 0x00aa])         elif ch=='8':                 print 'Switch OFF channel 8'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00ad, 0x00aa])         elif ch=='9':                 print 'Switch OFF channel 9'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa])         elif ch=='10':                 print 'Switch OFF channel 10'                 serial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa])    if cmd=='BIND' and ch!='':         if ch=='0':                 print 'BIND channel 0'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00b4, 0x00aa])         elif ch=='1':                 print 'BIND channel 1'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00b5, 0x00aa])         elif ch=='2':                 print 'BIND channel 2'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00b6, 0x00aa])         elif ch=='3':                 print 'BIND channel 3'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00b7, 0x00aa])         elif ch=='4':                 print 'BIND channel 4'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00b8, 0x00aa])         elif ch=='5':                 print 'BIND channel 5'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00b9, 0x00aa])         elif ch=='6':                 print 'BIND channel 6'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00ba, 0x00aa])         elif ch=='7':                 print 'BIND channel 7'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00bb, 0x00aa])         elif ch=='8':                 print 'BIND channel 8'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00bc, 0x00aa])         elif ch=='9':                 print 'BIND channel 9'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00bd, 0x00aa])         elif ch=='10':                 print 'BIND channel 10'                 serial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00be, 0x00aa])    if cmd=='UNBIND' and ch!='':         if ch=='0':                 print 'UNBIND channel 0'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa])         elif ch=='1':                 print 'UNBIND channel 1'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00af, 0x00aa])         elif ch=='2':                 print 'UNBIND channel 2'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00b0, 0x00aa])         elif ch=='3':                 print 'UNBIND channel 3'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00b1, 0x00aa])         elif ch=='4':                 print 'UNBIND channel 4'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00b2, 0x00aa])         elif ch=='5':                 print 'UNBIND channel 5'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00b3, 0x00aa])         elif ch=='6':                 print 'UNBIND channel 6'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00b4, 0x00aa])         elif ch=='7':                 print 'UNBIND channel 7'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00b5, 0x00aa])         elif ch=='8':                 print 'UNBIND channel 8'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00b6, 0x00aa])         elif ch=='9':                 print 'UNBIND channel 9'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00b7, 0x00aa])         elif ch=='10':                 print 'UNBIND channel 10'                 serial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00b8, 0x00aa]) if __name__ == &quot;__main__&quot;:    main(sys.argv[1:]) <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f MT1132 \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 SHELL \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b   <\/p>\n<pre><code class=\"bash\"> mt1132.py --ch &lt;channel_number&gt; --cmd &lt;ON\/OFF\/BIND\/UNBIND&gt; <\/code><\/pre>\n<p>  <b>\u041f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c REST API<\/b><\/p>\n<p>  \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a <a href=\"https:\/\/code.google.com\/p\/webiopi\/wiki\/RESTAPI\">WebIOPi \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u0441\u0442\u0438\u043b\u0435 REST<\/a>, \u0447\u0442\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u00ab\u043a\u043b\u0438\u0435\u043d\u0442-\u0441\u0435\u0440\u0432\u0435\u0440\u00bb.<\/p>\n<p>  \u041a\u043e\u043f\u0438\u043f\u0430\u0441\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 REST API \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0438 \u0432\u044b\u0448\u0435:  <\/p>\n<ul>\n<li>Get GPIO function<\/li>\n<li>Set GPIO function<\/li>\n<li>Get GPIO value<\/li>\n<li>Set GPIO value<\/li>\n<li>Output a single pulse<\/li>\n<li>Output bit sequence<\/li>\n<li>Output PWM with a duty cycle ratio<\/li>\n<li>Output PWM with an angle for servos<\/li>\n<li>Call a macro on the server<\/li>\n<li>Get full GPIO state\/configuration<\/li>\n<\/ul>\n<p>  \u041d\u0430\u0448 \u043a\u0435\u0439\u0441 \u00abCall a macro on the server\u00bb. \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0435 \u0436\u0438\u0440\u043d\u043e\u0435, \u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0435 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430:<\/p>\n<p>  HTTP POST \/macros\/(macro)\/(args)  <\/p>\n<ul>\n<li>Returns the value returned by the macro<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 (macro) \u0435\u0449\u0435 \u043d\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c REST \u00abGet full GPIO state\/configuration\u00bb, \u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 HTTP GET \/*.<br \/>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043b\u044e\u0431\u043e\u0439 REST API Client, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b DHC \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u0445\u0440\u043e\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430. \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c REST \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b21\/fc2\/c33\/b21fc2c3392b49c6b4f3f36220f97268.png\"\/><\/p>\n<p>  <b>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f WebIOPi (\/etc\/webiopi\/config)<\/b><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/9c0\/861\/2fa\/9c08612fa2024ef892a0e31b641c90e7.png\"\/><\/p>\n<p>  <b>\u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [DEVICES]<\/b>:<br \/>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e <b>serial<\/b> (UART GPIO) \u2014 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u0448 \u043c\u043e\u0434\u0443\u043b\u044c MT1132, \u0433\u0434\u0435<br \/>  <b>ttyAMA0<\/b> \u2014 \u044d\u0442\u043e \u0434\u0435\u0432\u0430\u0439\u0441 (\u043f\u043e\u0440\u0442), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0438\u0434\u0438\u0442 \u044f\u0434\u0440\u043e Raspbian, <br \/>  <b>baudrate<\/b> \u2014 \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432 \u0431\u043e\u0434\u0430\u0445 \u043e\u0431\u043c\u0435\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 UART \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.<\/p>\n<p>  9600 \u0431\u043e\u0434 \/ (8 + 1 \u0441\u0442\u0430\u0440\u0442 \u0431\u0438\u0442 + 1 \u0441\u0442\u043e\u043f \u0431\u0438\u0442) = 960 \u0431\u0430\u0439\u0442\/\u0441.<\/p>\n<p>  <b>\u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [SCRIPTS]<\/b> (custom scripts):<br \/>  \u0414\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 <b>myscrypt = \/home\/pi\/smarthome\/python\/mt1132.py<\/b> \u2014 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443.<\/p>\n<p>  <b>\u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 [REST]<\/b> (\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f GPIO \u0447\u0435\u0440\u0435\u0437 REST API. \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e):<br \/>  gpio-post-value = false \u2014 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 LOW\/HIGH \u043d\u0430 \u043f\u0438\u043d\u0430\u0445 GPIO \u0447\u0435\u0440\u0435\u0437 REST \u0437\u0430\u043f\u0440\u043e\u0441\u044b;<br \/>  gpio-post-function = false \u2014 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 IN\/OUT \u043d\u0430 \u043f\u0438\u043d\u0430\u0445 GPIO \u0447\u0435\u0440\u0435\u0437 REST \u0437\u0430\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<p>  <b>[COAP]<\/b>:<br \/>  \u041d\u0435 \u0441\u0442\u0430\u043b \u0442\u0440\u043e\u0433\u0430\u0442\u044c, \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c. \u041f\u043e\u043a\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043d\u0435 \u0438\u043c\u0435\u044e, \u0441 \u0447\u0435\u043c \u0435\u0433\u043e \u0435\u0434\u044f\u0442 \u0438 \u0433\u0434\u0435 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u0432\u043e\u0442 \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u00ab\u0421oAP \u2014 is a specialized web transfer protocol for use with constrained nodes and constrained networks in the <b>Internet of Things<\/b>, designed for machine-to-machine (M2M) applications such as smart energy and building automation\u00bb.<\/p>\n<p>  \u041c\u043e\u0436\u0435\u0442 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043a\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0440\u0430\u0441\u043a\u0440\u043e\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0434\u043b\u044f REST \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\"># Channel 0\t @webiopi.macro\t def ch0(cmd): \tif cmd=='on': \t\tserial.writeBytes([0x55, 0x50, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00a7, 0x00aa]) \t\twebiopi.sleep(1) \t\tresp = 'Channel: 0, Cmd: ' + cmd + ', Status: ' + serial.readString() \tif cmd=='off': \t\tserial.writeBytes([0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00a5, 0x00aa]) \t\twebiopi.sleep(1) \t\tresp = 'Channel: 0, Cmd: ' + cmd + ', Status: ' + serial.readString() \tif cmd=='unbind': \t\tserial.writeBytes([0x55, 0x50, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00ae, 0x00aa]) \t\twebiopi.sleep(1) \t\tresp = 'Channel: 0, Cmd: ' + cmd + ', Status: ' + serial.readString() \tif cmd=='bind': \t\tserial.writeBytes([0x55, 0x50, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00b4, 0x00aa]) \t\twebiopi.sleep(1) \t\tresp = 'Channel: 0, Cmd: ' + cmd + ', Status: ' + serial.readString() \treturn resp  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<h5>\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c REST \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441 \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c\u0438<\/h5>\n<p>  \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c REST \u0437\u0430\u043f\u0440\u043e\u0441 \u00ab\u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 3-\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430 NooLite MT1132 \u043a \u0441\u0438\u043b\u043e\u0432\u043e\u043c\u0443 \u0431\u043b\u043e\u043a\u0443 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430\u00bb \u0447\u0435\u0440\u0435\u0437 DHC.<br \/>  \u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u043c\u043e\u0434\u0443\u043b\u044c MT1132 \u043e\u0442\u0432\u0435\u0442\u0438\u0442 \u043f\u043e UART TX \u0432 GPIO UART RX \u00abOK\u00bb. \u0421\u0438\u043b\u043e\u0432\u043e\u0439 \u0431\u043b\u043e\u043a \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0445\u0430 \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442 \u0430\u0434\u0440\u0435\u0441 \u043a\u0430\u043d\u0430\u043b\u0430 \u0438 \u0437\u0430\u043c\u0438\u0433\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0437\u0435\u043b\u0435\u043d\u044b\u043c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ea3\/e94\/eb7\/ea3e94eb7784412f8e909c7fb5af18a6.png\"\/><\/p>\n<p>  <a name=\"block5\"><\/a><\/p>\n<h4>\u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u0434 \u0410\u043d\u0434\u0440\u043e\u0439\u0434<\/h4>\n<p>  \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044f \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u0430\u043d\u0434\u0440\u043e\u0439\u0434, \u0432 \u0441\u0438\u043b\u0443 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u043b, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c\u0441\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c. \u041f\u043e\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0437\u0430\u0431\u0440\u0435\u043b \u043d\u0430 \u043a\u0430\u043d\u0430\u043b <a href=\"https:\/\/www.youtube.com\/user\/vitaxafication\">Start Android<\/a>. \u0410\u0432\u0442\u043e\u0440 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0410\u043d\u0434\u0440\u044e\u0445\u043e\u0439, \u043a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u0442\u0430\u0440\u0442\u0430\u043d\u0443\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0434 \u0410\u043d\u0434\u0440\u043e\u0439\u0434 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u041e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0430\u0432\u0442\u043e\u0440\u0443 \u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0442\u0440\u0443\u0434!<\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 20 \u0443\u0440\u043e\u043a\u043e\u0432 \u044f \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043b \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c. \u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b IDE Android Studio, \u043a\u0430\u043a \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0433\u0443\u0433\u043b, \u2014 based on IntelliJ IDEA.<\/p>\n<p>  <b>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441<\/b><\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0430\u0441\u043a\u0435\u0442\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/771\/334\/b07\/771334b07db9439381afe676f597f189.png\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">main.xml AS IS<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">&lt;LinearLayout xmlns:android=&quot;http:\/\/schemas.android.com\/apk\/res\/android&quot;     android:layout_width=&quot;match_parent&quot;     android:layout_height=&quot;match_parent&quot;     android:orientation=&quot;vertical&quot;     android:background=&quot;@color\/hl7&quot;     android:padding=&quot;2dp&quot;     android:clickable=&quot;false&quot;&gt;      &lt;!-- \u0428\u0430\u043f\u043a\u0430--&gt;     &lt;LinearLayout         android:layout_width=&quot;match_parent&quot;         android:layout_height=&quot;50dp&quot;         android:orientation=&quot;horizontal&quot;&gt;         &lt;TextView             android:id=&quot;@+id\/r1c1&quot;             android:textSize=&quot;18sp&quot;             android:layout_width=&quot;110dp&quot;             android:layout_height=&quot;match_parent&quot;             android:padding=&quot;4dp&quot;             android:layout_margin=&quot;1dp&quot;             android:text=&quot;\u041f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435&quot;             android:background=&quot;@color\/hl4&quot;             android:layout_weight=&quot;1&quot;             android:gravity=&quot;center&quot;             android:textColor=&quot;@color\/white&quot; \/&gt;         &lt;TextView             android:textColor=&quot;@color\/white&quot;             android:textSize=&quot;18sp&quot;             android:id=&quot;@+id\/r1c2&quot;             android:layout_width=&quot;120dp&quot;             android:layout_height=&quot;match_parent&quot;             android:padding=&quot;4dp&quot;             android:text=&quot;\u0422\u043e\u0447\u043a\u0430 \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f&quot;             android:layout_margin=&quot;1dp&quot;             android:background=&quot;@color\/hl4&quot;             android:layout_weight=&quot;2&quot;             android:gravity=&quot;center&quot;\/&gt;         &lt;TextView             android:textColor=&quot;@color\/white&quot;             android:textSize=&quot;18sp&quot;             android:id=&quot;@+id\/r1c3&quot;             android:layout_width=&quot;150dp&quot;             android:layout_height=&quot;match_parent&quot;             android:padding=&quot;4dp&quot;             android:text=&quot;\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435&quot;             android:layout_margin=&quot;1dp&quot;             android:background=&quot;@color\/hl4&quot;             android:layout_weight=&quot;3&quot;             android:gravity=&quot;center&quot;\/&gt;     &lt;\/LinearLayout&gt;      &lt;!-- \u043a\u0443\u0445\u043d\u044f --&gt;     &lt;LinearLayout         android:layout_width=&quot;match_parent&quot;         android:layout_height=&quot;wrap_content&quot;         android:orientation=&quot;horizontal&quot;&gt;         &lt;TextView             android:layout_width=&quot;110dp&quot;             android:layout_height=&quot;match_parent&quot;             android:textColor=&quot;@color\/black&quot;             android:textSize=&quot;16sp&quot;             android:text=&quot;@string\/room1txt&quot;             android:id=&quot;@+id\/room1&quot;             android:layout_weight=&quot;1&quot;             android:layout_margin=&quot;1dp&quot;             android:padding=&quot;4dp&quot;             android:gravity=&quot;center&quot;             android:background=&quot;@color\/holotheme_color&quot;             android:textStyle=&quot;bold&quot; \/&gt;         &lt;LinearLayout             android:orientation=&quot;vertical&quot;             android:background=&quot;@color\/hl8&quot;             android:layout_width=&quot;120dp&quot;             android:layout_height=&quot;match_parent&quot;             android:layout_weight=&quot;2&quot;             android:layout_margin=&quot;1dp&quot;             android:gravity=&quot;center|top&quot;&gt;             &lt;TextView                 android:layout_width=&quot;match_parent&quot;                 android:textColor=&quot;@color\/hl9&quot;                 android:layout_height=&quot;36dp&quot;                 android:text=&quot;@string\/place1txt&quot;                 android:id=&quot;@+id\/r1switch1&quot;                 android:textSize=&quot;13sp&quot;                 android:padding=&quot;4dp&quot;                 android:gravity=&quot;center_vertical|left&quot;                 android:background=&quot;@drawable\/hover1&quot;                 android:clickable=&quot;true&quot;\/&gt;             &lt;TextView                 android:textSize=&quot;13sp&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;36dp&quot;                 android:textColor=&quot;@color\/hl9&quot;                 android:text=&quot;@string\/place5txt&quot;                 android:id=&quot;@+id\/r1switch2&quot;                 android:padding=&quot;4dp&quot;                 android:gravity=&quot;center_vertical|left&quot;                 android:background=&quot;@drawable\/hover1&quot;                 android:clickable=&quot;true&quot;\/&gt;             &lt;TextView                 android:textSize=&quot;13sp&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;36dp&quot;                 android:textColor=&quot;@color\/hl9&quot;                 android:text=&quot;@string\/place2txt&quot;                 android:id=&quot;@+id\/r1switch3&quot;                 android:padding=&quot;4dp&quot;                 android:gravity=&quot;center_vertical|left&quot;                 android:background=&quot;@drawable\/hover1&quot;                 android:clickable=&quot;true&quot;\/&gt;         &lt;\/LinearLayout&gt;         &lt;LinearLayout             android:background=&quot;@color\/hl8&quot;             android:orientation=&quot;vertical&quot;             android:layout_width=&quot;150dp&quot;             android:layout_height=&quot;match_parent&quot;             android:layout_weight=&quot;3&quot;             android:gravity=&quot;center&quot;             android:layout_margin=&quot;1dp&quot;&gt;             &lt;LinearLayout                 android:orientation=&quot;horizontal&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;36dp&quot;&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_height=&quot;match_parent&quot;                     android:layout_weight=&quot;1&quot;                     android:text=&quot;\u0412\u041a\u041b&quot;                     android:id=&quot;@+id\/r1b1on&quot; \/&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_weight=&quot;1&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_height=&quot;match_parent&quot;                     android:text=&quot;\u0412\u042b\u041a\u041b&quot;                     android:id=&quot;@+id\/r1b1off&quot; \/&gt;             &lt;\/LinearLayout&gt;             &lt;LinearLayout                 android:orientation=&quot;horizontal&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;36dp&quot;&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_weight=&quot;1&quot;                     android:layout_height=&quot;match_parent&quot;                     android:text=&quot;\u0412\u041a\u041b&quot;                     android:id=&quot;@+id\/r1b2on&quot; \/&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_weight=&quot;1&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_height=&quot;match_parent&quot;                     android:text=&quot;\u0412\u042b\u041a\u041b&quot;                     android:id=&quot;@+id\/r1b2off&quot; \/&gt;             &lt;\/LinearLayout&gt;             &lt;LinearLayout                 android:orientation=&quot;horizontal&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;36dp&quot;&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_height=&quot;match_parent&quot;                     android:layout_weight=&quot;1&quot;                     android:text=&quot;\u0412\u041a\u041b&quot;                     android:id=&quot;@+id\/r1b3on&quot; \/&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_weight=&quot;1&quot;                     android:layout_height=&quot;match_parent&quot;                     android:text=&quot;\u0412\u042b\u041a\u041b&quot;                     android:id=&quot;@+id\/r1b3off&quot; \/&gt;             &lt;\/LinearLayout&gt;         &lt;\/LinearLayout&gt;     &lt;\/LinearLayout&gt;      &lt;!-- \u0413\u043e\u0441\u0442\u0438\u043d\u0430\u044f --&gt;     &lt;LinearLayout         android:layout_width=&quot;match_parent&quot;         android:layout_height=&quot;40dp&quot;         android:orientation=&quot;horizontal&quot;&gt;         &lt;TextView             android:layout_width=&quot;110dp&quot;             android:layout_height=&quot;match_parent&quot;             android:textSize=&quot;16sp&quot;             android:text=&quot;@string\/room2txt&quot;             android:id=&quot;@+id\/room2&quot;             android:layout_weight=&quot;1&quot;             android:layout_margin=&quot;1dp&quot;             android:padding=&quot;4dp&quot;             android:gravity=&quot;center&quot;             android:background=&quot;@color\/holotheme_color&quot;             android:textColor=&quot;@color\/black&quot;             android:textStyle=&quot;bold&quot;\/&gt;         &lt;TextView             android:layout_width=&quot;120dp&quot;             android:layout_height=&quot;match_parent&quot;             android:textSize=&quot;13sp&quot;             android:text=&quot;@string\/place1txt&quot;             android:textColor=&quot;@color\/hl9&quot;             android:id=&quot;@+id\/r2switch1&quot;             android:layout_weight=&quot;2&quot;             android:layout_margin=&quot;1dp&quot;             android:padding=&quot;4dp&quot;             android:gravity=&quot;center|left&quot;             android:background=&quot;@color\/hl8&quot;\/&gt;         &lt;LinearLayout             android:background=&quot;@color\/hl8&quot;             android:orientation=&quot;horizontal&quot;             android:layout_width=&quot;150dp&quot;             android:layout_height=&quot;match_parent&quot;             android:layout_weight=&quot;3&quot;             android:gravity=&quot;center&quot;             android:layout_margin=&quot;1dp&quot;&gt;             &lt;Button                 style=&quot;?android:attr\/buttonStyleSmall&quot;                 android:layout_width=&quot;wrap_content&quot;                 android:layout_height=&quot;36dp&quot;                 android:layout_weight=&quot;1&quot;                 android:text=&quot;\u0412\u041a\u041b&quot;                 android:id=&quot;@+id\/r2b1on&quot; \/&gt;             &lt;Button                 style=&quot;?android:attr\/buttonStyleSmall&quot;                 android:layout_width=&quot;wrap_content&quot;                 android:layout_weight=&quot;1&quot;                 android:layout_height=&quot;36dp&quot;                 android:text=&quot;\u0412\u042b\u041a\u041b&quot;                 android:id=&quot;@+id\/r2b1off&quot; \/&gt;         &lt;\/LinearLayout&gt;     &lt;\/LinearLayout&gt;      &lt;!-- \u0411\u0430\u043b\u043a\u043e\u043d --&gt;     &lt;LinearLayout         android:layout_width=&quot;match_parent&quot;         android:layout_height=&quot;40dp&quot;         android:orientation=&quot;horizontal&quot;&gt;         &lt;TextView             android:layout_width=&quot;110dp&quot;             android:layout_height=&quot;match_parent&quot;             android:textSize=&quot;16sp&quot;             android:text=&quot;@string\/room3txt&quot;             android:id=&quot;@+id\/room3&quot;             android:layout_weight=&quot;1&quot;             android:layout_margin=&quot;1dp&quot;             android:padding=&quot;4dp&quot;             android:textColor=&quot;@color\/black&quot;             android:gravity=&quot;center&quot;             android:background=&quot;@color\/holotheme_color&quot;             android:textStyle=&quot;bold&quot;\/&gt;         &lt;TextView             android:layout_width=&quot;120dp&quot;             android:layout_height=&quot;match_parent&quot;             android:textSize=&quot;13sp&quot;             android:textColor=&quot;@color\/hl9&quot;             android:text=&quot;@string\/place1txt&quot;             android:id=&quot;@+id\/r3switch1&quot;             android:layout_weight=&quot;2&quot;             android:layout_margin=&quot;1dp&quot;             android:padding=&quot;4dp&quot;             android:gravity=&quot;center|left&quot;             android:background=&quot;@color\/hl8&quot;             android:clickable=&quot;true&quot;\/&gt;         &lt;LinearLayout             android:background=&quot;@color\/hl8&quot;             android:orientation=&quot;horizontal&quot;             android:layout_width=&quot;150dp&quot;             android:layout_height=&quot;match_parent&quot;             android:layout_weight=&quot;3&quot;             android:gravity=&quot;center&quot;             android:layout_margin=&quot;1dp&quot;&gt;             &lt;Button                 style=&quot;?android:attr\/buttonStyleSmall&quot;                 android:layout_width=&quot;wrap_content&quot;                 android:layout_height=&quot;36dp&quot;                 android:layout_weight=&quot;1&quot;                 android:text=&quot;\u0412\u041a\u041b&quot;                 android:id=&quot;@+id\/r3b1on&quot; \/&gt;             &lt;Button                 style=&quot;?android:attr\/buttonStyleSmall&quot;                 android:layout_width=&quot;wrap_content&quot;                 android:layout_height=&quot;36dp&quot;                 android:layout_weight=&quot;1&quot;                 android:text=&quot;\u0412\u042b\u041a\u041b&quot;                 android:id=&quot;@+id\/r3b1off&quot; \/&gt;         &lt;\/LinearLayout&gt;     &lt;\/LinearLayout&gt;      &lt;!-- \u041a\u043e\u043c\u043d\u0430\u0442\u0430 \u0441 \u044d\u0440\u043a\u0435\u0440\u043e\u043c --&gt;     &lt;LinearLayout         android:layout_width=&quot;match_parent&quot;         android:layout_height=&quot;wrap_content&quot;         android:orientation=&quot;horizontal&quot;&gt;         &lt;TextView             android:layout_width=&quot;110dp&quot;             android:layout_height=&quot;match_parent&quot;             android:textSize=&quot;16sp&quot;             android:text=&quot;@string\/room4txt&quot;             android:id=&quot;@+id\/room4&quot;             android:layout_weight=&quot;1&quot;             android:layout_margin=&quot;1dp&quot;             android:padding=&quot;4dp&quot;             android:gravity=&quot;center&quot;             android:background=&quot;@color\/holotheme_color&quot;             android:textColor=&quot;@color\/black&quot;             android:textStyle=&quot;bold&quot; \/&gt;         &lt;LinearLayout             android:orientation=&quot;vertical&quot;             android:background=&quot;@color\/hl8&quot;             android:layout_width=&quot;120dp&quot;             android:layout_height=&quot;match_parent&quot;             android:layout_weight=&quot;2&quot;             android:layout_margin=&quot;1dp&quot;             android:gravity=&quot;center&quot;&gt;             &lt;TextView                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;37dp&quot;                 android:text=&quot;@string\/place6txt&quot;                 android:textColor=&quot;@color\/hl9&quot;                 android:id=&quot;@+id\/r4switch1&quot;                 android:textSize=&quot;13sp&quot;                 android:padding=&quot;4dp&quot;                 android:gravity=&quot;center_vertical|left&quot;                 android:background=&quot;@drawable\/hover1&quot;                 android:clickable=&quot;true&quot;\/&gt;             &lt;TextView                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;37dp&quot;                 android:text=&quot;@string\/place8txt&quot;                 android:textColor=&quot;@color\/hl9&quot;                 android:id=&quot;@+id\/r4switch3&quot;                 android:textSize=&quot;13sp&quot;                 android:padding=&quot;4dp&quot;                 android:gravity=&quot;center_vertical|left&quot;                 android:background=&quot;@drawable\/hover1&quot;                 android:clickable=&quot;true&quot;\/&gt;             &lt;TextView                 android:textSize=&quot;13sp&quot;                 android:layout_width=&quot;match_parent&quot;                 android:textColor=&quot;@color\/hl9&quot;                 android:layout_height=&quot;37dp&quot;                 android:text=&quot;@string\/place7txt&quot;                 android:id=&quot;@+id\/r4switch2&quot;                 android:padding=&quot;4dp&quot;                 android:gravity=&quot;center_vertical|left&quot;                 android:background=&quot;@drawable\/hover1&quot;                 android:clickable=&quot;true&quot;\/&gt;         &lt;\/LinearLayout&gt;         &lt;LinearLayout             android:background=&quot;@color\/hl8&quot;             android:orientation=&quot;vertical&quot;             android:layout_width=&quot;150dp&quot;             android:layout_height=&quot;match_parent&quot;             android:layout_weight=&quot;3&quot;             android:gravity=&quot;center&quot;             android:layout_margin=&quot;1dp&quot;&gt;             &lt;LinearLayout                 android:orientation=&quot;horizontal&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;37dp&quot;&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_height=&quot;match_parent&quot;                     android:layout_weight=&quot;1&quot;                     android:text=&quot;\u0412\u041a\u041b&quot;                     android:id=&quot;@+id\/r4b1on&quot; \/&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_weight=&quot;1&quot;                     android:layout_height=&quot;match_parent&quot;                     android:text=&quot;\u0412\u042b\u041a\u041b&quot;                     android:id=&quot;@+id\/r4b1off&quot; \/&gt;             &lt;\/LinearLayout&gt;             &lt;LinearLayout                 android:orientation=&quot;horizontal&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;36dp&quot;&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_height=&quot;match_parent&quot;                     android:layout_weight=&quot;1&quot;                     android:text=&quot;\u0412\u041a\u041b&quot;                     android:id=&quot;@+id\/r4b3on&quot; \/&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_weight=&quot;1&quot;                     android:layout_height=&quot;match_parent&quot;                     android:text=&quot;\u0412\u042b\u041a\u041b&quot;                     android:id=&quot;@+id\/r4b3off&quot; \/&gt;             &lt;\/LinearLayout&gt;             &lt;LinearLayout                 android:orientation=&quot;horizontal&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;36dp&quot;&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_height=&quot;match_parent&quot;                     android:layout_weight=&quot;1&quot;                     android:text=&quot;\u0412\u041a\u041b&quot;                     android:id=&quot;@+id\/r4b2on&quot; \/&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_weight=&quot;1&quot;                     android:layout_height=&quot;match_parent&quot;                     android:text=&quot;\u0412\u042b\u041a\u041b&quot;                     android:id=&quot;@+id\/r4b2off&quot; \/&gt;             &lt;\/LinearLayout&gt;         &lt;\/LinearLayout&gt;     &lt;\/LinearLayout&gt;       &lt;!-- \u041a\u043e\u0440\u0438\u0434\u043e\u0440 --&gt;     &lt;LinearLayout         android:layout_width=&quot;match_parent&quot;         android:layout_height=&quot;wrap_content&quot;         android:orientation=&quot;horizontal&quot;&gt;         &lt;TextView             android:layout_width=&quot;110dp&quot;             android:layout_height=&quot;match_parent&quot;             android:textSize=&quot;16sp&quot;             android:text=&quot;@string\/room5txt&quot;             android:id=&quot;@+id\/room5&quot;             android:layout_weight=&quot;1&quot;             android:layout_margin=&quot;1dp&quot;             android:padding=&quot;4dp&quot;             android:gravity=&quot;center&quot;             android:textColor=&quot;@color\/black&quot;             android:background=&quot;@color\/holotheme_color&quot;             android:textStyle=&quot;bold&quot; \/&gt;         &lt;LinearLayout             android:orientation=&quot;vertical&quot;             android:background=&quot;@color\/hl8&quot;             android:layout_width=&quot;120dp&quot;             android:layout_height=&quot;match_parent&quot;             android:layout_weight=&quot;2&quot;             android:layout_margin=&quot;1dp&quot;             android:gravity=&quot;center&quot;&gt;             &lt;TextView                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;36dp&quot;                 android:text=&quot;@string\/place3txt&quot;                 android:textColor=&quot;@color\/hl9&quot;                 android:id=&quot;@+id\/r5switch1&quot;                 android:textSize=&quot;13sp&quot;                 android:padding=&quot;4dp&quot;                 android:gravity=&quot;center_vertical|left&quot;                 android:background=&quot;@drawable\/hover1&quot;                 android:clickable=&quot;true&quot;\/&gt;             &lt;TextView                 android:textSize=&quot;13sp&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;37dp&quot;                 android:textColor=&quot;@color\/hl9&quot;                 android:text=&quot;@string\/place4txt&quot;                 android:id=&quot;@+id\/r5switch2&quot;                 android:padding=&quot;4dp&quot;                 android:gravity=&quot;center_vertical|left&quot;                 android:background=&quot;@drawable\/hover1&quot;                 android:clickable=&quot;true&quot;\/&gt;         &lt;\/LinearLayout&gt;         &lt;LinearLayout             android:background=&quot;@color\/hl8&quot;             android:orientation=&quot;vertical&quot;             android:layout_width=&quot;150dp&quot;             android:layout_height=&quot;match_parent&quot;             android:layout_weight=&quot;3&quot;             android:gravity=&quot;center&quot;             android:layout_margin=&quot;1dp&quot;&gt;             &lt;LinearLayout                 android:orientation=&quot;horizontal&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;36dp&quot;&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_height=&quot;match_parent&quot;                     android:layout_weight=&quot;1&quot;                     android:text=&quot;\u0412\u041a\u041b&quot;                     android:id=&quot;@+id\/r5b1on&quot; \/&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_weight=&quot;1&quot;                     android:layout_height=&quot;match_parent&quot;                     android:text=&quot;\u0412\u042b\u041a\u041b&quot;                     android:id=&quot;@+id\/r5b1off&quot; \/&gt;             &lt;\/LinearLayout&gt;             &lt;LinearLayout                 android:orientation=&quot;horizontal&quot;                 android:layout_width=&quot;match_parent&quot;                 android:layout_height=&quot;37dp&quot;&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_height=&quot;match_parent&quot;                     android:layout_weight=&quot;1&quot;                     android:text=&quot;\u0412\u041a\u041b&quot;                     android:id=&quot;@+id\/r5b2on&quot; \/&gt;                 &lt;Button                     style=&quot;?android:attr\/buttonStyleSmall&quot;                     android:layout_width=&quot;wrap_content&quot;                     android:layout_weight=&quot;1&quot;                     android:layout_height=&quot;match_parent&quot;                     android:text=&quot;\u0412\u042b\u041a\u041b&quot;                     android:id=&quot;@+id\/r5b2off&quot; \/&gt;             &lt;\/LinearLayout&gt;         &lt;\/LinearLayout&gt;     &lt;\/LinearLayout&gt;  &lt;\/LinearLayout&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041a \u043a\u043d\u043e\u043f\u043a\u0430\u043c \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u044b \u043c\u0435\u0442\u043e\u0434\u044b onClick.  <\/p>\n<pre><code class=\"java\">@Override     public void onClick(View v) {         \/\/ define the button switch that invoked the listener by id         switch (v.getId()) {             \/\/ Buttons room1 \u043a\u0443\u0445\u043d\u044f             case R.id.r1b1on: \/\/ \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room1txt)+&quot; &gt; &quot;+r1sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch4url) + &quot;on&quot;;                 new ParseTask().execute();                 break; <\/code><\/pre>\n<p>  Switch \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 ID view \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043a\u043d\u043e\u043f\u043a\u0438, \u0432\u044b\u0432\u043e\u0434\u0438\u0442 TOAST \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 HTTP \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 RPI \u0447\u0435\u0440\u0435\u0437 HttpURLConnection \u0432\u043d\u0443\u0442\u0440\u0438 AsyncTask (\u0432\u044b\u0437\u043e\u0432 ParseTask().execute();).<\/p>\n<p>  <b>\u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 backend<\/b><\/p>\n<p>  HttpURLConnection \u2014 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e HTTP \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443.<\/p>\n<p>  \u041c\u0435\u0442\u043e\u0434 doInBackground \u043a\u043b\u0430\u0441\u0441\u0430 AsyncTask \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u044f\u0436\u0435\u043b\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0431\u044d\u043a\u0433\u0440\u0430\u0443\u043d\u0434 \u043f\u043e\u0442\u043e\u043a\u0435 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 UI \u043f\u043e\u0442\u043e\u043a.<\/p>\n<p>  HttpURLConnection \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 doInBackground. <\/p>\n<p>  \u0422\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u0435\u043c \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 HTTP \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b.  <\/p>\n<pre><code class=\"java\">webiopiurl = getString(R.string.ch4url) + &quot;on&quot;; <\/code><\/pre>\n<p>  \u041f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 strings.xml \u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/p>\n<pre><code class=\"xml\">&lt;string name=&quot;ch4url&quot;&gt;http:\/\/192.168.1.154:8000\/macros\/ch4\/&lt;\/string&gt; <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u043b\u043d\u044b\u0439 URL \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u0430\u043b\u0430 4 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a  <\/p>\n<pre><code class=\"html\">http:\/\/192.168.1.154:8000\/macros\/ch4\/on <\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"java\">\/\/ HTTP Query to backend in REST style     private class ParseTask extends AsyncTask&lt;Void, Void, String&gt; {         HttpURLConnection urlConnection = null;         BufferedReader reader = null;         String result = &quot;&quot;;         String BASIC_AUTH = &quot;Basic &quot;                 + Base64.encodeToString((getString(R.string.login) + &quot;:&quot; + getString(R.string.pwd)).getBytes(), Base64.NO_WRAP);          @Override         protected String doInBackground(Void... params) {             \/\/ \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 REST \u0441\u0442\u0438\u043b\u0435             try {                 URL url = new URL(webiopiurl);                 urlConnection = (HttpURLConnection) url.openConnection();                 urlConnection.setRequestMethod(&quot;POST&quot;);                 urlConnection.setRequestProperty(&quot;Authorization&quot;, BASIC_AUTH);                 urlConnection.connect();                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 backend webiopi                 InputStream inputStream = urlConnection.getInputStream();                 StringBuffer buffer = new StringBuffer();                 reader = new BufferedReader(new InputStreamReader(inputStream));                 String line;                 while ((line = reader.readLine()) != null) {                     buffer.append(line);                 }                 result = buffer.toString();             } catch (Exception e) {                 e.printStackTrace();             }             return result;         } <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u043a\u043e\u0434 MainActivity.java AS IS<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">package ru.bbq.smarthome_App;  import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Base64; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;  import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;   public class MainActivity extends ActionBarActivity implements View.OnClickListener {     \/\/ Add logger     public static String LOG_TAG = &quot;my_log&quot;;     public static String webiopiurl = &quot;&quot;;     \/\/ switch buttons     TextView r1sw1;     TextView r1sw2;     TextView r1sw3;     TextView r2sw1;     TextView r3sw1;     TextView r4sw1;     TextView r4sw2;     TextView r4sw3;     TextView r5sw1;     TextView r5sw2;     \/\/ ON OFF buttons     Button r1b1on;     Button r1b1off;     Button r1b2on;     Button r1b2off;     Button r1b3on;     Button r1b3off;     Button r2b1on;     Button r2b1off;     Button r3b1on;     Button r3b1off;     Button r4b1on;     Button r4b1off;     Button r4b2on;     Button r4b2off;     Button r4b3on;     Button r4b3off;     Button r5b1on;     Button r5b1off;     Button r5b2on;     Button r5b2off;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);          \/\/ find View-elements and buttons         r1sw1 = (TextView) findViewById(R.id.r1switch1); \/\/ room1switch1         r1sw2 = (TextView) findViewById(R.id.r1switch2); \/\/ room1switch2         r1sw3 = (TextView) findViewById(R.id.r1switch3); \/\/ room1switch3         r2sw1 = (TextView) findViewById(R.id.r2switch1); \/\/ room2switch1         r3sw1 = (TextView) findViewById(R.id.r3switch1); \/\/ room3switch1         r4sw1 = (TextView) findViewById(R.id.r4switch1); \/\/ room4switch1         r4sw2 = (TextView) findViewById(R.id.r4switch2); \/\/ room4switch2         r4sw3 = (TextView) findViewById(R.id.r4switch3); \/\/ room4switch3         r5sw1 = (TextView) findViewById(R.id.r5switch1); \/\/ room5switch1         r5sw2 = (TextView) findViewById(R.id.r5switch2); \/\/ room5switch2         r1b1on = (Button) findViewById(R.id.r1b1on);    \/\/ room1 button1 ON         r1b1off = (Button) findViewById(R.id.r1b1off);  \/\/ room1 button1 OFF         r1b2on = (Button) findViewById(R.id.r1b2on);    \/\/ room1 button2 ON         r1b2off = (Button) findViewById(R.id.r1b2off);  \/\/ room1 button2 OFF         r1b3on = (Button) findViewById(R.id.r1b3on);    \/\/ room1 button3 ON         r1b3off = (Button) findViewById(R.id.r1b3off);  \/\/ room1 button3 OFF         r2b1on = (Button) findViewById(R.id.r2b1on);    \/\/ room2 button1 ON         r2b1off = (Button) findViewById(R.id.r2b1off);  \/\/ room2 button1 OFF         r3b1on = (Button) findViewById(R.id.r3b1on);    \/\/ room3 button1 ON         r3b1off = (Button) findViewById(R.id.r3b1off);  \/\/ room3 button1 OFF         r4b1on = (Button) findViewById(R.id.r4b1on);    \/\/ room4 button1 ON         r4b1off = (Button) findViewById(R.id.r4b1off);  \/\/ room4 button1 OFF         r4b2on = (Button) findViewById(R.id.r4b2on);    \/\/ room4 button2 ON         r4b2off = (Button) findViewById(R.id.r4b2off);  \/\/ room4 button2 OFF         r4b3on = (Button) findViewById(R.id.r4b3on);    \/\/ room4 button3 ON         r4b3off = (Button) findViewById(R.id.r4b3off);  \/\/ room4 button3 OFF         r5b1on = (Button) findViewById(R.id.r5b1on);    \/\/ room5 button1 ON         r5b1off = (Button) findViewById(R.id.r5b1off);  \/\/ room5 button1 OFF         r5b2on = (Button) findViewById(R.id.r5b2on);    \/\/ room5 button2 ON         r5b2off = (Button) findViewById(R.id.r5b2off);  \/\/ room5 button2 OFF          \/\/assign listeners to buttons         r1b1on.setOnClickListener(this);         r1b1off.setOnClickListener(this);         r1b2on.setOnClickListener(this);         r1b2off.setOnClickListener(this);         r1b3on.setOnClickListener(this);         r1b3off.setOnClickListener(this);         r2b1on.setOnClickListener(this);         r2b1off.setOnClickListener(this);         r3b1on.setOnClickListener(this);         r3b1off.setOnClickListener(this);         r4b1on.setOnClickListener(this);         r4b1off.setOnClickListener(this);         r4b2on.setOnClickListener(this);         r4b2off.setOnClickListener(this);         r4b3on.setOnClickListener(this);         r4b3off.setOnClickListener(this);         r5b1on.setOnClickListener(this);         r5b1off.setOnClickListener(this);         r5b2on.setOnClickListener(this);         r5b2off.setOnClickListener(this);     }       \/\/ Define On ClickView method     @Override     public void onClick(View v) {         \/\/ define the button switch that invoked the listener by id         switch (v.getId()) {             \/\/ Buttons room1 \u043a\u0443\u0445\u043d\u044f             case R.id.r1b1on: \/\/ \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room1txt)+&quot; &gt; &quot;+r1sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch4url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r1b1off: \/\/ \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room1txt)+&quot; &gt; &quot;+r1sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch4url) + &quot;off&quot;;                 new ParseTask().execute();                 break;             case R.id.r1b2on: \/\/ \u043a\u0443\u0445\u043d\u044f \u0442\u043e\u0447\u0435\u0447\u043d\u044b\u0439                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room1txt)+&quot; &gt; &quot;+r1sw2.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch3url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r1b2off: \/\/ \u043a\u0443\u0445\u043d\u044f \u0442\u043e\u0447\u0435\u0447\u043d\u044b\u0439                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room1txt)+&quot; &gt; &quot;+r1sw2.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch3url) + &quot;off&quot;;                 new ParseTask().execute();                 break;             case R.id.r1b3on: \/\/ LED \u043a\u0443\u0445\u043d\u044f                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room1txt)+&quot; &gt; &quot;+r1sw3.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch2url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r1b3off: \/\/ LED \u043a\u0443\u0445\u043d\u044f                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room1txt)+&quot; &gt; &quot;+r1sw3.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch2url) + &quot;off&quot;;                 new ParseTask().execute();                 break;             \/\/ Buttons room2 \u0433\u043e\u0441\u0442\u0438\u043d\u0430\u044f             case R.id.r2b1on:                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room2txt)+&quot; &gt; &quot;+r2sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch6url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r2b1off:                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room2txt)+&quot; &gt; &quot;+r2sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch6url) + &quot;off&quot;;                 new ParseTask().execute();                 break;             \/\/ Buttons room3 \u0431\u0430\u043b\u043a\u043e\u043d             case R.id.r3b1on:                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room3txt)+&quot; &gt; &quot;+r3sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch5url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r3b1off:                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room3txt)+&quot; &gt; &quot;+r3sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch5url) + &quot;off&quot;;                 new ParseTask().execute();                 break;             \/\/ Buttons room4 bedroom             case R.id.r4b1on: \/\/ \u043d\u0430\u0434 \u043a\u0440\u043e\u0432\u0430\u0442\u044c\u044e \u0440\u0435\u043b\u0435\u0439\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room4txt)+&quot; &gt; &quot;+r4sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch8url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r4b1off: \/\/ \u043d\u0430\u0434 \u043a\u0440\u043e\u0432\u0430\u0442\u044c\u044e \u0440\u0435\u043b\u0435\u0439\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room4txt)+&quot; &gt; &quot;+r4sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch8url) + &quot;off&quot;;                 new ParseTask().execute();                 break;             case R.id.r4b2on: \/\/ \u0443 \u044d\u0440\u043a\u0435\u0440\u0430 \u0432 \u0441\u043f\u0430\u043b\u044c\u043d\u0435                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room4txt)+&quot; &gt; &quot;+r4sw2.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch7url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r4b2off: \/\/ \u0443 \u044d\u0440\u043a\u0435\u0440\u0430 \u0432 \u0441\u043f\u0430\u043b\u044c\u043d\u0435                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room4txt)+&quot; &gt; &quot;+r4sw2.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch7url) + &quot;off&quot;;                 new ParseTask().execute();                 break;             case R.id.r4b3on: \/\/ \u043d\u0430\u0434 \u043a\u0440\u043e\u0432\u0430\u0442\u044c\u044e dimmer                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room4txt)+&quot; &gt; &quot;+r4sw3.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch9url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r4b3off: \/\/ \u043d\u0430\u0434 \u043a\u0440\u043e\u0432\u0430\u0442\u044c\u044e dimmer                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room4txt)+&quot; &gt; &quot;+r4sw3.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch9url) + &quot;off&quot;;                 new ParseTask().execute();                 break;             \/\/ Buttons room5 corridor             case R.id.r5b1on:                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room5txt)+&quot; &gt; &quot;+r5sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch1url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r5b1off:                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room5txt)+&quot; &gt; &quot;+r5sw1.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch1url) + &quot;off&quot;;                 new ParseTask().execute();                 break;             case R.id.r5b2on:                 Toast.makeText(this, getString(R.string.bon)+&quot; '&quot;+getString(R.string.room5txt)+&quot; &gt; &quot;+r5sw2.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch0url) + &quot;on&quot;;                 new ParseTask().execute();                 break;             case R.id.r5b2off:                 Toast.makeText(this, getString(R.string.boff)+&quot; '&quot;+getString(R.string.room5txt)+&quot; &gt; &quot;+r5sw2.getText()+&quot;'&quot;, Toast.LENGTH_SHORT).show();                 webiopiurl = getString(R.string.ch0url) + &quot;off&quot;;                 new ParseTask().execute();                 break;         }     }       \/\/ HTTP Query to backend in REST style     private class ParseTask extends AsyncTask&lt;Void, Void, String&gt; {         HttpURLConnection urlConnection = null;         BufferedReader reader = null;         String result = &quot;&quot;;         String BASIC_AUTH = &quot;Basic &quot;                 + Base64.encodeToString((getString(R.string.login) + &quot;:&quot; + getString(R.string.pwd)).getBytes(), Base64.NO_WRAP);          @Override         protected String doInBackground(Void... params) {             \/\/ \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 REST \u0441\u0442\u0438\u043b\u0435             try {                 URL url = new URL(webiopiurl);                 urlConnection = (HttpURLConnection) url.openConnection();                 urlConnection.setRequestMethod(&quot;POST&quot;);                 urlConnection.setRequestProperty(&quot;Authorization&quot;, BASIC_AUTH);                 urlConnection.connect();                 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 backend webiopi                 InputStream inputStream = urlConnection.getInputStream();                 StringBuffer buffer = new StringBuffer();                 reader = new BufferedReader(new InputStreamReader(inputStream));                 String line;                 while ((line = reader.readLine()) != null) {                     buffer.append(line);                 }                 result = buffer.toString();             } catch (Exception e) {                 e.printStackTrace();             }             return result;         }          @Override         protected void onPostExecute(String str) {             super.onPostExecute(str);             \/\/ \u043e\u0442\u0432\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 plain text (\u043d\u0435 JSON)             \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 log             Log.d(LOG_TAG, str);             \/\/ \u0434\u0435\u043b\u0430\u0435\u043c TOAST - \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u043e\u0442\u0432\u0435\u0442 webiopi \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u044f MT1132             Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();         }     }  } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <a name=\"block4\"><\/a><\/p>\n<h4>\u041d\u0430\u0439\u0442\u0438 \u0438 \u043a\u0443\u043f\u0438\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 \u0434\u043b\u044f \u043f\u0443\u043b\u044c\u0442\u043e\u0432<\/h4>\n<p>  \u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u044b\u0435 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u043f\u0443\u043b\u044c\u0442\u044b\/\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 NooLite \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u044b\u0435 \u0438 \u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u0435, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 3-\u043c\u044f \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 (\u043a\u043d\u043e\u043f\u043a\u0430\u043c\u0438\/\u043a\u043b\u0430\u0432\u0438\u0448\u0430\u043c\u0438) \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0432 \u0434\u0438\u0437\u0430\u0439\u043d \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 (\u0432\u0441\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e).<\/p>\n<p>  \u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c:  <\/p>\n<ul>\n<li>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043e\u0442 2\u0445 \u0434\u043e 3\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0432 \u0441\u0430\u043f\u043f\u043e\u0440\u0442 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439;<\/li>\n<li>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043a\u043d\u043e\u043f\u043e\u0447\u043d\u044b\u0445 \u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u043e\u0434\u043e\u0449\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 bticino livinglight. \u041d\u0430 \u0444\u043e\u0442\u043e \u043d\u0438\u0436\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0441 \u043f\u0443\u043b\u044c\u0442\u043e\u043c NooLite.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f6e\/6b0\/d1a\/f6e6b0d1a7b9428cbba0d6e6670c1cb9.jpg\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/57d\/47e\/4f9\/57d47e4f9b90491980fa5cff309ec226.jpg\"\/><\/p>\n<p>  <b>\u0421\u0438\u043b\u043e\u0432\u043e\u0439 \u0431\u043b\u043e\u043a \u043d\u0430 \u043f\u043e\u0442\u043e\u043b\u043a\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438<\/b> <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d08\/495\/843\/d08495843ec84300bc851d70e0b011ab.jpg\"\/><\/p>\n<p>  <b>\u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435<\/b><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ceb\/2c6\/51a\/ceb2c651a47145a2b51daab51abb32d6.png\"\/><\/p>\n<p>  <b>\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u0449\u0438\u0442 \u0441 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043b\u0430\u0431\u043e\u0442\u043e\u0447\u043a\u043e\u0439<\/b><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/128\/1f8\/00a\/1281f800ac6e40dd829cdde1e7b7f3cf.png\"\/><\/p>\n<p>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435. \u0425\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0434\u043d\u044f!         <\/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:\/\/geektimes.ru\/post\/260046\/\"> http:\/\/geektimes.ru\/post\/260046\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p> \t\t\u0425\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0430 <a href=\"http:\/\/www.noo.com.by\/sistema-noolite.html\">NooLite<\/a> \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 Raspberry Pi Model B (\u0434\u0430\u043b\u0435\u0435 <abbr title=\"Raspberry Pi\">RPI<\/abbr>) \u0432 \u0434\u0432\u0443\u0445\u043a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0435.<\/p>\n<p>  \u041e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 NooLite \u043d\u0435\u043e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0430 \u0445\u0430\u0431\u0440\u0435:  <\/p>\n<ul>\n<li><a href=\"http:\/\/habrahabr.ru\/company\/boxowerview\/blog\/165131\">NooLite \u2014 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u0434\u0438\u043e\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435\u043c, \u0438\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443<\/a>;<\/li>\n<li><a href=\"http:\/\/habrahabr.ru\/company\/boxowerview\/blog\/168039\/\">NooLite-2, \u0438\u043b\u0438 \u0443\u043c\u043d\u044b\u0439 \u0434\u043e\u043c \u0434\u043b\u044f \u0447\u0430\u0439\u043d\u0438\u043a\u043e\u0432<\/a>;<\/li>\n<li>\u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043f\u043e \u0442\u0435\u0433\u0443 \u00abnoolite\u00bb \u0438\u043b\u0438 \u043d\u0430\u0431\u0440\u0430\u0442\u044c \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0433\u0443\u0433\u043b\u0430 \u00absite:habrahabr.ru noolite\u00bb<\/li>\n<\/ul>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e:  <\/p>\n<ul>\n<li>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 <a href=\"https:\/\/code.google.com\/p\/webiopi\/\">WebIOPi<\/a> \u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0443\u044e <a href=\"https:\/\/www.raspberrypi.org\/downloads\/\">Raspbian<\/a> \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f UART \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0430 <a href=\"http:\/\/www.noo.com.by\/modul_mt1132.html\">\u043c\u043e\u0434\u0443\u043b\u044c MT1132 NooLite<\/a>;<\/li>\n<li>\u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0432 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 WebIOPi \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0442\u0438\u043b\u0435 HTTP REST \u0441 GPIO UART;<\/li>\n<li>\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Android \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u0435\u0442\u043e\u043c \u0447\u0435\u0440\u0435\u0437 REST \u0434\u044b\u0440\u043a\u0438<\/li>\n<\/ul>\n<p>  <\/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-263317","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/263317","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=263317"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/263317\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=263317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=263317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=263317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}