(Aktualisiert Juni 2024)
Der ESP32 ist ein sehr beliebter Mikrocontroller in der Welt der Elektronik und des IoT (Internet of Things) und das aus mehreren Gründen.
Hier sind einige genaue technische Details und Erklärungen, warum die ESP32 Boards so vielfältig eingesetzt werden können. (Oder springe direkt zur einfachen Vergleichsliste)
Die ESP32 Familie
Espressif hat dieses ESP32-SoC (System on a Chip) 2016 als Nachfolger der ESP8266-Serie vorgestellt.
Leistungsstarkes Single oder Dual-Core-Design: Der ESP32 verfügt über leistungsstarke Xtensa LX6-Cores, die mit bis zu 240 MHz getaktet werden. Die Dual-Core-Architektur ermöglicht eine effiziente Aufgabenverteilung und unterstützt die Parallelverarbeitung.
Integriertes WLAN und Bluetooth: Der ESP32 bietet bei fast allen Modellen sowohl WLAN (802.11 b/g/n) als auch Bluetooth /Bluetooth Low Energy (BLE) Konnektivität. Dies macht ihn ideal für drahtlose Kommunikationsanwendungen und IoT-Projekte.
Umfangreiche Peripherie: Der ESP32 ist mit einer Vielzahl von Peripheriegeräten ausgestattet, darunter GPIO-Pins, UART, SPI, I2C, I2S, ADC und DAC. Dies erleichtert den Anschluss von Sensoren, Aktoren und anderen Geräten.
Umfangreiche Bibliotheken und Community Support: Es gibt eine große und aktive Entwicklergemeinde rund um das ESP32. Dies führt zu einer Fülle von Bibliotheken, Beispielen und Ressourcen, die Entwicklern zur Verfügung stehen.
Kostengünstig und weit verbreitet: Der ESP32 ist kostengünstig, was ihn sowohl für Hobbyisten als auch für professionelle Entwickler attraktiv macht. Außerdem wird er von vielen Herstellern in verschiedenen Formfaktoren angeboten.
Unterstützung der Energieeffizienz: Der ESP32 bietet verschiedene Schlafmodi und Energiesparfunktionen, wie z.B. den Deep-Sleep-Modus, bei dem nur ca. 20 µA verbraucht werden. Dies macht ihn attraktiv für die Entwicklung von batteriebetriebenen IoT-Geräten, die nur gelegentlich Aktivitäten ausführen müssen und sich daher in Bezug auf Effizienz und Nachhaltigkeit nicht verstecken müssen.
Offen für künftige IOT Lösungen: Protokolle wie Matter, Thread und Zigbee sind bei einigen Entwicklungsboards nun möglich.
Vielseitigkeit: Der ESP32 kann in einer Vielzahl von Anwendungen eingesetzt werden, von einfachen IoT-Geräten bis hin zu komplexen Projekten wie Smart-Home-Anwendungen, Wearables und industriellen Steuerungen.
Der Hersteller bietet den ESP32 in drei Formaten an.
Es gliedert sich in Chip, Modul und Board:
Der ESP32 – System on a Chip (weiße Umrandung) ist der intelligenter Mikroprozessor mit einer Taktung von bis derzeit 240MHz, den es sowohl in Single-Core- als auch in Dual-Core-Varianten gibt. Interessant für Hersteller und Großkunden.
Verbaut in unterschiedlichen Bauform so das entweder die DIP-Pins nach außen oder unter die Baugruppe zeigen.
Beispiel SOIC (Small Outline Integrated Circuit)
ESP-Module – erweiterte Lösung
Um diesen ESP32-Chip auch mit einen Flash-Speicher, eine Antenne und andere Komponenten zu erweitern, gibt es für Entwickler diesen auf einer Leiterplatine erstelltes Modul mit den notwendigen Schnittstellen. Dies ermöglicht eine bessere WLAN- und Bluetooth-Konnektivität, was die Reichweite und Zuverlässigkeit der drahtlosen Verbindung verbessern kann. Meist schon unter einer Metallabdeckung geschützt und abgeschirmt und auch schon mit FCC-Zertifizierung.
Um diesen in kleinen Stückzahlen Programmieren zu können, gibt es schon diverse Adapter mit USB.
Zu beachten ist, das in dieser Bauform die Lochmaske zu klein ist, um auf einem Breadboard Steckplatine zu experimentieren.
ESP32 Entwicklungsboards
Um dieses ESP-Modul für Entwickler und Bastler noch interessanter zu machen, gibt es unterschiedliche Entwicklungsboards mit den unterschiedlichsten ergänzenden Erweiterungen, wie USB-Schnittstelle, Stromwandler, Taster, mehrfarbigen LED, ADC, DAC , OLED-Display, usw. bis hin zum bereits vorhandenen Kamera Modul.
Unterschiedliche Varianten der ESP32 Module
Inzwischen ist die Vielzahl aller Ausführung sehr unübersichtlich geworden.
Es gibt Zusatzbezeichnungen wie ESP32-Solo, WROOM, WROWER, Mini oder Pico und auch S2, S3, C3, C6 und H2
Ob jetzt mit oder ohne WLAN, und oder ohne Bluetooth, mit welchen weiteren Funktionen erschwert ein schnelles Zugreifen.
Aber der Hersteller hat nun einen Produkt Selector online gestellt, auf der sehr übersichtlich in der passenden Produktbeschreibung recherchiert werden kann, welche Variante für das anstehende Projekt in Frage kommen würde. Unten rechts sind zu jedem Modul die „Peripheriegeräte“ zu sehen. Zusätzlich gibt es dort unter Dokumente immer das passende Referenzhandbuch und das benötigte Datenblatt.
Damit die Wahl auf ein passendes Board aber etwas deutliches wird, hier zuerst eine eher grobe Beschreibung der älteren ESP32 Modul Unterschiede, die dennoch schon eine Orientierungshilfe sein kann:
- Einfach:
Die Solo Module sind die günstigsten, da hier lediglich ein Single-Core-ESP32-Chip verbaut wurde. Ansonsten ausgestattet wie ein WROOM Modul.
Bezeichnung „Solo-1“ nicht verwechseln mit Endung „S“ wie beim ESP32S. Dieser wird zB. beim ESP32-S3 verbaut und hat einen Dual-Core-Chip. - Standard:
Das Standard-Modul WROOM ESP32(DA) mit dem Dual-Core-Chip hat 2 Kerne und bringt mit den oben beschriebenen zusätzlichen Funktionen, alles mit, um die meisten Projekte zum laufen zu bringen.
Prozessor: Xtensa® Dual-Core 32-Bit LX6 CPU, Frequenz bis zu 240MHz
WLAN: Er unterstützt 2,4-GHz-WLAN nach dem 802.11b/g/n-Standard.
Bluetooth: Er bietet Bluetooth 4.2 und Bluetooth Low Energy Unterstützung.
Speicher: Empfehlung interner Flashspeicher: 4 MB ( z.B das Modul auf dem Entwicklungs-Kit C V4)
GPIO-Pins: zB. der ESP32-WROOM-DA hat 24 GPIO-Pins für die Anbindung von Peripheriegeräten.
Update: eine aktualisierte Version wird der ESP32-S mit schnelleren LX6 CPU Kern sein, mit einigen Verbesserungen und zusätzlichen Funktionen. - Erweitert:
Die Variante WROVER ist wie WROOM nur mit zusätzlichen Speicher. Somit für aufwendigere Projekte mit Luft nach oben.
Auch mit einem Dual-Core-Chip daher kommend, hat dieser noch zusätzliche Erweiterungen, wie zum Beispiel PSRAM (Pseudo Static Random-Access Memory)
Beim WROVER-B, -IB mit 133 MHz (3,3V) oder
beim WROVER PCB, IPEX mit 144 MHz (1,8V) Taktrate.
Dieser statische Zusatzspeicher ist zwar nicht so schnell wie der Flash-Speicher (da er über SPI adressiert wird), erweitert aber die Möglichkeiten um nicht weniger als 4 MB bis 8 MB. Wird dieser verwendet, können 1 bis 2 Pins für die serielle Datenübertragung belegt werden. Zum Beispiel Pin 16 und 17. - Kompakt:
Der ESP32-MINI ist ein hochintegriertes, kleinformatiges Wi-Fi + Bluetooth + Bluetooth LE MCU-Modul. Es basiert auf dem ESP32-PICO-V3-02, einem System-in-Package (SiP)-Gerät, das einen 8 MB SPI-Flash, 2 MB SPI Pseudo Static RAM (PSRAM) und einen 40 MHz Kristalloszillator integriert.
Der ESP32-PICO selbst, ist ein im Gegensatz zur oben erwähnten günstigeren Leiterplatinen-Lösungen, kompakt in einer kleineren QFN Chipgehäusebauform angeboten.
Die Pins sind auf der Unterseite des Gehäuses angeordnet.
Es wird zum Beispiel wie hier zu sehen, auf dem Entwicklungsboard ESP32-PICO-KIT Version4 ohne Shield von Espressif verbaut.
Zusatzbezeichnungen S2, S3, C3, C6, H2 und P4
Jetzt die weiter entwickelten ESP32 Module mit unterstützenden Arduino Bibliotheken.
Der P4 befindet sich noch im experimentellen Status.
Quelle: Espressif Roadmap
Einfacher Vergleich:
Name | CPU 32bit | Wifi4 / 6 | Bluetooth (LE) | Zigbee/Thread | max GPIO |
---|---|---|---|---|---|
ESP32 (DA) | Dual-Core LX6 240MHz | + / – | 4.2 | – | 24 |
ESP32-S2 | Single-Core LX7 240 MHz | + / – | – | – | 43 |
ESP32-S3 | Dual-Core LX7 240 MHz | + / – | 5.0 | – | 45 |
ESP32-C3 | Single-Core RISC-V 160 MHz | + / – | 5.0 | – | 22 |
ESP32-C6 | Single-Core RISC-V 160 MHz | + / + | 5.3 | +/+ | 30 |
ESP32-H2 | Single-Core RISC-V 96 MHz | – / – | 5.3 | +/+ | 19 |
- ESP32 (siehe oben)
- ESP32-S2: Xtensa® 32-Bit-LX7-Single Core CPU 240 MHz, 2 mal 12 Bit Analog/Digital-Wandler, 2.4 GHz WiFi, I2C, I2S, SPI, UART, USB-OTG, kein Bluetooth. Bis zu 43 GPIO Pins, Betriebsspannung 3V – 3,6 Volt. Gibt es auch als Solo oder Mini Modul.
- ESP32-S3 Xtensa® 32-Bit-LX7-Dual-Core-Prozessor mit bis zu 240 MHz, 2 mal 12 Bit Analog/Digital-Wandler, 2.4 GHz WiFi, I2C, I2S, SPI, UART, USB-OTG, Bluetooth LE 5. Bis zu 45 GPIO Pins, Betriebsspannung 3V – 3,6 Volt. Gibt es auch als Pico, WROOM oder Mini Modul. Dieser Chip ist auch auf dem Arduino Nano ESP32 verbaut.
- ESP32-C3: 32-Bit-RISC-V-Single-Core-Prozessor bis 160 MHz, 2.4 GHz WiFi, I2C, I2S, SPI, UART und Bluetooth LE 5, bis zu 22 GPIO Pins, Gibt es auch als WROOM oder Mini Modul. Kann statt einem ESP32 Mikrocontroller auch einen ESP8685 verbaut haben.
- ESP32-C6:
32-Bit-RISC-V-Single-Core-Prozessor bis zu 160 MHz, 2,4 GHz Wi-Fi 4 und Wi-Fi 6, Bluetooth LE v5.3, Thread und Zigbee und das 802.15.4-Protokoll integriert, 12 Bit Analog/Digital-Wandler, I2C, SPI, UART, Low-Power-UART, bis zu 30 GPIO Pins, Betriebsspannung 3V – 3,6 Volt, Gibt es auch als WROOM oder Mini Modul. - ESP32-H2:
32-Bit-RISC-V-Single-Core Prozessor bis zu 96 MHz, kein Wi-Fi, Bluetooth 5.3 (LE), Matter, Thread und Zigbee, 12 Bit Analog/Digital-Wandler, I2C, I2S, SPI, UART, bis zu 19 GPIO Pins, Betriebsspannung 3V – 3,6 Volt, Gibt es auch als WROOM oder Mini Modul. - ESP32-P4:
Der kommende ESP32-P4 wird von einer Dual-Core-RISC-V-Prozessor mit KI-Befehlserweiterungen, einem fortschrittlichen Speichersubsystem und integrierter Hochgeschwindigkeitsperipherie angetrieben.
- Hochauflösende Kameras und Display-Schnittstellen:
Der ESP32-P4 unterstützt MIPI-CSI mit integriertem ISP und MIPI-DSI, was die Integration von hochauflösenden Kameras und Display-Schnittstellen erleichtert. Er kann eine Auflösung von bis zu 1080p sowohl für das Display als auch für die Kamera verarbeiten. - Breite Kompatibilität:
Um die Kompatibilität mit einer Vielzahl von Geräten zu gewährleisten, beinhaltet der ESP32-P4 parallele Display- und Kamera-Schnittstellen. - Benutzerinteraktionsfunktionen:
Der SoC bietet kapazitive Touch-Eingaben und Spracherkennungsfunktionen, was ihn für jede HMI-basierte Anwendung geeignet macht. - Medienkodierung und -kompression:
Der ESP32-P4 integriert Hardware-Beschleuniger für verschiedene Medienkodierungs- und Kompressionsprotokolle, einschließlich H.264-Kodierungsunterstützung mit einer maximalen Leistung von 1080p bei 30 Bildern pro Sekunde. - GUI-Entwicklung:
Der SoC beinhaltet einen integrierten Hardware-Pixel-Verarbeitungsbeschleuniger (PPA) und 2D-DMA, die ideal für die GUI-Entwicklung sind.
- Hochauflösende Kameras und Display-Schnittstellen:
Unübersichtliche Vielfalt:
Man sollte sich klar darüber sein, das jeder Variante mit unterschiedlichster Ausstattung angeboten wird und daher soll dieser einfach gehaltene Vergleichsliste lediglich eine schnelle Orientierungshilfe sein.
Zum Beispiel gibt es derzeit vom ESP32-S3 neunundzwanzig unterschiedliche Module.
Somit ist die beste Empfehlung für einen Produktvergleich, den vorgestellten Produkt-Selektor von Espressif zu verwenden.
Antennen Arten
Erwähnenswert sind auch die unterschiedlichsten Antennenarten.
Sollte die auf den Board verbaute Antenne Art (MIFA, PIFA, IFA oder Ceramic) nicht ausreichend Funkstrecke bieten, gibt es auch die Baureihe U. Beispiel: ESP32 WROOM 32U
Diese ist mit einer Buche für externe Antennen (U.FL-kompatiblen Anschluss) ausgestattet.
NodeMCU
Wenn ein Entwicklungsboard die Bezeichnung “NodeMCU” trägt, so bezieht sich dies nicht auf die Hardwarekonfiguration des Boards, sondern auf die Art und Weise, wie es programmiert werden kann.
NodeMCU als Betriebssystem:
NodeMCU ist ein freies Betriebssystem für den ESP8266 Mikrocontroller und später NodeMCU ESP32 die Weiterentwicklung des ursprünglichen NodeMCU-Projektes.
Es wurde unter der Lizenz des MIT entwickelt und ermöglicht den Aufbau von WLAN-basierten Netzwerken.
Programmiersprachen:
Anwendungsprogramme für NodeMCU können in verschiedenen Sprachen geschrieben werden:
Lua: Dies ist die Originalsprache für NodeMCU.
C++: NodeMCU unterstützt auch die Programmierung in C++.
Arduino IDE: NodeMCU kann in der Arduino Entwicklungsumgebung programmiert werden.
Detaillierte Info auf NodeMCU Documentation
Einbindung in Entwicklungsumgebung
Damit alle diese unterstützten Varianten auch in der Arduino IDE gefunden werden können, muss eine zusätzliche Boardverwaltung URL eingetragen werden:
Stabiler Release-Link:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
Experimentelle Entwicklungsversion:
https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json
Einbindung in weitere Entwicklungsumgebungen siehe hier.
Problem Vermeidung:
Nicht alle der angebotenen GPIO-Pin können bedenken los verwendet werden, folgende Einschränkungen sollten beim entwickeln bekannt sein:
Der ESP32-Chip verfügt über 34 physikalische GPIO-Pins (GPIO0 bis GPIO19, GPIO21 bis GPIO23, GPIO25 bis GPIO27 und GPIO32 bis GPIO39)
GPIO-Pin Einschränkungen beim ESP32
Der ESP32-S2-Chip verfügt über 43 physikalische GPIO-Pins (GPIO0 bis GPIO21 und GPIO26 bis GPIO46)
GPIO-Pin Einschränkungen beim ESP32-S2
Der ESP32-S3-Chip verfügt über 45 physikalische GPIO-Pins (GPIO0 bis GPIO21 und GPIO26 bis GPIO48)
GPIO-Pin Einschränkungen beim ESP32-S3
Der ESP32-C2-Chip verfügt über 21 physikalische GPIO-Pins (GPIO0 bis GPIO20)
GPIO-Pin Einschränkungen beim ESP32-C2
Der ESP32-C3-Chip verfügt über 22 physikalische GPIO-Pins (GPIO0 bis GPIO21)
GPIO-Pin Einschränkungen beim ESP32-C3
Der ESP32-C6-Chip verfügt über 31 physikalische GPIO-Pins (GPIO0 bis GPIO30)
GPIO-Pin Einschränkungen beim ESP32-C6
Der ESP32-H2-Chip verfügt über 28 physikalische GPIO-Pins (GPIO0 bis GPIO27)
GPIO-Pin Einschränkungen beim ESP32-H2
Softwarelösung Espressif Zerocode:
Erste Gehversuche von Espressif, den IoT-Herstellern die drahtlosen Netzwerk Protokolle Matter, Thread und Zigbee als Automatisierungslösungen eine Zerocode Lösung anzubieten. Dies habe ich mal hier mit einem ESP32 Wroom Entwicklungsboard (Benötigten mindestens eine Chip Revision Version 3) getestet:
Video:
In diesem Video werden einige Unterschiede der ESP32 Chip/Module näher betrachtet. Ein ESP32-WROVER Kit mit OV2460 Kamera wird als Alternative zur ESP32-Cam vorgestellt und es gibt einen ersten Einblick in die finale Entwicklungsumgebung Arduino IDE 2.
Gezeigte Hardware:
Freenove Starter Kit
ESP32-Cam plus Shield
AZ-Delivery ESP32-Wroom Board
ESP32 WROOM Modul
PCB-Adapter mit USB-C
Software, Sketche und Library:
Espressif Hersteller Seite für Arduino Entwicklungsumgebung
Entwicklungsumgebung Arduino IDE 2
Freenove Tutorials
ESP32 in Arduino IDE hinzufügen: