HowTo: ESPEasy – Firmware kompilieren, flashen und WLAN Zugangsdaten konfigurieren

Jedes Projekt besteht neben vielen wichtigen Hardwarekomponenten auch aus der passenden Software. Dabei ist es oft weniger aufwendig das Projekt zusammenzubauen als später die dazu passende Software zu schreiben.

Diese Arbeit kann man sich aber dank einiger OpenSource-Projekte sparen. Eins davon ist die hier schon oft erwähnte Tasmota-Firmware. Eine andere ist das Projekt ESPEasy.

ESPEasy ist fast eine Art “Betriebssystem” für den ESP8266-Mikrocontroller mit dessen Hilfe sich verschiedene Sensoren und Aktoren steuern und auslesen lassen. Dabei lassen sich unterschiedlichste Sensoren und Aktoren sogar über einfache Regeln miteinander verknüpfen.

Auch viele der Projekte auf Nerdiy.de basieren auf ESPEasy und einem zu dem Projekt passendem Plugin.

Eine generelle Vorgehenseiwese wie Ihr ESPEasy und ggf. gewünschte Plugins auf Eurem ESP8266 installieren könnt, ist im folgenden Artikel beschrieben.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Hilfreiche Artikel:
Bevor ihr mit diesem Artikel startet solltet Ihr die Arduino-IDE installiert und konfiguriert haben. Informationen dazu findet Ihr in dem folgenden Artikel.
Programme installieren – ein Beispiel
ArduinoIDE – Tipps und Tricks

Benötigtes Material:

In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.

Benötigtes Werkzeug:

In der folgenden Liste findet Ihr alle Werkzeuge die Ihr zur Umsetzung dieses Artikels benötigt.


Selber kompilieren oder nicht?

Grundsätzlich gibt es zwei “verschiedene” Wege die gewünschte Firmware auf Euren ESP8266 zu bekommen.

  1. Ihr könnt den Programmcode selber kompilieren (=also den Programmcode in Maschinencode übersetzen) und die dadurch entstandene .bin-Datei auf den ESP8266 übertragen.
  2. Ihr könnt bereits kompilierte .bin-Dateien direkt auf den ESP8266 übertragen.

Beides hat Vor- und Nachteile.

Der Vorteil von 1. ist, dass Ihr alle gewünschten Features aktivieren bzw. deaktivieren könnt. Ihr habt mehr Konfigurationsmöglichkeiten aber dadurch natürlich auch mehr potentielle Fehlerquellen.

Der Vorteil von 2. ist, dass Ihr funktionierende .bin-Dateien recht schnell auf den ESP8266 übertragen könnt. In den meisten Fällen reicht dies auch aus. Nur in dem Fall, dass Ihr mehr “Kontrolle” über die einzelnen Firmware-Optionen haben wollt ist der 1. Weg zu wählen.

Trotzdem wird in diesem Artikel der erste Weg beschrieben.

Weg zwei ist in dem Artikel ESP8266 – mit dem “Esptool” .bin-Dateien unter Windows flashen beschrieben.


Die aktuelle ESPEasy-Version aus dem GitHub kopieren

Damit Ihr die Firmware auf Euren ESP8266 übertragen könnt, müsst Ihr diese natürlich zunächst herunterladen.

Diese ist zum einen im GitHub des Original-Projekts enthalten, welches Ihr hier findet:
https://github.com/letscontrolit/ESPEasy/tree/mega

Außerdem gibt es eine gespiegelte Version auf dem Nerdiy.de-GitHub-Account, welche Ihr hier findet:
https://github.com/Nerdiyde/ESPEasy

Der Vorteil der Nerdiy.de-ESPEasy Version ist, dass alle von Nerdiy.de verfassten Plugins bereits darin enthalten und mit der verwendeten ESPEasy-Version getestet sind. Ihr müsst – falls Ihr eins der Nerdiy-Plugins verwenden wollt – also keine zusätzlichen Plugin-Dateien in das Projekt kopieren. Nachteil ist, dass die ESPEasy-Version im original-Git wahrscheinlich neuer ist.


Benötigte Plugins aktivieren

Manche ESPEasy-Plugins sind nicht standardmäßig aktiviert. Auf diese weise kann man den Speicherplatz für nicht benötigte Plugins sparen.

