{"id":183,"date":"2021-05-19T16:32:47","date_gmt":"2021-05-19T14:32:47","guid":{"rendered":"https:\/\/www.iot-embedded.de\/iot-2021\/?p=183"},"modified":"2021-05-19T19:19:20","modified_gmt":"2021-05-19T17:19:20","slug":"versenden-von-mqtt-nachrichten-von-dem-esp8266","status":"publish","type":"post","link":"https:\/\/www.iot-embedded.de\/iot-2021\/beverage-monitoring\/versenden-von-mqtt-nachrichten-von-dem-esp8266\/","title":{"rendered":"Versenden von MQTT-Nachrichten mit dem ESP8266"},"content":{"rendered":"\n<p><strong>Hintergrund des Vorhabens:<\/strong>&nbsp;<\/p>\n\n\n\n<p>Um jeden Bierdeckel&nbsp;bestehend aus dem&nbsp;Mikrocontroller ESP8266 mit dem&nbsp;Raspberry Pi im&nbsp;Netzwerk der Gastronomie zu verbinden, wird dieser mit dem MQTT-Protokoll angebunden. Der ausgef\u00fchrte Sourcecode wird mittels der IDE \u201eArduino\u201c auf den ESP8266 \u00fcbertragen. <\/p>\n\n\n\n<p><strong>Vorgehen:<\/strong>&nbsp; <\/p>\n\n\n\n<p>Hierzu muss im ersten Schritt der Mikrocontroller und PC mit via USB verbunden&nbsp;und die Arduino IDE gestartet&nbsp;werden.&nbsp;Zus\u00e4tzlich muss das von uns verwendete \u201cNodeMCU&nbsp;1.0 (ESP-12E Module)\u201d als Board ausgew\u00e4hlt werden.&nbsp;Danach erfolgt die Auswahl des entsprechenden Anschlusses.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-9.png\" alt=\"\" class=\"wp-image-184\" width=\"509\" height=\"458\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-9.png 679w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-9-300x270.png 300w\" sizes=\"(max-width: 509px) 100vw, 509px\" \/><figcaption>Auswahl des USB Ports<\/figcaption><\/figure>\n\n\n\n<p>Um diese Verbindung zu testen, kann ein Beispiel auf den ESP8266 aufgespielt werden.&nbsp;Die Arduino IDE beinhaltet dabei einige Beispiele mit Sourcecode, wobei nachfolgend die&nbsp;integrierte LED zum Blicken gebracht&nbsp;wird.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-10.png\" alt=\"\" class=\"wp-image-185\" width=\"506\" height=\"227\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-10.png 675w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-10-300x134.png 300w\" sizes=\"(max-width: 506px) 100vw, 506px\" \/><figcaption>Auswahl des Blink-Beispiels<\/figcaption><\/figure>\n\n\n\n<p>Das Kompilieren und Aufspielen des Sourcecodes erfolgt \u00fcber diesen Pfeil:&nbsp;<img decoding=\"async\" src=\"https:\/\/www.iot-embedded.de\/4d92bb08-ec05-45b9-a23d-c4bfaa1012fa\">.&nbsp;<\/p>\n\n\n\n<p><strong>Der konkrete&nbsp;Anwendungsfall:<\/strong>&nbsp;<\/p>\n\n\n\n<p>Um das MQTT-Protokoll mit dem ESP8266 verwenden zu k\u00f6nnen, ist eine WLAN-Verbindung notwendig. Um sich mit diesem verbinden zu k\u00f6nnen, muss die entsprechende SSID und Passwort des WLANs im Code hinterlegt werden.&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"41\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-12.png\" alt=\"\" class=\"wp-image-187\"\/><\/figure>\n\n\n\n<p>Um die Verbindung testen zu k\u00f6nnen, kann ein beispielhafter, \u00f6ffentlich zug\u00e4nglicher MQTT-Server verwendet werden. Bei diesem Test sollte darauf geachtet werden, dass diese Informationen f\u00fcr jeden lesbar&nbsp;ist.&nbsp;Sensible Daten sind also zu vermeiden&nbsp;\ud83d\ude0a.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"324\" height=\"30\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-11.png\" alt=\"\" class=\"wp-image-186\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-11.png 324w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-11-300x28.png 300w\" sizes=\"(max-width: 324px) 100vw, 324px\" \/><\/figure>\n\n\n\n<p>Zum Verbinden, Versenden (=\u201c<em>Publish<\/em>\u201c) und Abonnieren (=\u201c<em>Subscribe<\/em>\u201c) \u00fcber das MQTT-Protokoll sind Bibliotheken einzubinden. Dies erfolgt \u00fcber ein&nbsp;\u201e#import&nbsp;Bibliothek\u201c&nbsp;zu Beginn des Sourcecodes und erm\u00f6glicht es,&nbsp;ohne eigene Programmierung viele Funktionalit\u00e4ten auf dem ESP8266&nbsp;auszuf\u00fchren. Dieses Vorgehen&nbsp;ist vergleichbar zu anderen Programmiersprachen wie Java oder Python, wobei z.B. in Python via der QR-Library mit wenigen Zeilen Code ein QR-Code erstellt&nbsp;werden kann. Im gew\u00fcnschten Einsatzszenario sind hierf\u00fcr die Bibliotheken \u201e<em>PubSubClient<\/em>\u201c, \u201e<em>ESP8266WIFI<\/em>\u201c und \u201e<em>ESP8266WiFiMulti<\/em>\u201c n\u00f6tig.&nbsp;<\/p>\n\n\n\n<p>Im nachfolgenden Bild wird die Installation einer Bibliothek gezeigt.&nbsp;Zun\u00e4chst muss hierbei eine zus\u00e4tzliche&nbsp;Boardverwalter-URL definiert werden, wor\u00fcber die Bibliotheken von der Arduino IDE bezogen werden.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"716\" height=\"37\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-13.png\" alt=\"\" class=\"wp-image-188\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-13.png 716w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-13-300x16.png 300w\" sizes=\"(max-width: 716px) 100vw, 716px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-14.png\" alt=\"\" class=\"wp-image-189\" width=\"590\" height=\"330\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-14.png 787w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-14-300x168.png 300w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-14-768x429.png 768w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/figure>\n\n\n\n<p><strong>Beschreibung des Sourcecodes:&nbsp;<\/strong><\/p>\n\n\n\n<p>Der ESP8266&nbsp;verbindet sich in der&nbsp;einmalig ausgef\u00fchrten&nbsp;setup()-Funktion mit dem WLAN und gibt&nbsp;den Status der Verbindung&nbsp;\u00fcber den seriellen Monitor aus. Der serielle Monitor beschreibt eine Art von Terminal, welche&nbsp;in der&nbsp;IDE&nbsp;\u00fcber den Men\u00fcpunkt&nbsp;\u201e<strong><em>Werkzeuge<\/em><\/strong>\u201c&nbsp;aufgerufen&nbsp;kann.&nbsp;<\/p>\n\n\n\n<p>In der Funktion&nbsp;loop(), welche schleifenartig ausgef\u00fchrt wird, befindet sich die Logik des ESPs. Hierbei wird die Masse des Getr\u00e4nks ermittelt und an das entsprechende Topic \u201emassBeverage\u201c gesendet.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-15.png\" alt=\"\" class=\"wp-image-190\" width=\"731\" height=\"435\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-15.png 974w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-15-300x179.png 300w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-15-768x457.png 768w\" sizes=\"(max-width: 731px) 100vw, 731px\" \/><\/figure>\n\n\n\n<p>Wie im vorliegenden Screenshot ersichtlich ist, werden die Testnachrichten versendet und k\u00f6nnen \u00fcber die Weboberfl\u00e4che ausgelesen werden. In einem weiteren Blogeintrag wird die Gegenseite betrachtet, wobei der ESP8266 als Subscriber&nbsp;Nachrichten erh\u00e4lt&nbsp;und basierend darauf Aktionen ausf\u00fchrt.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hintergrund des Vorhabens:&nbsp; Um jeden Bierdeckel&nbsp;bestehend aus dem&nbsp;Mikrocontroller ESP8266 mit dem&nbsp;Raspberry Pi im&nbsp;Netzwerk der Gastronomie zu verbinden, wird dieser mit dem MQTT-Protokoll angebunden. Der ausgef\u00fchrte Sourcecode wird mittels der IDE \u201eArduino\u201c auf den ESP8266 \u00fcbertragen. Vorgehen:&nbsp; Hierzu muss im ersten<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts\/183"}],"collection":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/comments?post=183"}],"version-history":[{"count":5,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts\/183\/revisions"}],"predecessor-version":[{"id":195,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts\/183\/revisions\/195"}],"wp:attachment":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/media?parent=183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/categories?post=183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/tags?post=183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}