ESP8266 - SSD1309 OLED Display 128x64 | 2.42 Zoll I2C OLED Tutorial
Dieses Tutorial zeigt Ihnen, wie Sie den ESP8266 mit einem 2.42 Zoll (2.4") SSD1309 I2C OLED Display (128×64 Auflösung) verwenden. Im Detail lernen wir:
- Wie man ein 2.42 Zoll SSD1309 OLED Display mit ESP8266 verbindet.
- Wie man den ESP8266 programmiert, um Text auf dem SSD1309 OLED anzuzeigen.
- Wie man den ESP8266 programmiert, um Formen auf dem SSD1309 OLED zu zeichnen.
- Wie man Hardware-Scrolling auf dem SSD1309 OLED mit ESP8266 aktiviert.
- Wie man den ESP8266 programmiert, um Bitmap-Bilder auf dem SSD1309 OLED anzuzeigen.
- Wie man die Helligkeit/den Kontrast des SSD1309 OLED anpasst.
- Wie man externe Schriftarten mit dem SSD1309 OLED Display verwendet.

Hardware Erforderlich
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über das SSD1309 OLED Display
Der SSD1309 ist ein monochromes OLED Display-Treiber-Chip. Die 2.42 Zoll Version bietet eine 128×64 Pixel Auflösung. Es kommuniziert über das I2C-Protokoll und benötigt nur zwei Pins (SDA und SCL) plus Stromverbindungen. Das macht es ideal für ESP8266-Projekte mit begrenzter Pin-Verfügbarkeit.
Hauptmerkmale des SSD1309 OLED:
- Display-Größe: 2.42 Zoll (diagonal)
- Auflösung: 128×64 Pixel
- Kommunikation: I2C (2-Draht-Schnittstelle)
- Standard I2C-Adresse: 0x3C
- Betriebsspannung: 3.3V oder 5V kompatibel (ESP8266 verwendet 3.3V)
- Eingebaute Hardware-Scrolling-Unterstützung
- Einstellbarer Kontrast/Helligkeit
- Geringer Stromverbrauch
SSD1309 OLED Display Pinout
Das 2.42 Zoll SSD1309 I2C OLED Modul hat typischerweise 4 Pins:
- GND: Masse-Pin - mit ESP8266 GND verbinden
- VCC: Spannungsversorgung - mit ESP8266 3.3V verbinden
- SDA: I2C Datenleitung - mit ESP8266 D2 (GPIO4) verbinden
- SCL: I2C Taktleitung - mit ESP8266 D1 (GPIO5) verbinden

※ Notiz:
- Die Pins eines OLED-Moduls können je nach Hersteller und Modultyp unterschiedlich sein. Es ist wichtig, immer auf die auf dem OLED-Modul gedruckten Beschriftungen zu achten. Seien Sie aufmerksam!
- Dieses Tutorial verwendet das OLED Display mit dem SSD1309 I2C Treiber. Wir haben es mit dem OLED Display von DIYables getestet und es funktioniert perfekt.
Verdrahtungsdiagramm
Verbinden Sie das 2.42 Zoll SSD1309 OLED Display mit dem ESP8266 nach dieser Verdrahtung:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.
| SSD1309 OLED | ESP8266 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | D2 (GPIO4) |
| SCL | D1 (GPIO5) |
Wie man das SSD1309 OLED mit ESP8266 verwendet
DIYables_OLED_SSD1309 Bibliothek installieren
- Klicken Sie auf das Bibliotheken-Symbol in der linken Navigationsleiste der Arduino IDE.
- Geben Sie DIYables_OLED_SSD1309 in das Suchfeld ein und suchen Sie nach der Bibliothek von DIYables.
- Klicken Sie auf den Installieren-Button, um die Bibliothek hinzuzufügen.

Die DIYables_OLED_SSD1309 Bibliothek ist abhängig von der Adafruit_GFX Bibliothek. Falls Adafruit_GFX noch nicht installiert ist, wird die Arduino IDE Sie automatisch auffordern, sie zu installieren, wenn Sie DIYables_OLED_SSD1309 installieren.
ESP8266 Code - "Hello World" auf SSD1309 OLED anzeigen
Der folgende Code zeigt, wie man Text auf dem 2.42 Zoll SSD1309 OLED Display anzeigt:
Erklärung
- Notwendige Bibliotheken einbinden und Konstanten definieren
- Display-Objekt mit I2C-Adresse 0x3C erstellen
- Display in setup() initialisieren
- Textgröße, Farbe und Cursor-Position festlegen
- Text zum Display-Puffer mit print() und println() hinzufügen
- Display.display() aufrufen, um Pufferinhalt auf den Bildschirm zu übertragen
※ Notiz:
Das F() Makro speichert Strings im Flash-Speicher anstatt im RAM. Dies spart wertvollen RAM auf dem ESP8266.
ESP8266 Code - Text mit verschiedenen Formaten anzeigen
Dieser Code demonstriert die Textanzeige mit verschiedenen Größen und Zahlenformatierung:
ESP8266 Code - Formen auf SSD1309 OLED zeichnen
Der folgende Code zeigt, wie man Pixel, Linien, Rechtecke, Kreise und Dreiecke zeichnet:
Verfügbare Zeichenfunktionen:
- drawPixel(x, y, color) - Einzelnen Pixel zeichnen
- drawLine(x0, y0, x1, y1, color) - Linie zeichnen
- drawRect(x, y, w, h, color) - Rechteck-Umriss zeichnen
- fillRect(x, y, w, h, color) - Gefülltes Rechteck zeichnen
- drawRoundRect(x, y, w, h, radius, color) - Abgerundetes Rechteck zeichnen
- drawCircle(x, y, radius, color) - Kreis-Umriss zeichnen
- fillCircle(x, y, radius, color) - Gefüllten Kreis zeichnen
- drawTriangle(x0, y0, x1, y1, x2, y2, color) - Dreieck-Umriss zeichnen
- fillTriangle(x0, y0, x1, y1, x2, y2, color) - Gefülltes Dreieck zeichnen
ESP8266 Code - Hardware-Scrolling auf SSD1309 OLED
Der SSD1309 unterstützt Hardware-basiertes Scrolling. Dieser Code demonstriert alle vier Scroll-Richtungen:
Scrolling-Funktionen:
- startscrollright(start, stop) - Nach rechts scrollen
- startscrollleft(start, stop) - Nach links scrollen
- startscrolldiagright(start, stop) - Diagonal nach rechts scrollen
- startscrolldiagleft(start, stop) - Diagonal nach links scrollen
- stopscroll() - Scrolling stoppen
Die start- und stop-Parameter definieren den Seitenbereich (0x00 bis 0x07 für den gesamten Bildschirm).
ESP8266 Code - Bitmap-Bild auf SSD1309 OLED anzeigen
Dieser Code zeigt, wie man Bitmap-Bilder anzeigt, die im Programmspeicher gespeichert sind:
Um Bilder anzuzeigen:
- Konvertieren Sie Ihr Bild in ein monochromes Bitmap-Array (verwenden Sie Online-Tools oder image2cpp)
- Speichern Sie das Array in PROGMEM, um RAM zu sparen
- Verwenden Sie drawBitmap(x, y, bitmap, width, height, color) zur Anzeige
ESP8266 Code - Helligkeit/Kontrast anpassen
Steuern Sie die Helligkeit und den Kontrast des SSD1309 OLED Displays:
Helligkeits-Steuerungsfunktionen:
- setContrast(value) - Kontraststufe festlegen (0-255, höher = heller)
- dim(true/false) - Schneller Wechsel zwischen gedimmt und normaler Helligkeit
- invertDisplay(true/false) - Alle Pixel invertieren (schwarz↔weiß)
ESP8266 Code - Externe Schriftarten verwenden
Die Adafruit_GFX Bibliothek enthält FreeFont Schriftarten. Dieser Code demonstriert drei verschiedene Schriftarten:
※ Notiz:
FreeFont Dateien sind groß. Der ESP8266 hat begrenzten Flash-Speicher (typischerweise 4MB). Verwenden Sie nur die Schriftarten, die Sie benötigen, oder erwägen Sie kleinere Schriftgrößen, wenn der Speicher knapp ist.
Schriftarten-Verwendung:
- Schriftart-Header einbinden: #include <Fonts/FreeSans9pt7b.h>
- Schriftart festlegen: display.setFont(&FreeSans9pt7b)
- Auf Standard zurücksetzen: display.setFont(NULL)
- Bei Verwendung externer Schriftarten repräsentiert die Y-Koordinate die Grundlinie, nicht die Oberseite
Fehlerbehebung
Falls das OLED Display nicht funktioniert, versuchen Sie diese Schritte:
I2C-Adresse überprüfen
Die Standard I2C-Adresse ist 0x3C, aber einige Module verwenden 0x3D. Führen Sie diesen I2C-Scanner aus, um die richtige Adresse zu finden:
Falls Ihr Display 0x3D verwendet, ändern Sie SCREEN_ADDRESS auf 0x3D im Code.
Verdrahtung überprüfen
Überprüfen Sie die Verbindungen:
- VCC → 3.3V (nicht 5V für ESP8266)
- GND → GND
- SDA → D2 (GPIO4)
- SCL → D1 (GPIO5)
Stromversorgung überprüfen
Stellen Sie sicher, dass der ESP8266 ausreichend Strom über das USB-Kabel oder externes Netzteil erhält.