Wenn Ihr diese Plugins verwenden wollt ist es wichtig, dass Ihr diese vor dem kompilieren “aktiviert”. Wechselt dazu in der Arduino-IDE in das entsprechende Plugin.

Dort findet Ihr meistens relativ weit oben etwas wie das abgebildete “//#define USES_PXXX”. Wenn dieser Teil auskommentiert (also zwei Schrägstriche vorangestellt hat) ist auch das entsprechende Plugin deaktiviert. Um das Plugin nun zu aktivieren müsst Ihr lediglich …
… die beiden vorangestellten Schrägstriche entfernen. Der Teil sollte dann wie abgebildet aussehen.

Firmware flashen

Um die Firmware schließlich mit den gewünschten Einstellungen zu kompilieren und auf den angeschlossenen ESP zu übertragen müsst Ihr zunächst die Konfiguration von Eurem Board angeben.

Dazu klickt Ihr auf “Werkzeuge” und stellt die EInstellungen Eurem ESP entsprechend ein. Für einen Wemos D1 MIni oder ähnliche ESP8266 Versionen könnt Ihr die abgebildeten Einstellungen verwenden.
Um dann die Firmware auf den ESP zu übertragen reicht ein Klick auf den markierten Pfeil.

WLAN-Zugangsdaten konfigurieren

Nachdem Ihr die ESPEasy-Firmware auf Euren ESP8266 übertragen habt, müsst Ihr diesen nun noch mit Eurem WLAN verbinden.

Dazu bietet die ESPEasy-Firmware eine praktische Funktion. Ist auf dem jeweiligen ESP8266 noch kein gülter WLAN-Zugnag hinterlegt mit dem sich die Firmware in einem WLAN einloggen kann, so wird automatisch ein eigenes WLAN eröffnet. Mit diesem WLAN könnt Ihr Euch dann verbinden und über diesem Weg der ESPEasy-Firmware die Logindaten zu Eurem “eigentlichen” WLAN mitteilen.

Im folgenden wird dieser Weg mit einem Android-Handy beschrieben. Prinzipiell funktioniert dies aber auch mit jedem anderen WLAN-fähigem Gerät das auch Internet-fähig ist. Der Vorgang sollte mit einem iOS-Gerät oder normalen Laptop also identisch sein.

Wechselt zunächst in das Fenster in dem Ihr Eure WLAN-Zugänge konfigurieren könnt. Das noch unkonfigurierte ESPEasy-Gerät sollte bereits eingeschaltet sein. Dann könnt Ihr nämlich auch ein WLAN namens “ESP_Easy-0” sehen. Dies ist das WLAN, dass von Eurem ESPEasy-Gerät erstellt wurde.
Verbindet Euch nun mit diesem WLAN und verwendet dabei den Zugangsschlüssel “configesp”.
Der Verbindungsvorgang dauert dann ein paar Sekunden.
Seid Ihr verbunden kann es passieren, dass Ihr die Fehlermeldung “Internet eventuell nicht verfügbar” erhaltet. Dies macht auch Sinn, weil der ESP8266 (über dessen WLAN Ihr ja nun eigentlich auf das Internet zugreifen würdet) nicht an das Internet angeschlossen ist. Für den aktuellen Fall ist das aber kein Problem und Ihr könnt diese Fehlermeldung ignorieren.
Wechselt nun in einen Internet-Browser Eurer Wahl und öffnet die Webseite unter “192.168.4.1”. Dies ist die IP-Adresse Eurers ESPEasy-Geräts.
Nach ein paar Sekunden werdte Ihr auf die abgebildete Webseite weitergeleitet. Hier sind alle Funknetzwerke in Eurer Umgebung aufgelistet die auch das ESPEasy-Gerät empfängt.
Wählt nun mit den – leider schlecht sichtbaren – Radio-Buttons an der linken Seite des jeweiligen Funktnetzwerks das gewünschte (am besten Euer eigenes. 🙂 ) Funknetzwerk aus. gebt dann noch im unteren Textfeld neben “Passwort” das Passwort zu dem ausgewählten Funknetzwerk ein. Habt Ihr die korrekten Einstellungen ausgewählt bestätigt Ihr das ganze indem Ihr auf den “Connect”-Button klickt.

Euer ESPEasy-Gerät startet daraufhin neu und sollte sich nach dem Neustart mit dem ausgewählten WLAN verbinden.

