Startseite>ESP32: Der große Bruder des ESP8266
Aus Raspberry Pi Geek 08/2017

ESP32: Der große Bruder des ESP8266

© Espressif Systems

ESP++

Martin Mohr

Espressif mischte bereits mit dem WLAN-fähigen ESP8266 die Mikrocontroller-Gemeinde ordentlich auf. Jetzt legt der Hersteller mit dem ESP32 noch einmal nach.

Espressif hat mit dem ESP8266 frischen Wind in die Mikrocontroller-Gemeinde gebracht. Ein günstiger Controller, der WLAN mit an Board hat – das war eine kleine Revolution. Jetzt legt das Unternehmen mit dem ESP32 noch einmal nach.

Die neue Hardware (siehe Tabelle “Technische Daten”) bringt erheblich mehr CPU-Leistung, beinahe so viel wie ein RasPi der ersten Generation. Daneben enthält der ESP32 mehr und flexiblere Ein- und Ausgänge und mehr Arbeitsspeicher, zum bereits vorhandenen WLAN gesellt sich nun Bluetooth. Damit eröffnet er viel mehr Möglichkeiten als sein kleiner Bruder.

Technische Daten

CPU

Tensilica LX6 Dual-Core (240 MHz, 600 DMIPS)

RAM

512 KByte SRAM

Speicher

16 MByte Flash, externes SPI-Flash (max. 16 MByte), SD-Card-Slot

WLAN

802.11b/g/n (WEP, WPA/WPA2 PSK/Enterprise)

Bluetooth

Classic, LE

Betriebsspannung

2,2 bis 3,6 Volt

Betriebstemperatur

-40 bis +125 Grad Celsius

Ein-/Ausgänge

GPIO (32), UART (3), SPI (3), ADC (12), DAC (2), I2C (2), I2S (2)

Verschlüsselung

AES/SHA2/Elliptical Curve Cryptography/RSA-4096 (hardwareunterstützt)

Sonstiges

PWM/Timer-I/O auf allen GPIO-Pins, SDIO Master/Slave (50 MHz), Hallsensor, kapazitive Touch-Schnittstelle (10x), 32-kHz-Kristallquartz

Allerdings kostet so viel Power entsprechend mehr: Das Board schlägt bei Amazon mit rund 30 Euro zu Buche. Allerdings liegt die Vermutung nahe, dass der Preis in ein paar Monaten auf ein für den Bastler erträglicheres Niveau fällt.

Zur Programmierung des neuen Mikrocontrollers müssen Sie die Arduino IDE [1] anpassen. Wir demonstrieren das in diesem Workshop anhand eines Beispiels, das eine RGB-LED mit unterschiedlichen Farben zyklisch ansteuert. Als Hardware kommt das ESP32 DevKitC [2] zum Einsatz, das Sie direkt an die USB-Schnittstelle anschließen. Das Board erzeugt alle nötigen Betriebsspannungen selbst. Abbildung 1 zeigt die Beschaltung der einzelnen Pins des DevKitC.

Abbildung 1: Die Anschlussbelegung des DevKitC. (Quelle: Getting Started Guide, Figure 1-2)

Abbildung 1: Die Anschlussbelegung des DevKitC. (Quelle: Getting Started Guide, Figure 1-2)

Da der ESP32 recht neu auf dem Markt ist, existiert noch kein finaler Board-Manager für die Arduino IDE. Es gibt immerhin eine schon recht gut funktionierende Version auf Github [3], die allerdings etwas Handarbeit erfordert. Im ersten Schritt installieren Sie die aktuellste Version der Arduino IDE. Wählen Sie auf der Download-Seite des Arduino-Projekts [4] die für das jeweilige Betriebssystem passende Version aus und laden Sie diese herunter.

Die Kommandos in Listing 1 zeigen die Schritte für eine Installation unter Ubuntu. Der Usermod-Befehl sorgt dafür, dass der angemeldete Benutzer auf die seriellen Schnittstellen des Systems zugreifen kann. Die heruntergeladene Datei kopieren Sie ins neu erstellte Verzeichnis ESP32. Falls sich der Tar-Befehl mit verschiedenen Meldungen weigert, das Paket zu entpacken, fehlen auf dem System vermutlich die XZ-Tools, die Sie dann mit sudo apt-get install xz-utils nachinstallieren. Nach dem Entpacken prüfen Sie, ob die Arduino IDE sauber startet.

