{"id":1305,"date":"2017-08-22T09:04:53","date_gmt":"2017-08-22T06:04:53","guid":{"rendered":"http:\/\/arduinolab.pw\/?p=1305"},"modified":"2018-01-18T20:45:19","modified_gmt":"2018-01-18T17:45:19","slug":"protokol-mqtt-kod-iz-video","status":"publish","type":"post","link":"https:\/\/arduinolab.pw\/index.php\/2017\/08\/22\/protokol-mqtt-kod-iz-video\/","title":{"rendered":"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b MQTT, \u043a\u043e\u0434 \u0438\u0437 \u0432\u0438\u0434\u0435\u043e"},"content":{"rendered":"<p><iframe loading=\"lazy\" title=\"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b MQTT\" width=\"625\" height=\"352\" src=\"https:\/\/www.youtube.com\/embed\/PWeCdzc8tRw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0437 \u0432\u0438\u0434\u0435\u043e<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p><div class=\"kbtrw6ae2390c26703\" ><hr>\n<!-- Yandex.RTB R-A-1793072-2 -->\n<div id=\"yandex_rtb_R-A-1793072-2\"><\/div>\n<script>window.yaContextCb.push(()=>{\n  Ya.Context.AdvManager.render({\n    renderTo: 'yandex_rtb_R-A-1793072-2',\n    blockId: 'R-A-1793072-2'\n  })\n})<\/script><\/div><style type=\"text\/css\">\r\n@media screen and (min-width: 1201px) {\r\n.kbtrw6ae2390c26703 {\r\ndisplay: block;\r\n}\r\n}\r\n@media screen and (min-width: 993px) and (max-width: 1200px) {\r\n.kbtrw6ae2390c26703 {\r\ndisplay: block;\r\n}\r\n}\r\n@media screen and (min-width: 769px) and (max-width: 992px) {\r\n.kbtrw6ae2390c26703 {\r\ndisplay: block;\r\n}\r\n}\r\n@media screen and (min-width: 768px) and (max-width: 768px) {\r\n.kbtrw6ae2390c26703 {\r\ndisplay: block;\r\n}\r\n}\r\n@media screen and (max-width: 767px) {\r\n.kbtrw6ae2390c26703 {\r\ndisplay: block;\r\n}\r\n}\r\n<\/style>\r\n\n<pre><span style=\"color: #434f54;\">\/\/ \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 thingspeak<\/span>\r\n<span style=\"color: #434f54;\">\/\/ <\/span><u><span style=\"color: #434f54;\">https:\/\/youtu.be\/PWeCdzc8tRw<\/span><\/u>\r\n\r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #d35400;\">ESP8266WiFi<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span>\r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">PubSubClient<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span>\r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #d35400;\">OneWire<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #d35400;\">Wire<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \r\n \r\n<span style=\"color: #d35400;\">OneWire<\/span> <span style=\"color: #000000;\">ds<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">5<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u0445\u043e\u0434 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 18b20, SDA\/D2<\/span>\r\n\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438 <\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">ssid<\/span> <span style=\"color: #00979c;\">\"WLAN1\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a wifi \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">password<\/span> <span style=\"color: #00979c;\">\"1231234123\"<\/span> \r\n\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_server<\/span> <span style=\"color: #00979c;\">\"mqtt.thingspeak.com\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ mqtt \u0431\u0440\u043e\u043a\u0435\u0440 \u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_port<\/span> <span style=\"color: #000000;\">1883<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0440\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a mqtt<\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_topic<\/span> <span style=\"color: #00979c;\">\"channels\/205419\/publish\/fields\/field1\/Q8QDQ3WJ2QUSSQXY\"<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0442\u043e\u043f\u0438\u043a \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c<\/span>\r\n\r\n<span style=\"color: #d35400;\">WiFiClient<\/span> <span style=\"color: #000000;\">espClient<\/span><span style=\"color: #000000;\">;<\/span>\r\n<b><span style=\"color: #d35400;\">PubSubClient<\/span><\/b> <span style=\"color: #d35400;\">client<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">espClient<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n<span style=\"color: #00979c;\">long<\/span> <span style=\"color: #000000;\">lastMsg<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0431\u0440\u043e\u043a\u0435\u0440\u0430<\/span>\r\n<span style=\"color: #434f54;\">\/\/void callback(char* topic, byte* payload, unsigned int length) {<\/span>\r\n<span style=\"color: #434f54;\">\/\/ \u00a0Serial.print(\"Message arrived [\");<\/span>\r\n<span style=\"color: #434f54;\">\/\/ \u00a0Serial.print(topic); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043f\u043e\u0440\u0442\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043f\u0438\u043a\u0430 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n<span style=\"color: #434f54;\">\/\/ \u00a0Serial.print(\"] \");<\/span>\r\n<span style=\"color: #434f54;\">\/\/ \u00a0for (int i = 0; i &lt; length; i++) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u043e\u043f\u0438\u043a\u0430<\/span>\r\n<span style=\"color: #434f54;\">\/\/ \u00a0\u00a0\u00a0Serial.print((char)payload[i]);<\/span>\r\n<span style=\"color: #434f54;\">\/\/ \u00a0}<\/span>\r\n<span style=\"color: #434f54;\">\/\/ \u00a0Serial.println(); \u00a0<\/span>\r\n<span style=\"color: #434f54;\">\/\/}<\/span>\r\n<span style=\"color: #434f54;\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a wifi<\/span>\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">setup_wifi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \r\n \u00a0\r\n \u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">10<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #434f54;\">\/\/ We start by connecting to a WiFi network<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"Connecting to \"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ssid<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<b><span style=\"color: #d35400;\">WiFi<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ssid<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">password<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">while<\/span> <span style=\"color: #000000;\">(<\/span><b><span style=\"color: #d35400;\">WiFi<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">status<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">!<\/span><span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">WL_CONNECTED<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">500<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\".\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0<span style=\"color: #d35400;\">randomSeed<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">micros<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"WiFi connected\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"IP address: \"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><b><span style=\"color: #d35400;\">WiFi<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">localIP<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<span style=\"color: #434f54;\">\/\/ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a mqtt \u0431\u0440\u043e\u043a\u0435\u0440\u0443 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">reconnect<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">while<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #434f54;\">!<\/span><span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">connected<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043a\u0440\u0443\u0442\u0438\u043c\u0441\u044f \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043c\u0441\u044f.<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"Attempting MQTT connection...\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c;\">String<\/span> <span style=\"color: #000000;\">clientId<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #00979c;\">\"ESP8266Client-\"<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">clientId<\/span> <span style=\"color: #434f54;\">+=<\/span> <span style=\"color: #00979c;\">String<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">random<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">0xffff<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">HEX<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f, \u0432 client.connect \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c ID, \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0441\u0441<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">connect<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">clientId<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">c_str<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"connected\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438\u0441\u044c <\/span>\r\n <span style=\"color: #434f54;\">\/\/ \u00a0\u00a0\u00a0\u00a0client.subscribe(mqtt_topic); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u041d\u0415!\u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0442\u043e\u043f\u0438\u043a, \u0438\u043d\u0430\u0447\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span> <span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0438\u043d\u0430\u0447\u0435 \u0440\u0443\u0433\u0430\u0435\u043c\u0441\u044f \u0432 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043f\u043e\u0440\u0442\u0430 \u00a0<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"failed, rc=\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">state<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\" try again in 5 seconds\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Wait 5 seconds before retrying<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">5000<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">setup<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">115200<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">setup_wifi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a wifi<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setServer<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">mqtt_server<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">mqtt_port<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0431\u0440\u043e\u043a\u0435\u0440\u0430 \u0438 \u043f\u043e\u0440\u0442<\/span>\r\n<span style=\"color: #434f54;\">\/\/ \u00a0client.setCallback(callback); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u0441\u044f \u043d\u0430 \u0442\u043e\u043f\u0438\u043a \u0432 thingspeak \u043d\u0435\u043b\u044c\u0437\u044f<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n \r\n\r\n<span style=\"color: #00979c;\">float<\/span> <span style=\"color: #000000;\">getTemp<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0441 \u0433\u0440\u0430\u0434\u0443\u0441\u043d\u0438\u043a\u0430 ds18b20<\/span>\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">12<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #434f54;\">!<\/span><span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">search<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"No more addresses.\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0\u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">reset_search<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">OneWire<\/span><span style=\"color: #434f54;\">:<\/span><span style=\"color: #434f54;\">:<\/span><span style=\"color: #d35400;\">crc8<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">addr<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">7<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">!<\/span><span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">7<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"CRC is not valid!\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">reset<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">select<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">write<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">0x44<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">1000<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\r\n \u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">reset<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">select<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">write<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">0xBE<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\r\n \u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #000000;\">9<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span><span style=\"color: #434f54;\">++<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">i<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">read<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0<span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">raw<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">1<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">&lt;&lt;<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">|<\/span> <span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">7<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">==<\/span> <span style=\"color: #000000;\">0x10<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">raw<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">raw<\/span> <span style=\"color: #434f54;\">&amp;<\/span> <span style=\"color: #000000;\">0xFFF0<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">+<\/span> <span style=\"color: #000000;\">12<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">6<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">return<\/span> <span style=\"color: #000000;\">raw<\/span> <span style=\"color: #434f54;\">\/<\/span> <span style=\"color: #000000;\">16.0<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\r\n<span style=\"color: #000000;\">}<\/span> \r\n <span style=\"color: #434f54;\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n \r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #00979c;\">char<\/span> <span style=\"color: #000000;\">msg<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">5<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0437\u0430\u0431\u0435\u0440\u0430\u0435\u043c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0451 \u0432 char<\/span>\r\n \u00a0<span style=\"color: #00979c;\">float<\/span> <span style=\"color: #000000;\">tmp<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">getTemp<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #000000;\">dtostrf<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">tmp<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">5<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">msg<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #434f54;\">!<\/span><span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">connected<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0440\u043e\u043a\u0435\u0440\u0443<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">reconnect<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0435\u0449\u0435 \u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u044e\u0447\u0435\u043d\u0438\u0435 \u043a wifi...<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<span style=\"color: #00979c;\">long<\/span> <span style=\"color: #d35400;\">now<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043a\u0430\u0436\u0434\u044b\u0435 10 \u0441\u0435\u043a\u0443\u043d\u0434<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">now<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">lastMsg<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">10000<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">lastMsg<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">now<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">publish<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">mqtt_topic<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">msg<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u0438\u0448\u0435\u043c \u0432 \u0442\u043e\u043f\u0438\u043a <\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">msg<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<\/pre>\n<hr \/>\n<pre><span style=\"color: #434f54;\">\/\/ \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 cloudmqtt.com<\/span>\r\n<span style=\"color: #434f54;\">\/\/ <\/span><u><span style=\"color: #434f54;\">https:\/\/youtu.be\/PWeCdzc8tRw<\/span><\/u>\r\n\r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #d35400;\">ESP8266WiFi<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span>\r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">PubSubClient<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span>\r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #d35400;\">OneWire<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #d35400;\">Wire<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \r\n \r\n<span style=\"color: #d35400;\">OneWire<\/span> <span style=\"color: #000000;\">ds<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">5<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u0445\u043e\u0434 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 18b20, SDA\/D2<\/span>\r\n\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438 <\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">ssid<\/span> <span style=\"color: #00979c;\">\"WLAN1\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a wifi \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">password<\/span> <span style=\"color: #00979c;\">\"1231234123\"<\/span> \r\n\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_server<\/span> <span style=\"color: #00979c;\">\"m21.cloudmqtt.com\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ mqtt \u0431\u0440\u043e\u043a\u0435\u0440<\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_login<\/span> <span style=\"color: #00979c;\">\"kkbyfuon\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_password<\/span> <span style=\"color: #00979c;\">\"2Qg0vFlIWCFF\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_port<\/span> <span style=\"color: #000000;\">12843<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0440\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a mqtt, \u0443 cloudmqtt \u043f\u043e\u0440\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043e\u0442 1883<\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_topic<\/span> <span style=\"color: #00979c;\">\"temp\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0442\u043e\u043f\u0438\u043a \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c<\/span>\r\n\r\n<span style=\"color: #d35400;\">WiFiClient<\/span> <span style=\"color: #000000;\">espClient<\/span><span style=\"color: #000000;\">;<\/span>\r\n<b><span style=\"color: #d35400;\">PubSubClient<\/span><\/b> <span style=\"color: #d35400;\">client<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">espClient<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n<span style=\"color: #00979c;\">long<\/span> <span style=\"color: #000000;\">lastMsg<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0431\u0440\u043e\u043a\u0435\u0440\u0430<\/span>\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">callback<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">char<\/span><span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">topic<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">byte<\/span><span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">payload<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">unsigned<\/span> <span style=\"color: #00979c;\">int<\/span> <span style=\"color: #d35400;\">length<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"Message arrived [\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">topic<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043f\u043e\u0440\u0442\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043f\u0438\u043a\u0430 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"] \"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #d35400;\">length<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span><span style=\"color: #434f54;\">++<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u043e\u043f\u0438\u043a\u0430<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">char<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">payload<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">i<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #434f54;\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a wifi<\/span>\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">setup_wifi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \r\n \u00a0\r\n \u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">10<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #434f54;\">\/\/ We start by connecting to a WiFi network<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"Connecting to \"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ssid<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<b><span style=\"color: #d35400;\">WiFi<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ssid<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">password<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">while<\/span> <span style=\"color: #000000;\">(<\/span><b><span style=\"color: #d35400;\">WiFi<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">status<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">!<\/span><span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">WL_CONNECTED<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">500<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\".\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0<span style=\"color: #d35400;\">randomSeed<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">micros<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"WiFi connected\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"IP address: \"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><b><span style=\"color: #d35400;\">WiFi<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">localIP<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<span style=\"color: #434f54;\">\/\/ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a mqtt \u0431\u0440\u043e\u043a\u0435\u0440\u0443 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">reconnect<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">while<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #434f54;\">!<\/span><span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">connected<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043a\u0440\u0443\u0442\u0438\u043c\u0441\u044f \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043c\u0441\u044f.<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"Attempting MQTT connection...\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c;\">String<\/span> <span style=\"color: #000000;\">clientId<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #00979c;\">\"ESP8266Client-\"<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">clientId<\/span> <span style=\"color: #434f54;\">+=<\/span> <span style=\"color: #00979c;\">String<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">random<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">0xffff<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">HEX<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f, \u0432 client.connect \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c ID, \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0441\u0441<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">connect<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">clientId<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">c_str<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">mqtt_login<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">mqtt_password<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"connected\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438\u0441\u044c <\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">subscribe<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">mqtt_topic<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0442\u043e\u043f\u0438\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0436\u0435 \u043f\u0438\u0448\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span> <span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0438\u043d\u0430\u0447\u0435 \u0440\u0443\u0433\u0430\u0435\u043c\u0441\u044f \u0432 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043f\u043e\u0440\u0442\u0430 \u00a0<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"failed, rc=\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">state<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\" try again in 5 seconds\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Wait 5 seconds before retrying<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">5000<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">setup<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">115200<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">setup_wifi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a wifi<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setServer<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">mqtt_server<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">mqtt_port<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0431\u0440\u043e\u043a\u0435\u0440\u0430 \u0438 \u043f\u043e\u0440\u0442<\/span>\r\n \u00a0<span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setCallback<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">callback<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0431\u0440\u043e\u043a\u0435\u0440\u0430<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n \r\n\r\n<span style=\"color: #00979c;\">float<\/span> <span style=\"color: #000000;\">getTemp<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0441 \u0433\u0440\u0430\u0434\u0443\u0441\u043d\u0438\u043a\u0430 ds18b20<\/span>\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">12<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #434f54;\">!<\/span><span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">search<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"No more addresses.\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0\u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">reset_search<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">OneWire<\/span><span style=\"color: #434f54;\">:<\/span><span style=\"color: #434f54;\">:<\/span><span style=\"color: #d35400;\">crc8<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">addr<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">7<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">!<\/span><span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">7<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"CRC is not valid!\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">reset<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">select<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">write<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">0x44<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">1000<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\r\n \u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">reset<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">select<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">addr<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">write<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">0xBE<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\r\n \u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #000000;\">9<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span><span style=\"color: #434f54;\">++<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">i<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">ds<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">read<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0<span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">raw<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">1<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">&lt;&lt;<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">|<\/span> <span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">7<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">==<\/span> <span style=\"color: #000000;\">0x10<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">raw<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">raw<\/span> <span style=\"color: #434f54;\">&amp;<\/span> <span style=\"color: #000000;\">0xFFF0<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">+<\/span> <span style=\"color: #000000;\">12<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">data<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">6<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">return<\/span> <span style=\"color: #000000;\">raw<\/span> <span style=\"color: #434f54;\">\/<\/span> <span style=\"color: #000000;\">16.0<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\r\n<span style=\"color: #000000;\">}<\/span> \r\n <span style=\"color: #434f54;\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n \r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #00979c;\">char<\/span> <span style=\"color: #000000;\">msg<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">5<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0437\u0430\u0431\u0435\u0440\u0430\u0435\u043c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0435\u0451 \u0432 char<\/span>\r\n \u00a0<span style=\"color: #00979c;\">float<\/span> <span style=\"color: #000000;\">tmp<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">getTemp<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #000000;\">dtostrf<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">tmp<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">6<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">msg<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #434f54;\">!<\/span><span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">connected<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0440\u043e\u043a\u0435\u0440\u0443<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">reconnect<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0435\u0449\u0435 \u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u044e\u0447\u0435\u043d\u0438\u0435 \u043a wifi...<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<span style=\"color: #00979c;\">long<\/span> <span style=\"color: #d35400;\">now<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043a\u0430\u0436\u0434\u044b\u0435 10 \u0441\u0435\u043a\u0443\u043d\u0434<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">now<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">lastMsg<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">10000<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">lastMsg<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">now<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">publish<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">mqtt_topic<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">msg<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u0438\u0448\u0435\u043c \u0432 \u0442\u043e\u043f\u0438\u043a <\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<\/pre>\n<hr \/>\n<pre><span style=\"color: #434f54;\">\/\/ \u041a\u043e\u0434 \u0438\u0437 \u0432\u0438\u0434\u0435\u043e WEMOS Relay Shield \u0438 \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043b\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043f\u043e MQTT<\/span>\r\n<span style=\"color: #434f54;\">\/\/ <\/span><u><span style=\"color: #434f54;\">https:\/\/youtu.be\/iuIsopck66I<\/span><\/u>\r\n\r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #000000;\">ESP8266WiFi<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span>\r\n<span style=\"color: #000000;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">PubSubClient<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \r\n \r\n \r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">RELAY<\/span> <span style=\"color: #000000;\">D1<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438 <\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">ssid<\/span> <span style=\"color: #00979c;\">\"WLAN1\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a wifi \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">password<\/span> <span style=\"color: #00979c;\">\"1231234123\"<\/span> \r\n\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_server<\/span> <span style=\"color: #00979c;\">\"m14.cloudmqtt.com\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ mqtt \u0431\u0440\u043e\u043a\u0435\u0440<\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_login<\/span> <span style=\"color: #00979c;\">\"vafrgppq\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_password<\/span> <span style=\"color: #00979c;\">\"jvzlh59GF60G\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_port<\/span> <span style=\"color: #000000;\">16038<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0440\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a mqtt, \u0443 cloudmqtt \u043f\u043e\u0440\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u043e\u0442 1883<\/span>\r\n<span style=\"color: #000000;\">#define<\/span> <span style=\"color: #000000;\">mqtt_topic<\/span> <span style=\"color: #00979c;\">\"temp\"<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0442\u043e\u043f\u0438\u043a \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c<\/span>\r\n\r\n<span style=\"color: #d35400;\">WiFiClient<\/span> <span style=\"color: #000000;\">espClient<\/span><span style=\"color: #000000;\">;<\/span>\r\n<b><span style=\"color: #d35400;\">PubSubClient<\/span><\/b> <span style=\"color: #000000;\">client<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">espClient<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n<span style=\"color: #00979c;\">long<\/span> <span style=\"color: #000000;\">lastMsg<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0431\u0440\u043e\u043a\u0435\u0440\u0430<\/span>\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">callback<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">char<\/span><span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">topic<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">byte<\/span><span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">payload<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">unsigned<\/span> <span style=\"color: #00979c;\">int<\/span> <span style=\"color: #d35400;\">length<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"Message arrived [\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">topic<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043f\u043e\u0440\u0442\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043f\u0438\u043a\u0430 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"] \"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #d35400;\">length<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span><span style=\"color: #434f54;\">++<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u043e\u043f\u0438\u043a\u0430<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">char<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">payload<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">i<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span> \r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0440\u0435\u043b\u0435<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">payload<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">==<\/span> <span style=\"color: #00979c;\">'0'<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #d35400;\">digitalWrite<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">RELAY<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">LOW<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">payload<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">==<\/span> <span style=\"color: #00979c;\">'1'<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #d35400;\">digitalWrite<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">RELAY<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">HIGH<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">payload<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">==<\/span> <span style=\"color: #00979c;\">'2'<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #d35400;\">digitalWrite<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">RELAY<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #434f54;\">!<\/span><span style=\"color: #d35400;\">digitalRead<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">RELAY<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0\r\n<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #434f54;\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a wifi<\/span>\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">setup_wifi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \r\n \u00a0\r\n \u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">10<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #434f54;\">\/\/ We start by connecting to a WiFi network<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"Connecting to \"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ssid<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<b><span style=\"color: #d35400;\">WiFi<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ssid<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">password<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">while<\/span> <span style=\"color: #000000;\">(<\/span><b><span style=\"color: #d35400;\">WiFi<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">status<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">!<\/span><span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">WL_CONNECTED<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">500<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\".\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0<span style=\"color: #d35400;\">randomSeed<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">micros<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"WiFi connected\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"IP address: \"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><b><span style=\"color: #d35400;\">WiFi<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">localIP<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<span style=\"color: #434f54;\">\/\/ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a mqtt \u0431\u0440\u043e\u043a\u0435\u0440\u0443 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">reconnect<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">while<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #434f54;\">!<\/span><span style=\"color: #000000;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">connected<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043a\u0440\u0443\u0442\u0438\u043c\u0441\u044f \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043c\u0441\u044f.<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"Attempting MQTT connection...\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u0430<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c;\">String<\/span> <span style=\"color: #000000;\">clientId<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #00979c;\">\"ESP8266Client-\"<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">clientId<\/span> <span style=\"color: #434f54;\">+=<\/span> <span style=\"color: #00979c;\">String<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">random<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">0xffff<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">HEX<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f, \u0432 client.connect \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c ID, \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0441\u0441<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">connect<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">clientId<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">c_str<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">mqtt_login<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">mqtt_password<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"connected\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438\u0441\u044c <\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">subscribe<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">mqtt_topic<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0442\u043e\u043f\u0438\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0436\u0435 \u043f\u0438\u0448\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span> <span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0438\u043d\u0430\u0447\u0435 \u0440\u0443\u0433\u0430\u0435\u043c\u0441\u044f \u0432 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043f\u043e\u0440\u0442\u0430 \u00a0<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\"failed, rc=\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">print<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">state<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">println<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">\" try again in 5 seconds\"<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ Wait 5 seconds before retrying<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">5000<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">setup<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">115200<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #d35400;\">pinMode<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">RELAY<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">OUTPUT<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #d35400;\">digitalWrite<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">RELAY<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #00979c;\">LOW<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #000000;\">setup_wifi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a wifi<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #000000;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setServer<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">mqtt_server<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">mqtt_port<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0431\u0440\u043e\u043a\u0435\u0440\u0430 \u0438 \u043f\u043e\u0440\u0442<\/span>\r\n \u00a0<span style=\"color: #000000;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setCallback<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">callback<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0431\u0440\u043e\u043a\u0435\u0440\u0430<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n \r\n \r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\r\n \r\n \u00a0\u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #434f54;\">!<\/span><span style=\"color: #000000;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">connected<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0431\u0440\u043e\u043a\u0435\u0440\u0443<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">reconnect<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0435\u0449\u0435 \u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u044e\u0447\u0435\u043d\u0438\u0435 \u043a wifi...<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">client<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0\u00a0\r\n \u00a0\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0437 \u0432\u0438\u0434\u0435\u043e<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[91,89,90],"class_list":["post-1305","post","type-post","status-publish","format-standard","hentry","category-video","tag-cloudmqtt","tag-mqtt","tag-thingspeak"],"_links":{"self":[{"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/posts\/1305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/comments?post=1305"}],"version-history":[{"count":0,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/posts\/1305\/revisions"}],"wp:attachment":[{"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/media?parent=1305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/categories?post=1305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/tags?post=1305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}