Ihr erkennt dies zum Beispiel daran, dass nun ein neues Gerät in Eurem Netzwerk vorhanden ist. Wie Ihr die Geräte in Eurem Netzwerk anzeigen lassen könnt und auch dessen IP-Adresse herausfinden könnt ist im Artikel IP-Adresse der Geräte im Netzwerk anzeigen/herausfinden beschrieben.

Falls Ihr die falschen WLAN-Zugangsdaten eingegeben habt könnt Ihr Euer ESPEasy-Gerät ganz leicht resetten (=also auf Werkseinstellungen zurücksetzen). Dadurch werden alle – auch ggf. fehlerhafte – Einstellungen gelöscht und Ihr könnt auf dem gleichen vorher beschriebenem Weg neue korrekte Zugangsdaten konfigurieren.
Um Euer ESPEasy Gerät auf Werkseinstellungen zurückzusetzen reicht es den Befehl “reset” auszuführen. Wie Ihr Befehle auf einem ESPEasy-Gerät ausführt ist im Artikel ESPEasy – Befehle und Aktionen per HTTP, MQTT, UDP und direkt ausführen beschrieben. Da Ihr lediglich über die serielle Schnittstelle Zugriff auf Euer ESPEasy-Gerät habt, habt Ihr leider nur über diesen Weg die Möglichkeit Befehle darauf ausführen zu können.


WLAN-Zugangsdaten über die serielle Schnittstelle konfigurieren

Ich persönlich finde es leichter die WLAN-Zugangsdaten über die serielle Schnittstelle zu konfigurieren. Meistens hat man den ESP vorher sowieso geflasht und dazu die serielle Verbindung noch aktiv.

In diesem Fall könnt Ihr Euch mit dem Befehl

Settings

die aktuell gespeicherten Einstellungen und (falls bereits mit einem WLAN verbunden) auch die zugewiesen IP-Adresse des ESPs anzeigen lassen.

Mithilfe des Befehls “WifiSSID” lässt sich nun die SSID Eures WLAN-Zugangspunktes einstellen. Dabei sendet Ihr zuerst den Befehl und dann von einem Leerzeichen getrennt den Namen Eures WLAN-Zugangspunktes. Heißt Euer WLAN zum Beispiel “meinTollesWLAN” würde dies wie folgt aussehen

WifiSSID meinTollesWLAN

Für das Passwort benötigt Ihr den Befehl “WifiKey”. Lautet Euer Passwort zum Beispiel “meinTollesPasswort” würde der Befehl zum Einstellen wie folgt aussehen

WifiKey meinTollesPasswort

Wichtig ist, dass Ihr die geschriebenen Einstellungen danach noch abspeichert. Dies geschieht mit dem Befehl

save

Danach könnt Ihr den ESP durch Eingabe des folgenden Befehls neu starten und er sollte sich danach mit dem konfiguriertem WLAN-Zugangspunkt verbinden:

restart

Viel Spaß mit dem Projekt

Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com       

2 Kommentare

  1. Hallo,
    vielen Dank für die vielen, ausführlichen Anleitungen!
    Dennoch ist leider für den Einsteiger noch nicht alles ganz klar, daher bitte ein paar Fragen zu obiger Anleitung:

    1. Ist das Hochladen einer *.ino-Datei mittels der Arduino IDE identisch mit dem Flashen einer der angebotenen fertigen Binaries? Welches wäre dann die hochzuladende ESPeasy-Firmware-Datei, um die ESPeasy Firmware z.B. auf den D1 mini zu bringen? Wo genau ist diese *.ino-Datei im Repository zu finden?

    2. Wo genau findet man die Plugins, wenn man sich den ganzen verlinkten Ordner aus Github geruntergeladen hat, die man dann de- / aktivieren kann?

    3. Wo müssten in der ESPeasys-Firmware-Datei ggf. zusätzlich zu nutzende Plugins hineinkopiert werden?

    Vielen Dank für Deine Mühen!
    Mit freundlichen Grüßen

    1. Hey Christian,
      vielen Dank für deine guten Hinweise. Manchmal wird man dann doch etwas “Betriebsblind” für die wichtigen Fragen. 🙂
      Ich werde die Tipps noch in den Artikel einbauen. 🙂
      Beste Grüße
      Fab

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.