Meine ESP8266 / ESP32 -Projekte

Die Mikrocontroller ESP8266 und sein Nachfolger ESP32 sind 32bittig und kommen von der chinesischen Firma espressif. Sie sind echte Kraftpakete und Alleskönner. Sie haben einen hohen Takt, viel Speicher und bringen schon WLAN und Bluetooth mit. Das schlägt sich allerdings auch im Preis nieder.

Günstiger ist der Arduino, ein bei Bastlern sehr beliebter Mikrocontroller, der eine große Fan-Gemeinde hat. Die Möglichkeit, seine Analog und Digital-Pins Elektronikbauteile direkt anzusteuern und sein günstiger Preis machen ihn darum zu einer tollen Plattform, um Elektronikspielereien zu verwirklichen. Außerdem verbraucht er nur unwesentlich Strom.

Mein erster Arduino Uno lag eigentlich nur als "Beiwerk" in einem Starter-Set, dass ich mir für meinen Raspberry Pi gekauft habe. In gewissen Dingen hat er aber Vorteile gegenüber dem Raspi wie Preis, Leistungsaufnahme, keine Bootzeit, analoge Eingänge von Haus aus. Deshalb gewinne ich diese Plattform zunehmend lieb.

Für ein paar Euro hat man sich eine Schaltung zusammen gelötet und den Mikrocontroller programmiert, wo früher ein Rechner abgestellt werden musste. Der geringe Stromverbrauch macht 24/7 Anwendungen möglich.

Mittlerweile benutze ich aber noch lieber die sogenannte Blue Pill mit STM32-Chip. Der STM32 liegt in der gleichen Preisklasse wie der Arduino, bietet aber mehr als doppelt soviel Geschwindigkeit und Speicher wie der Arduino und eine Echtzeituhr on board. Auch ist er schon 32bittig. Programmiert wird er über die gleiche Entwicklungsumgebung, wenn vielleicht auch nicht ganz so komfortabel, aber auch dafür gibt es Abhilfe, wie ich in einem meiner Projekt zeigen.

Den ESP-8266 und seinen aktuellen Nachfolger ESP-32 sehe ich als nächste Leistungsgeneration, der die Lücke zu noch leistungsfähigeren (aber auch preislich und stromverbrauchstechnisch höher gelegenen Regionen) SOC-Systemen wie den RaspberryPi schließt.

Für viele Anwendungen ist der STM32 völlig ausreichend, manchmal, wenn es mehr auf einen geringen Stromverbrauch ankommt als auf Leistung ist sogar ein Mikrocontroller mit AT Tiny die erste Wahl. Benötigt man WLAN oder Bluetooth, etwa für ein IOT-Gerät, dann lohnt sich bereits ein ESP 8266 oder ESP 32.

Mit anderen Worten: für jede Anwendung gibt es die richtige Plattform, von klein, stromsparend und eher langsam bis hin zu schnell und kraftvoll. So wird die Lücke bis zum Einplatinencomputer wie dem RaspberryPi breitbandig ausgefüllt, die wiederum (fast) die Lücke bis zum PC ausfüllen.

Während es beim Arduino immer nur die Kombination Mikrocontroller-Platine (Arduino Uno, Mini Pro, Nano etc.) und weitere Module (Sensoren, Anezigen etc.) gab, geht man beim ESP 32 nun zu integrierten Modulen. So gibt es ESP-32 mit bereits aufgelötetem (und angeschlossenen) OLED oder mit LoRaWAN (Long Range Wide Area Network) - Chip und Antenne. So spart man sich die Anschlussarbeit und bekommt ein besonders kompaktes Ergebnis. Der Nachteil: man sollte schon vorher wissen, welches Projekt man angeht und was man dafür braucht, sonst hat man für etwas bezahlt, was man am Ende gar nicht braucht und einem Anschlussmöglichkeiten raubt.

Es gibt aber nach wie vor ESP 8266 und ESP 32 Platinen im alt bekannten Uno und Nano-Format.

