Erste Schritte mit dem ESP32 Development Board
Inhaltsverzeichnis
1 Was ist ein ESP32?
Der ESP32 ist ein Mikrocontroller-Modul, das von Espressif Systems entwickelt wurde. Es basiert auf einem Dual-Core-Prozessor mit 32-Bit-Architektur und bietet eine hohe Leistung und eine umfangreiche Funktionalität.
Eines der wichtigsten Merkmale des ESP32 ist die Unterstützung von WLAN und Bluetooth. Es hat eine integrierte Antenne und einen RF-Verstärker, die es ermöglichen, eine breitere Reichweite und eine hohe Empfindlichkeit zu erreichen. Der ESP32 unterstützt auch eine Vielzahl von Protokollen und Standards, wie z.B. Zigbee, Thread, Z-Wave und LoRa.
Ein ESP32 ist ein kosteneffizienter, leistungsfähiger und vielseitiger 32-Bit-Mikrocontroller mit integriertem WLAN und Bluetooth. |
Es hat auch eine grosse Anzahl von digitalen und analogen Ein- und Ausgängen, sowie zwei 32-Bit-Timer und vier PWM-Module.
Ein weiteres praktisches Feature des ESP32 ist die Unterstützung von OTA-Firmware-Updates, was es ermöglicht, die Firmware des Geräts auf einfache Weise zu aktualisieren, ohne es physisch am PC anschliessen zu müssen.
1.1 Vergleich ESP32 Versionen
Hier ein paar der meist genutzten ESP32 und deren Eigenschaften:
1.2 Unterschied ESP32 und ESP8266
Zunächst einmal hat der ESP32 einen höheren Takt, er kann mit bis zu 240 MHz betrieben werden, während der ESP8266 mit maximal 160 MHz arbeitet. Der ESP32 hat auch einen grösseren Arbeitsspeicher und zwei Kerne, die es ihm ermöglichen, mehrere Aufgaben gleichzeitig auszuführen.
Ein weiterer wichtiger Unterschied ist die Anzahl der verfügbaren digitalen Ein- und Ausgänge (GPIO). Der ESP32 hat 32 digitale Ein- und Ausgänge, während der ESP8266 nur 17 hat.
In Bezug auf den Stromverbrauch ist der ESP32 auch besser ausgestattet als der ESP8266. Der ESP32 hat zwar eine höhere Leistungsaufnahme, aber dafür einen niedrigeren Ruhestromverbrauch und kann seinen Stromverbrauch intelligent der aktuell Anwendung anpassen.
Zudem unterstützt ESP32 sowohl Bluetooth 4.2 als auch BLE, während der ESP8266 kein Bluetooth besitzt.
Insgesamt ist der ESP32 ein leistungsstärkerer und vielseitigerer Mikrocontroller als der ESP8266 und eignet sich daher besser für anspruchsvollere Projekte. Der Griff zum ESP8266 lohnt sich für einfache Projekte (Projekte ohne Bluetooth und kleinerem Umfang), da dieser generell günstiger ist.
1.3 Unterschied ESP32 und Arduino
Der ESP32 ist wesentlich leistungsfähiger als der Arduino, da er einen 32-bit-Dual-Core-Mikrocontroller, der mit 240 MHz getaktet ist, besitzt. Im Gegensatz hat der Arduino Uno nur eine 8-Bit-CPU mit 16 MHz.
Der ESP32 hat auch integrierte WLAN (802.11b/g/n) und Bluetooth (4.2 und BLE) Funktionalitäten, die der Arduino Uno nicht hat.
Zudem kommt der ESP32 mit mehr GPIO-Pins (32) und mehr seriellen Schnittstellen (3) im Vergleich zum Arduino Uno (14 und 1).
Das Einsatzgebiet von ESP32 und Arduinos unterscheidet sich hauptsächlich in Bezug auf die Nutzung von drahtloser Kommunikation, wird diese nicht benötigt, kann ein Arduino einfache Steuerungsaufgaben ohne Probleme übernehmen.
2 ESP32 Eigenschaften
Verschaff dir hier einen Überblick über die verschiedenen Funktionen und Eigenschaften der ESP32 Entwicklungsboards.
2.1 WLAN
WLAN (Wireless Local Area Network) ist ein Funknetzwerk, das es Geräten ermöglicht, drahtlos miteinander zu kommunizieren. Der ESP32 unterstützt WLAN-Konnektivität und kann als Access Point oder als Client arbeiten. Das bedeutet, dass der ESP32 entweder ein eigenes WLAN-Netzwerk bereitstellen kann, auf das andere Geräte zugreifen können, oder sich mit einem vorhandenen WLAN-Netzwerk verbinden kann. Dieses Feature ermöglicht es dem ESP32, Daten über das Internet zu senden und zu empfangen, was es ideal für IoT-Anwendungen macht.
2.2 Bluetooth
Bluetooth ist ein weiterer Funkstandard, mithilfe dessen Geräte drahtlos miteinander kommunizieren können. Der ESP32 unterstützt Bluetooth Classic und Bluetooth Low Energy (BLE), was ihm eine Vielzahl von Anwendungsmöglichkeiten eröffnet. Dieses Feature ermöglicht es dem ESP32, Daten mit anderen Bluetooth-Geräten auszutauschen und so beispielsweise mit Smartphones zu kommunizieren.
2.3 UART
UART (Universal Asynchronous Receiver/Transmitter) ist ein serielles Übertragungsprotokoll, das es Geräten ermöglicht, Daten über eine einzelne Leitung zu senden und zu empfangen. Es nutzt dafür Start- und Stoppbits und einen festen Datenbaudrate, um einen synchronisierten Datenfluss und eine Übertragungsfehlerkorrektur zu ermöglichen. Der ESP32 hat mehrere UART-Schnittstellen, die für verschiedene Anwendungen verwendet werden können. Es ermöglicht dem ESP32, mit anderen Geräten wie beispielsweise GPS-Modulen, OLED-Displays oder Serielle-zu-WiFi-Module zu kommunizieren. Auch zum Programmieren wird die UART Schnittstelle verwendet.
UART ist ein serielles Übertragungsprotokoll zur Übertragung von Daten zwischen zwei Geräten über eine gemeinsame Leitung. |
2.4 I2C
I2C (Inter-Integrated Circuit) ist ein serielles Kommunikationsprotokoll, das zur Übertragung von Daten zwischen elektronischen Geräten verwendet wird. Es wurde für den Einsatz in kleinen Systemen konzipiert, bei denen nur wenige Daten übertragen werden müssen. I2C arbeitet mit einem Master-Slave-Konzept, bei dem ein Mastergerät Daten an eine beliebige Anzahl von Slave-Geräten sendet und empfängt. Jedes Slave-Gerät hat eine eindeutige Adresse, die vom Master verwendet wird, um es anzusprechen.
I2C ist ein sogenannter "Open-Drain-Bus", was bedeutet, dass die Geräte auf dem Bus ihre Signale nicht aktiv senden, sondern ihre Signale nur auf "High" oder "Low" schalten können. Daher muss ein externer Pull-Up-Widerstand an die beiden Bus-Leitungen SDA (Serial Data) und SCL (Serial Clock) angeschlossen werden, um sicherzustellen, dass der Bus immer auf einem logischen High-Level gehalten wird, wenn kein Gerät aktiv Daten sendet. Diese Pull-Up-Widerstände sind bei Mikrokontroller-Boards, wie dem ESP32, bereits integriert.
Das I2C-Protokoll definiert eine Reihe von Signalen und Regeln, die es ermöglichen, Daten sicher und zuverlässig zu übertragen. Die wichtigsten Signalzustände sind Start- und Stopp-Signale, die von dem Master generiert werden, um den Beginn und das Ende einer Übertragung anzuzeigen. Die Daten selbst werden bitweise über die SDA-Leitung übertragen, während die Taktimpulse zur Übertragung der Daten über die SCL-Leitung bereitgestellt werden.
I2C wird häufig in Systemen eingesetzt, bei denen es notwendig ist, kleine Datenmengen zwischen mehreren Geräten auszutauschen. Ein typisches Anwendungsbeispiel ist die Verbindung eines Mikrocontrollers mit verschiedenen Peripherie-Geräten wie Sensoren, LCD-Displays oder EEPROM-Speichern. Die Vorteile von I2C gegenüber anderen seriellen Protokollen sind seine geringe Pin-Anzahl und seine Fähigkeit, mehrere Geräte auf einem einzigen Bus anzuschliessen. Die grösste Limitierung von I2C ist die Geschwindigkeit, mit der Daten übertragen werden können, die sich auf einige kHz beschränkt.
I2C ist ein bidirektionaler Kommunikationsstandard, der es ermöglicht, dass mehrere Geräte an einem gemeinsamen Bus miteinander kommunizieren können. |
2.5 SPI
SPI steht für "Serial Peripheral Interface". Es handelt sich hierbei um ein Übertragungsprotokoll, das, wie I2C, zur Kommunikation zwischen Mikrocontrollern und Peripheriegeräten eingesetzt wird. Es arbeitet seriell und verwendet dabei mindestens vier Signalpins: SCK (Serial Clock), MOSI (Master Out Slave In), MISO (Master In Slave Out) und einen SS-Pin (Slave Select) pro Peripheriegerät.
Im SPI-Protokoll gibt es ein Hauptgerät (Master) und ein oder mehrere Slave-Geräte. Der Master steuert den Datentransport, indem er Clock-Signale ausgibt und Daten an das Slave-Gerät überträgt. Das Slave-Gerät nimmt die Daten auf und sendet ggf. Antwortdaten an das Master-Gerät. Die Daten werden bitweise übertragen und es können mehrere Datenbits in einem Datenpaket enthalten sein.
SPI wird in vielen Anwendungen eingesetzt, bei denen schnelle Datenübertragung erforderlich ist, beispielsweise bei der Verbindung von Sensoren, Speichermedien, Displays und anderen Peripheriegeräten mit Mikrocontrollern. Es hat den Vorteil, dass es schnell und einfach zu implementieren ist und keine Komplexität in Bezug auf Übertragungskontrolle oder Fehlerkorrektur aufweist.
Limitierungen von SPI sind, dass es keine adressierte Übertragung unterstützt und dass es nur ein Master-Gerät und ein oder mehrere Slave-Geräte unterstützt. Ausserdem kann es bei hoher Übertragungsrate zu Timing-Problemen kommen, was die Übertragungsgenauigkeit beeinträchtigen kann.
SPI bietet im Vergleich zu I2C eine höhere Übertragungsgeschwindigkeit, aber es benötigt mehr Pins und ist nicht so flexibel bei der Adressierung von Geräten. |
2.6 DAC
DAC steht für Digital-to-Analog-Converter und bezieht sich auf die Fähigkeit des ESP32, digitale Daten in analoge Signale umzuwandeln. DAC ist ein wichtiger Bestandteil vieler Anwendungen, die analoge Signale benötigen, wie z.B. Tonwiedergabe, Musikübertragung oder Steuerung von elektronischen Geräten. DAC wandelt digitale Daten in eine stetige analoge Spannung um, indem es die digitale Eingabe in kleine Schritte unterteilt und diese mithilfe eines analogen Filters zu einem gleichmässigen analogen Signal zusammenfügt. DAC-Chips können in der Regel eine hohe Auflösung und Genauigkeit bereitstellen, was es ihnen ermöglicht, komplexe analoge Signale mit geringen Verzerrungen zu erzeugen.
Limitierungen können bei der Verwendung von DAC aufgrund von Rauschen, Interferenzen und Verzerrungen auftreten, aber dies kann durch den Einsatz von entsprechenden Schaltungen und Filtertechniken minimiert werden.
2.7 ADC
ADC ist ein Bauteil im ESP32, das analoge Signale in digitale Signale konvertiert. Es erfasst eine analoge Spannung und wandelt sie in eine digitale Zahl um, die dem Prozessor verfügbar gemacht wird. Auf technischer Ebene funktioniert es, indem es die analoge Spannung in eine bestimmte Anzahl von Stufen unterteilt und jede Stufe als binärer Wert codiert wird. ADC wird häufig in Anwendungen eingesetzt, bei denen analoge Signale in den Prozessor aufgenommen und weiterverarbeitet werden müssen, beispielsweise in Messanwendungen, bei denen analoge Sensorsignale in digitale Werte umgewandelt werden müssen.
DAC (Digital-to-Analog Converter) und ADC (Analog-to-Digital Converter) sind Komponenten, die digitale Signale in analoge Signale bzw. analoge Signale in digitale Signale umwandeln. |
2.8 LTE
LTE ist eine Technologie für drahtlose Breitband-Kommunikation, die von der dritten Generation (3G) der Mobilfunkstandards entwickelt wurde. Es bietet eine hohe Übertragungsrate, geringe Latenzzeiten und eine zuverlässige Übertragung von Daten über grosse Entfernungen. Gewisse ESP32 Boards unterstützen LTE-Modemfunktionalität, was bedeutet, dass sie Daten über ein LTE-Netzwerk übertragen und empfangen kann. LTE wird oft in Anwendungen verwendet, die eine schnelle und zuverlässige Datenübertragung erfordern, beispielsweise in IoT-Geräten, bei denen Daten zu und von einem zentralen Server übertragen werden müssen.
2.9 GPRS
GPRS steht für General Packet Radio Service und ist eine Technologie für den drahtlosen Zugang zum Internet und für Datenübertragungen über Mobilfunknetze. Es handelt sich hierbei um eine Vorform von 3G. Die Übertragung von Daten erfolgt in Form von Paketen, wodurch eine effiziente Nutzung des Funkkanals ermöglicht wird.
Im Gegensatz zu analogen Modems, die eine feste Übertragungsrate besitzen, ermöglicht GPRS eine flexible Datenübertragungsrate, die je nach verfügbarer Funkkapazität variiert.
GPRS wird oft in Mobiltelefonen, Routern und anderen Geräten verwendet, die eine permanente Verbindung zum Internet benötigen, aber nicht über eine feste Verbindung wie Kabel oder WLAN verfügen. Es bietet eine praktische und tragbare Möglichkeit, auf das Internet zuzugreifen und Daten zu übertragen, aber die Übertragungsrate ist gegenüber anderen Technologien wie 3G und 4G beschränkt.
LTE ist eine Technologie für den Mobilfunk, die Datenübertragungen mit hoher Geschwindigkeit ermöglicht, während GPRS eine ältere Technologie für den drahtlosen Datentransport ist, die für grundlegende Datenübertragungen verwendet wird. |
2.10 GPS
GPS (Global Positioning System) ist ein Feature gewisser ESP32 Entwicklerboards, das es ermöglicht, die aktuelle geografische Position zu bestimmen. Technisch gesehen arbeitet das GPS mit einem Netzwerk von Satelliten zusammen, die Signale senden, die von GPS-Empfängern empfangen werden können. Der GPS-Empfänger berechnet dann seine Position anhand der Zeit, die das Signal von den Satelliten bis zu ihm benötigt hat.
GPS wird für Anwendungen verwendet, bei denen die genaue geografische Position benötigt wird, wie zum Beispiel für Navigationssysteme, Geofencing-Anwendungen oder für die Überwachung von Fahrzeugen.
2.11 OTA-Firmware-Aktualisierungen
Over-the-Air (OTA) firmware updates ermöglichen es, die Firmware des ESP32 aus der Ferne zu aktualisieren. Dies bedeutet, dass der ESP32 nicht physisch an einen Computer angeschlossen werden muss, um die Firmware zu aktualisieren. Stattdessen kannst du die Aktualisierung einfach über eine Verbindung zum Internet durchführen. Dies spart Zeit und macht es einfacher, die Firmware des ESP32 auf dem neuesten Stand zu halten.
2.12 Power-Management-Fähigkeiten
Der ESP32 verfügt über fortschrittliche Power-Management-Fähigkeiten, die es ermöglichen, den Energieverbrauch des Geräts zu optimieren. Der ESP32 kann seine Leistung und Energieverwendung dynamisch an die aktuelle Anwendung anpassen kann, um die bestmögliche Leistung bei gleichzeitiger Minimierung des Energieverbrauchs zu erzielen. Das ist besonders hilfreich für Anwendungen, die über längere Zeit mit Batteriestrom betrieben werden müssen.
3 Fazit
Es gibt viele ESP32 Entwicklungsboards, die für bestimmte Anwendungen gemacht wurden. Für Anfänger, welche einfach mal die ESP32 Umgebung ausprobieren wollen, ist die Standardvariante (NodeMCU ESP-WROOM-32) die beste, da sie im Internet am besten beschrieben und am meisten verwendet wird.
Falls du dir andere Versionen ansehen willst, geht's hier zur Produktkategorie:
Zum Shop