{"id":37407,"date":"2019-10-31T22:17:29","date_gmt":"2019-10-31T19:17:29","guid":{"rendered":"https:\/\/prohoster.info\/blog\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt\/"},"modified":"2019-10-31T22:17:29","modified_gmt":"2019-10-31T19:17:29","slug":"esp8266-upravlenie-cherez-internet-po-protokolu-mqtt","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt","title":{"rendered":"Esp8266 kontrol via internettet med MQTT-protokollen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Esp8266 kontrol via internettet med MQTT-protokollen\" src=\"\/wp-content\/uploads\/2019\/08\/f2625ae58efb259417096af88f094e54.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n Hej alle! I denne artikel vil vi detaljeret beskrive og vise, hvordan man p\u00e5 blot 20 minutter kan ops\u00e6tte fjernstyring af ESP8266-modulet ved hj\u00e6lp af en Android-app via MQTT-protokollen.<\/p>\n<p> Ideen om fjernstyring og overv\u00e5gning har altid inspireret entusiaster inden for elektronik og programmering. Muligheden for til enhver tid at modtage eller sende n\u00f8dvendige data, uafh\u00e6ngigt af ens placering, giver store muligheder. I mine tidligere artikler ( <noindex><a rel=\"nofollow\" href=\"https:\/\/geektimes.ru\/post\/255546\/\">Artikel 1<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"https:\/\/geektimes.ru\/post\/258504\/\">Artikel 2<\/a><\/noindex>) fors\u00f8gte jeg at se p\u00e5 flere tilg\u00e6ngelige og relativt enkle muligheder for at implementere fjernstyring af mikrokontrollere over internettet. Men tiden og verden st\u00e5r ikke stille \u2013 fremskridtet forts\u00e6tter sin ubarmhjertige fremmarch. I denne korte periode har ESP8266-modulet opn\u00e5et stor popularitet, da det med sin lave pris og indbyggede Wi-Fi er blevet en af de vigtigste komponenter i \"Smart Home\".<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nI \u00f8jeblikket er MQTT den f\u00f8rende og mest popul\u00e6re protokol til dataoverf\u00f8rsel mellem enheder inden for \"Smart Home\"-systemer. Den har en r\u00e6kke fordele i forhold til andre protokoller:<br \/>\n \u2014 lav trafikforbrug;<br \/>\n \u2014 forbindelsen mellem klient og server er altid \u00e5ben;<br \/>\n \u2014 overbelaster ikke internetkanalen;<br \/>\n \u2014 ingen forsinkelse i datatransmission;<br \/>\n \u2014 bekvem abonnementsordning p\u00e5 emner;<br \/>\n Alt dette giver mulighed for overv\u00e5gning og styring i realtid. Men MQTT kr\u00e6ver, at der er en egen server, der fungerer som mellemliggende mellem netv\u00e6rkets klienter. Her er der to muligheder; enten oprette sin egen server eller bruge tredjeparts tjenester.<\/p>\n<p>Det beskrevne styringssystem best\u00e5r af to hoveddele: en MQTT-server (som normalt er \u00e9n) og klienter, der kan v\u00e6re ret mange. I vores tilf\u00e6lde vil klienterne v\u00e6re Android-appen og selve ESP8266-modulet.<\/p>\n<p>Systemets arbejdsalgoritme er som f\u00f8lger. Klienterne opretter forbindelse til serveren, og straks efter forbindelsen abonnerer hver af dem p\u00e5 de emner, der interesserer dem. Al kommunikation mellem klienterne foreg\u00e5r gennem serveren, som videresender data til andre klienter i henhold til deres abonnementer.<\/p>\n<p><b>MQTT-server. <\/b><\/p>\n<p>I vores tilf\u00e6lde vil vi bruge en meget praktisk tjeneste <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloudmqtt.com\/\">www.cloudmqtt.com<\/a><\/noindex> som har en gratis abonnement (Cute Cat), der fuldt ud d\u00e6kker behovene for at implementere et lille, privat 'smart home'-system.<br \/>\n<img decoding=\"async\" alt=\"Esp8266 kontrol via internettet med MQTT-protokollen\" src=\"\/wp-content\/uploads\/2019\/08\/4dc16e68af75fb268a7a77b04b76d0d1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n Lad os registrere os p\u00e5 hjemmesiden og f\u00e5 de n\u00f8dvendige oplysninger til adgang til serveren. N\u00e5r vi ops\u00e6tter klienter, skal vi bruge den almindelige port (uden SSL og TLS).<br \/>\n<img decoding=\"async\" alt=\"Esp8266 kontrol via internettet med MQTT-protokollen\" src=\"\/wp-content\/uploads\/2019\/08\/48655ceaaffd45dd414300dd03b7fb09.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Appen til Android.<\/b><\/p>\n<p>Vores app vil fungere som en kontrolenhed til mikrokontrolleren og vil ogs\u00e5 modtage og vise al den information, der kommer fra esp8266.<\/p>\n<p>Appen hedder <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.thn.iotmqttdashboard&amp;hl=ru\">IoT MQTT Dashboard<\/a><\/noindex> og er en f\u00e6rdiglavet mqtt-klient med et lille antal meget praktiske widgets. Du kan se mere om appens funktion p\u00e5 video.<\/p>\n<p><b>Esp8266.<\/b><\/p>\n<p>Modulet flasher i Arduino-programmeringsmilj\u00f8et, men jeg vil bem\u00e6rke, at modulet har problemer med at flashe i de nyeste versioner af Arduino, s\u00e5 jeg anbefaler at bruge version 1.6.4.<br \/>\nSom et eksempel er en lysdiode (pin 5) og en temperatursensor ds18b20 (pin 2) tilsluttet esp8266.<br \/>\nFor at kunne styre lysdioden, skal esp efter tilslutning abonnere p\u00e5 den relevante topic 'test\/led', ellers vil alle sendt data g\u00e5 forbi vores mikrokontroller.<br \/>\nFor at sende temperaturdata er abonnement ikke n\u00f8dvendigt, men n\u00e5r temperaturv\u00e6rdier overf\u00f8res, skal den topic angives, som disse data vil blive sendt til.<\/p>\n<p>Nedenfor er en skitse med detaljerede kommentarer.<\/p>\n<p><b class=\"spoiler_title\">Skitse Esp8266_mqtt.ino<\/b><code>\/\/ \u0421\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043f\u043e\u0434\u043b\u043a\u044e\u0447\u0435\u043d \u043a 5 \u043f\u0438\u043d\u0443<br \/>\n\/\/ \u0414\u0430\u0442\u0447\u0438\u043a \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b ds18b20 \u043a 2 \u043f\u0438\u043d\u0443<\/p>\n<p>#include &lt;ESP8266WiFi.h&gt;<br \/>\n#include &lt;PubSubClient.h&gt;<br \/>\n#include &lt;OneWire.h&gt;<br \/>\n#include &lt;DallasTemperature.h&gt;<\/p>\n<p>#define ONE_WIRE_BUS 2<br \/>\nOneWire oneWire(ONE_WIRE_BUS);<br \/>\nDallasTemperature sensorer(&amp;oneWire);<\/p>\n<p>const char *ssid = \"AIRPORT\"; \/\/ Navn p\u00e5 WiFi-adgangspunkt<br \/>\nconst char *pass = \"PASSWORD\"; \/\/ Adgangskode til adgangspunkt<\/p>\n<p>const char *mqtt_server = \"server\"; \/\/ Navn p\u00e5 MQTT-server<br \/>\nconst int mqtt_port = 11140; \/\/ Port til forbindelse til MQTT-server<br \/>\nconst char *mqtt_user = \"Login\"; \/\/ Login til server<br \/>\nconst char *mqtt_pass = \"Pass\"; \/\/ Adgangskode til server<\/p>\n<p>#define BUFFER_SIZE 100<\/p>\n<p>bool LedState = false;<br \/>\nint tm=300;<br \/>\nfloat temp=0;<\/p>\n<p>\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/p>\n<p>void callback(const MQTT::Publish&amp; pub)<br \/>\n{<br \/>\n Serial.print(pub.topic()); \/\/ udskriver topic-navnet til seriel port<br \/>\n Serial.print(\" =&gt; \");<br \/>\n Serial.print(pub.payload_string()); \/\/ udskriver v\u00e6rdien af de modtagne data til seriel port<\/p>\n<p> String payload = pub.payload_string();<\/p>\n<p> if(String(pub.topic()) == \"test\/led\") \/\/ tjekker om dataene kommer fra den rigtige topic <br \/>\n {<br \/>\n int stled = payload.toInt(); \/\/ konverterer de modtagne data til type integer<br \/>\n digitalWrite(5,stled); \/\/ t\u00e6nder eller slukker lysdioden afh\u00e6ngigt af de modtagne v\u00e6rdier<br \/>\n }<br \/>\n}<\/p>\n<p>WiFiClient wclient; <br \/>\nPubSubClient client(wclient, mqtt_server, mqtt_port);<\/p>\n<p>void setup() {<\/p>\n<p> sensors.begin();<br \/>\n Serial.begin(115200);<br \/>\n delay(10);<br \/>\n Serial.println();<br \/>\n Serial.println();<br \/>\n pinMode(5, OUTPUT);<br \/>\n}<\/p>\n<p>void loop() {<br \/>\n \/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a wi-fi<br \/>\n if (WiFi.status() != WL_CONNECTED) {<br \/>\n Serial.print(\"Forbinder til \");<br \/>\n Serial.print(ssid);<br \/>\n Serial.println(\"...\");<br \/>\n WiFi.begin(ssid, pass);<\/p>\n<p>if (WiFi.waitForConnectResult() != WL_CONNECTED)<br \/>\n return;<br \/>\n Serial.println(\"WiFi forbundet\");<br \/>\n }<\/p>\n<p>\/\/ \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a MQTT \u0441\u0435\u0440\u0432\u0435\u0440\u0443<br \/>\n if (WiFi.status() == WL_CONNECTED) {<br \/>\n if (!client.connected()) {<br \/>\n Serial.println(\"Forbinder til MQTT-server\");<br \/>\n if (client.connect(MQTT::Connect(\"arduinoClient2\")<br \/>\n .set_auth(mqtt_user, mqtt_pass))) {<br \/>\n Serial.println(\"Forbundet til MQTT-server\");<br \/>\n client.set_callback(callback);<br \/>\n client.subscribe(\"test\/led\"); \/\/ abonnerer p\u00e5 topic med data til LED<br \/>\n } else {<br \/>\n Serial.println(\"Kunne ikke forbinde til MQTT-server\"); <br \/>\n }<br \/>\n }<\/p>\n<p>if (client.connected()) {<br \/>\n client.loop();<br \/>\n TempSend();<br \/>\n }<\/p>\n<p>}<br \/>\n} \/\/ end of main loop<\/p>\n<p>\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0441 \u0442\u0435\u0440\u043c\u043e\u0434\u0430\u0442\u0447\u0438\u043a\u0430<br \/>\nvoid TempSend() {<br \/>\n if (tm == 0)<br \/>\n {<br \/>\n sensors.requestTemperatures(); \/\/ obtain temperature value from the sensor<br \/>\n float temp = sensors.getTempCByIndex(0);<br \/>\n client.publish(\"test\/temp\", String(temp)); \/\/ sender temperaturv\u00e6rdien til topic for temperatursensor<br \/>\n Serial.println(temp);<br \/>\n tm = 300; \/\/ pause between sending temperature values for about 3 seconds<br \/>\n }<br \/>\n tm--; <br \/>\n delay(10); <br \/>\n}<br \/>\n<\/code><\/p>\n<p>\nSom resultat f\u00e5r vi et praktisk v\u00e6rkt\u00f8j til fjernbetjening og overv\u00e5gning af data, som er ret nemt at l\u00e6re og vil v\u00e6re tilg\u00e6ngeligt selv for begyndere.<\/p>\n<p><b>Video med demonstration af styresystemets funktionalitet<\/b><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"q36C4rYAKVA\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/q36C4rYAKVA\/hqdefault.jpg\" alt=\"Afspil video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p><b>Detaljeret video-instruktion til ops\u00e6tning af systemet<\/b><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"PTPZv15Td58\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/PTPZv15Td58\/hqdefault.jpg\" alt=\"Afspil video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p><b>En af anvendelsesmulighederne for kontrol af esp8266 via MQTT-protokollen<\/b><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"0GcrRmu15HM\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/0GcrRmu15HM\/hqdefault.jpg\" alt=\"Afspil video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p><b>Kontrol af LED-stribe via internettet<\/b><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"ESSKNfxiSRY\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/ESSKNfxiSRY\/hqdefault.jpg\" alt=\"Afspil video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>Hvis du har sp\u00f8rgsm\u00e5l til dette materiale, anbefaler jeg at se den anden del af videoen, hvor materialet er pr\u00e6senteret mere visuelt.<\/p>\n<p>I arkivet findes sketchen og alle n\u00f8dvendige biblioteker til at programmere mikrokontrolleren med sketchen fra eksemplet.<br \/>\nJeg vil gerne g\u00f8re opm\u00e6rksom p\u00e5, at biblioteket ESP8266WiFi.h ikke er inkluderet i dette arkiv, det installeres via Boards manager i Arduino milj\u00f8et.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.mail.ru\/public\/44nnTMk9dBFu\/Files.zip\"><b>ARKIV<\/b><\/a><\/noindex><\/p>\n<p>MQTT server \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cloudmqtt.com\/\">www.cloudmqtt.com<\/a><\/noindex><\/p>\n<p>Link til IoT MQTT Dashboard appen \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.thn.iotmqttdashboard&#038;hl=ru\">play.google.com\/store\/apps\/details?id=com.thn.iotmqttdashboard&amp;hl=da<\/a><\/noindex><\/p>\n<p>Tak for opm\u00e6rksomheden.<br \/>\n<br \/>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/393277\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0430\u043a \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0437\u0430 20 \u043c\u0438\u043d\u0443\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u043c esp8266 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Android \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MQTT. \u0418\u0434\u0435\u044f \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u043e\u0440\u0430\u0436\u0438\u043b\u0430 \u0443\u043c\u044b \u0443\u0432\u043b\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0435 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043b\u044e\u0434\u0435\u0439. \u0412\u0435\u0434\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28068,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37407","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Esp8266 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MQTT | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:17:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:17:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Esp8266 kontrol via internettet med MQTT-protokollen | ProHoster","description":"Hej alle sammen!","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Esp8266 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 MQTT | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!","og:url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/esp8266-upravlenie-cherez-internet-po-protokolu-mqtt","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:17:29+00:00","article:modified_time":"2019-10-31T19:17:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37407","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 17:42:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:27:26","updated":"2026-01-23 17:42:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/37407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=37407"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/37407\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/28068"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=37407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=37407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=37407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}