OLED Display (1.3 Zoll) mit ESP32 programmieren – Tutorial

 


 

Einleitung

In diesem Artikel werden wir Ihnen ausführlich erklären, wie Sie ein 1,3 Zoll OLED Display erfolgreich mit einem ESP32 programmieren können. Wir werden Schritt für Schritt durch den gesamten Prozess gehen, angefangen bei der Beschaffung der benötigten Komponenten bis hin zur Programmierung des ESP32 in der Arduino IDE.

Ein 1,3 Zoll OLED Display bietet Ihnen die Möglichkeit, Informationen und Grafiken in hoher Qualität auf einem kompakten Bildschirm darzustellen. Mit dem ESP32, einem leistungsstarken Mikrocontroller, können Sie dieses Display steuern und eigene kreative Projekte umsetzen.

Wir werden Ihnen nicht nur zeigen, wie Sie die Hardware richtig anschließen, sondern auch den Programmcode Schritt für Schritt erklären. Nachdem Sie diesen Artikel gelesen haben, werden Sie in der Lage sein, Ihr eigenes ESP32-Projekt mit einem 1,3 Zoll OLED Display zu realisieren. Tauchen Sie ein in die Welt der Mikrocontroller und Displays, und beginnen Sie noch heute Ihre eigenen elektronischen Abenteuer!

Falls das ihr erstes Projekt mit dem ESP32 ist, empfehle ich zunächst folgenden Artikel, in welchem ich das Einrichten des ESP32 zeige.
ESP32 erste Schritte

 

 

Verschaltung

Teile

1x ESP32
1x 1.3 Zoll OLED
4x Verbindungskabel

Bibliotheken

Wire.h

SH1106Wire.h

Code Download

 
 

 




 

Hardware Aufbau – Verkabelung – 1.3 Zoll OLED + ESP32

Bevor wir uns der Programmierung des ESP32 widmen, ist es entscheidend, zuerst den Hardware-Aufbau vorzubereiten. Im folgenden Abschnitt erläutere ich Ihnen, wie Sie den ESP32 erfolgreich mit dem OLED Display verknüpfen.

Für den Aufbau benötigen Sie 4 Verbindungen:

ESP32 3,3V Pin -> Vdd
ESP32 GND Pin -> GND
ESP32 Pin D21 -> SCK
ESP32 Pin D22 -> SDA

Es ist wichtig, die Verbindungen sorgfältig und korrekt herzustellen, um sicherzustellen, dass der ESP32 die Signale ordnungsgemäß an das OLED Display senden kann.

Sobald Sie diese Verbindungen hergestellt haben, sind Sie bereit, mit der Programmierung des ESP32 fortzufahren. Im nächsten Abschnitt werden wir uns ausführlich mit dem einbinden der Bibliothek und dem programmieren des Codes beschäftigen.

 




 

Bibliothek (library) einbinden – 1.3 Zoll OLED + ESP32

Das OLED Display kommuniziert über I²C mit dem Mikrocontroller. Damit wir nicht Jedes einzelnen Signal programmieren müssen, verwenden wir eine Bibliothek.
In diesem Abschnitt wird gezeigt wie diese in die Arduino IDE eingebunden wird.

Hierfür gehen wir in der Menüleiste auf:
Sketch -> Bibliothek einbinden -> Bibliothek verwalten

Dort nach „SD1306“ suchen. Und die Bibliothek von „TingPulse“ auswählen.

Nun geht es weiter mit der tatsächlichen Programmierung.

 

Software Programmierung – 1.3 Zoll OLED + Arduino Uno

Nachdem der Hardware-Aufbau erfolgreich durchgeführt wurde und die Bibliothek eingebunden ist, ist es nun an der Zeit, sich der Programmierung des ESP32 zu widmen. In diesem Abschnitt werden wir die essenziellen Schritte zur Codeerstellung und die Schlüsselfunktionen, die Sie verwenden werden, ausführlich erläutern.

 
Schritt 1: Initialisierung

Öffnen der Arduino-IDE und Erstellen eines neuen Projekts
Um mit der Arduino-IDE zu arbeiten, öffnen Sie zunächst die Anwendung auf Ihrem Computer. Falls Sie die Arduino-IDE noch nicht installiert haben, können Sie unter folgendem Link eine Anleitung hierzu finden:
ESP32 in Arduino IDE erste Schritte

Nachdem Sie die Arduino-IDE geöffnet haben, erstellen Sie ein neues Projekt, indem Sie auf „Datei“ klicken und dann auf „Neu“. Dadurch wird ein neues Sketch-Fenster geöffnet, in dem Sie Ihren Code eingeben können.


