{"id":4110,"date":"2017-08-01T11:45:23","date_gmt":"2017-08-01T09:45:23","guid":{"rendered":"http:\/\/www.generationrobots.com\/blog\/?p=4110"},"modified":"2023-03-29T11:43:57","modified_gmt":"2023-03-29T09:43:57","slug":"homeautomation-mit-raspberry-pi-und-esp8266","status":"publish","type":"post","link":"https:\/\/www.generationrobots.com\/blog\/de\/homeautomation-mit-raspberry-pi-und-esp8266\/","title":{"rendered":"Homeautomation mit Raspberry Pi und ESP8266"},"content":{"rendered":"\n<html>\n <body>\n  <h2 class=\"wp-block-heading\" id=\"h-uberblick-homeautomation-mit-raspberry-pi-und-esp8266\">\n   \u00dcberblick Homeautomation mit Raspberry Pi und ESP8266\n  <\/h2>\n  \n  \n  <p>\n   Im Sinne der steigenden Homeautomation steigen auch die Preise von schl\u00fcsselfertigen \u201cSmart Home\u201d L\u00f6sungen. Eine L\u00f6sung, bei welcher man selbst noch einiges lernen kann, Geld spart und Spa\u00df hat, hei\u00dft \u201cmach es selbst\u201d (DIY).\n  <\/p>\n  \n  \n  <p>\n   In dieser Anleitung zur Homeautomation wird erkl\u00e4rt, wie man von einem Computer aus einen\n   <b>\n    Verbraucher\n   <\/b>\n   , welcher mit einem WLAN-f\u00e4higen Mikrokontroller verbunden ist, \u00a0drahtlos\n   <b>\n    ein-\n   <\/b>\n   und\n   <b>\n    ausschalten\n   <\/b>\n   kann. Dies k\u00f6nnte man ein bisschen mit einer Funksteckdose vergleichen, allerdings auf WLAN Basis.\n  <\/p>\n  \n  \n  <p>\n   Dazu m\u00f6chte ich zeigen, wie man:\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    den Mikrokontroller programmiert\n   <\/li>\n   \n   \n   <li>\n    welche Software installiert werden muss\n   <\/li>\n   \n   \n   <li>\n    was dahinter steckt\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-was-unterscheidet-dieses-how-to-von-anderen-esp8266\">\n   Was unterscheidet dieses How-To von anderen ESP8266?\n  <\/h3>\n  \n  \n  <p>\n   Alle Begriffe im n\u00e4chsten Absatz werden sp\u00e4ter noch erkl\u00e4rt und werden nicht als Grundwissen vorausgesetzt. Sie dienen lediglich dazu, Kennern mit Erfahrung in diesem Bereich eine Orientierung des Artikels zu geben.\n  <\/p>\n  \n  \n  <p>\n   Dieses How-To verwendet einen \u00fcblichen ESP8266 Mikrokontroller. Allerdings wird die Software bereits so angepasst, dass der ferngesteuerte Schalter (\u00fcber Mosquitto) sehr einfach in ein System zur Heimautomation\u00a0(OpenHAB2 und Amazon Echo) eingebunden werden kann.\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-voraussetzungen-vorkenntnisse\">\n   Voraussetzungen\/Vorkenntnisse\n  <\/h3>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    Ein Linuxcomputer (z.B. Ubuntu) \u00a0oder einen\n    <a class=\"catalogue\" href=\"\/de\/402366-raspberry-pi-3-modell-b.html\">\n     Raspberry Pi\n    <\/a>\n    (empfohlen)\n   <\/li>\n   \n   \n   <li>\n    Ein\n    <a class=\"catalogue\" href=\"https:\/\/www.amazon.de\/s\/ref=nb_sb_noss_2?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;url=search-alias%3Daps&amp;field-keywords=nodemcu+esp8266&amp;rh=i%3Aaps%2Ck%3Anodemcu+esp8266\">\n     ESP8266 NodeMCU\n    <\/a>\n    Board\n   <\/li>\n   \n   \n   <li>\n    Ein WLAN Router oder einfach ein WLAN Netzwerk (dessen SSID und Passwort)\n   <\/li>\n   \n   \n   <li>\n    Ein Relai oder eine LED\n   <\/li>\n   \n   \n   <li>\n    Umgang mit der Kommandozeile\n   <\/li>\n   \n   \n   <li>\n    Installation von Programmen\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Zus\u00e4tzlich empfohlene Hardware:\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    ein Mikro USB Kabel\n   <\/li>\n   \n   \n   <li>\n    eine Versuchsplatine\n   <\/li>\n   \n   \n   <li>\n    eine 5V Stromversorgung\n   <\/li>\n   \n   \n   <li>\n    ein paar Jumperkabel\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-wieso-ein-raspberry-pi-oder-linux-computer\">\n   Wieso ein Raspberry Pi oder Linux Computer?\n  <\/h3>\n  \n  \n  <p>\n   Der Raspberry Pi hat den Vorteil, dass:\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    er g\u00fcnstig in der Anschaffung ist\n   <\/li>\n   \n   \n   <li>\n    er eine riesige Community hat\n   <\/li>\n   \n   \n   <li>\n    die Installation sehr einfach ist\n   <\/li>\n   \n   \n   <li>\n    er geringe laufende Kosten hat\n   <\/li>\n   \n   \n   <li>\n    er \u00fcber eine passive K\u00fchlung verf\u00fcgt\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Das macht ihn zum Spitzenkandidaten. Nat\u00fcrlich gehen auch andere Boards wie Odroid, Beaglebone, Omega2+ usw. Meiner Ansicht nach ist die Installation auf dem Raspberry Pi am einfachsten. Bei einer Neuanschaffung empfehle ich den\n   <strong>\n    <a class=\"catalogue\" href=\"\/de\/402366-raspberry-pi-3-modell-b.html\">\n     Raspberry Pi 3\n    <\/a>\n   <\/strong>\n   , da dieser Preis-Leistungstechnisch einfach am besten geeignet ist.\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-wieso-ein-esp8266-node-mcu-board\">\n   Wieso ein ESP8266 Node MCU Board?\n  <\/h3>\n  \n  \n  <p>\n   Diese Boards haben mehrere gro\u00dfe Vorteile:\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    Sie sind extrem g\u00fcnstig\n   <\/li>\n   \n   \n   <li>\n    Sie haben einen USB Anschluss\n   <\/li>\n   \n   \n   <li>\n    Sie sind leistungsst\u00e4rker als ein vergleichbarer ATMega der gleichen Preisklasse\n   <\/li>\n   \n   \n   <li>\n    Sie haben ein integriertes WLAN Modul\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Diese Module gibt es mit zwei verschiedenen Chips f\u00fcr den USB Controller. Sofern der CH340 Chip verwendet wird, muss der unten genannte Treiber unter Windows installiert werden. Unter Linux wird dieser sofort erkannt.\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-welche-software-wird-verwendet\">\n   Welche Software wird verwendet?\n  <\/h3>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    Mosquitto\n   <\/li>\n   \n   \n   <li>\n    Arduino IDE\n   <\/li>\n   \n   \n   <li>\n    CH340 Treiber (wird nur bei Windows ben\u00f6tigt, wenn das ESP Board den CH340er Chip hat)\n   <\/li>\n   \n   \n   <li>\n    MQTT.fx\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-wieso-mosquitto\">\n   Wieso Mosquitto?\n  <\/h3>\n  \n  \n  <p>\n   Mosquitto ist eine Implementierung des\n   <a class=\"catalogue\" href=\"https:\/\/de.wikipedia.org\/wiki\/MQTT\">\n    MQTT Protokolls\n   <\/a>\n   . Dabei handelt es sich um ein Nachrichtenprotokoll zur Kommunikation zwischen verschiedenen Ger\u00e4ten. Da dass Ziel ist, einen Verbraucher von einem entfernten Computer zu steuern, bietet sich dieses Protokoll an. Es hat folgende Vorteile:\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    geringer Speicherbedarf\n   <\/li>\n   \n   \n   <li>\n    zuverl\u00e4ssige \u00dcbertragung auch bei hohen Verz\u00f6gerungen\n   <\/li>\n   \n   \n   <li>\n    Standardprotokoll bei IoT (Internet of Things)\n   <\/li>\n   \n   \n   <li>\n    direkte Integration in das Heimautomatisierungssystem OpenHAB2\n   <\/li>\n   \n   \n   <li>\n    einfache Installation durch Mosquitto\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Dieses Protokoll wird auch verwendet, da etwas wiederverwertbares realisiert werden soll.\u00a0Der Verbraucher kann in sp\u00e4terer Folge direkt \u00fcber eine Schnittstelle von OpenHAB2 gesteuert werden. Diese Schnittstelle, kann dann ein beliebiges Handy, PC, oder Mikrokontroller sein.\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-wieso-openhab2\">\n   Wieso OpenHAB2\n  <\/h3>\n  \n  \n  <p>\n   OpenHAB2 ist eine Open-Source L\u00f6sung f\u00fcr Heimautomation, welche ein Grundger\u00fcst bereitstellt. Sie muss nur mehr f\u00fcr die eigenen Zwecke eingestellt werden und nimmt einem eine Menge Arbeit ab. Dar\u00fcber hinaus gibt es viele Plugins, welche die Kommunikation vereinfachen. Z.B. gibt es eine einfache M\u00f6glichkeit eine\n   <a class=\"catalogue\" href=\"https:\/\/de.wikipedia.org\/wiki\/Amazon_Echo\">\n    Amazon Echo\n   <\/a>\n   mit OpenHAB2 zu verbinden. Damit kann man dann die Verbraucher\/Sensoren direkt \u00fcber einen Sprachbefehl steuern. Auf die Amazon Echo und OpenHAB2 wird in diesem Tutorial nicht weiter eingegangen.\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-weitere-infos-zu-mosquitto\">\n   Weitere Infos zu Mosquitto\n  <\/h3>\n  \n  \n  <p>\n   Wer\n   <a class=\"catalogue\" href=\"http:\/\/wiki.ros.org\">\n    ROS\n   <\/a>\n   , welches in der Robotik sehr verbreitet ist, kennt, wird mit Mosquitto seine Freude haben. Die Funktionalit\u00e4t \u00e4hnelt sehr stark dem Publisher-Subscriber Prinzip bei ROS. \u00a0Bei Mosquitto gibt es einen zentralen Punkt, wo s\u00e4mtliche Kommunikation zusammenl\u00e4uft, der sogenannte Broker bzw Server. Bei ROS w\u00e4re das der roscore. Ein Beispiel: Ger\u00e4t A m\u00f6chte etwas mitteilen (z.B. Temperatur eines Sensors) und meldet sich beim Broker an. Nun kann sich ein anderes Ger\u00e4t B beim Broker anmelden und mitteilen, dass er gerne den Temperaturwert h\u00e4tte. Daraufhin verbinden Sie diese beiden und Ger\u00e4t A schickt an Ger\u00e4t B den Wert. Der Broker ist also f\u00fcr die Verbindungsherstellung notwendig. Daher sollte der Broker, wenn man sein Zuhause automatisieren m\u00f6chte, eigentlich immer verf\u00fcgbar sein. Daher bietet sich der Raspberry Pi sehr gut an, da man f\u00fcr diese kleinen Arbeitsaufgaben keinen vollst\u00e4ndigen PC ben\u00f6tigt.\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-wieso-arduino-ide\">\n   Wieso Arduino IDE\n  <\/h3>\n  \n  \n  <p>\n   Zur Programmierung des Mikrokontrollers brauchen wir irgendeine praktische Programmierumgebung. Die Arduino IDE ist frei verf\u00fcgbar und sehr flexibel. Alle ben\u00f6tigten Bibliotheken und Boards sind einfach hinzuzuf\u00fcgen. Au\u00dferdem gibt es eine riesige Community, welche bei Fragen helfen kann.\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-wieso-mqtt-fx\">\n   Wieso MQTT.fx?\n  <\/h3>\n  \n  \n  <p>\n   Zum Einstieg empfehle ich,\n   <a class=\"catalogue\" href=\"http:\/\/www.mqttfx.org\/\">\n    MQTT.fx\n   <\/a>\n   zu installieren. Dies ist ein einfaches grafisches Fenster, welches Nachrichten anzeigen kann, welche \u00fcber Mosquitto gesendet werden. \u00a0Das ist zur Fehlersuche \u00e4u\u00dferst n\u00fctzlich. Diese Software ist nat\u00fcrlich frei verf\u00fcgbar und gibt es zum Download f\u00fcr alle gro\u00dfen Systeme.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-ziele-dieses-how-to\">\n   Ziele dieses\u00a0How-To\n  <\/h2>\n  \n  \n  <p>\n   Damit wir sehen, dass die Kommunikation in beide Richtungen funktioniert, sind das unsere Ziele:\n  <\/p>\n  \n  \n  <ol class=\"wp-block-list\">\n   \n   <li>\n    Steuern des Verbrauchers am Mikrokontroller \u00fcber WLAN mit der Kommandozeile.\n   <\/li>\n   \n   \n   <li>\n    Empfang einer Nachricht vom Mikrokontroller.\n   <\/li>\n   \n  <\/ol>\n  \n  \n  <p>\n   Damit wir am Schluss auch unser tolles Resultat sehen k\u00f6nnen, w\u00e4ren eine\n   <b>\n    LED\n   <\/b>\n   und ein\n   <b>\n    Widerstand\n   <\/b>\n   von Vorteil. Angeblich soll es auch mit der eingebauten LED gehen, was bei mir aber nicht der Fall war.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-installation\">\n   Installation\n  <\/h2>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-raspberry-pi\">\n   Raspberry Pi\n   <a class=\"catalogue\" href=\"\/blog\/wp-content\/uploads\/2017\/08\/raspberry-pi-logo.jpg\">\n    <img decoding=\"async\" alt=\"Raspberry Pi\" class=\"alignright wp-image-4118 size-medium\" height=\"180\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/raspberry-pi-logo-239x300.jpg\" width=\"142\"\/>\n   <\/a>\n  <\/h3>\n  \n  \n  <p>\n   Sofern der Raspberry Pi neu sein sollte und noch kein System darauf l\u00e4uft, empfehle ich gleich die komplette Installation des OpenHABian. Ansonsten kann dieses Kapitel \u00fcbersprungen werden.\n  <\/p>\n  \n  \n  <p>\n   Hier eine kleine Zusammenfassung wie man das Betriebssystem auf die SD Karte des Raspberries bekommt.\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/openhab\/openhabian\/releases\/download\/v1.3\/openhabianpi-raspbian-201706161358-git7ff273e-crc00389b9f.img.xz\">\n     SD Kartenabbild\n    <\/a>\n    (Image)\n   <\/li>\n   \n   \n   <li>\n    Kartenabbild entpacken. (\n    <a class=\"catalogue\" href=\"http:\/\/www.7-zip.de\/\">\n     7zip\n    <\/a>\n    unter Windows,\n    <a class=\"catalogue\" href=\"https:\/\/linux-tips.com\/t\/how-to-extract-xz-files\/265\">\n     unxz\n    <\/a>\n    unter Linux)\n   <\/li>\n   \n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/etcher.io\/\">\n     Software\n    <\/a>\n    , um das Kartenabbild auf die SD Karte zu schreiben.\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   M\u00f6chte man Name, Benutzer, Passwort und WLAN Einstellungen anpassen, \u00f6ffnet man nun die SD Karte am PC und sucht die Datei \u201copenhabian.raspbian.conf\u201d. Dort k\u00f6nnen dann folgende Werte ver\u00e4ndert werden:\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    hostname=openHABianPi\n   <\/li>\n   \n   \n   <li>\n    username=openhabian\n   <\/li>\n   \n   \n   <li>\n    userpw=openhabian\n   <\/li>\n   \n   \n   <li>\n    wifi_ssid=\u00a0\u00bbMy Wi-Fi SSID\u00a0\u00bb\n   <\/li>\n   \n   \n   <li>\n    wifi_psk=\u00a0\u00bbpassword123&Prime;\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Danach die Karte in den Raspberry Pi stecken, Netzwerkstecker verbinden und den Pi per Mikro USB mit Spannung versorgen und warten. Das kann durchaus bis zu 45 Minuten dauern. Danach meldet sich dieser unter dem Namen \u201copenhabianpi\u201d \u00a0im Netzwerk an.\n  <\/p>\n  \n  \n  <p>\n   Benutzer und Passwort sind \u201copenhabian\u201d, wenn diese nicht ver\u00e4ndert wurden.\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-mosquitto\">\n   Mosquitto\n   <a href=\"\/blog\/wp-content\/uploads\/2017\/08\/mosquitto-200px.png\">\n    <img decoding=\"async\" alt=\"Mosquitto\" class=\"alignright size-thumbnail wp-image-4119\" height=\"150\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mosquitto-200px-150x150.png\" width=\"150\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mosquitto-200px-150x150.png 150w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mosquitto-200px-140x140.png 140w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/>\n   <\/a>\n  <\/h3>\n  \n  \n  <p>\n   Die Installation des\n   <b>\n    Mosquitto\n   <\/b>\n   Brokers auf dem Raspberry Pi unter Ubuntu oder einem anderem Debian-basierten Betriebssystem verl\u00e4uft hier \u00fcber den Paketmanager sehr einfach.\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    sudo apt-get update\n   <\/li>\n   \n   \n   <li>\n    sudo apt-get install mosquitto\n   <\/li>\n   \n   \n   <li>\n    sudo apt-get mosquitto-clients\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Falls der vorige Befehl zur Installation von Mosquitto nicht funktionieren sollte, muss zuerst eine neue Paketquelle \u00fcber den folgenden Befehl hinzugef\u00fcgt werden:\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    wget\n    <a class=\"catalogue\" href=\"http:\/\/repo.mosquitto.org\/debian\/\">\n     http:\/\/repo.mosquitto.org\/debian\/\n    <\/a>\n    mosquitto-repo.gpg.key\n   <\/li>\n   \n   \n   <li>\n    sudo apt-key add mosquitto-repo.gpg.key\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   F\u00fcr die Installation unter Windows muss die Installationsdatei\n   <a class=\"catalogue\" href=\"https:\/\/mosquitto.org\/download\/\">\n    hier\n   <\/a>\n   heruntergeladen werden.\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-arduino-ide\">\n   Arduino IDE\n   <a class=\"catalogue\" href=\"\/blog\/wp-content\/uploads\/2017\/08\/arduino-ide.png\">\n    <img decoding=\"async\" alt=\"Arduino Ide\" class=\"alignright wp-image-4120 size-thumbnail\" height=\"150\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/arduino-ide-150x150.png\" width=\"150\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/arduino-ide-150x150.png 150w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/arduino-ide-140x140.png 140w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/>\n   <\/a>\n  <\/h3>\n  \n  \n  <p>\n   Das\n   <b>\n    Arduino IDE\n   <\/b>\n   kann\n   <a class=\"catalogue\" href=\"https:\/\/www.arduino.cc\/en\/main\/software\">\n    hier\n   <\/a>\n   heruntergeladen werden. Damit wir das ESP8266\n   <b>\n    Node MCU\n   <\/b>\n   ausw\u00e4hlen k\u00f6nnen, muss dieses\n   <b>\n    Board\n   <\/b>\n   zuerst hinzugef\u00fcgt werden. Dies geht ganz einfach, indem wir die Quelle f\u00fcr dieses Board hinzuf\u00fcgen unter: Datei -&gt; Voreinstellungen -&gt; Zus\u00e4tzliche Boardverwalter URLs\n  <\/p>\n  \n  \n  <p>\n   Dort f\u00fcgen wir dann folgende Zeile hinzu:\n  <\/p>\n  \n  \n  <p>\n   http:\/\/arduino.esp8266.com\/stable\/package_esp8266com_index.json\n  <\/p>\n  \n  \n  <p>\n   Zus\u00e4tzlich brauchen wir nun noch eine\n   <b>\n    MQTT Bibliothek\n   <\/b>\n   . Dazu gehen wir einfach auf \u201cSketch-&gt;Include Library-&gt;Manage Libraries\u201d und suchen dort nach \u201cadafruit mqtt\u201d. Aktuell habe ich die Version 0.17.0 installiert. Eine neuere Version kann\u00a0nat\u00fcrlich auch verwendet werden. Es gibt zwar noch ein paar andere Implementierungen des MQTT Protokolls, aber Adafruit liefert gleich ein recht \u00fcbersichtliches Beispiel mit.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-aufbau-und-ausfuhrung\">\n   Aufbau und Ausf\u00fchrung\n  <\/h2>\n  \n  \n  <p>\n   Nun wird der Mikrokontroller \u00fcber USB mit dem Computer, wo die\/das Arduino IDE installiert ist, verbunden. Unter Tools\/Werkzeuge w\u00e4hlen wir dann unser verwendetes\n   <b>\n    Board\n   <\/b>\n   aus. In meinem Fall entspricht das einem\n   <b>\n    NodeMCU 1.0 (ESP-12E Module)\n   <\/b>\n   . \u00c4hnliche USB Module wie das Huzzah von Adafruit oder andere ESP8266 Chips, welche \u00fcber einen USB Programmierer verbunden sind, funktionieren eigentlich genauso. Die ESP Module mit USB Port sind nat\u00fcrlich komfortabler. F\u00fcr mobile Projekte auf Akkubasis w\u00e4ren kleine Module ohne USB Port und Spannungswandler nat\u00fcrlich sparsamer. Allerdings ist die Hauptzielgruppe hier die Heimautomatisierung und hier machen ein paar Milliampere im Verbrauch keinen gro\u00dfen Unterschied.\n  <\/p>\n  \n  \n  <p>\n   Weitere folgende Einstellungen unter Tools\/Werkzeuge sind dann noch die\n   <b>\n    CPU Frequenz: 80 MHz\n   <\/b>\n   , die\n   <b>\n    Flash Gr\u00f6\u00dfe: 4M (1M SPIFFS)\n   <\/b>\n   und die\n   <b>\n    Upload Geschwindigkeit: 115200\n   <\/b>\n   .\n  <\/p>\n  \n  \n  <p>\n   Als\n   <b>\n    Port\n   <\/b>\n   w\u00e4hlt ihr nat\u00fcrlich das angesteckte ESP Modul z.B: \/dev\/tty\/USB0 unter Linux oder COMX unter Windows.\n  <\/p>\n  \n  \n  <p>\n   Dann w\u00e4hlt ihr unter \u201cFile\/Datei-&gt;Examples\/Beispiele-&gt;Adafruit MQTT Library-&gt;mqtt_esp8266\u201d, wie im Bild unten zu sehen ist. Dieses Beispiel hat beinhaltet schon fast alles. \u00a0Das Einzige, was hierbei fehlt, ist die Steuerung eines Ausganges, wenn wir eine bestimmte Nachricht erhalten.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a href=\"\/blog\/wp-content\/uploads\/2017\/08\/mqtt_example.jpg\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"697\" alt=\"Mosquitto example\" class=\"wp-image-4122\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_example-1024x697.jpg\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_example-1024x697.jpg 1024w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_example-300x204.jpg 300w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_example-687x468.jpg 687w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_example.jpg 1028w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n  <\/p>\n  \n  \n  <p>\n   Nun m\u00fcssen nur noch ein paar Kleinigkeiten eingestellt werden und der erste Schritt Richtung Homeautomation ist getan. Dar\u00fcber hinaus k\u00f6nnen wir dann gleich testen, ob die Kommunikation funktioniert.\n  <\/p>\n  \n  \n  <p>\n   Zuerst m\u00fcssen wir noch den Namen und das Passwort des WLANs definieren, mit welchem sich unser Modul verbinden soll.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a href=\"\/blog\/wp-content\/uploads\/2017\/08\/WLAN_credentials.png\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"73\" alt=\"WLAN Credentials\" class=\"wp-image-4123\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/WLAN_credentials.png\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/WLAN_credentials.png 605w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/WLAN_credentials-300x36.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n  <\/p>\n  \n  \n  <p>\n   Danach muss man die IP Adresse des Rechners angeben, auf dem Mosquitto installiert wurde.\n  <\/p>\n  \n  \n  <p>\n   Auf Linux bekommt man diese ganze einfach, indem man \u201cifconfig\u201d in ein Terminal eingibt. Unter Window gehts am schnellsten mit Windowstaste + R -&gt; cmd -&gt; ipconfig\n  <\/p>\n  \n  \n  <p>\n   Wurde kein Benutzer und Passwort f\u00fcr den Mosquitto Server gesetzt, ist die Kommunikation, innerhalb des lokalen Netzwerkes, ungesch\u00fctzt. Das ist eigentlich kein Problem, au\u00dfer ihr befindet euch in einem \u00f6ffentlichen Netzwerk. Wollt Ihr einen Benutzer und ein dazugeh\u00f6riges Passwort erstellen, k\u00f6nnt Ihr euch\n   <a href=\"http:\/\/www.steves-internet-guide.com\/mqtt-username-password-example\/\">\n    hier\n   <\/a>\n   einlesen.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a href=\"\/blog\/wp-content\/uploads\/2017\/08\/mqtt_broker.png\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"650\" height=\"98\" alt=\"Mosquitto Broker\" class=\"wp-image-4124\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_broker.png\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_broker.png 650w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_broker-300x45.png 300w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n  <\/p>\n  \n  \n  <p>\n   Wenn ihr den Namen der Nachrichten (\u201ctopic\u201d) einstellen wollt braucht ihr diesen (siehe Markierung im n\u00e4chsten Bild) nur abzu\u00e4ndern.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a class=\"catalogue\" href=\"\/blog\/wp-content\/uploads\/2017\/08\/feeds.png\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"767\" height=\"130\" alt=\"Feeds\" class=\"wp-image-4125\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/feeds.png\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/feeds.png 767w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/feeds-300x51.png 300w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/feeds-687x116.png 687w\" sizes=\"(max-width: 767px) 100vw, 767px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n  <\/p>\n  \n  \n  <p>\n   Nun wollen wir endlich die LED schalten. Die LED soll angehen, wenn wir \u201cON\u201d \u00fcber \u201c\/feeds\/onoff\u201d senden und ausgehen, wenn etwas anderes gesendet wird. Das is \u00fcbrigens der Standardwert von Schaltern bei OpenHAB2.\n  <\/p>\n  \n  \n  <p>\n   Zun\u00e4chst m\u00fcssen wir einen Ausgang definieren, der geschaltet werden soll. Daf\u00fcr nehme ich einfach den ersten Ausgang und definiere diesen unterhalb von \u201cvoid setup\u201d in Zeile 60 mit \u201c\n   <b>\n    pinMode(D0, OUTPUT);\n   <\/b>\n   \u201d\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a class=\"catalogue\" href=\"\/blog\/wp-content\/uploads\/2017\/08\/setup_output.png\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"248\" height=\"60\" alt=\"setup_output\" class=\"wp-image-4127\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/setup_output.png\"\/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n  <\/p>\n  \n  \n  <p>\n   Um die Schaltfunktionalit\u00e4t mit m\u00f6glichst geringem Aufwand zu erreichen, gehen wir nun auf Zeile 100 und f\u00fcgen den folgenden Code nach \u201cSerial.println\u201d ein, \u00a0welcher die erhaltene Nachricht auswertet und den Ausgang D0 entweder ein- oder ausschaltet.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a class=\"catalogue\" href=\"\/blog\/wp-content\/uploads\/2017\/08\/callback.png\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"240\" alt=\"callback homeautomation\" class=\"wp-image-4128\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/callback.png\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/callback.png 474w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/callback-300x152.png 300w\" sizes=\"(max-width: 474px) 100vw, 474px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n  <\/p>\n  \n  \n  <p>\n   Dann seid ihr bereit, den Sketch auf den Mikrokontroller hochzuladen und zu testen. Mit STRG+R k\u00f6nnt ihr zun\u00e4chst mal den Sketch kompilieren, um zu sehen, ob der Code Fehler enth\u00e4lt. Wenn keine Fehler aufgetreten sind, kann der Sketch nun mit STRG+U hochgeladen werden. Dies kann durchaus einige Sekunden dauern. Erhaltet ihr als Ergebnis \u201c\n   <b>\n    Done uploading\n   <\/b>\n   \u201d, scheint alles geklappt zu haben.\n  <\/p>\n  \n  \n  <p>\n   Manchmal liefert der USB Port auch zuwenig Strom oder das USB Kabel ist schlecht. Dann k\u00f6nnt ihr das Board zus\u00e4tzlich an eine externe Stromversorgung anschlie\u00dfen. Dazu sind die Pins \u201cVin\u201d und \u201cGND\u201d zu verwenden. Normalerweise h\u00e4lt ein ESP8266 nur 3.3V aus, aber bei dem NodeMCU ist ein Spannungsregler an Board, darum ist es m\u00f6glich Spannungen bis 20V anzuschlie\u00dfen. Allerdings wird die Spannung auf 3.3V heruntergeregelt, was hei\u00dft, dass die \u00fcberfl\u00fcssige Spannung irgendwo verheizt werden muss. Der interne Spannungsregler kann bis zu 800mA zur Verf\u00fcgung stellen. Von daher bietet sich ein Netzteil (Handyladeger\u00e4t) mit einer Spannung von 5V\/1A an. Wenn man keine Pl\u00e4ne hat viel anzuh\u00e4ngen, reicht nat\u00fcrlich eine geringere Stromversorgung auch aus.\n  <\/p>\n  \n  \n  <p>\n   \u00d6ffnet nun den\n   <strong>\n    Seriellen Monitor\n   <\/strong>\n   (STRG+Shift+M oder Lupe rechts oben) im Arduino IDE, stellt auf Baud 115200 und dr\u00fcckt die Resettaste am Modul oder verbindet kurz mit einem Jumperkabel den Pin RST mit GND des Mikrokontrollers. Danach solltet ihr sehen, wie sich das Modul verbindet.\n  <\/p>\n  \n  \n  <p>\n   Nun ist der Softwareteil f\u00fcr den NodeMCU fertig. Damit wir auch etwas sehen, sollten wir nun etwas an den Ausgang \u201cD0\u201d des NodeMCU anschlie\u00dfen. Ich empfehle, zu Beginn die Anode einer kleinen LED an den Ausgang D0 zu h\u00e4ngen und die Kathode der LED mit Ground \u201cGND\u201d zu verbinden. Dies ist im nachfolgenden Bild zu sehen. \u00a0Au\u00dferdem habe ich zur Sicherheit einen kleinen Widerstand in Serie zur LED geschaltet. Die Batterie dient nur als Symbolfoto. Anstatt des LEDs kann nat\u00fcrlich auch ein Relais geschaltet werden.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a class=\"catalogue\" href=\"\/blog\/wp-content\/uploads\/2017\/08\/breadboard-homeautomation.jpg\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"884\" height=\"832\" alt=\"Breadboard Homeautomation\" class=\"wp-image-4129\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/breadboard-homeautomation.jpg\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/breadboard-homeautomation.jpg 884w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/breadboard-homeautomation-300x282.jpg 300w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/breadboard-homeautomation-687x647.jpg 687w\" sizes=\"(max-width: 884px) 100vw, 884px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n  <\/p>\n  \n  \n  <p>\n   Nun ist es an der Zeit MQTT.fx zu starten. L\u00e4uft das Programm auf dem gleichen Rechner wie der \u00a0Mosquitto Server, k\u00f6nnt ihr euch gleich verbinden (\u201clocalhost\u201d). Ansonsten klickt man links oben (unterhalb von File) auf das Dokumentensymbol und erh\u00e4lt ein Eingabefenster wo die IP des Mosquitto Servers eingegeben werden kann. Der Port ist f\u00fcr gew\u00f6hnlich 1883. Ein Klick auf \u201cConnect\u201d sollte uns direkt verbinden.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a class=\"catalogue\" href=\"\/blog\/wp-content\/uploads\/2017\/08\/mqtt_fx1.png\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"575\" height=\"149\" alt=\"Mosquitto fx1\" class=\"wp-image-4130\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_fx1.png\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_fx1.png 575w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/mqtt_fx1-300x78.png 300w\" sizes=\"(max-width: 575px) 100vw, 575px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n  <\/p>\n  \n  \n  <p>\n   Sobald ihr verbunden seid, klickt ihr auf \u201cSubscribe\u201d, dann unten auf \u201cScan\u201d.\n  <\/p>\n  \n  \n  <p>\n   Sofern der NodeMCU richtig ins WLAN eingeloggt ist, sollte er bereits Nachrichten unter dem Namen \u201c\/feeds\/photocell\u201d mit einer aufsteigenden Zahl senden. Das zeigt uns, dass die Kommunikation vom Modul zum PC funktioniert. Ansonsten sollte nochmal im seriellen Monitor der Arduino IDEs \u00fcberpr\u00fcft werden, ob sich das Modul richtig verbunden hat.\n  <\/p>\n  \n  \n  <p>\n   Die Nachrichtenanzeige sollte auch von der Kommandozeile aus funktionieren mit:\n  <\/p>\n  \n  \n  <p>\n   mosquitto_sub -d -t \u201c\/feeds\/photocell\u201d\n  <\/p>\n  \n  \n  <p>\n   Sollte der Mosquittoserver auf einem anderen Rechner laufen, muss nat\u00fcrlich dessen IP noch definiert werden. Dann w\u00fcrde der Kommandozeilenbefehl folgenderma\u00dfen aussehen. Bitte die IP Adresse mit der eures Servers ersetzen.\n  <\/p>\n  \n  \n  <p>\n   mosquitto_sub -h 192.168.0.19 -t \u201c\/feeds\/photocell\u201d\n  <\/p>\n  \n  \n  <p>\n   Die andere Richtung kann genauso getestet werden. Nun ist die Stunde der Wahrheit gekommen. Wurde der Name der Nachricht nicht ge\u00e4ndert k\u00f6nnt ihr nun die LED einschalten mit:\n  <\/p>\n  \n  \n  <p>\n   mosquitto_pub -d -t \u00ab\u00a0\/feeds\/onoff\u00a0\u00bb -m \u00ab\u00a0ON\u00a0\u00bb\n  <\/p>\n  \n  \n  <p>\n   und ausschalten mit:\n  <\/p>\n  \n  \n  <p>\n   mosquitto_pub -d -t \u00ab\u00a0\/feeds\/onoff\u00a0\u00bb -m \u00ab\u00a0OFF\u00a0\u00bb\n  <\/p>\n  \n  \n  <p>\n   Die Nachricht sollte auch in MQTT.fx sichtbar sein, ansonsten gibt es ein Problem mit der Kommunikation. Das gleiche Prinzip wie beim Lesen der Nachrichten (Subscriber), gilt nat\u00fcrlich auch f\u00fcr das Senden der Nachrichten (Publisher). Wenn der Befehl nicht am Mosquittoserver selbst ausgef\u00fchrt wird dann muss noch der Parameter f\u00fcr den Host \u201c -h 192.168.0.19\u201d hinzugef\u00fcgt werden.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-erweiterungsmoglichkeiten-fur-homeautomation\">\n   Erweiterungsm\u00f6glichkeiten f\u00fcr Homeautomation\n  <\/h2>\n  \n  \n  <p>\n   Der n\u00e4chste Schritt w\u00e4re nun OpenHAB2 auf dem Rechner mit Mosquitto zu installieren. Sofern OpenHABian verwendet wurde, ist das auch schon erledigt. \u00a0Danach ist es sehr einfach, ein sch\u00f6nes grafisches Interface zu erstellen, um die Ger\u00e4te zu steuern, welche am NodeMCU h\u00e4ngen. Ein einfaches Beispiel f\u00fcr\u00a0Homeautomation mit Schaltern ist in der n\u00e4chsten Grafik zu sehen.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a class=\"catalogue\" href=\"\/blog\/wp-content\/uploads\/2017\/08\/openhab.png\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"570\" height=\"398\" alt=\"Openhab\" class=\"wp-image-4131\" src=\"http:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/openhab.png\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/openhab.png 570w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/08\/openhab-300x209.png 300w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n  <\/p>\n  \n  \n  <p>\n   Dar\u00fcber hinaus k\u00f6nnen diese auch mit der Amazon Echo verbunden werden. Somit hat man gleich die M\u00f6glichkeit, seine Ger\u00e4te per Sprache anzusteuern. Wie das genau funktioniert, schauen wir uns ein anderes mal an!\n  <\/p>\n  \n <\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>\u00dcberblick Homeautomation mit Raspberry Pi und ESP8266 Im Sinne der steigenden Homeautomation steigen auch die Preise von schl\u00fcsselfertigen \u201cSmart Home\u201d L\u00f6sungen. Eine L\u00f6sung, bei welcher man selbst noch einiges lernen kann, Geld spart und Spa\u00df hat, hei\u00dft \u201cmach es selbst\u201d (DIY). In dieser Anleitung zur Homeautomation wird erkl\u00e4rt, wie man von einem Computer aus einen[&#8230;]<br \/> <a class=\"button\" href=\"https:\/\/www.generationrobots.com\/blog\/de\/homeautomation-mit-raspberry-pi-und-esp8266\/\" style=\"float:right;\">Read this article &gt;&gt;<\/a><\/p>\n","protected":false},"author":188,"featured_media":4134,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10533],"tags":[],"class_list":["post-4110","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-anleitungen-und-tutorials"],"_links":{"self":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/users\/188"}],"replies":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/comments?post=4110"}],"version-history":[{"count":19,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4110\/revisions"}],"predecessor-version":[{"id":12811,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4110\/revisions\/12811"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media\/4134"}],"wp:attachment":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media?parent=4110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/categories?post=4110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/tags?post=4110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}