Bereits realisierte Projekte (Neueste zuerst, älteste und Grundlagen zuletzt)

ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) - DC Utilities V5: MP3-Player

Natürlich kann die Audio-Library nicht nur MP3-Streams aus dem Internet wiedergeben, wie wir sie für das Web-Radio benutzt haben. Das geht natürlich auch mit lokalen Dateien auf der SD-Karte. Wie man einen MP3-Player für das CYD programmiert, zeige ich euch im diesem Teil.
ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) - DC Utilities V4: Web-Radio

In Version 4 von Doc Cool's Utilities verwandeln wir das Cheap Yellow Display in einen vollwertigen Web-Radio-Empfänger. Es sind eine ganze Reihe von Web-Radio Station vorausgewählt, die man einfach nur noch anklicken muss, um sie zu hören. Man kann aber auch eigene hinzufügen. Muss man nur die richtige URL kennen. Ich erkläre den Anschluss eines Lautsprechers und auch, wie man das alles programmiert.
ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) - Utility V3 - Settings und WLAN-Scan

In der V3 der Doc Cool's Utilities wird die Touchscreen Kalibrierung noch ein bisschen erweitert und genauer gemacht. Es kommt ein Entwciklertool hinzu, dass jederzeit ein Raster einblendet, um Dialogelemente besser positionieren zu können. Außerdem gibt es jetzt einen Settings-Dialog, bei dem man WLAN-SSID und Password für die weitere erwendung eingeben und speichern kann. Dazu gibt es noch einen WLAN Scanner, die alle Router in der Umgebung findet, und aus dem man die SSID kopieren kann, so dass man diese nicht eintippen muss.
ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) Utilities - Test Display und Touch

Doc Cool's Utilities werden in Version 2 um zwei Tools erweitert: 1. einen Screen / Display-Test zum Herausfinden toter Pixel und zum Einstellen der Hintergrundbeleuchtung und 2. ein Test-Tool für den Touch-Screen samt Kalibrierung, die auch auf SD gespeichert wird. Außerdem geschieht die Kommunikation mit dem XPT2046-Digitizer ab jetzt über Soft SPI, damit performant auf SD geschrieben werden kann.
ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) - LVGL-Dialog RGB-LED Color Changer

Nun soll es endlich an den praktischen Einsatz von LVGL-Dialogen gehen. Ich will ein paar kleine Tools schreiben, die ich als Doc Cools Utilities in einer Anwendung zusammenfassen will. Diese Tools sind nicht nur Programmierübungen, sondern haben auch einen praktischen Nutzen. Die einzelnen Tools werden mit Buttons ausgewählt Den Anfang macht der RGB-LED-Color-Changer, der die Ansteuerung der RGB-LED aus der zweiten Teil wieder aufgreift, aber jetzt komfortabel via Dialog einstellbar.
ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) - Dialoge entwerfen mit der LVGL Library

Im letzten Teil haben wir die LVGL Library eingerichtet und alles für die Programmierung eigener Dialoge vorbereitet. Diese wollen wir heute entwerfen und gleichzeitig testen, ob und wie das mit einem Mischbetreib vn LVGL-Dialogen und TFT_eSPI-Grafikelementen klappen kann. Auch diesmal gibt es Sourcecode und downloadbare Firmware zum selbst ausprobieren.
ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) - Dialogprogrammierung mit der LVGL Library

Die LVGL Library, die "Light and Versatile Graphics Library" ist auf den Cheap Yellow Displays vorinstalliert und hat mich seit dem ersten Moment neugierig gemacht darauf, selbst etwas mit dem Dialogsystem zu entwerfen. Erster Schriftt ist, die Demo der LVGL auf dem CYD zum Laufen zu bekommen, was sich als gar nicht so einfach herausgestellt hat. Doch mit dem Source-Code und den Erklärungen in diesem Artikel ist das kein Problem mehr.
ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) - Programmierung des Touchscreen Digitizer XPT2046