Listing 1

 

$ sudo usermod -a -G dialout $USER
$ mkdir ESP32
$ cd ESP32
$ tar -xvJf arduino-1.8.1-linux64.tar.xz
$ cd ./arduino-1.8.1/
$ ./arduino

Der nächste Schritt umfasst das Herunterladen, Bauen und Einrichten der ESP32-Komponenten. Falls Git noch nicht auf dem Rechner installiert ist, holen Sie das vorab mit dem Kommando sudo apt-get install git nach. Dann führen Sie die in Listing 2 gezeigten Befehle aus.

Listing 2

 

$ mkdir -p ~/Arduino/hardware/espressif
$ cd ~/Arduino/hardware/espressif
$ git clone https://github.com/espressif/arduino-esp32.git esp32
$ cd esp32/tools/
$ python get.py
$ cd ~/ESP32/arduino-1.8.1/
$ ./arduino

Anschließend haben Sie die Möglichkeit, in der IDE das ESP 32 DEV MODULE auszuwählen (Abbildung 2). Die IDE erzeugt jetzt Binärcode für den ESP32. Bevor wir uns mit dem Beispielprogramm beschäftigen, werfen wir noch einen Blick auf die Test-Hardware.

Abbildung 2: Haben Sie die Arduino IDE korrekt installiert, integrieren Sie das entsprechende Modul für den ESP32.

Abbildung 2: Haben Sie die Arduino IDE korrekt installiert, integrieren Sie das entsprechende Modul für den ESP32.

Test-Hardware

Das ESP32 DevKitC bringt alles mit, um direkt in die Programmierung des ESP32 einzusteigen. Es bezieht die komplette Betriebsspannung über den USB-Port. Auf dem Board findet sich ein USB-zu-seriell-Baustein, alle zum Betrieb nötigen Taster und Widerstände sind bestückt.

Da die Platine etwas breit gerät, passt sie nicht mehr auf ein einzelnes Breadboard – zumindest kommen Sie nur schlecht an die Kontakte heran. Daher empfiehlt es sich, mehrere Breadboards nebeneinander zu verwenden. Diese lassen sich wie der ESP32 günstig in China beziehen [5], allerdings müssen Sie dafür eine gewisse Lieferzeit in Kauf nehmen.

Abbildung 3 zeigt den Testaufbau, Abbildung 4 den recht sparsamen Schaltplan mit nur drei Vorwiderständen und einer RGB-LED, wie Sie sie bei jedem Elektronikversand bekommen. Die hier verwendete kommt ebenfalls direkt aus China [6]. Sie weist vier Anschlüsse auf, je eine Anode für Rot, Grün und Blau sowie eine gemeinsame Anode (das längste Beinchen des Bausteins).

Abbildung 3: Das etwas groß geratene Board des DevKits erzwingt beim Testaufbau zum komfortablen Arbeiten mehr als ein Breadboard.

Abbildung 3: Das etwas groß geratene Board des DevKits erzwingt beim Testaufbau zum komfortablen Arbeiten mehr als ein Breadboard.

Abbildung 4: Der Schaltplan zeigt die Vorwiderstände und die eigentliche LED, die der ESP32 ansteuert.

Abbildung 4: Der Schaltplan zeigt die Vorwiderstände und die eigentliche LED, die der ESP32 ansteuert.

Programm

Das Testprogramm (Listing 3) enthält kaum Überraschungen: Die Funktion setup() definiert die IO-Pins 5, 18 und 19 als Ausgänge. Es legt sie auf logisch HIGH, um alle LEDs direkt nach dem Starten des ESP32 auszuschalten. Die LEDs hängen über die gemeinsame Anode an Plus. Sollen sie leuchten, legen Sie die Kathode auf 0 Volt. Sollen sie ausgehen, legen Sie die Kathode auf logisch 1 (3,3 Volt).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland