HowTo: ESPEasy – Compile firmware, flash and configure WLAN access data

In addition to many important hardware components, each project also consists of the appropriate software. It is often less time-consuming to assemble the project than to write the appropriate software later.

But this work can be saved thanks to some OpenSource projects. One of them is the often mentioned here Tasmota firmware. Another is the ESPEasy project.

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.

Also many of the projects on Nerdiy.de are based on ESPEasy and a plugin that fits to the project.

A general procedure how to install ESPEasy and if necessary desired plugins on your ESP8266 is described in the following article.


Safety instructions

I know the following notes are always kind of annoying and seem unnecessary. Unfortunately, many people who knew "better" have lost eyes, fingers or other things due to carelessness or injured themselves. Data loss is almost negligible in comparison, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Because even the coolest project is not worth injury or other trouble.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links/advertising links

The links to online shops listed here are so-called affiliate links. If you click on such an affiliate link and make a purchase via this link, Nerdiy.de will receive a commission from the relevant online shop or provider. The price does not change for you. If you make your purchases via these links, you support Nerdiy.de in being able to offer other useful projects in the future. 🙂 


Requirements

Helpful articles:
Before you start with this article you should have installed and configured the Arduino IDE. You can find information about this in the following article.
Install programs - an example
ArduinoIDE - Tips and Tricks

Required material:

In the following list you will find all the parts you need to implement this article.

Required tool:

In the following list you will find all the tools you need to implement this article.


Compile it yourself or not?

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

  1. You can compile the program code yourself (i.e. translate the program code into machine code) and transfer the resulting .bin file to the ESP8266.
  2. You can transfer already compiled .bin files directly to the ESP8266.

Both have advantages and disadvantages.

The advantage of 1. is that you can activate or deactivate all desired features. You have more configuration options, but of course more potential sources of error.

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.

Nevertheless, this article describes the first way.

Way two is in the article ESP8266 – mit dem “Esptool” .bin-Dateien unter Windows flashen described.


Copy the current ESPEasy version from the GitHub

To transfer the firmware to your ESP8266 you have to download it first.

This is on the one hand included in the GitHub of the original project, which you can find here:
https://github.com/letscontrolit/ESPEasy/tree/mega

There is also a mirrored version on the Nerdiy.de GitHub account, which you can find here:
https://github.com/Nerdiyde/ESPEasy

The advantage of the Nerdiy.de-ESPEasy version is that all plugins written by Nerdiy.de are already included and tested with the used ESPEasy version. So - if you want to use one of the Nerdiy plugins - you don't have to copy additional plugin files into the project. The disadvantage is that the ESPEasy version in the original git is probably newer.


Activate required plugins

Some ESPEasy plugins are not enabled by default. This way you can save the disk space for plugins that are not needed.

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 …
... remove the two preceding slashes. The part should then look as shown.

Flash firmware

To finally compile the firmware with the desired settings and transfer it to the connected ESP you first have to specify the configuration of your board.

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.
To transfer the firmware to the ESP, just click on the marked arrow.

Configure WLAN access data

After you have transferred the ESPEasy firmware to your ESP8266, you have to connect it to your WLAN.

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.

In the following, this way is described with an Android cell phone. In principle, however, this also works with any other WLAN-enabled device that is also Internet-enabled. The process should be identical with an iOS device or a normal laptop.

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”.
The connection process then takes a few seconds.
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.
After a few seconds you will be redirected to the website shown. Here you will find a list of all radio networks in your area that are also received by the ESPEasy device.
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.

Your ESPEasy device will then restart and should connect to the selected WLAN after the restart.

You can recognize this, for example, by the fact that a new device is now present in your network. How you can display the devices in your network and also find out their IP address is described in the article Display/find out the IP address of the devices in the network described.

If you have entered the wrong WLAN access data, you can easily reset your ESPEasy device (i.e. reset it to factory settings). This will delete all settings - even if they are incorrect - and you can configure new correct access data in the same way as described above.
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 - Execute commands and actions via HTTP, MQTT, UDP and directly described. Since you only have access to your ESPEasy device via the serial interface, this is the only way to execute commands on it.


Configuring WLAN access data via the serial interface

I personally find it easier to configure the WLAN access data via the serial interface. Most of the time you have flashed the ESP anyway and the serial connection is still active.

In this case you can use the command

Settings

display the currently saved settings and (if already connected to a WLAN) also the assigned IP address of the ESP.

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 myGreatWLAN

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 myToolPassword

It is important that you save the written settings afterwards. This is done with the command

Save

After that you can restart the ESP by entering the following command and it should connect to the configured WLAN access point afterwards:

restart

Have fun with the project

I hope everything worked as described for you. If not or you have questions or suggestions please let me know in the comments. I will then add this to the article if necessary.
Ideas for new projects are always welcome. 🙂

PS Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you think it's cool that I share the information with you, I would be happy about a small donation to the coffee fund. 🙂

Buy Me a Coffee at ko-fi.com       

2 comments

  1. Hello,
    Many thanks for the many detailed instructions!
    Unfortunately, not everything is quite clear for the beginner, so please ask a few questions about the above instructions:

    1. Is uploading an *.ino file using the Arduino IDE identical to flashing one of the ready-made binaries offered? Then what would be the ESPeasy firmware file to upload to get the ESPeasy firmware onto the D1 mini for example? Where exactly can this *.ino file be found in the repository?

    2. Where exactly can you find the plugins when you have downloaded the whole linked folder from Github, which you can then deactivate / activate?

    3. Where in the ESPeasys firmware file should additional plugins be copied?

    Thank you very much for your effort!
    Best regards

    1. hey christian,
      vielen Dank für deine guten Hinweise. Manchmal wird man dann doch etwas “Betriebsblind” für die wichtigen Fragen. 🙂
      I will add the tips to the article. 🙂
      Best regards
      Fab

Kommentar hinterlassen

Your email address will not be published. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.