Nachdem wir im letzten Teil Dinge auf dem Display dagestelt hatten, wollen wir uns heute daran machen, herausfinden, wenn und wo jemand auf den Screen tippt. Dazu binden wir die XPT2046-Touch-Library ein und schreiben ein kleines Testprogramm, das auch den LDR-Lightsensor abfragt und ein kleines Malprogramm ist.
ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display) - Programmierung des Displays mit der TFT_eSPI-Library

Heute geht es um die Programmierung des Display des ESP32-2432S028 aka Cheap Yellow Display. Un zwar mittels der Library TFT_eSPI. Nachdem ein paar Versionskonflikte umschifft waren, gelang es mir, die Beispielprogramme zu kompilieren. Die Firmwares könnt ihr direkt über die Webseite auf euer CYD installieren.
Die neuen espressif ESP32 Chip Varianten im Vergleich

Statt lediglich eines ESP32 gibt es auf einmal zahlreiche Varianten wie ESP32-H2, ESP32-C2, ESP8684, ESP32-C3, ESP8685, ESP8686, ESP32-C5, ESP32-C61, ESP32-C6, ESP32-S2, ESP32-S2F, ESP32-S3, ESP32-S3-Pico,oder ESP32-P4. Alle mit unterschiedlichen Features. Wer soll da noch durchschauen? Ihr! Mithilfe der großen Vergleichstabelle, die ich für euch erstellt habe.
ESP32-2432S028 mit 2.8" Touchscreen (Cheap Yellow Display), Erste Schritte: Programmierung der RGB-LED

Nachdem die Hardware und das Pinout des Cheap Yellow Display vorgestellt ist, geht es jetzt an die Programmierung desselben. Ich habe mir als Beispielprogramm das Ansprechen der RGB-LED auf dem Board ausgesucht, um es erst einmal einfach zu halten. Den Touchscreen lassen wir diesmal noch außen vor. Es soll mehr um die Einrichtung des Board in VS Code / PlatformIO gehen und wie man damit programmiert und hochlädt.
ESP32-2432S028 mit 2.8 Zoll Touchscreen (Cheap Yellow Display) Vorstellung

Das ESP32-2432S028-Modul, wie es offiziell heißt, ist ein Modul mit ESP32 Wroom-32 MCU auf der Rückseite und einem 2.8 Zoll Touchscreen auf der Vorderseite. Da der Name ESP32-2432S028 ein wenig sperrig klingt, hat sich auch die Bezeichnung Cheap Yellow Display, auf deutsch billiges, gelbes Display eingebürgert, kurz CYD. Und bei einem Preis von etwa 10 Euro für das Modul kann ich da nicht widersprechen. In diesem Artikel stelle ich das CYD vor und zeige auf, was es kann.
Dreifarbiges EPaper Display mit 2.9 Zoll an ESP8266, Update durch Web-Interface

EPaper, auch eInk, für "elektronisches Papier" bzw. "elektronische Tinte" ist eine Displayart, die sehr stromsparend und sehr gut bei Licht ablesbar ist, bei der man aber auch ein paar Nachteile in Kauf nehmen muss. Der für mich bisher am meisten ausschlaggebende war dabei der hohe Preis. Doch nun habe ich ein ePaper-Display unter 10 Euro von AliExpress aus China entdeckt und das gleich bestellt. Zeit, es auszuprobieren!
Smarter Briefkasten mit Tuya Fenster-Alarm-Sensor und Alexa Post ist da!-Meldung

Die Grundidee für einen smarten Briefkasten ist ganz einfach: Es soll erkannt werden, wenn Post eingeworfen wird und ein Mikrocontroller soll dieses Ereignis dann per Funk an eine Zentrale, etwa mein Always-On-Display melden und dort anzeigen. Aber es geht auch mit einem Türsensor für Alarmanlagen, den man fertig kaufen kann, allerdings stellen sich da andere Probleme.
Luftqualität / Feinstaub-Messgerät mit Panasonic SN-GCJA5 Partikel-Sensor

