Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:controllers:espeasy

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


Vorhergehende Überarbeitung
Nächste Überarbeitung
hardware:controllers:espeasy [2018/01/15 15:10] – adding GUI to flashing espeasy princemichi
Zeile 1: Zeile 1:
 +====== ESPeasy ======
 +===== Allgemeines =====
 +Viele User suchen nach einer einfachen Lösung um den Volkszähler ...\\
 +  * ohne Programmierungskenntnisse\\
 +  * ohne großen Zeitaufwand\\
 +  * ohne große Kosten\\
 +  * Platzsparend (z.B. in einer Unterputzdose)\\
 +  * und dezentral \\
 +... mit Daten zu füttern.\\
 +\\
 +Mit Hilfe von ESPeasy ist es möglich einen kleinen Chip mit WLAN in sein eigenes Heimnetz zu integrieren und Daten an den eigenen Volkszähler zu senden.\\
 +Hierfür sind wenige bis keine Programmierkenntnisse erforderlich. Zudem benötigt man kaum Hardware um zum Beispiel Temperaturen zu erfassen.
  
 +ESPeasy stellt für den ESP8266-Chip und den ESP8285-Chip eine Weboberfläche zur Verfügung, mit der es ganz einfach ist diesen Chip über WLAN anzusprechen und die GPIO Ports zu verwalten.
 +
 +==== Möglichkeiten mit ESPeasy ====
 +Dank des Frameworks können über 40 verschiedene Sensoren erfasst werden.\\
 +Einige als Beispiel:
 +  * DHT 11/12/22
 +  * DS18B20
 +  * INA219
 +  * SHT30
 +
 +==== GPIOs über URL steuern ====
 +Zusätzlich können die GPIO´s des Chips einfach über die im Heimnetz hinterlegte IP Adresse angesprochen werden.\\
 +Beispiel: Man hängt an einen GPIO-Port ein Relais und kann dieses wie folgt schalten:\\
 +AUS schalten:\\
 +http://<ESP IP addresse>/control?cmd=GPIO,<pin>,0\\
 +AN schalten:\\
 +http://<ESP IP addresse>/control?cmd=GPIO,<pin>,1
 +
 +===== Software =====
 +==== ESPeasy ====
 +Das ESPeasy-Projekt wurde vom Hersteller Names letscontrolit ins Leben gerufen. Aktuell gibt es verschiedene Versionen z.B. auch ESPeasyMega. Hierbei handelt es sich um eine aktuell noch in Entwicklung befindliche Version, welche in aktuellen Tests mit dem Volkszähler funktioniert. Weiteres hierzu im Bereich Einrichten.
 +=== Projektdokumentation ===
 +Das Projekt hat eine eigene [[https://www.letscontrolit.com/wiki/index.php/Main_Page|Dokumentation]].
 +Zudem gibt es auch unter Github eine entsprechende Source: [[https://github.com/letscontrolit/ESPEasy|ESPeasy]]
 +
 +===== Hardware =====
 +
 +==== Was ist der ESP8266? ====
 +Hierbei handelt es sich um einen WLAN-Chip, welcher Standardmäßig schon GPIO-Ports mit bringt.\\
 +Der ESP8266 ist sehr klein und wird meistens auf kleinen Entwicklungsboards verbaut, etwa dem NodeMCU V2.\\
 +Es können Programme in der Arduino-Umgebung programmiert werden und dann auf den Chip geflasht werden.\\
 +ESPeasy ist nichts anderes wie ein solches Programm, welches aber schon von Haus aus alle benötigten Funktionen mit sich bringt.\\
 +{{:hardware:controllers:esp8266.jpg?400 |}} \\
 +{{:hardware:controllers:esp12e-pinbelegung-1.png?600 |}}
 +Charakteristisch für den ESP8266 sind sein Gehäuse und die WLAN-Antenne, welche links vom Chip montiert ist.
 +==== NodeMCU V2 ====
 +Der NodeMCU V2 zeichnet sich durch folgende Eigenschaften aus:\\
 +  * WLAN-Onboard
 +  * Arduino-Umgebung
 +  * CP2102-Chip Onboard: Dank des USB-Chips kann der ESP8266 einfach per Micro-USB programmiert werden
 +  * Für den CP2102-Chip muss nicht noch extra ein Windows Treiber installiert werden, im Gegensatz zum CH340-Chip-USB-Treiber (NodeMCU V3).
 +  * Die GPIO-Ports werden auf Pin-outs geführt, welche direkt auf ein Breadboard gesteckt werden können
 +  * Es ist ein 4096 kByte großer Speicher verfügbar
 +  * Das NodeMCU ist eigentlich auch nur ein ESP8266-Chip, welcher aber um den CP2102 erweitert wurde um den ESP8266 einfach programmieren zu können
 +Wie man sieht ist der kleinere ESP8266-Chip auf der Grundplatine montiert, welche nebst noch über einen Micro-USB Anschluss verfügt:
 +{{:hardware:controllers:nodemcu_v2_oben.jpg?400 |}} \\
 +{{:hardware:controllers:nodemcu_v2_unten.jpg?400 |}} \\
 +{{:hardware:controllers:amica-nodemcu-esp8266-lua-cp2102-wifi-development-module-iot-gujarat.png |}}
 +===== Einrichten =====
 +Es gibt viele Möglichkeiten ESPeasy zu verwenden. Nur ein mögliches Szenario ist die Verwendung der NodeMCU V2-Platine, welche z.B. über Amazon zu erhalten ist.
 +==== Beispiel Temperaturerfassung mit NodeMCU V2 und DS18B20 ====
 +Im folgenden Beispiel soll die Temperatur mittels 1-Wire Sensor DS18B20 an den Volkszähler übermittelt werden.
 +=== Kosten ===
 +  * NodeMCU V2, ab ca. 3 Euro bei eBay; oder ca. 7,50 Euro bei Amazon
 +  * DS18B20, bekannterweise ab ca. 1 Euro bei eBay
 +  * 4,7 kOhm Widerstand, ab ca. 10 Cent\\
 +Somit kann später für unter 5 Euro eine Temperatur erfasst werden.\\
 +
 +zusätzlich für eine Testschaltung:\\
 +  * Steckbrücken, ab ca. 1,50 Euro
 +  * Breadboard, ab ca. 2,65 Euro
 +
 +=== Zeitaufwand ===
 +Wenn man sich eine Testschaltung mit Breadboard aufbaut, Schätzungsweise ca. 1 Stunde mit einbinden des ESP8266 ins WLAN.\\
 +Wenn man sich eine kleine Platine lötet, ca. 2 Stunden bis zum fertigen "Produkt".
 +=== Beschaffung der Teile ===
 +  - NodeMCU V2 [[https://www.amazon.de/AZDelivery-NodeMCU-ESP8266-ESP-12E-Development/dp/B06Y1LZLLY|Amazon]] oder [[https://www.ebay.de/itm/162747879215|eBay]]
 +  - DS18B20 [[https://www.amazon.de/AZDelivery-DS18B20-digitaler-Temperatursensor-Arduino/dp/B01LXQF9B5/|Amazon]] oder [[https://www.ebay.de/itm/272477127156|eBay]] oder [[https://www.conrad.de/de/linear-ic-temperatursensor-wandler-maxim-integrated-ds18b20-digital-zentral-1-wire-to-92-3-1123323.html|Conrad]]
 +  - 4k7 Widerstand [[https://www.conrad.de/de/metallschicht-widerstand-47-k-axial-bedrahtet-0207-06-w-yageo-mf0207fte52-4k7-1-st-1417705.html|Conrad]]
 +  - Drahtbrücken [[https://www.amazon.de/Breadboard-Steckbr%C3%BCcken-Drahtbr%C3%BCcken-Stecker-Jumper/dp/B00IRYUZMO/|Amazon]]
 +  - Breadboard [[https://www.amazon.de/SODIAL-Steckbrett-Breadboard-Experimentierboard-Steckplatine/dp/B00JGFDKBQ/|Amazon]]
 +
 +=== Schaltung aufbauen ===
 +Nachfolgende Schaltung auf einem Breadboard stecken:\\
 +{{:hardware:controllers:schaltung_nodemcu_ds18b20_esp8266.jpg?400|}}
 +{{:hardware:controllers:schaltung_nodemcu_ds18b20_esp8266_2.jpg?400|}}
 +{{:hardware:controllers:schaltung_nodemcu_ds18b20_esp8266_3.jpg?600|}}
 +=== Spannungsversorgung realisieren ===
 +  - Entweder über den 5V Micro-USB Anschluss des NodeMCU, oder
 +  - mit einem 5VDC Netzteil (mind. 1A) über die Pins __Vin__ und __GND__ anschließen (Pins 1 und 2 direkt neben dem Reset-Schalter)
 +=== Flashen ===
 +== Möglichkeit 1: Komandozeile ==
 +Nun muss der ESP8266 geflasht werden. Hierfür bitte von folgender Seite ESPeasyMega (aktuell noch in der Beta Version) herunterladen: [[https://github.com/letscontrolit/ESPEasy/releases|ESPEasy_v2.0.0-dev12.zip]].\\
 +In der heruntergeladenen .zip-Datei befindet sich die Datei "ESPEasy_v2.0.0-dev12_normal_4096.bin".\\
 +Dies ist die binary, welche wir auf den ESP8266 flashen müssen. Dies machen wir über die Komandozeile mit der Datei "esptool.exe", welche sich ebenso in der .zip-Datei befindet!\\
 +Wir legen uns diese zwei Dateien also auf unserem PC bereit und schließen den NodeMCU via USB an unseren PC an.\\
 +Über den Hardware-Manager überprüfen wir nun den COM-Port, an dem wir den NodeMCU an den PC angeschlossen haben.\\
 +Start - Ausführen - "cmd" - als Administrator ausführen.\\
 +Nun flashen wir den NodeMCU mit dem folgenden Befehl:
 +<code>
 +esptool.exe -vv -cd nodemcu -cb 115200 -cp COM<dein_comport> -ca 0x00000 -cf ESPEasy_v2.0.0-dev12_normal_4096.bin
 +</code>
 +Bitte nicht vergessen in dem obigen Code den Comport einzusetzen. Das flashen kann bis zu einer Minute dauern.
 +== Möglichkeit 2: GUI verwenden ==
 +Im Download-Paket z.B. von "ESPEasy_v2.0.0-dev12" ist der GUI-Flasher **FlashESP8266.exe** enthalten. Diese Datei ausführen und dort nur den COM-Port und die passende Firmware-Datei auswählen und den Flash-Button drücken - fertig!
 +{{:hardware:controllers:espeasy-gui-flashing-nodemcu.png?400 |}}
 +=== WLAN verbinden ===
 +Der NodeMCU ist jetzt bereit und kann von einem WLAN fähigen Gerät als AccessPoint erkannt werden.\\
 +Also jetzt WLAN auf dem Notebook oder Handy einschalten und nach einer SSID Namens "**ESP_0**" oder "**ESP_easy_0**" suchen.\\
 +Wenn die SSID in der Liste erscheint mit dieser Verbinden. Das richtige Passwort zum verbinden lautet: "**configesp**".\\
 +{{:hardware:controllers:wlan_esp_0.png?250 |}}\\
 +Die Verbindung wird aufgebaut und es sollte sich automatisch in deinem Standartbrowser ein Fenster öffnen.\\
 +Jetzt wählst du die SSID von deinem Heimnetzwerk aus und trägst das Passwort deines WLAN-Netzwerkes ein.\\
 +Mit dem klick auf "verbinden" startet das ESP jetzt eine Verbindung mit deinem Netzwerk.\\
 +Jetzt läuft eine Zeit von 20 Sekunden auf 0 herunter. Am Ende solltest du jetzt die neue IP deines ESPs in deinem Netzwerk angezeigt bekommen. Du kannst jetzt die WLAN-Verbindung zu deinem ESP trennen und dich wieder mit deinem Heimnetzwerk verbinden. Dort kannst du dich jetzt mit der vorhin angeigten IP zu deinem ESP verbinden und es parametrieren.\\
 +{{:hardware:controllers:wlan_esp_1.png?400 |}}
 +{{:hardware:controllers:wlan_esp_2.png?400 |}}
 +=== Parametrieren ===
 +Nachdem du nun deinen ESP im Netzwerk über den Browser aufgerufen hast, kannst du diesen über das Webinterface parametrieren. Nachfolgend werden nur die benötigten Einstellungen erwähnt.\\
 +== Config ==
 +{{:hardware:controllers:esp_parametrierung_config_1.jpg?400 |}}
 +__**Main Settings**__\\
 +Unit Name: Name deines ESP´s im Netzwerk\\
 +Unit Number: Wenn du mehrere ESP´s verwendest muss hier jedes ESP eine eigene Nummer haben!\\
 +Admin Password: Passwort um das Webinterface zu sperren\\
 +__**Wifi Settings**__\\
 +SSID: Name deines WLAN-Netzwerkes\\
 +WPA Key: Passwort deines WLAN-Netzwerkes\\
 +__**IP Settings**__\\
 +Solltest du statische IP-Adressen in deinem Netzwerk vergeben, so kannst duhier deinem ESP eine feste IP vergeben!\\
 +
 +== Controllers ==
 +Bitte Controller Nr. 1 mit dem "Edit" Button öffnen.\\
 +{{:hardware:controllers:esp_parametrierung_controllers_1.jpg?400 |}}
 +__**Controller Settings**__\\
 +Protocol: "Generic HTTP" auswählen\\
 +Locate Controller: "Use IP adress" auswählen\\
 +Controller IP: Bitte die IP deiner Volkszählerinstallation angeben\\
 +Controller Publish: __**middleware.php/data/%valname%.json?operation=add&value=%value%**__ in das Feld eintragen\\
 +Enabled: Haken auf "true" setzen
 +== Devices ==
 +Bitte Device Nr. 1 mit dem "Edit" Button öffnen.\\
 +{{:hardware:controllers:esp_parametrierung_devices_1.jpg?400 |}}
 +__**Task Settings**__\\
 +Device: "Environment - DS18b20" auswählen. Hier siehst du übrigens auch, welche Sensoren alle ausgelesen werden können!\\
 +Name: Beliebiger Name deines Temp.-Sensors, idealerweise z.B. die UUID deines Channels im VZ.\\
 +Enabled: Haken auf "true" setzen\\
 +__**Sensor**__\\
 +1st GPIO: "GPIO-2 (D4)" auswählen, weil wir den Temperatursensor in der Schaltung dort angeschlossen haben.\\
 +Device Address: Hier sollte nach dem ersten speichern die ID deines DS18B20 auswählbar sein!\\
 +Device Resolution: "12 Bit" auswählen\\
 +__**Data Acquisition**__\\
 +Send to Controller ❶: Haken auf "true" setzen\\
 +Delay: Hier stellst du ein, wie oft das ESP Temperaturwerte an deine VZ-Instalallation sendet.\\
 +__**Values**__\\
 +Name: hier muss die UUID deines Channels in deiner Volkszählerinstallation eingetragen werden. Bitte mit Bindestrichen!\\
 +Decimals: "3" einstellen\\
 +=== Tests durchführen ===
 +Solltest du alle Schritte richtig ausgeführt haben, kannst du nun über "Devices" die gemessene Temperatur in einem grünen Feld angezeigt bekommen und die Werte sollten an deinen VZ übermittelt werden!
 +{{:hardware:controllers:esp_parametrierung_devices_2.jpg?600 |}}
hardware/controllers/espeasy.txt · Zuletzt geändert: 2023/02/12 18:37 von jau