ESP32 - OLED
Dieses Tutorial zeigt Ihnen, wie Sie einen ESP32 mit einem OLED-128x64-I2C-Display unter MicroPython verwenden. Im Einzelnen lernen wir:
- Wie Sie den ESP32 mit einem 128x64-OLED-Display verbinden.
- Wie Sie MicroPython-Code für den ESP32 schreiben, um Text, Ganzzahlen und Gleitkommazahlen auf einem OLED anzuzeigen.
- Wie Sie Text/Zahlen auf dem OLED automatisch vertikal und horizontal mittig ausrichten.
- Wie Sie MicroPython-Code für den ESP32 schreiben, um ein Bild auf einem OLED anzuzeigen.
- Wie Sie MicroPython-Code für den ESP32 schreiben, um Formen auf einem OLED zu zeichnen.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Kaufhinweis: Wenn Sie ein größeres OLED-Display möchten, verwenden Sie das 2.42 inch OLED Display 128x64.
Überblick über OLED Display
OLED-Displays unterscheiden sich in Kommunikationsart, Größe und Farbe.
- Kommunikationsprotokoll: I2C, SPI
- Größen: 128x64, 128x32
- Verfügbare Farben: Weiß, Blau, Gelb...

SPI bietet eine schnellere Datenübertragung als I2C, benötigt aber mehr Pins am ESP32. I2C hingegen verwendet nur zwei Pins und kann mehrere I2C-Geräte anbinden. Ihre Wahl hängt davon ab, ob Ihnen weniger belegte Pins oder eine höhere Geschwindigkeit wichtiger sind. Für I2C-basierte OLED-Displays sind SSD1306 und SH1106 gängige Treiber. Diese Anleitung behandelt speziell die Verwendung des 128x64-SSD1306-I2C-OLED-Displays.
Pinbelegung des I2C-OLED-Displays
- GND-Pin: Mit der Masse (GND) des ESP32 verbinden.
- VCC-Pin: Zur Stromversorgung mit dem 5V- oder 3,3V-Pin des ESP32 verbinden.
- SCL-Pin: Dies ist der Takt-Pin für die I2C-Kommunikation.
- SDA-Pin: Dies ist der Daten-Pin für die I2C-Kommunikation.

※ Notiz:
Pinbelegung des OLED-Moduls
- Die Pinbelegung variiert je nach Hersteller und Modell.
- Richten Sie sich nach der Beschriftung auf Ihrem Modul.
Diese Anleitung verwendet den SSD1306-I2C-Treiber. Wir haben ihn mit einem DIYables-OLED-Display getestet.
Verdrahtungsdiagramm
- So verbinden Sie den ESP32 mit dem OLED-128x64-Display über ein Breadboard

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
- So verbinden Sie den ESP32 mit dem OLED-128x64-Display über ein Schraubklemmen-Breakout-Board

In der folgenden Tabelle finden Sie Details zu anderen ESP32-Modellen.
| OLED-Modul | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | GPIO21 |
| SCL | GPIO22 |
ESP32 MicroPython-Code - Text, Ganzzahl und Gleitkommazahl auf dem OLED anzeigen
Schnelle Schritte
So richten Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE ein und führen ihn aus:
- Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
- Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board installiert ist.
- Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte mit Schritt-für-Schritt-Anweisungen.
- Verbinden Sie das OLED-Display gemäß dem Schaltplan mit dem ESP32.
- Verbinden Sie das ESP32-Board über ein USB-Kabel mit Ihrem Computer.
- Öffnen Sie die Thonny IDE auf Ihrem Computer.
- Gehen Sie in der Thonny IDE zu Tools Options.
- Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32) aus.
- Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, eventuell müssen Sie ihn aber manuell auswählen (z. B. COM3 unter Windows oder /dev/ttyACM0 unter Linux).
- Navigieren Sie in der Thonny IDE zu Tools Manage packages.
- Suchen Sie nach “DIYables-MicroPython-OLED” und finden Sie die von DIYables erstellte OLED-Bibliothek.
- Klicken Sie auf DIYables-MicroPython-OLED und dann auf die Schaltfläche Install, um die OLED-Bibliothek zu installieren.

- Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
- Speichern Sie den Code auf Ihrem ESP32:
- Klicken Sie auf die Schaltfläche Save oder drücken Sie Ctrl+S.
- Wählen Sie im Speicherdialog MicroPython device.
- Nennen Sie die Datei main.py.
- Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
- Sehen Sie sich das Ergebnis auf dem OLED-Display an. Es sieht wie folgt aus:

So richten Sie Text/Zahlen auf dem OLED automatisch vertikal und horizontal mittig aus
Der folgende MicroPython-Code zentriert den Text automatisch sowohl vertikal als auch horizontal auf dem OLED-Display.
Nach dem Ausführen des Codes sehen Sie ein Quadrat, einen Kreis und ein Dreieck auf dem OLED-Bildschirm.

ESP32 MicroPython-Code – Bild auf dem OLED anzeigen
Der folgende Code zeichnet ein Bild auf das Display. Das Bild ist das DIYables-Symbol.
Wenn Sie den obigen Code ausführen, wird das Bild auf dem OLED angezeigt, wie unten zu sehen.

Um ein anderes Bild auf einem OLED-Bildschirm anzuzeigen, gehen Sie wie folgt vor:
- Wandeln Sie das Bild (in einem beliebigen Format) in ein Bitmap-Array um. Sie können dafür das Tool Image to Bitmap Converter verwenden. Im Bild unten sehen Sie, wie ein Bild in ein Bitmap-Array umgewandelt wird. Ich habe das ESP32-Symbol in ein Bitmap-Array umgewandelt.

- Übernehmen Sie das umgewandelte Bitmap-Array als neuen Array-Code in den ESP32-MicroPython-Code.
- Ändern Sie Breite und Höhe des Bildes im ESP32-MicroPython-Code entsprechend den Abmessungen des Bildes.
Bitte beachten Sie, dass die Bildgröße gleich oder kleiner als die Bildschirmgröße sein sollte.
ESP32 MicroPython-Code - Formen auf dem OLED zeichnen
Nach dem Ausführen des Codes sehen Sie ein Rechteck, einen Kreis und ein Dreieck auf dem OLED-Bildschirm.

OLED-Fehlerbehebung
Wenn auf dem OLED-Bildschirm nichts angezeigt wird, gehen Sie bitte wie folgt vor:
- Prüfen Sie, ob die Verdrahtung korrekt ist.
- Stellen Sie sicher, dass Ihr I2C-OLED einen SSD1306-Treiber hat.
- Ermitteln Sie die I2C-Adresse Ihres OLED mit diesem I2C-Adressscanner-Code auf dem ESP32.
Ausgabe in der Shell unten in Thonny: