{"id":285887,"date":"2017-05-04T06:40:03","date_gmt":"2017-05-04T02:40:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=285887"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=285887","title":{"rendered":"\u041d\u0435\u0439\u0440\u043e\u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a: \u0447\u0430\u0441\u0442\u044c 1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Raspberry Pi \u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u0432 \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a \u0438 \u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f9c\/daf\/4cf\/f9cdaf4cf7bc84804afed29e674deaf0.jpg\" alt=\"image\"\/><br \/>  <i>\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0440\u0430\u0442 \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0442\u043e\u0431\u043e\u0439, \u043f\u0442\u0438\u0446\u0430!<\/i><\/p>\n<p>\u0418\u0434\u0435\u044f \u043f\u0440\u0438\u0448\u043b\u0430 \u0434\u0430\u0432\u043d\u043e. \u0423 \u043a\u043e\u0433\u043e-\u0442\u043e \u043c\u044b\u0441\u043b\u0438 \u043e\u0442\u0430\u043f\u043b\u0438\u0432\u0430\u0442\u044c \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a\u0438 \u043c\u0430\u0439\u043d\u044f\u0449\u0438\u043c\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430\u043c\u0438 (\u043a\u0440\u0438\u043f\u0442\u043e\u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a), \u0447\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e, \u043d\u0435\u0441\u043e\u043c\u043d\u0435\u043d\u043d\u043e, \u0430 \u0443 \u043a\u043e\u0433\u043e-\u0442\u043e \u043c\u044b\u0441\u043b\u0438 \u0432 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0437\u0432\u0443\u043a\u043e\u0432, \u0432 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044f\u0445 \u0438 \u0438\u0445 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u0434\u0430\u0432\u043d\u043e \u0447\u0438\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u0440\u043e \u044f\u043f\u043e\u043d\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 <a href=\"https:\/\/cloud.google.com\/blog\/big-data\/2016\/08\/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow\">\u043f\u043e\u043c\u043e\u0433<\/a> \u043e\u0442\u0446\u0443 \u0441 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043e\u0433\u0443\u0440\u0446\u043e\u0432; \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0435\u0441\u0443\u0442\u0441\u044f \u043a\u0443\u0440\u044b \u0443 \u043d\u0430\u0448\u0438\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439, \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u044f \u0438\u043c \u043e\u0442\u0447\u0435\u0442\u044b \u0432 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440 \u2014  \u0438\u0434\u0435\u044f \u0438\u0437 \u0432\u0435\u0441\u0435\u043b\u044b\u0445.<\/p>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<p>\u0412\u043e\u043e\u0431\u0449\u0435 \u043f\u043b\u0430\u043d\u043e\u0432 \u043c\u043d\u043e\u0433\u043e. \u0422\u043e, \u0447\u0442\u043e \u043e\u043a\u043e\u043b\u043e \u0433\u043d\u0435\u0437\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0448\u0435\u0432\u0435\u043b\u0435\u043d\u0438\u0435, \u043c\u043e\u0436\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0442\u0438\u0446\u0430 \u0437\u0430\u043b\u0435\u0437\u043b\u0430 \u0432 \u0433\u043d\u0435\u0437\u0434\u043e \u0438\u043b\u0438 \u0432\u044b\u043b\u0435\u0437\u043b\u0430 \u0438\u0437 \u043d\u0435\u0433\u043e. \u042d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 openCV, \u0438 \u044d\u0442\u043e \u043c\u044b \u0443\u0436\u0435 \u0443\u043c\u0435\u0435\u043c. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u043e\u0442 \u044d\u0442\u043e\u0433\u043e <a href=\"http:\/\/www.pyimagesearch.com\/2015\/06\/01\/home-surveillance-and-motion-detection-with-the-raspberry-pi-python-and-opencv\/\">\u0431\u043b\u043e\u0433\u0430<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u0442\u0438\u0446\u0443 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a\u0430\u044f \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435 \u043d\u0435\u0441\u0435\u0442\u0441\u044f? \u041e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0432\u0437\u044f\u0442\u043e\u0439 \u043a\u0443\u0440\u0438\u0446\u044b? \u0415\u0441\u043b\u0438 \u043f\u0442\u0438\u0446\u0430 \u043d\u0435 \u043d\u0435\u0441\u0435\u0442\u0441\u044f \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0443\u0432\u0430\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0434\u043b\u044f \u043e\u0442\u0434\u044b\u0445\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0441\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0434\u0435\u043d\u044c, \u043b\u0438\u043d\u044c\u043a\u0430), \u0442\u043e \u043c\u043e\u0436\u0435\u0442, \u043f\u043e\u0440\u0430 \u0432\u0430\u0440\u0438\u0442\u044c \u043a\u0443\u0440\u0438\u043d\u044b\u0439 \u0441\u0443\u043f?<\/p>\n<p>  <\/p>\n<p>\u0422\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435: \u201c\u041d\u0430\u043c \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0442\u0438\u0446\u0430 ch11 \u043d\u0435 \u043d\u0435\u0441\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u0438\u0447\u0438\u043d\u044b, \u0431\u044b\u0442\u044c \u043c\u043e\u0436\u0435\u0442, \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0443\u044e \u0441\u0443\u0434\u044c\u0431\u0443\u201d. \u0410 \u043f\u043e\u0442\u043e\u043c \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0442\u0438\u0446\u0430 ch11 \u2014 \u044d\u0442\u043e \u043d\u0430\u0448\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u043a\u043e\u0448\u043a\u0430 \u041a\u043b\u044e\u043a\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0441 \u043a\u0443\u0440\u0430\u043c\u0438 \u0436\u0438\u0432\u0435\u0442.<\/p>\n<h2>\u0425\u0430\u043a\u0430\u0442\u043e\u043d<\/h2>\n<p>  <\/p>\n<p>\u041c\u044b\u0441\u043b\u0438 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u0437\u0432\u0443\u0447\u0438\u0442 \u0437\u0434\u043e\u0440\u043e\u0432\u043e, \u043d\u0435 \u0434\u0430\u0432\u0430\u043b\u0438 \u043f\u043e\u043a\u043e\u044f. \u041f\u0435\u0440\u0432\u044b\u0439 \u043e\u043f\u044b\u0442 \u0432 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f (<a href=\"https:\/\/t.me\/snakers4\/742\">\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f\u0445 \u0437\u0430 \u043e\u043a\u043d\u043e\u043c<\/a>) \u043f\u0440\u043e\u0448\u0435\u043b \u043d\u0435\u043f\u043b\u043e\u0445\u043e, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u043b\u043e.<br \/>  \u0412\u0441\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043e\u0434\u0438\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0447\u0435\u0442\u0432\u0435\u0440\u0433 \u044f \u043a\u0443\u043f\u0438\u043b\u0430 \u0431\u0438\u043b\u0435\u0442\u044b \u043d\u0430 \u043f\u044f\u0442\u043d\u0438\u0447\u043d\u0443\u044e \u043d\u043e\u0447\u044c \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c \u0438 \u043f\u043e\u043b\u0435\u0442\u0435\u043b\u0430 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043d\u0435\u0439\u0440\u043e\u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a\u0430.<\/p>\n<p>  <\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 (\u0433\u043b\u0443\u0448\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0435\u043b\u0430\u0442\u044c). \u041d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0437\u043d\u0430\u0435\u0448\u044c, \u043d\u0430 \u0447\u0442\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0448\u044c\u0441\u044f, \u043d\u0430\u0434\u0435\u0435\u0448\u044c\u0441\u044f \u043d\u0430 \u043b\u0443\u0447\u0448\u0435\u0435, \u0434\u0430.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a\u0435 \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0440\u043e\u0437\u0435\u0442\u043e\u043a. \u041f\u043e\u0434\u0430\u0447\u0435\u0439 \u0441\u0432\u0435\u0442\u0430 \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0440\u0443\u0431\u0438\u043b\u044c\u043d\u0438\u043a\u0430\u043c\u0438 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 \u0434\u043e\u043c\u0430. \u041e\u0442\u0435\u0446 \u043e\u0442\u043a\u043b\u0438\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0441\u044c\u0431\u0443 \u0432\u043e\u043f\u043b\u043e\u0442\u0438\u0442\u044c \u0440\u043e\u0437\u0435\u0442\u043a\u0443 \u0432 \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a\u0435, \u0438 \u043e\u043d\u0430, \u0432 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e, \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0442\u0430\u043c \u0432\u0435\u0441\u044c\u043c\u0430 \u0431\u044b\u0441\u0442\u0440\u043e.<\/p>\n<p>  <\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u2014 Raspberry Pi 3 \u0438 \u043a\u0430\u043c\u0435\u0440\u0430 \u0431\u043e\u0440\u0434 \u043a \u043d\u0435\u043c\u0443, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0438 usb-\u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440 (\u0438\u0431\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437 \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430\u0433\u0440\u0435\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0430\u0436 \u0434\u043e 80 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432). \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e \u043a\u0442\u043e-\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c pi \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u0441\u0440\u0435\u0434\u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432 \u0434\u043b\u044f \u0445\u043e\u0442\u0441\u043f\u043e\u0442\u0430 \u2014 3g\/4g \u043c\u043e\u0434\u0435\u043c \u0445\u0443\u0430\u0432\u0435\u0439, \u0441\u0442\u0430\u0440\u0430\u044f xperia \u043d\u0430 \u0430\u043d\u0434\u0440\u043e\u0438\u0434\u0435. \u041c\u043e\u0434\u0435\u043c \u0445\u043e\u0440\u043e\u0448 \u0442\u0435\u043c, \u0447\u0442\u043e \u0435\u043c\u0443 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f, \u0430 \u043f\u043b\u043e\u0445 \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0432\u0438\u043d\u0434\u043e\u0439. \u0415\u0441\u0442\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u043d\u0430 \u043b\u0438\u043d\u0443\u043a\u0441\u0435, \u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0436\u0435\u0441\u0442\u043a\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (\u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u0443\u0442\u043a\u0438 \u0434\u043e \u043e\u0442\u044a\u0435\u0437\u0434\u0430) \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d \u0442\u0435\u043b\u0435\u0444\u043e\u043d.<br \/>  \u041f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0443\u0441\u043b\u0443\u0433\u0443 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e IP \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0435\u0433\u0438\u043e\u043d\u0435. IP \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e DNS \u0441\u0435\u0440\u0432\u0438\u0441\u0430.<\/p>\n<p>  <\/p>\n<p>\u0418 \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e (\u043a\u0442\u043e \u0431\u044b \u0441\u043e\u043c\u043d\u0435\u0432\u0430\u043b\u0441\u044f), \u044d\u0442\u043e \u043d\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e. \u0412\u0435\u0434\u044c IP \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439, \u043e\u043d \u0441\u0435\u0440\u044b\u0439 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u043e \u043d\u0435\u0433\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0438\u0437\u0432\u043d\u0435, \u043f\u043e\u0440\u0442\u044b \u0437\u0430\u043a\u0440\u044b\u0442\u044b. <\/p>\n<p>  <\/p>\n<p>\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u043b \u043f\u0435\u0440\u0435\u043f\u0438\u043b\u0435\u043d \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043d\u043e \u043e\u043d \u0432\u0441\u0435 \u0435\u0449\u0435 \u0431\u044b\u043b \u0441\u044b\u0440\u043e\u0439.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0431\u044b\u043b\u0430 \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u0430 \u0443\u0436\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0438\u043c\u0435\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <\/p>\n<p>\u0417\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430, ssh back connect, \u0447\u0442\u043e \u0432 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e \u0441\u043f\u0430\u0441\u043b\u043e \u043d\u0430\u0441 \u043e\u0442 \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043c\u0430\u043b\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0443\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0445\u043e\u0442\u044c \u043a\u0430\u043a-\u0442\u043e.<\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0441\u0430\u043c\u044b\u043c \u043e\u0442\u044a\u0435\u0437\u0434\u043e\u043c \u0431\u044b\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043a\u0440\u043e\u043d \u0441 \u043f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u043d\u0438\u0435\u043c ssh \u0442\u0443\u043d\u043d\u0435\u043b\u044f, \u0437\u0430\u043c\u0435\u0440\u043e\u043c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0438 \u0430\u043b\u0430\u0440\u043c\u043e\u0439 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0447\u0435\u0433\u043e, \u0438 \u0432\u0435\u0441\u044c \u0441\u0435\u0442\u0430\u043f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0432 \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a. \u0421 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c \u0442\u0430\u043c \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u043b\u043e\u0445\u043e, \u043d\u043e \u043e\u043d \u0435\u0441\u0442\u044c. \u0412\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u0435\u043c\u043d\u043e \u0438 \u043d\u0430 \u0444\u043e\u0442\u043a\u0430\u0445 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u043d\u043e. \u041e\u0442\u0435\u0446 \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f. \u0414\u043e \u043f\u043e\u0440\u044b \u0434\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u0430\u043c\u0435\u0440\u0430 \u0431\u044b\u043b\u0430 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0430.<\/p>\n<p>  <\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u043a pi \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043e\u0442\u043e\u0432\u0441\u044e\u0434\u0443, \u0433\u0434\u0435 \u0431\u044b\u043b \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442.<\/p>\n<h2>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435<\/h2>\n<p>  <\/p>\n<p>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0439\u0434\u044f \u043e\u0442 \u0445\u0430\u043a\u0430\u0442\u043e\u043d\u0430 \u2014 \u043c\u0430\u0440\u0448-\u0431\u0440\u043e\u0441\u043a\u0430, \u044f \u0432\u0437\u044f\u043b\u0430\u0441\u044c \u0434\u043e\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u0434\u0430\u043b\u044c\u0448\u0435.<br \/>  \u041f\u043e\u0447\u0438\u0442\u0430\u0432 <a href=\"https:\/\/linuxaria.com\/howto\/permanent-ssh-tunnels-with-autossh\">\u0433\u0430\u0439\u0434\u044b<\/a> (\u043f\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u0430\u043c permanent autossh), \u044f \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0430\u0441\u044c \u043d\u0430\u043b\u0430\u0434\u0438\u0442\u044c autossh \u0432\u043c\u0435\u0441\u0442\u043e reverse ssh, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u0440\u043e\u043d\u0430. \u041f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u043d\u0438\u0447\u0435\u0433\u043e \u0441 autossh \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u0432\u044b\u0448\u043b\u043e, \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441 \u043a\u0440\u043e\u043d\u043e\u043c, \u043d\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u043f\u043b\u043e\u0434\u044f\u0449\u0438\u043c\u0438\u0441\u044f \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0430\u043c\u0438 \u0432\u044b\u043d\u0443\u0434\u0438\u043b\u0430 \u043c\u0435\u043d\u044f \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c\u0441\u044f \u0441 autossh.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0437\u0430\u0432\u0435\u043b\u043e\u0441\u044c, \u043d\u0443\u0436\u043d\u043e \u043b\u0438\u0448\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b (\u043a\u0442\u043e \u043d\u0435 \u0443\u043c\u0435\u0435\u0442, \u0433\u0443\u0433\u043b\u0438\u0442 create executable file linux) \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0435\u0440\u044b\u043c IP \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u0442\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u043e\u0447\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">\/usr\/bin\/autossh -M 0 -o ServerAliveInterval=50 -o ServerAliveCountMax=2 -nNTf -R 2222:localhost:22 userB@hostB -p bbbb <\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435 2222 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0439 \u0432\u0430\u043c \u043f\u043e\u0440\u0442, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c userB \u043d\u0430 \u044e\u0437\u0435\u0440\u0430 \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 (\u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0430 \u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0432 \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a\u0435), hostB \u2014 \u043d\u0430 \u0445\u043e\u0441\u0442\u0430 \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435, bbbb \u2014 \u043f\u043e\u0440\u0442 \u0432\u0430\u0448\u0435\u0433\u043e \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0435\u0441\u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u0435\u043d \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e (22).<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0438\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c.<br \/>  \u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043a\u0440\u043e\u043d (crontab -e) \u0442\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 (\u0435\u0441\u043b\u0438 \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 \u043a\u0440\u043e\u043d\u043e\u043c \u0442\u043e \u0442\u0443\u0442 <a href=\"https:\/\/t.me\/snakers4\/367\">1<\/a> <a href=\"https:\/\/t.me\/snakers4\/368\">2<\/a> <a href=\"https:\/\/t.me\/snakers4\/369\">3<\/a> <a href=\"https:\/\/t.me\/snakers4\/376\">4<\/a> \u0434\u0440\u0443\u0433 \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u0432\u0432\u043e\u0434\u043d\u044b\u0435), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c autossh \u043f\u0440\u0438 \u0440\u0435\u0431\u0443\u0442\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">@reboot \/path\/to\/script\/autosshtunnel.sh <\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u0442\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u0435 \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u043f\u043e\u0437\u0430\u0431\u043e\u0442\u044c\u0442\u0435\u0441\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0441\u0435\u0441\u0441\u0438\u044f \u043d\u0435 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u043b\u0430\u0441\u044c. \u0422\u043e \u0435\u0441\u0442\u044c \u044f \u0437\u0430\u0445\u043e\u0436\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430, \u0430 \u0443\u0436\u0435 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441\u0442\u0443\u0447\u0443\u0441\u044c \u0432 \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a, \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0432\u0435\u0447\u043d\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443, \u0438 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a\u0443 (\u0440\u0430\u0441\u043f\u0431\u0435\u0440\u0440\u0438).<\/p>\n<p>  <\/p>\n<p>\u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u043f\u043e \u0442\u0430\u043a\u043e\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">ssh -o TCPKeepAlive=yes -o ServerAliveInterval=50 user@box.example.com<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0432 \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a\u0435 \u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0441\u044c \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">ssh -o TCPKeepAlive=yes -o ServerAliveInterval=50 sshuser@localhost -p 2222<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0432\u0441\u0435 \u043a\u0430\u0441\u0430\u043b\u043e\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u0430\u043b\u0430\u0440\u043c\u044b \u043e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0435. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u043b\u0430\u0440\u043c\u044b \u043d\u0430 \u043f\u043e\u0447\u0442\u0443 \u0432 debian \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0442\u0438\u043f\u0430 \u0443\u0431\u0443\u043d\u0442\u0443 \u0438 \u0440\u0430\u0441\u043f\u0431\u0438\u0430\u043d \u2014 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u043c\u0443 <a href=\"https:\/\/help.ubuntu.com\/community\/EmailAlerts\">\u0433\u0430\u0439\u0434\u0443<\/a>, \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c ssmtp \u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433, \u044d\u0442\u043e \u0432\u0441\u0435. \u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0430\u043b\u0430\u0440\u043c \u043f\u0440\u043e \u043f\u0435\u0440\u0435\u0433\u0440\u0435\u0432 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0431\u0438\u0430\u043d \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">TEMPERATURE=&quot;$(\/opt\/vc\/bin\/vcgencmd measure_temp)&quot; NTEMPERATURE=&quot;$(echo $TEMPERATURE | tr -dc '0-9.')&quot; LIMIT=&quot;61.0&quot; if [ $(echo &quot;$NTEMPERATURE &gt; $LIMIT&quot; | bc) -ne 0 ]; then         echo &quot;The critical CPU temperature has been reached $NTEMPERATURE&quot; | sudo \/usr\/bin\/ssmtp -vvv somename@somehost.com fi<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u0438 \u0437\u0430\u043a\u0438\u043d\u0443\u0442\u044c \u0432 \u043a\u0440\u043e\u043d. \u041f\u043e\u043a\u0430 \u043d\u0435 \u0436\u0430\u0440\u043a\u043e, \u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e \u0441\u043a\u0440\u0438\u043f\u0442 \u043a\u0430\u0436\u0434\u044b\u0435 \u0434\u0432\u0435 \u043c\u0438\u043d\u0443\u0442\u044b.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<br \/>  \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438, \u0435\u0441\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435. \u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u0438 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u043d\u0430 \u044d\u0442\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0412\u044b\u0448\u0435 \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 <a href=\"http:\/\/www.pyimagesearch.com\/2015\/06\/01\/home-surveillance-and-motion-detection-with-the-raspberry-pi-python-and-opencv\/\">\u0431\u043b\u043e\u0433<\/a>, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0432\u0437\u044f\u043b\u0438 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0441\u043a\u0440\u0438\u043f\u0442, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0432.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0441\u0430\u043c\u043e\u043c \u0433\u0430\u0439\u0434\u0435 \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b, \u043d\u043e \u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044e\u0441\u044c, \u0447\u0442\u043e \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c <a href=\"http:\/\/www.pyimagesearch.com\/2016\/04\/18\/install-guide-raspberry-pi-3-raspbian-jessie-opencv-3\/\">\u0431\u0438\u043b\u0434 OpenCV<\/a>. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (\u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u043d\u044f\u043b\u043e 5 \u0447\u0430\u0441\u043e\u0432). \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a \u0436\u0435 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0442\u043e\u0436\u0435 \u0442\u0430\u043c \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 numpy, imutils, \u2014 \u0442\u0430\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u043e \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0445 \u043a\u0430\u043c\u043d\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043c\u044b \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u043d\u0443\u0436\u0434\u044b \u0438 \u0432\u043d\u0435\u0441\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:  <\/p>\n<ul>\n<li>\u0441\u043c\u0435\u043d\u0438\u043b\u0438 Python 2 \u043d\u0430 Python 3;<\/li>\n<li>\u0432\u043c\u0435\u0441\u0442\u043e \u0434\u0440\u043e\u043f\u0431\u043e\u043a\u0441\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440;<\/li>\n<li>\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u0441\u0436\u0430\u0442\u044b\u0439 \u0444\u0440\u0435\u0439\u043c.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>  <\/p>\n<p>\u0413\u043e\u0442\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 pi_surveillance.py \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a (\u043d\u0443 \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0435\u0449\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u043d\u043e\u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433):<\/p>\n<p>  <\/p>\n<pre><code class=\"python\"># import the necessary packages import sys sys.path.append('\/usr\/local\/lib\/python2.7\/site-packages') from pyimagesearch.tempimage import TempImage from picamera.array import PiRGBArray from picamera import PiCamera import argparse import warnings import datetime import imutils import json import time import cv2 import os   # construct the argument parser and parse the arguments ap = argparse.ArgumentParser() ap.add_argument(&quot;-c&quot;, &quot;--conf&quot;, required=True, \thelp=&quot;path to the JSON configuration file&quot;) args = vars(ap.parse_args())   # filter warnings, load the configuration and check if we are going to use server warnings.filterwarnings(&quot;ignore&quot;) conf = json.load(open(args[&quot;conf&quot;])) client = None   if conf[&quot;use_server&quot;]: \t#we do not use Dropbox \tprint(&quot;[INFO] you are using server&quot;)  # initialize the camera and grab a reference to the raw camera capture camera = PiCamera() camera.resolution = tuple(conf[&quot;resolution&quot;]) camera.framerate = conf[&quot;fps&quot;] rawCapture = PiRGBArray(camera, size=tuple(conf[&quot;resolution&quot;]))   # allow the camera to warmup, then initialize the average frame, last # uploaded timestamp, and frame motion counter print(&quot;[INFO] warming up...&quot;) time.sleep(conf[&quot;camera_warmup_time&quot;]) avg = None lastUploaded = datetime.datetime.now() motionCounter = 0  # capture frames from the camera for f in camera.capture_continuous(rawCapture, format=&quot;bgr&quot;, use_video_port=True): \t# grab the raw NumPy array representing the image and initialize \t# the timestamp and occupied\/unoccupied text \tframe = f.array \ttimestamp = datetime.datetime.now() \ttext = &quot;Unoccupied&quot;   \t# resize the frame,  \tframe = imutils.resize(frame, width=1920) \tframeorig = imutils.resize(frame, width=1920) \t# convert it to grayscale, and blur it\t \tgray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) \tgray = cv2.GaussianBlur(gray, (21, 21), 0)   \t# if the average frame is None, initialize it \tif avg is None: \t\tprint(&quot;[INFO] starting background model...&quot;) \t\tavg = gray.copy().astype(&quot;float&quot;) \t\trawCapture.truncate(0) \t\tcontinue   \t# accumulate the weighted average between the current frame and \t# previous frames, then compute the difference between the current \t# frame and running average \tcv2.accumulateWeighted(gray, avg, 0.5) \tframeDelta = cv2.absdiff(gray, cv2.convertScaleAbs(avg))  \t# threshold the delta image, dilate the thresholded image to fill \t# in holes, then find contours on thresholded image \tthresh = cv2.threshold(frameDelta, conf[&quot;delta_thresh&quot;], 255, \t\tcv2.THRESH_BINARY)[1] \tthresh = cv2.dilate(thresh, None, iterations=2) \t \tcnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) \tcnts = cnts[0] if imutils.is_cv2() else cnts[1]   \t# loop over the contours \t# check if there is at least one contour, which is large enough \t# I know this isn't the best practice \t# I know about bool variables \t# I know about other things too. I just don't actually care \t# Yes, I am a liar, 'cause if I did not care,  \t# I wouldn't write anything of those ^ \tfor c in cnts: \t\t# if the contour is too small, ignore it \t\tif cv2.contourArea(c) &lt; conf[&quot;min_area&quot;]: \t\t\tcontinue  \t\t \t\ttext = &quot;Occupied&quot; \t\tprint(&quot;[INFO] room is occupied, motion counter is {mc}&quot;.format(mc=motionCounter))   \t# initiate timestamp \tts = timestamp.strftime(&quot;%A-%d-%B-%Y-%I:%M:%S%p&quot;) \tts1 = timestamp.strftime(&quot;%A-%d-%B-%Y&quot;) \t# let's create paths on a server \tpathorig = &quot;{base_path}\/{timestamp}\/origs&quot;.format( \t\tbase_path=conf[&quot;server_base_path&quot;], timestamp=ts1) \tpathres = &quot;{base_path}\/{timestamp}\/res&quot;.format( \t\tbase_path=conf[&quot;server_base_path&quot;], timestamp=ts1) \t \tos.system('ssh -p bbbb &quot;%s&quot; &quot;%s %s&quot;' % (&quot;userB@hostB&quot;, &quot;sudo mkdir -p&quot;, pathorig)) \tos.system('ssh -p bbbb &quot;%s&quot; &quot;%s %s&quot;' % (&quot;userB@hostB&quot;, &quot;sudo mkdir -p&quot;, pathres)) \t  \t# upload images on a server \tif (text == &quot;Occupied&quot;):  \t\tmotionCounter += 1 \t\tif motionCounter &gt;= conf[&quot;min_motion_frames&quot;] and (timestamp - lastUploaded).seconds &gt;= conf[&quot;min_upload_seconds&quot;]: \t\t\tprint(&quot;[INFO] time to upload, motion counter is {mc}&quot;.format(mc=motionCounter)) \t\t \t\t\t# upload original \t\t\tt = TempImage() \t\t\tcv2.imwrite(t.path, frameorig) \t\t\tos.system('scp -P bbbb &quot;%s&quot; &quot;%s:%s&quot;' % (t.path, &quot;userB@hostB&quot;, pathorig)) \t\t\tt.cleanup() \t\t \t\t\t# upload resized image of 512 px \t\t \t\t\tframec = imutils.resize(frame, width=512) \t\t\t\t \t\t\ttc = TempImage() \t\t\tcv2.imwrite(tc.path, framec) \t\t\tos.system('scp -P bbbb &quot;%s&quot; &quot;%s:%s&quot;' % (tc.path, &quot;userB@hostB&quot;, pathres)) \t\t\ttc.cleanup() \t\t\t \t\t\t#reset motionCounter \t\t\tmotionCounter = 0 \t\t\tlastUploaded = datetime.datetime.now()\t   \t# otherwise, the room is not occupied \telse: \t\tmotionCounter = 0  \t# check to see if the frames should be displayed to screen \tif conf[&quot;show_video&quot;]: \t\t# display the security feed \t\tcv2.imshow(&quot;Security Feed&quot;, frame) \t\tkey = cv2.waitKey(1) & 0xFF   \t\t# if the `q` key is pressed, break from the loop \t\tif key == ord(&quot;q&quot;): \t\t\tbreak   \t# clear the stream in preparation for the next frame \trawCapture.truncate(0)<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430\u0448 \u043a\u043e\u043d\u0444\u0438\u0433:<\/p>\n<pre><code class=\"bash\">{         &quot;show_video&quot;: false,         &quot;use_server&quot;: true,         &quot;server_base_path&quot;: &quot;\/media\/server\/PIC_LOGS&quot;,         &quot;min_upload_seconds&quot;: 1.0,         &quot;min_motion_frames&quot;: 3,         &quot;camera_warmup_time&quot;: 2.5,         &quot;delta_thresh&quot;: 5,         &quot;resolution&quot;: [1920, 1080],         &quot;fps&quot;: 16,         &quot;min_area&quot;: 6000 } <\/code><\/pre>\n<p>\u0410 \u0442\u0430\u043a \u2014 tempimage.py:<\/p>\n<p>  <\/p>\n<pre><code class=\"python\"># import the necessary packages import uuid import os import datetime  class TempImage:         def __init__(self, basePath=&quot;.\/temps&quot;, ext=&quot;.jpg&quot;):                 # construct the file path                 timestamp = datetime.datetime.now()                 ts = timestamp.strftime(&quot;-%I:%M:%S%p&quot;)                 self.path = &quot;{base_path}\/{rand}{tmstp}{ext}&quot;.format(base_path=basePath,                         rand=str(uuid.uuid4())[:8], tmstp=ts, ext=ext)          def cleanup(self):                 # remove the file                 os.remove(self.path) <\/code><\/pre>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0431\u044b\u043b\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0445\u0432\u043e\u0441\u0442\u0430 \u043a\u0443\u0440\u0438\u0446\u044b \u0432 \u0433\u043d\u0435\u0437\u0434\u0435. \u041e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u043e\u0434\u0430\u0440\u043e\u043a \u043d\u0430 \u043c\u0430\u0439\u0441\u043a\u0438\u0435 \u0434\u043b\u044f \u0438\u043d\u0442\u0440\u043e\u0432\u0435\u0440\u0442\u0430 \u043f\u043e \u0436\u0438\u0437\u043d\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u043f\u043e\u0433\u043e\u0434\u0443 \u043f\u044f\u043b\u0438\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c. \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0434\u043e\u0432\u0430\u043b\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u0435\u043c\u0435\u043d\u044c, \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0433\u043e\u043b\u043e\u0432\u044b \u043f\u0442\u0438\u0446\u044b \u0432 \u043a\u0430\u0434\u0440\u0435 \u0438 \u043d\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u0430. \u042d\u0442\u043e \u043a\u0443\u0440\u0438\u043d\u044b\u0439 \u0445\u0432\u043e\u0441\u0442 (<i>\u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0439\u0442\u0435, \u0437\u0430 \u0442\u044b\u0441\u044f\u0447\u0443 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u043e\u0432 \u043e\u0442 \u0442\u0435\u0431\u044f \u043a\u0443\u0440\u0438\u0446\u0430 \u0437\u0430\u043b\u0435\u0437\u043b\u0430 \u0432 \u0433\u043d\u0435\u0437\u0434\u043e, \u043d\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u044f, \u0447\u0442\u043e \u0442\u044b \u0437\u0430 \u043d\u0435\u0439 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0448\u044c.<\/i>):<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/8a7\/a61\/1d9\/8a7a611d9ce0eda3b97830f3f7bf82b8.jpg\" alt=\"image\"\/><\/p>\n<p>\u041f\u043e\u0442\u043e\u043c \u0431\u044b\u043b\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435, \u0438 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/103\/4c1\/9e0\/1034c19e0d77ed52ae95d34034784179.jpg\" alt=\"image\"\/><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/22c\/7f2\/0af\/22c7f20af42d7f0aedf952984e3a7335.jpg\" alt=\"image\"\/><\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0440\u0438\u043f\u0442 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e OpenCV \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0440\u0435\u0434\u0435 cv, \u0432\u043e\u0442 \u0442\u0430\u043a (\u043d\u0430\u0434\u043e \u0431\u044b \u0435\u0449\u0435 \u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0442\u0430\u043a\u043e\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u0431\u0435\u043a\u0433\u0440\u0430\u0443\u043d\u0434):<\/p>\n<pre><code class=\"python\">source ~\/.profile workon cv cd ~\/chickencoop python3 \/home\/sshuser\/chickencoop\/pi_surveillance.py --conf conf.json<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d40\/911\/d37\/d40911d37901963162a331d7b2269483.jpg\" alt=\"image\"\/><br \/>  <i>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442&#8230;<\/i><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/327978\/\"> https:\/\/habrahabr.ru\/post\/327978\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f9c\/daf\/4cf\/f9cdaf4cf7bc84804afed29e674deaf0.jpg\" alt=\"image\"\/><br \/>  <i>\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0440\u0430\u0442 \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0442\u043e\u0431\u043e\u0439, \u043f\u0442\u0438\u0446\u0430!<\/i><\/p>\n<p>\u0418\u0434\u0435\u044f \u043f\u0440\u0438\u0448\u043b\u0430 \u0434\u0430\u0432\u043d\u043e. \u0423 \u043a\u043e\u0433\u043e-\u0442\u043e \u043c\u044b\u0441\u043b\u0438 \u043e\u0442\u0430\u043f\u043b\u0438\u0432\u0430\u0442\u044c \u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a\u0438 \u043c\u0430\u0439\u043d\u044f\u0449\u0438\u043c\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u0430\u043c\u0438 (\u043a\u0440\u0438\u043f\u0442\u043e\u043a\u0443\u0440\u044f\u0442\u043d\u0438\u043a), \u0447\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e, \u043d\u0435\u0441\u043e\u043c\u043d\u0435\u043d\u043d\u043e, \u0430 \u0443 \u043a\u043e\u0433\u043e-\u0442\u043e \u043c\u044b\u0441\u043b\u0438 \u0432 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0437\u0432\u0443\u043a\u043e\u0432, \u0432 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044f\u0445 \u0438 \u0438\u0445 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u0434\u0430\u0432\u043d\u043e \u0447\u0438\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u0440\u043e \u044f\u043f\u043e\u043d\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 <a href=\"https:\/\/cloud.google.com\/blog\/big-data\/2016\/08\/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow\">\u043f\u043e\u043c\u043e\u0433<\/a> \u043e\u0442\u0446\u0443 \u0441 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043e\u0433\u0443\u0440\u0446\u043e\u0432; \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0435\u0441\u0443\u0442\u0441\u044f \u043a\u0443\u0440\u044b \u0443 \u043d\u0430\u0448\u0438\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439, \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u044f \u0438\u043c \u043e\u0442\u0447\u0435\u0442\u044b \u0432 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440 \u2014  \u0438\u0434\u0435\u044f \u0438\u0437 \u0432\u0435\u0441\u0435\u043b\u044b\u0445.<\/p>\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-285887","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/285887","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=285887"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/285887\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=285887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=285887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=285887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}