// Hier kommt dein Code
void setup()
{
  // Initialisierung
}

void loop()
{
  // Schleife
}

 
Schritt 2: Bibliothek einbinden

Wie oben erklärt haben wir eine Bibliothek in die Arduino IDE eingebunden. Um diese auch in unseren Code zu verwenden, wird diese durch #include am Anfang eingebunden.


#include <Wire.h>
#include "SH1106Wire.h";

 
Schritt 3: Display definieren

Das Display wird über folgenden Befehlt initialisiert. Hierbei steht das 0x3c für die Adresse des Displays. SDA und SCL sind die Vordefinierten Pins für die Datenübertragung (Hier Pin D21 und D22). Falls man hier andere Pins verwenden möchte kann man SDA und SCL abändern durch den entsprechenden Pin.


SH1106Wire display(0x3c, SDA, SCL);     // ADDRESS, SDA, SCL

 

Schritt 4: Void Setup

Im Void Setup-Teil des Codes führen Sie die Initialisierungen durch, die nur einmal am Anfang des Programms ausgeführt werden müssen. Fügen Sie den folgenden Code hinzu:


void setup()
{
  Serial.begin(115200); //Initialize serial monitor
  display.init(); //Initialize Display
  display.flipScreenVertically(); //Flip Screen Vertically
  display.setFont(ArialMT_Plain_10); //SetFont to Arial
}

Der Serial.begin(115200) Befehl initialisiert den seriellen Monitor mit einer Baudrate von 115200, sodass Sie die empfangenen Werte später auf dem Monitor angezeigt werden können.
Mit den Funktionen Serial.println werden auf dem Monitor der aktuelle Status ausgegeben.
Der Code „display.init();“ initialisiert das Display mit den zuvor programmierten Parametern.

 
Schritt 5: Loop Setup

Der Loop-Teil des Codes wird kontinuierlich wiederholt, solange der ESP32 eingeschaltet ist.


void loop()
{
  display.clear(); //Clear Display
  display.drawString(0, 0, "Hello world"); //Print Hello World on display
  display.display(); //Print on display
}

Der erste Befehlt löscht alles bisherige auf dem display. Damit wir mit einem leeren display starten.
Danach geben wir in diesem Beispiel „Hello World“ auf dem Display aus. Der Text soll bei den Koordinaten X=0 Y=0 stehen.
Am Ende wird über display.display(); der definierte Inhalt auf dem Display ausgegeben.

Das waren die grundlegenden Schritte zur Programmierung des OLED Displays 1.3 Zoll mit einem ESP32. In dem nächsten Abschnitt werden wir uns speziell mit der Anwendung beschäftigen. Es wird also nochmal praktisch gezeigt, wie Inhalte über den ESP32 auf den OLED Bildschirm ausgegeben werden können.

Schritt für Schritt – Zusammenfassung
→ Schritt 1: Initialisierung
Arduino-Board anschließen,
IDE öffnen
Datei -> Neu
Werkzeug -> Board -> Arduino Uno
Port -> Arduino Uno

→ Schritt 2:
Bibliothek einbinden.

→ Schritt 3:
Display initialisieren.

→ Schritt 4: Void Setup
Display Initialisierung ausführen.
Display Voreinstellung tätigen.

→ Schritt 5: Void Loop
Inhalt auf dem Display entfernen.
Inahalt auf dem Display definieren.
Inahalt auf dem Display ausgeben.

 




 

Gesamter Programmiercode – OLED 1.3 Zoll + ESP32

Nochmal zur Übersicht den gesamten Programmier-Code aufgezeigt.


#include <Wire.h>
#include "SH1106Wire.h";

SH1106Wire display(0x3c, SDA, SCL);     // ADDRESS, SDA, SCL

void setup()
{
  Serial.begin(115200); //Initialize serial monitor
  display.init(); //Initialize Display
  display.flipScreenVertically(); //Flip Screen Vertically
  display.setFont(ArialMT_Plain_10); //SetFont to Arial
}

void loop()
{
  display.clear(); //Clear Display
  display.drawString(0, 0, "Hello world"); //Print Hello World on display
  display.display(); //Print on display
}

 

Ausführung – OLED 1.3 Zoll + ESP32

Nachdem der Code nun in die IDE eingegeben ist, muss dieser noch ausgeführt werden und auf den Arduino übertragen werden.
Hierzu geht man wie folgt vor:
Schritt 1: Überprüfen (Haken)
Schritt 2: Hochladen (Pfeil)
Schritt 3: Auf Display wird „Hello world“ anzeigt

Nachdem der ESP32 nun programmiert ist, wird aber dem Display der Demotext angezeigt.