{"id":320917,"date":"2021-04-05T21:00:25","date_gmt":"2021-04-05T21:00:25","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=320917"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=320917","title":{"rendered":"MQTT-SN"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432 \u0431\u043e\u043b\u0435\u0435 \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043f\u043e\u0445\u043e\u0436\u0435\u0433\u043e \u043d\u0430 \u043f\u043e\u043b\u044e\u0431\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043c\u043d\u0435 MQTT \u0434\u043b\u044f <a href=\"https:\/\/habr.com\/ru\/post\/370921\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 ESP8266<\/a> &#8212; \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0430, \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c MQTT For Sensor Networks (MQTT-SN).<\/p>\n<p>\u201cMQTT-SN \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043d\u0430 MQTT, \u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043a \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u0430\u043a\u0438\u043c \u043a\u0430\u043a \u043d\u0438\u0437\u043a\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c, \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u0431\u043e\u044f \u0432 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0445, \u043a\u043e\u0440\u043e\u0442\u043a\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438 \u0442.\u043f. \u0422\u0430\u043a\u0436\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0434\u0435\u0448\u0435\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u044b\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u0435\u043c \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.\u201d<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dd8\/7e6\/72a\/dd87e672aec93b4dcb18bbed14e3c633.png\" alt=\"\" title=\"\" width=\"2292\" height=\"584\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u0430\u043b\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435, \u043a\u043e\u0432\u044b\u0440\u044f\u043d\u0438\u0435 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u0441\u0442\u0430\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0438.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f MQTT-SN \u043e\u0442 \u201c\u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0431\u0440\u0430\u0442\u0430\u201d \u044d\u0442\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f , \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c, \u0437\u0430 \u0441\u0447\u0435\u0442 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u201c\u0441\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0439\u201d \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f QOS -1 &#8212; \u043a\u043e\u0433\u0434\u0430 \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u0442 TCP \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f UDP, UDP6, ZigBee, LoRaWAN, Bluetooth.<\/p>\n<p>\u041d\u0435 \u0431\u0443\u0434\u0443 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 &#8212; \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441\u043e <a href=\"https:\/\/www.oasis-open.org\/committees\/download.php\/66091\/MQTT-SN_spec_v1.2.pdf\" rel=\"noopener noreferrer nofollow\"><u>\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439<\/u> <\/a>MQTT-SN \u0432 OASIS. \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043b\u0438\u0448\u044c \u043f\u0430\u0440\u0443 \u0441\u0445\u0435\u043c \u0438\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e13\/f89\/a46\/e13f89a4636fab98fd935fcc56f7e546.png\" alt=\"\u0420\u0438\u0441.1 \u201c\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 MQTT-SN\u201d.\" title=\"\u0420\u0438\u0441.1 \u201c\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 MQTT-SN\u201d.\" width=\"1297\" height=\"785\"><figcaption>\u0420\u0438\u0441.1 \u201c\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 MQTT-SN\u201d.<\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0437\u0430 &#8212; \u043d\u0430\u043b\u0438\u0447\u0438\u0435 MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u0430 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0448\u043b\u044e\u0437\u043e\u0432 \u0438 \u0444\u043e\u0440\u0432\u0430\u0440\u0434\u0435\u0440 MQTT-SN (\u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 DNS). \u0410 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u201c\u0441\u0435\u0442\u0438 \u0441\u0435\u043d\u0441\u043e\u0440\u043e\u0432\u201d \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 MQTT \u0431\u0440\u043e\u043a\u0435\u0440 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c.&nbsp;<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u043e\u0431\u043c\u0435\u043d\u0430 \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>MQTT-SN \u043a\u043b\u0438\u0435\u043d\u0442\u044b (\u043a\u0430\u043a \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0435 \u0442\u0430\u043a \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f) &#8212; \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043a MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u0443, \u0447\u0435\u0440\u0435\u0437 MQTT-SN \u0448\u043b\u044e\u0437\u044b.<\/p>\n<\/li>\n<li>\n<p>MQTT-SN \u0448\u043b\u044e\u0437 &#8212; \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f &#171;\u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f&#187; \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f MQTT-SN \u2194 MQTT.<\/p>\n<\/li>\n<li>\n<p>MQTT-SN \u0444\u043e\u0440\u0432\u0430\u0440\u0434\u0435\u0440 &#8212; \u0435\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0448\u043b\u044e\u0437, \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e.<\/p>\n<\/li>\n<li>\n<p>MQTT \u0431\u0440\u043e\u043a\u0435\u0440 &#8212; \u0441\u0435\u0440\u0432\u0435\u0440, \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0435 \u044f\u0434\u0440\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0435\u043c \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e0b\/f2d\/b8b\/e0bf2db8bc04404f232ac63790842892.png\" alt=\"\u0420\u0438\u0441.2 \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0435 \u0438 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0448\u043b\u044e\u0437\u044b.\" title=\"\u0420\u0438\u0441.2 \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0435 \u0438 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0448\u043b\u044e\u0437\u044b.\" width=\"1337\" height=\"446\"><figcaption>\u0420\u0438\u0441.2 \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0435 \u0438 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0448\u043b\u044e\u0437\u044b.<\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0439 MQTT-\u0431\u0440\u043e\u043a\u0435\u0440 \u0438 \u0434\u0432\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b MQTT-SN \u0448\u043b\u044e\u0437\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u0412 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0448\u043b\u044e\u0437 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u043c. \u042d\u0442\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0433\u043e \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0433\u043e \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0438 \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u043c. \u0428\u043b\u044e\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438. \u041d\u0443 \u0438 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0435\u0441\u044c \u043e\u0431\u043c\u0435\u043d \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043a\u0432\u043e\u0437\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438, \u0448\u043b\u044e\u0437 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u043c. \u0412\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u0438 \u0448\u043b\u044e\u0437\u043e\u043c, \u0430 \u0443\u0436\u0435 \u0448\u043b\u044e \u0440\u0435\u0448\u0430\u0435\u0442 \u0447\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u0440\u043e\u043a\u0435\u0440\u0443 \u0438\u043b\u0438 \u043a\u0430\u043a\u043e\u043c\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442 MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0443 \u0447\u0442\u043e \u0436\u0435 &#8212; \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b Ubuntu 20.04 \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c 10.10.10.10\/24.<\/p>\n<h2>MQTT<\/h2>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Eclipse Mosquitto:<\/p>\n<pre><code>sudo apt install mosquitto<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0442.\u043f. \u041d\u043e \u044f \u043a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435. \u0425\u043e\u0442\u044f \u0435\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c MQTT\/MQTT-SN \u043d\u0430 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438\u043c\u0435\u044e\u0442\u0441\u044f. \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f &#8212; \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e Python \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/pypi.org\/project\/paho-mqtt\/\" rel=\"noopener noreferrer nofollow\"><u>paho-mqtt<\/u><\/a>.<\/p>\n<pre><code>pip install paho-mqtt<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u0438\u043f\u0442, \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0438\u0439 \u0432 \u0442\u043e\u043f\u0438\u043a \u201chabr\u201d \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u201cHello Habrahabr!\u201d:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import paho.mqtt.publish as publish  msg = \"Hello Habrahabr!\"  publish.single(\"habr\", msg, hostname=\"10.10.10.10\", port=1883)<\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u0438\u043f\u0442, \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0442\u043e\u043f\u0438\u043a \u201chabr\u201d \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import paho.mqtt.client as mqtt  def on_connect(client, userdata, flags, rc):     client.subscribe(\"habr\/#\")  def on_message(client, userdata, msg):     print(msg.topic + ' ' + str(msg.payload))  client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message  client.connect(\"10.10.10.10\", 1883, 60) client.loop_forever()<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0427\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0441 MQTT \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0431\u043b\u043e\u0433 <a href=\"http:\/\/www.steves-internet-guide.com\/\" rel=\"noopener noreferrer nofollow\"><u>Steve\u2019s Internet Guide<\/u><\/a>, \u043d\u0443 \u0438 \u043f\u043e\u0438\u0441\u043a \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0445\u0430\u0431\u0440\u0443, \u043a\u043e\u043d\u0435\u0447\u043d\u043e. <\/p>\n<h2>MQTT-SN<\/h2>\n<p>\u0423\u0431\u0435\u0434\u0438\u0432\u0448\u0438\u0441\u044c \u0447\u0442\u043e \u043d\u0430\u0448 \u0431\u0440\u043e\u043a\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u044d\u0442\u0430\u043f\u0443. \u042f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0448\u043b\u044e\u0437 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f paho.mqtt-sn.embedded-c, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0448\u043b\u044e\u0437\u0430 \u0432 \u043d\u0430\u0448\u0435\u0439 \u041e\u0421.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438:<\/p>\n<pre><code>sudo apt-get install build-essential libssl-dev<\/code><\/pre>\n<p>\u041a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441\u0435\u0431\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441\u043e \u0448\u043b\u044e\u0437\u043e\u043c \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c:   <\/p>\n<pre><code>git clone -b develop https:\/\/github.com\/eclipse\/paho.mqtt-sn.embedded-c cd paho.mqtt-sn.embedded-c\/MQTTSNGateway make install make clean<\/code><\/pre>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0430\u043a\u0435\u0442 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u043a\u0443\u0434\u0430 \u0432\u044b \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 &#8212; \u0435\u0441\u043b\u0438 \u0432\u044b \u043a\u0430\u043a \u0438 \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043f\u043e\u043a\u0430 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0438\u0441\u044c &#8212; \u0442\u043e \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u044e\u044e \ud83d\ude09 \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0448\u043b\u044e\u0437\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 sudo. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0443\u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u043e. \u041d\u0430\u0448\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f (\u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u044f \u0443\u0431\u0440\u0430\u043b \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438).<\/p>\n<details class=\"spoiler\">\n<summary>\u041d\u0430\u0448\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f (\u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u044f \u0443\u0431\u0440\u0430\u043b \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438):<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>BrokerName=localhost BrokerPortNo=1883 BrokerSecurePortNo=8883  ClientAuthentication=NO AggregatingGateway=NO QoS-1=NO Forwarder=NO PredefinedTopic=NO GatewayID=1 GatewayName=Paho-MQTT-SN-Gateway KeepAlive=900 # UDP GatewayPortNo=10000 MulticastIP=225.1.1.1 MulticastPortNo=1885 MulticastTTL=1<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041a\u0430\u043a \u0438 \u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0434\u0435\u043b\u0430\u0435\u043c \u0441 \u201csudo\u201d \u0438\u0437 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438: <\/p>\n<details class=\"spoiler\">\n<summary>gateway.conf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>sudo .\/MQTT-SNGateway   ***************************************************************************  * MQTT-SN Gateway  * Part of Project Paho in Eclipse  * (http:\/\/git.eclipse.org\/c\/paho\/org.eclipse.paho.mqtt-sn.embedded-c.git\/)  *  * Author : Tomoaki YAMAGUCHI  * Version: 1.4.0  ***************************************************************************  20210404 224219.274 Paho-MQTT-SN-Gateway has been started.   ConfigFile: .\/gateway.conf  SensorN\/W:  UDP Multicast 225.1.1.1:1885 Gateway Port 10000 TTL: 1  Broker:     localhost : 1883, 8883  RootCApath: (null)  RootCAfile: (null)  CertKey:    (null)  PrivateKey: (null)<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u043d\u0430\u0448\u0435\u043c\u0443 \u0448\u043b\u044e\u0437\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 MQTT-\u0431\u0440\u043e\u043a\u0435\u0440\u0443, \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u043e\u0442 \u0436\u0435 Python \u0438 <a href=\"https:\/\/github.com\/ehong-tl\/mqttsn-python3-micropython\" rel=\"noopener noreferrer nofollow\"><u>MQTT-SN client for Python 3 and Micropython<\/u><\/a>. \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0438 \u043f\u0440\u0438\u0435\u043c\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0432 \u0438\u0445, \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u0438\u0437 MQTT \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043a\u0443\u0434\u0430-\u043b\u0438\u0431\u043e, \u0442\u0430\u043a \u0438 \u0438\u0437 MQTT-SN \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430. <\/p>\n<details class=\"spoiler\">\n<summary>mqttsn_publisher.py<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from mqttsn.MQTTSNclient import Client import struct import time import sys  class Callback:      def published(self, MsgId):         print(\"Published\")  def connect_gateway():     try:         while True:             try:                 aclient.connect()                 print('Connected to gateway...')                 break             except:                 print('Failed to connect to gateway, reconnecting...')                 time.sleep(1)     except KeyboardInterrupt:         print('Exiting...')         sys.exit()  def register_topic():     global topic     topic = aclient.register(\"habr\")     print(\"topic registered.\")  aclient = Client(\"mqtt_sn_client\", \"10.10.10.10\", port=10000) aclient.registerCallback(Callback()) connect_gateway()  topic = None register_topic()  payload = \u2018Hello Habrahabr!\u2019  pub_msgid = aclient.publish(topic, payload, qos=0)  aclient.disconnect() print(\"Disconnected from gateway.\")<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041d\u0435 \u0431\u0443\u0434\u0443 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 &#8212; \u0435\u0441\u043b\u0438 \u0434\u043e \u044d\u0442\u0438\u0445 \u043f\u043e\u0440 \u0432\u0441\u0435 \u0443 \u0432\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c &#8212; \u0434\u0443\u043c\u0430\u044e \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u0442\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \ud83d\ude09 <\/p>\n<h2>ESP8266  <\/h2>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u0432\u0435\u0441\u0435\u043b\u044c\u044f. \u0411\u0443\u0434\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u043d\u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 esp8266.<\/p>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438 \u043d\u0438 \u043e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0438\u0445 \u0443 \u043c\u0435\u043d\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0435 \u0437\u0430\u0432\u0435\u043b\u0430\u0441\u044c \u201c\u0431\u0435\u0437 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u043f\u0438\u043b\u044c\u043d\u0438\u043a\u043e\u043c\u00bb. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0443 MQTT-SN \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0443 \u043d\u0435\u043a\u043e\u0435\u0433\u043e Gabriel Nikol \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/S3ler\/arduino-mqtt-sn-client#arduino-mqtt-sn-client\" rel=\"noopener noreferrer nofollow\"><u>arduino-mqtt-sn-client<\/u><\/a> \u043d\u0430 GitHub.<\/p>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 1.<\/strong> \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u043b\u044e\u0437\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u044f \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b), \u043d\u043e \u0441 Paho \u043d\u0438 \u0432 \u043a\u0430\u043a\u0443\u044e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442. \u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u043d\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0432\u0438\u0441\u044f\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0448\u0430\u0442\u044c. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c, \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u043d\u043e <a href=\"https:\/\/github.com\/S3ler\/arduino-mqtt-sn-client\/issues\/3\" rel=\"noopener noreferrer nofollow\"><u>\u0437\u0434\u0435\u0441\u044c \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435<\/u><\/a> \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0442\u0438\u043f\u043e\u0432 \u0442\u043e\u043f\u0438\u043a\u0430 \u0438 &#8212; \u0432\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c! \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f &#8212; \u043a\u0440\u0430\u0441\u043e\u0442\u0430.<\/p>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 2.<\/strong>&nbsp;\u041d\u043e \u043f\u0440\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0438 \u043d\u0430 \u0442\u043e\u043f\u0438\u043a\u0438 &#8212; \u043c\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u201c0x00\u201d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u043c \u043a\u043e\u043d\u0446\u0430 \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0443 \u043d\u0430\u0441 \u0432\u043e \u0432\u0441\u0435\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043d\u0435\u0442. \u041f\u0440\u043e\u0431\u0435\u0436\u0430\u0432\u0448\u0438\u0441\u044c \u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u044f \u0438 \u043f\u0440\u0430\u0432\u0434\u0430 \u043d\u0435 \u043d\u0430\u0448\u0435\u043b, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a &#8212; \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u044d\u0442\u043e \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u0415\u0449\u0435 \u0441\u0442\u0430\u043b\u0438 \u043d\u0430 \u0448\u0430\u0433 \u0431\u043b\u0438\u0436\u0435! \u0427\u0442\u043e \u043c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0442\u043e \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c.<\/p>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 3.<\/strong>&nbsp;\u0414\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 MQTT \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 &#8212; \u0442\u0430\u043a \u043c\u0435\u043d\u044c\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, 16 (4 \u0447\u0438\u0441\u043b\u0430 \u0442\u0438\u043f\u0430 float) \u0432\u043c\u0435\u0441\u0442\u043e 32 (\u0435\u0441\u043b\u0438 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0437\u043d\u0430\u043a \u0434\u043e \u0438 6 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439). \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 char, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a ASCII-\u0441\u0438\u043c\u0432\u043e\u043b. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0438 \u0442\u0430\u043a\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c &#8212; \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442\u043e\u0432.<\/p>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 4.<\/strong>&nbsp;\u0417\u0430\u043c\u0435\u0442\u0438\u043b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0438 \u043f\u0435\u0440\u0432\u044b\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u043e \u0448\u043b\u044e\u0437\u043e\u043c. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0447\u0435\u043c \u0434\u0435\u043b\u043e. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &#8212; \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043d\u0430\u0448 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u043f\u0438\u0442 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 10 \u0441\u0435\u043a\u0443\u043d\u0434, \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c 20. \u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043d\u0430 50 \u043c\u0441 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e 100 \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 &#8212; \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u044f \u0434\u0443\u043c\u0430\u044e \u044d\u0442\u043e\u0433\u043e \u0445\u0432\u0430\u0442\u0438\u0442 &#8212; \u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u043d\u043e \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0434\u043e 5 (\u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u201c\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0438\u0440\u0435\u201d \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442).<\/p>\n<p>\u041d\u0443 \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b, \u0438 \u0435\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u0439\u0434\u0435\u0442 &#8212; \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0430\u0432\u0442\u043e\u0440\u0443 (\u043a\u0430\u043a \u0442\u043e \u201c\u043c\u0435\u043d\u044f \u0442\u0435\u0440\u0437\u0430\u044e\u0442 \u0441\u043c\u0443\u0442\u043d\u044b\u0435 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u044f\u201d, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0435, \u043d\u043e \u0437\u0430 \u0441\u043f\u0440\u043e\u0441 &#8212; \u043d\u0435 \u0431\u044c\u044e\u0442 \u0432 \u043d\u043e\u0441).<\/p>\n<details class=\"spoiler\">\n<summary>main.cpp<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">#include &lt;I2Cdev.h&gt; #include &lt;MPU9250_9Axis_MotionApps41.h&gt; #include &lt;ESP8266WiFi.h&gt; #include &lt;WiFiUdp.h&gt; #include &lt;WiFiUdpSocket.h&gt; #include &lt;MqttSnClient.h&gt; #include &lt;ArduinoOTA.h&gt;  const char* ssid     = \"habr\"; const char* password = \"Hello Habrahabr!\";  MPU9250 mpu;  #define SDA 4 #define SCL 5  IPAddress ip(10, 10, 10, 30); IPAddress gateway(10, 10, 10, 1); IPAddress subnet(255, 255, 255, 0); IPAddress gatewayIPAddress(10, 10, 10, 100); uint16_t localUdpPort = 10000;  WiFiUDP udp; WiFiUdpSocket wiFiUdpSocket(udp, localUdpPort); MqttSnClient&lt;WiFiUdpSocket&gt; mqttSnClient(wiFiUdpSocket);  const char* clientId = \"thigh_l\"; char* subscribeTopicName = \"main\"; char* publishTopicName = \"adam\/thigh_l\"; String messageMQTT;  uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer[48]; bool blinkState = false; bool sendQuat = false;  Quaternion q;  int8_t qos = 0;  void mqttsn_callback(char *topic, uint8_t *payload, uint16_t length, bool retain) {   for (uint16_t i = 0; i &lt; length; i++) {     messageMQTT += (char)payload[i];   }   if (messageMQTT == \"start1\"){     sendQuat = true;     messageMQTT = \"\";   }   else if (messageMQTT == \"stop\") {     sendQuat = false;     messageMQTT = \"\";   } }  void setup_wifi() {   delay(10);   WiFi.setSleepMode(WIFI_NONE_SLEEP);   WiFi.mode(WIFI_STA);   WiFi.config(ip, gateway, subnet);   WiFi.begin(ssid, password);   while (WiFi.status() != WL_CONNECTED) {     delay(50);   } }  void convertIPAddressAndPortToDeviceAddress(IPAddress&amp; source, uint16_t port, device_address&amp; target) {   target.bytes[0] = source[0];   target.bytes[1] = source[1];   target.bytes[2] = source[2];   target.bytes[3] = source[3];   target.bytes[4] = port &gt;&gt; 8;   target.bytes[5] = (uint8_t) port ; }  void setup() {   Wire.begin(SDA, SCL);   Wire.setClock(400000);   Serial.begin(115200);   setup_wifi();   mpu.initialize();   mpu.dmpInitialize();   mpu.setDMPEnabled(true);   packetSize = mpu.dmpGetFIFOPacketSize();   fifoCount = mpu.getFIFOCount();   ArduinoOTA.onStart([]() {   });   ArduinoOTA.onEnd([]() {   });   ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {   });   ArduinoOTA.onError([](ota_error_t error) {     if (error == OTA_AUTH_ERROR) Serial.println(\"Auth Failed\");     else if (error == OTA_BEGIN_ERROR) Serial.println(\"Begin Failed\");     else if (error == OTA_CONNECT_ERROR) Serial.println(\"Connect Failed\");     else if (error == OTA_RECEIVE_ERROR) Serial.println(\"Receive Failed\");     else if (error == OTA_END_ERROR) Serial.println(\"End Failed\");   });   ArduinoOTA.begin();   pinMode(LED_BUILTIN, OUTPUT);   mqttSnClient.begin();   device_address gateway_device_address;   convertIPAddressAndPortToDeviceAddress(gatewayIPAddress, localUdpPort, gateway_device_address);   mqttSnClient.connect(&amp;gateway_device_address, clientId, 180);   mqttSnClient.setCallback(mqttsn_callback);   mqttSnClient.subscribe(subscribeTopicName, qos); }  void loop() {   fifoCount = mpu.getFIFOCount();     if (fifoCount == 1024) {       mpu.resetFIFO();       }     else if (fifoCount % packetSize != 0) {       mpu.resetFIFO();       }     else if (fifoCount &gt;= packetSize  &amp;&amp; sendQuat) {         mpu.getFIFOBytes(fifoBuffer, packetSize);         fifoCount -= packetSize;         mpu.dmpGetQuaternion(&amp;q, fifoBuffer);         mqttSnClient.publish((uint8_t*)&amp;q, publishTopicName, qos);         blinkState = !blinkState;         digitalWrite(LED_BUILTIN, blinkState);         mpu.resetFIFO();       }   ArduinoOTA.handle();   mqttSnClient.loop(); }<\/code><\/pre>\n<\/div>\n<\/details>\n<h2>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>\u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u0422\u0430\u043a \u043b\u0438 \u0443\u0436\u0435 \u0445\u043e\u0440\u043e\u0448 MQTT-SN \u043f\u0440\u043e\u0442\u0438\u0432 MQTT, \u0432\u0435\u0434\u044c \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c 15 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0441 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438, \u0438 \u0432 \u0441\u0432\u043e\u0435\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043f\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u0443 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b MQTT, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0442\u043e\u043f\u0438\u043a \u201cmain\u201d \u0438 \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 (\u0442.\u0435. \u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u043e\u0441\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0441\u044f \u043e\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 0,5\u2070). \u041d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0431\u044b\u043b\u0430 \u0441\u0432\u043e\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 + \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 50 \u0413\u0446 \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0438 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u0432.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0430\u0440\u0443 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. \u042f \u0441\u0435\u0431\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u041f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430, \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u0438\u0448\u0435\u043c \u0432 \u0444\u0430\u0439\u043b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u0434\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0435 \u0437\u0430\u0434\u0430\u0447 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u201cMQTTSN-Gateway\u201d. \u041f\u0440\u043e\u0441\u0442\u043e, \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0442\u0440\u0443\u0434\u043e\u0435\u043c\u043a\u043e &#8212; \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u043e \u043b\u0435\u043d\u044c. \u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u043f\u043e\u0434\u043e\u0436\u0434\u0443 \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043f\u043b\u0430\u0442\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f50\/22b\/ded\/f5022bded9e631ed6a04f54dba2961d4.jpeg\" alt=\"\u0420\u0438\u04413. \u041f\u0435\u0440\u0432\u0435\u043d\u0435\u0446 \u0441 \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u0430\u043c\u0438\" title=\"\u0420\u0438\u04413. \u041f\u0435\u0440\u0432\u0435\u043d\u0435\u0446 \u0441 \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u0430\u043c\u0438\" width=\"1738\" height=\"977\"><figcaption>\u0420\u0438\u04413. \u041f\u0435\u0440\u0432\u0435\u043d\u0435\u0446 \u0441 \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u0430\u043c\u0438<\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0430 \u0432\u0441\u0435 \u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043e\u0445\u043e\u0434\u044f\u0442, \u043c\u044b \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430 UDP, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u201c\u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438, \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445\u201d. \u041d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 5 \u043c\u0438\u043d\u0443\u0442 \u0434\u0435\u043b\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 &#8212; \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u043b \u0432\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u0435\u043c\u0430 \u0432 \u0444\u0430\u0439\u043b, \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u043b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 \u0438 \u0442\u0430\u043a \u0436\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u0435\u043c\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u0430\u0439\u043b. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u0435 13200 \u0441\u0442\u0440\u043e\u043a \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0432 100%, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0438 \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e. \u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 \u0437\u0430\u0434\u0430\u0447 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 24-48 \u041a\u0431\u0438\u0442\/\u0441 \u0438 170-200 \u041a\u0431\u0438\u0442\/\u0441 \u043d\u0430 \u043e\u0442\u0434\u0430\u0447\u0443. \u041f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u0436\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u043e \u0441 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c MQTT \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0430 48-64 \u0438 200-300 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041c\u043e\u0436\u0435\u0442\u0435 \u043c\u043d\u0435 \u043d\u0435 \u0432\u0435\u0440\u0438\u0442\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0430\u043c\u0438:) \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u043d\u0430\u043b\u0438\u0446\u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430, \u043d\u043e \u044d\u0442\u043e \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430.<\/p>\n<p>\u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e &#8212; <a href=\"https:\/\/github.com\/kharlashkin\/mqtt-sn-esp8266\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a> \u043d\u0430 <s>\u044d\u0442\u043e\u0442 \u0432\u0435\u0441\u044c \u0433\u043e\u0432\u043d\u043e\u043a\u043e\u0434<\/s> \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442&#8230;<\/p>\n<\/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=\"https:\/\/habr.com\/ru\/post\/550902\/\"> https:\/\/habr.com\/ru\/post\/550902\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432 \u0431\u043e\u043b\u0435\u0435 \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043f\u043e\u0445\u043e\u0436\u0435\u0433\u043e \u043d\u0430 \u043f\u043e\u043b\u044e\u0431\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043c\u043d\u0435 MQTT \u0434\u043b\u044f <a href=\"https:\/\/habr.com\/ru\/post\/370921\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 ESP8266<\/a> &#8212; \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0430, \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c MQTT For Sensor Networks (MQTT-SN).<\/p>\n<p>\u201cMQTT-SN \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043d\u0430 MQTT, \u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043a \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u0430\u043a\u0438\u043c \u043a\u0430\u043a \u043d\u0438\u0437\u043a\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c, \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u0431\u043e\u044f \u0432 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u0445, \u043a\u043e\u0440\u043e\u0442\u043a\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438 \u0442.\u043f. \u0422\u0430\u043a\u0436\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0434\u0435\u0448\u0435\u0432\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043d\u044b\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u0435\u043c \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.\u201d<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u0430\u043b\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435, \u043a\u043e\u0432\u044b\u0440\u044f\u043d\u0438\u0435 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u0441\u0442\u0430\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0438.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f MQTT-SN \u043e\u0442 \u201c\u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0431\u0440\u0430\u0442\u0430\u201d \u044d\u0442\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f , \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c, \u0437\u0430 \u0441\u0447\u0435\u0442 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u201c\u0441\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0439\u201d \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f QOS -1 &#8212; \u043a\u043e\u0433\u0434\u0430 \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u0442 TCP \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f UDP, UDP6, ZigBee, LoRaWAN, Bluetooth.<\/p>\n<p>\u041d\u0435 \u0431\u0443\u0434\u0443 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 &#8212; \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441\u043e <a href=\"https:\/\/www.oasis-open.org\/committees\/download.php\/66091\/MQTT-SN_spec_v1.2.pdf\" rel=\"noopener noreferrer nofollow\"><u>\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439<\/u> <\/a>MQTT-SN \u0432 OASIS. \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043b\u0438\u0448\u044c \u043f\u0430\u0440\u0443 \u0441\u0445\u0435\u043c \u0438\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430:<\/p>\n<figure class=\"full-width\"><figcaption>\u0420\u0438\u0441.1 \u201c\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 MQTT-SN\u201d.<\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0437\u0430 &#8212; \u043d\u0430\u043b\u0438\u0447\u0438\u0435 MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u0430 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0448\u043b\u044e\u0437\u043e\u0432 \u0438 \u0444\u043e\u0440\u0432\u0430\u0440\u0434\u0435\u0440 MQTT-SN (\u043d\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 DNS). \u0410 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u201c\u0441\u0435\u0442\u0438 \u0441\u0435\u043d\u0441\u043e\u0440\u043e\u0432\u201d \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 MQTT \u0431\u0440\u043e\u043a\u0435\u0440 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c.&nbsp;<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u043e\u0431\u043c\u0435\u043d\u0430 \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>MQTT-SN \u043a\u043b\u0438\u0435\u043d\u0442\u044b (\u043a\u0430\u043a \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0435 \u0442\u0430\u043a \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f) &#8212; \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043a MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u0443, \u0447\u0435\u0440\u0435\u0437 MQTT-SN \u0448\u043b\u044e\u0437\u044b.<\/p>\n<\/li>\n<li>\n<p>MQTT-SN \u0448\u043b\u044e\u0437 &#8212; \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f &#171;\u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f&#187; \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f MQTT-SN \u2194 MQTT.<\/p>\n<\/li>\n<li>\n<p>MQTT-SN \u0444\u043e\u0440\u0432\u0430\u0440\u0434\u0435\u0440 &#8212; \u0435\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0448\u043b\u044e\u0437, \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e.<\/p>\n<\/li>\n<li>\n<p>MQTT \u0431\u0440\u043e\u043a\u0435\u0440 &#8212; \u0441\u0435\u0440\u0432\u0435\u0440, \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0435 \u044f\u0434\u0440\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0435\u043c \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><figcaption>\u0420\u0438\u0441.2 \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0435 \u0438 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0448\u043b\u044e\u0437\u044b.<\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0439 MQTT-\u0431\u0440\u043e\u043a\u0435\u0440 \u0438 \u0434\u0432\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b MQTT-SN \u0448\u043b\u044e\u0437\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u0412 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0448\u043b\u044e\u0437 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u043c. \u042d\u0442\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0433\u043e \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0433\u043e \u043e\u0431\u043c\u0435\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0438 \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u043c. \u0428\u043b\u044e\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438. \u041d\u0443 \u0438 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0435\u0441\u044c \u043e\u0431\u043c\u0435\u043d \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043a\u0432\u043e\u0437\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438, \u0448\u043b\u044e\u0437 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u043e\u043c. \u0412\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u0438 \u0448\u043b\u044e\u0437\u043e\u043c, \u0430 \u0443\u0436\u0435 \u0448\u043b\u044e \u0440\u0435\u0448\u0430\u0435\u0442 \u0447\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u0440\u043e\u043a\u0435\u0440\u0443 \u0438\u043b\u0438 \u043a\u0430\u043a\u043e\u043c\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442 MQTT \u0431\u0440\u043e\u043a\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0443 \u0447\u0442\u043e \u0436\u0435 &#8212; \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b Ubuntu 20.04 \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c 10.10.10.10\/24.<\/p>\n<h2>MQTT<\/h2>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Eclipse Mosquitto:<\/p>\n<pre><code>sudo apt install mosquitto<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0442.\u043f. \u041d\u043e \u044f \u043a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435. \u0425\u043e\u0442\u044f \u0435\u0441\u043b\u0438 \u0432\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c MQTT\/MQTT-SN \u043d\u0430 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438\u043c\u0435\u044e\u0442\u0441\u044f. \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f &#8212; \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e Python \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/pypi.org\/project\/paho-mqtt\/\" rel=\"noopener noreferrer nofollow\"><u>paho-mqtt<\/u><\/a>.<\/p>\n<pre><code>pip install paho-mqtt<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u0438\u043f\u0442, \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0438\u0439 \u0432 \u0442\u043e\u043f\u0438\u043a \u201chabr\u201d \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u201cHello Habrahabr!\u201d:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import paho.mqtt.publish as publish  msg = \"Hello Habrahabr!\"  publish.single(\"habr\", msg, hostname=\"10.10.10.10\", port=1883)<\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u0438\u043f\u0442, \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0442\u043e\u043f\u0438\u043a \u201chabr\u201d \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import paho.mqtt.client as mqtt  def on_connect(client, userdata, flags, rc):     client.subscribe(\"habr\/#\")  def on_message(client, userdata, msg):     print(msg.topic + ' ' + str(msg.payload))  client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message  client.connect(\"10.10.10.10\", 1883, 60) client.loop_forever()<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0427\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0441 MQTT \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0431\u043b\u043e\u0433 <a href=\"http:\/\/www.steves-internet-guide.com\/\" rel=\"noopener noreferrer nofollow\"><u>Steve\u2019s Internet Guide<\/u><\/a>, \u043d\u0443 \u0438 \u043f\u043e\u0438\u0441\u043a \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0445\u0430\u0431\u0440\u0443, \u043a\u043e\u043d\u0435\u0447\u043d\u043e. <\/p>\n<h2>MQTT-SN<\/h2>\n<p>\u0423\u0431\u0435\u0434\u0438\u0432\u0448\u0438\u0441\u044c \u0447\u0442\u043e \u043d\u0430\u0448 \u0431\u0440\u043e\u043a\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u044d\u0442\u0430\u043f\u0443. \u042f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0448\u043b\u044e\u0437 \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f paho.mqtt-sn.embedded-c, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0448\u043b\u044e\u0437\u0430 \u0432 \u043d\u0430\u0448\u0435\u0439 \u041e\u0421.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438:<\/p>\n<pre><code>sudo apt-get install build-essential libssl-dev<\/code><\/pre>\n<p>\u041a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441\u0435\u0431\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441\u043e \u0448\u043b\u044e\u0437\u043e\u043c \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c:   <\/p>\n<pre><code>git clone -b develop https:\/\/github.com\/eclipse\/paho.mqtt-sn.embedded-c cd paho.mqtt-sn.embedded-c\/MQTTSNGateway make install make clean<\/code><\/pre>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0430\u043a\u0435\u0442 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u043a\u0443\u0434\u0430 \u0432\u044b \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 &#8212; \u0435\u0441\u043b\u0438 \u0432\u044b \u043a\u0430\u043a \u0438 \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043f\u043e\u043a\u0430 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0438\u0441\u044c &#8212; \u0442\u043e \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u044e\u044e \ud83d\ude09 \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0448\u043b\u044e\u0437\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 sudo. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0443\u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u043e. \u041d\u0430\u0448\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f (\u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u044f \u0443\u0431\u0440\u0430\u043b \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438).<\/p>\n<details class=\"spoiler\">\n<summary>\u041d\u0430\u0448\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f (\u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u044f \u0443\u0431\u0440\u0430\u043b \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438):<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>BrokerName=localhost BrokerPortNo=1883 BrokerSecurePortNo=8883  ClientAuthentication=NO AggregatingGateway=NO QoS-1=NO Forwarder=NO PredefinedTopic=NO GatewayID=1 GatewayName=Paho-MQTT-SN-Gateway KeepAlive=900 # UDP GatewayPortNo=10000 MulticastIP=225.1.1.1 MulticastPortNo=1885 MulticastTTL=1<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041a\u0430\u043a \u0438 \u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0434\u0435\u043b\u0430\u0435\u043c \u0441 \u201csudo\u201d \u0438\u0437 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438: <\/p>\n<details class=\"spoiler\">\n<summary>gateway.conf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>sudo .\/MQTT-SNGateway   ***************************************************************************  * MQTT-SN Gateway  * Part of Project Paho in Eclipse  * (http:\/\/git.eclipse.org\/c\/paho\/org.eclipse.paho.mqtt-sn.embedded-c.git\/)  *  * Author : Tomoaki YAMAGUCHI  * Version: 1.4.0  ***************************************************************************  20210404 224219.274 Paho-MQTT-SN-Gateway has been started.   ConfigFile: .\/gateway.conf  SensorN\/W:  UDP Multicast 225.1.1.1:1885 Gateway Port 10000 TTL: 1  Broker:     localhost : 1883, 8883  RootCApath: (null)  RootCAfile: (null)  CertKey:    (null)  PrivateKey: (null)<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u043d\u0430\u0448\u0435\u043c\u0443 \u0448\u043b\u044e\u0437\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 MQTT-\u0431\u0440\u043e\u043a\u0435\u0440\u0443, \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u043e\u0442 \u0436\u0435 Python \u0438 <a href=\"https:\/\/github.com\/ehong-tl\/mqttsn-python3-micropython\" rel=\"noopener noreferrer nofollow\"><u>MQTT-SN client for Python 3 and Micropython<\/u><\/a>. \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0438 \u043f\u0440\u0438\u0435\u043c\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0432 \u0438\u0445, \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u0438\u0437 MQTT \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043a\u0443\u0434\u0430-\u043b\u0438\u0431\u043e, \u0442\u0430\u043a \u0438 \u0438\u0437 MQTT-SN \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430. <\/p>\n<details class=\"spoiler\">\n<summary>mqttsn_publisher.py<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from mqttsn.MQTTSNclient import Client import struct import time import sys  class Callback:      def published(self, MsgId):         print(\"Published\")  def connect_gateway():     try:         while True:             try:                 aclient.connect()                 print('Connected to gateway...')                 break             except:                 print('Failed to connect to gateway, reconnecting...')                 time.sleep(1)     except KeyboardInterrupt:         print('Exiting...')         sys.exit()  def register_topic():     global topic     topic = aclient.register(\"habr\")     print(\"topic registered.\")  aclient = Client(\"mqtt_sn_client\", \"10.10.10.10\", port=10000) aclient.registerCallback(Callback()) connect_gateway()  topic = None register_topic()  payload = \u2018Hello Habrahabr!\u2019  pub_msgid = aclient.publish(topic, payload, qos=0)  aclient.disconnect() print(\"Disconnected from gateway.\")<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041d\u0435 \u0431\u0443\u0434\u0443 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 &#8212; \u0435\u0441\u043b\u0438 \u0434\u043e \u044d\u0442\u0438\u0445 \u043f\u043e\u0440 \u0432\u0441\u0435 \u0443 \u0432\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c &#8212; \u0434\u0443\u043c\u0430\u044e \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u0442\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \ud83d\ude09 <\/p>\n<h2>ESP8266  <\/h2>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u0432\u0435\u0441\u0435\u043b\u044c\u044f. \u0411\u0443\u0434\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u043d\u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u0445 esp8266.<\/p>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438 \u043d\u0438 \u043e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0438\u0445 \u0443 \u043c\u0435\u043d\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0435 \u0437\u0430\u0432\u0435\u043b\u0430\u0441\u044c \u201c\u0431\u0435\u0437 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u043f\u0438\u043b\u044c\u043d\u0438\u043a\u043e\u043c\u00bb. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0443 MQTT-SN \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0443 \u043d\u0435\u043a\u043e\u0435\u0433\u043e Gabriel Nikol \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/S3ler\/arduino-mqtt-sn-client#arduino-mqtt-sn-client\" rel=\"noopener noreferrer nofollow\"><u>arduino-mqtt-sn-client<\/u><\/a> \u043d\u0430 GitHub.<\/p>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 1.<\/strong> \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0448\u043b\u044e\u0437\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u044f \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b), \u043d\u043e \u0441 Paho \u043d\u0438 \u0432 \u043a\u0430\u043a\u0443\u044e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442. \u041d\u0443 \u0447\u0442\u043e \u0436\u0435, \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445 \u043d\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0432\u0438\u0441\u044f\u0442 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0448\u0430\u0442\u044c. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c, \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u043d\u043e <a href=\"https:\/\/github.com\/S3ler\/arduino-mqtt-sn-client\/issues\/3\" rel=\"noopener noreferrer nofollow\"><u>\u0437\u0434\u0435\u0441\u044c \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435<\/u><\/a> \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0442\u0438\u043f\u043e\u0432 \u0442\u043e\u043f\u0438\u043a\u0430 \u0438 &#8212; \u0432\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c! \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f &#8212; \u043a\u0440\u0430\u0441\u043e\u0442\u0430.<\/p>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 2.<\/strong>&nbsp;\u041d\u043e \u043f\u0440\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0438 \u043d\u0430 \u0442\u043e\u043f\u0438\u043a\u0438 &#8212; \u043c\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u201c0x00\u201d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u043c \u043a\u043e\u043d\u0446\u0430 \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0443 \u043d\u0430\u0441 \u0432\u043e \u0432\u0441\u0435\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043d\u0435\u0442. \u041f\u0440\u043e\u0431\u0435\u0436\u0430\u0432\u0448\u0438\u0441\u044c \u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u044f \u0438 \u043f\u0440\u0430\u0432\u0434\u0430 \u043d\u0435 \u043d\u0430\u0448\u0435\u043b, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a &#8212; \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u044d\u0442\u043e \u0432 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u0415\u0449\u0435 \u0441\u0442\u0430\u043b\u0438 \u043d\u0430 \u0448\u0430\u0433 \u0431\u043b\u0438\u0436\u0435! \u0427\u0442\u043e \u043c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0442\u043e \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c.<\/p>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 3.<\/strong>&nbsp;\u0414\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 MQTT \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 &#8212; \u0442\u0430\u043a \u043c\u0435\u043d\u044c\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, 16 (4 \u0447\u0438\u0441\u043b\u0430 \u0442\u0438\u043f\u0430 float) \u0432\u043c\u0435\u0441\u0442\u043e 32 (\u0435\u0441\u043b\u0438 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0437\u043d\u0430\u043a \u0434\u043e \u0438 6 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439). \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 char, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0431\u0430\u0439\u0442 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a ASCII-\u0441\u0438\u043c\u0432\u043e\u043b. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0438 \u0442\u0430\u043a\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c &#8212; \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442\u043e\u0432.<\/p>\n<p><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 4.<\/strong>&nbsp;\u0417\u0430\u043c\u0435\u0442\u0438\u043b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0438 \u043f\u0435\u0440\u0432\u044b\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u043e \u0448\u043b\u044e\u0437\u043e\u043c. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0447\u0435\u043c \u0434\u0435\u043b\u043e. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &#8212; \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043d\u0430\u0448 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u043f\u0438\u0442 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 10 \u0441\u0435\u043a\u0443\u043d\u0434, \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c 20. \u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043d\u0430 50 \u043c\u0441 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e 100 \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 &#8212; \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u044f \u0434\u0443\u043c\u0430\u044e \u044d\u0442\u043e\u0433\u043e \u0445\u0432\u0430\u0442\u0438\u0442 &#8212; \u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u043d\u043e \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0434\u043e 5 (\u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u201c\u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0438\u0440\u0435\u201d \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442).<\/p>\n<p>\u041d\u0443 \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b, \u0438 \u0435\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u0439\u0434\u0435\u0442 &#8212; \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0430\u0432\u0442\u043e\u0440\u0443 (\u043a\u0430\u043a \u0442\u043e <\/p>\n<\/div>\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-320917","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/320917","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=320917"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/320917\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=320917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=320917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=320917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}