In diesem Artikel baue ich aus einem Panasonic SN-GCJA5 Feinstaubsensor, einem OLED und einer RGB-LED ein Messgerät zur Messung der Luftreinheit bzw. der Verunreinigung der Luft durch Feinstaub auf. Die RGB-LED zeigt dabei die momentan Luftqualität als Farbe an und das OLED die genauen Werte oder wahlweise eine Verlaufskurve.
Experimente mit dem SI1145 UV-Index / IR / sichtbares Licht-Sensor

Das GY1145 Modul mit dem SI1145 Chip darauf verspricht, sichtbares, infrarotes und ultraviolettes Licht gleichzeitig zu messen. Außerdem soll es einen kalibrierten UV-Index-Wert liefern. Ob das alles so einfach geht und wie genau das ist, zeigt dieser Artikel.
Die ESP32-Cam als WLAN-IP-Kamera anschließen, einrichten und konfigurieren

Eine ESP 32 Cam ist schon für unter 10 Euro zu haben und verspricht, als WLAN IP Kamera einsetzbar zu sein. Was taugt die bereits installierte Firmware? Was ist eine bessere Firmware-Option? Und schlägt sich die ESP32 Cam am Ende vielleicht genauso gut oder gar besser als die Raspberry Pi Cam?
Was ist besser zur Distanzmessung? Ultraschall-Modul HC-SR04 versus TOF-Modul VL53L0X

Distanzen habe ich bisher immer mit einem Ultraschall-Modul HC-SR04 gemessen. Doch jetzt bin ich über etwas Neues für diesen Anwendungsfall gestolpert: Das Time-ofLFight-Modul VL53L0X, das Entfernungen mittels Infrarot-Laserstrahl misst. Wie sich das neue Modul schlägt und ob es den HC-SR04 vom Thron stoßen kann, lest ihr in diesem Artikel.
Laufschrift mit 4fach 8x8 LED Matrix mit Maxim 7219 Chips

Ich habe hier noch eine 4fach 8x8 LED Matrix herumliegen, das macht insgesamt 256 LEDs. Was kann man am besten daraus basteln? Natürlich: eine Laufschrift. Auf die Idee sind vor mir schon andere gekommen und schaue, ob ich was passendes im Internet finde. Zum Schluss will ich einen über den Web-Browser konfigurierbaren Scroll-Text. Ich wurde fündig, auch wenn ich ein paar Klippen umschiffen musste. Dann kommt das Ganze noch in ein 3D-gedrucktes Gehäuse, aber da zeigt sich schon das nächste Problem.
FABGL Library Beispielprogramme für TTGO ESP32 VGA32 Board: Firmware flashen und ausprobieren

Für das TTGO ESP32 VGA Borad ist die FabGL-Library das Non-Plus-Ultra. Die umfangreiche Bibliothek wartet mit dutzenden Beispielprogrammen auf, die ich hier allesamt mal ausprobiere und Videos dazu mache. Viel Spaß beim Zuschauen und zuhören, wie ich von der Computer-Steinzeit plaudere.
FABGL Library und CH9120F-Treiber für TTGO ESP32 VGA32 Board installieren

Nachdem die Sound-Demo auf unserem ESP32 VGA Board durchgetestet ist, wollen wir darauf natürlich auch etwas anderes laufen lassen. Es gilt aber zuvor einen kleinen Treiber-Stolperstein zur Seite zu räumen. Aber dann funktioniert alles wie gewünscht.
Vorstellung TTGO ESP32 VGA32 Board mit PS/2 Mouse/Keyboard und mehr

Mit dem TTGO ESP32 VGA32 Board kann man einfach Text und Grafiken auf einem VGA-Monitor darstellen. Ich packe das Board aus, schließe es an und teste die enthaltene Firmware. Bild, Maus, Tastatur, Sound - alles funktioniert. Damit wird man viel machen können.
Der Spagat: M5Stack TFCard mit Krypto-Modul und OLED

Alles beiden Ports des Atom-Lite-TF-Card-Moduls sind belegt: I2C sowie SPI. Doch ich will neben dem Krypto-Modul noch ein OLED Display zur Anzeige. Da muss ich wohl zum Lötkolben greifen...
Vorstellung der M5Stack ID-Unit: Krypto-Modul mit ATECC608B Krypto-Chip

Außer über den unteren 9-Pin-Female-Header durch Draufstecken des Atom Lite auf ein Kit gibt es die Möglichkeit, über den 4-poligen I2C-Port Module zu verbinden. Das geschieht über ein 4-poliges, Grove-kompatibles Kabel. Zum Testen habe ich mir die ID Unit mit dem Krypto-Chip ATECC608B bestellt, die sich dann doch als größere Herausforderung herausgestellt hat. Aber eigentlich ist das Anschließen von Unit ganz einfach...
Vorstellung des M5Stack Atomic TF-Card Moduls: SD-Kartenleser inkl. Atom Lite

M5Stack Atom Lite: Was taugt die interne Infrarot-LED?

Außer Knopf, RGB-LED und Ports hat der M5Stack Atom Lite noch eine interne Infrarot-LED verbaut. Leider ist nicht viel über sie zu finden. ISt sie zum senden gut? Oder zum empfangen? Oder sogar beides? Ich gehe der Sache auf den Grund und unterziehe das oft übersehende Feature einem gründlichen Test.
M5Stack Atom Lite Vorstellung

Der M5Stack Atom Lite vereint in einem nur 24 x 24 x 9.5 mm großen Gehäuse einen ESP32 Pico-D4-Mikrocontroller, einen Taster, eine IR-LED und eine Neopixel-LED. Das winzige Modul bietet einen Grove-Anschluss für I2C und einen Pin-Header-Anschluss für SPI und mehr. Sein kleiner Formfaktor und die ebenfalls in Gehäuse gekapselten, ansteckbaren dazu kaufbaren Module machen es attraktiv. Ich schaue mir den Newcomer an und programmiere ein Beispielprogramm unter der Arduino IDE für ihn.
ESP8266 mit MT8808 8x8 Analog Switch Array als VC20/C64-Tastatur-Emulator über WLAN

Ich habe VC20 und C64 leider nur noch als nackige Platinen, ohne Gehäuse oder Tastatur.

Statt mir eine Tastatur für die Home-Computer zu kaufen, bin ich auf die Idee gekommen, mit einem ESP8266 und einem MT8808 8x8 Analog Crosspoint Switch Array Chip eine Tastatur zu emulieren - über WLAN.
Vorstellung des ESP8266-Boards NodeMCU und Vergleich mit Wemos D1 Mini

Neulich bin ich über das ESP8266-Board NodeMCU gestolpert. Das Format erinnert mich gleich an das vom ESP32 Lolin 32. Auf den ersten Blick scheint es mehr Anschlüsse zu haben. Aber ist es auch wirklich besser?
Taugt Visual Studio Code mit Platform IO als Ersatz für die die Arduino IDE?

Heute stelle ich Visual Studio Code mitsamt der PlatformIO vor - eine fortgeschrittene Entwicklungsumgebung zur Programmierung von Mikrocontrollern und gehe der Frage nach, ob sich der Umstieg lohnt. Dabei portieren ich ein Projekt aus der Arduino IDE zu VS Code und zeige Fallstricke auf.
Vorstellung des ESP8266-Boards D1 mini

Ich stelle das ESP8266 Wemos D1 mini Board vor, dass einen Formfaktor etwas breiter und kürzer als der Arduino Nano hat. In dem Beispiel-Projekt hole ich die Zeit über NTP aus dem Internet und zeige sie auf einem am I2C-Bus angeschlossenen OLED an.
Analog-Digital Wander ADS1115 als Voltmeter am ESP32 (ESP32 OLED)

Statt zu einem Oszilloskop auf dem Odroid-Go soll das letzte Projekt zu einem Voltmeter mit Kurzhistorie als Balkengrafik erweitert werden. Dazu nehmen wir das ESP32 OLED-Boards her. Bei der Gelegenheit lernen wir gleich dessen Eigenarten kennen und wie man es programmiert.
Analog-Digital Wander ADS1115 als Voltmeter am ESP32 (Lolin32)

Heute geht es um den ADS1115, ein Analog-Digital-Wandler mit 16 Bit Auflösung. Eigentlich war das Projektziel, damit ein Oszilloskop auf dem Odroid-Go zu programmieren, aber seine max. 860 SPS sind dafür nicht ausreichend. Aber als recht genaues Voltmeter taugt der Chip schon. Dafür reicht aber auch erstmal ein Lolin32 Board.
Kopfhöreranschluss für den Odroid-Go nachrüsten

Was dem Odroid-Go in seiner Funktion als Spielekonsole fehlt, ist ein Kopfhöreranschluss. Möchte man während der Zugfahrt eine Runde zocken, möchte man natürlich Sound, aber gleichzeitig nicht unangenehm auffallen und seine Mitreisenden stören. Dumm, dass der Odroid-Go da nur einen Lautsprecher hat. Also rüsten wir heute den Odroid-Go mit einem Kopfhöreranschluss auf.
ESP32 Boards im Vergleich

Bei den ESP32-Board ist ein neuer Trend beobachtbar: man beginnt, sinnvolle Peripherie bereits auf der Platine zu integrieren, z. B. ein OLED-Display oder ein LoRaWAN. Ich stelle ein paar der Boards vor und erkläre ihre Vor- und Nachteile.
ESPDUINO-32 Ersteinrichtung

Mit dem ESP32 hat der chinesische Hersteller espressif 2016 den Nachfolger des ESP8266 vorgestellt. Mittlerweile ist der Mikrocontroller in erschwingliche Preisregionen vorgerückt. Ich stelle das Board ESPDUINO-32 vor und erkläre, wie man es zusammen mit der altbekannten Arduino-Entwicklungsumgebung programmiert.
GY-521 Modul mit MPU-6050 Gyroskop/Beschleunigungssensor-Chip über I2C-Bus an Odroid Go ESP32 anschließen

Heute nutze ich den Odroid-Go mit ESP32 zum ersten Mal als Hardware-Plattform und schließe einen eigenen Sensor an. Ich habe mir dazu einen Beschleunigungssensor MPU-6050 auf GY-521 Modul ausgesucht. Die per I2C Protokoll ausgelesenen Werte visualisiere ich auf dem Odroid-Display.
Odroid Go mit Arduino programmieren: GPIO Pinout und Library Funktionen

Ich erkläre und zeige anhand von Beispielprogrammen, wie man die API-Funktionen nutzt, um Display, Lautsprecher, Akku, Tasten. WLAN und Bluetooth des Odroid-Go zu nutzen.
Odroid Go (ESP32 Gameboy Clone) mit Arduino IDE programmieren

Der ESP32-Gameboy-Clone Odroid-Go bietet nicht nur eine mobile Konsole sondern auch eine prima Plattform für Mikrocontroller-Entwicklungen, denn er bringt Bildschirm Lautsprecher, SD-Karte, Akku und Eingabeknöpfe gleich mit. Ich zeige, wie man mit der Arduino IDE programmierte, eigene Firmware auf ihn bringt.
ESP8266 - Ersteinrichtung

Genau wie der ATMEGA des Arduino ist der ESP8266 ein Mikrocontroller. Dieser übernimmt die Hauptaufgabe, ein WLAN mit Allem, was dazu gehört, zu realisieren und war ursprünglich als Erweiterungsmodul vorgesehen, dem Arduino & Co. WiFi beizubringen. Doch der ESP8266 ist auch ein vollwertiger Mikrocontroller, der mit der Arduino-IDE programmiert werden kann.