ESP32 - OLED-Uhr

In diesem Tutorial führen wir Sie durch den Prozess der Erstellung einer OLED-Uhr mit einem ESP32, indem wir die folgenden Schritte behandeln:

Sie haben die Flexibilität, zwischen zwei RTC-Modulen zu wählen: DS3231 und DS1307. Um Ihnen bei einer fundierten Entscheidung zu helfen, können Sie sich den im DS3231 vs DS1307 dargestellten Vergleich ansehen.

Dieses Tutorial bietet einen umfassenden Leitfaden zur Implementierung einer OLED-Uhr und zeigt die Integration des ESP32 mit entweder dem DS3231- oder DS1307-RTC-Modul, um genaue Zeitinformationen auf einem OLED-Bildschirm anzuzeigen.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×SSD1306 I2C OLED-Display 128x64
1×SSD1306 I2C OLED-Display 128x32
1×DS3231 Echtzeituhr(RTC)-Modul
1×(Optional) Real-Time Clock DS1307 Module
1×CR2032 Batterie
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über OLED-, DS3231- und DS1307-RTC-Modul

Mit OLED, DS3231 und DS1307 nicht vertraut, einschließlich ihrer Pinbelegungen, Funktionalität und Programmierung? Erkunden Sie unten umfassende Tutorials zu diesen Themen:

OLED- und RTC-Bibliotheken installieren

  • Klicken Sie auf das Bibliotheken-Symbol in der linken Seitenleiste der Arduino IDE.
  • Suchen Sie „SSD1306“, dann finden Sie die SSD1306-Bibliothek von Adafruit.
  • Klicken Sie auf die Installieren Schaltfläche, um die Bibliothek zu installieren.
ESP32 OLED-Bibliothek
  • Sie werden aufgefordert, weitere Abhängigkeiten der Bibliothek zu installieren
  • Klicken Sie auf die Schaltfläche Alle installieren, um alle Bibliotheksabhängigkeiten zu installieren.
ESP32 Adafruit GFX-Sensorbibliothek
  • Suchen Sie “RTClib”, und finden Sie dann die RTC-Bibliothek von Adafruit
  • Klicken Sie auf die Schaltfläche Installieren, um die RTC-Bibliothek zu installieren.
ESP32 RTC-Bibliothek
  • Sie werden möglicherweise aufgefordert, Abhängigkeiten für die Bibliothek zu installieren
  • Installieren Sie alle Abhängigkeiten für die Bibliothek, indem Sie auf die Schaltfläche Alle installieren klicken.
ESP32 Adafruit BusIO-Bibliothek

Lese die Zeit vom DS3231 RTC-Modul aus und zeige sie auf dem OLED an

Verdrahtungsdiagramm

ESP32 DS3231 OLED Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

ESP32-Code - DS3231 und OLED

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32/esp32-oled-clock */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <RTClib.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // // create SSD1306 display object connected to I2C RTC_DS3231 rtc; String time; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(1); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display // SETUP RTC MODULE if (! rtc.begin()) { Serial.println("Couldn't find RTC"); Serial.flush(); while (true); } // automatically sets the RTC to the date & time on PC this sketch was compiled rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); time.reserve(10); // to avoid fragmenting memory when using String } void loop() { DateTime now = rtc.now(); time = ""; time += now.hour(); time += ':'; time += now.minute(); time += ':'; time += now.second(); oledDisplayCenter(time); } void oledDisplayCenter(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie wie man die Umgebung für ESP32 in der Arduino IDE einrichtet.
  • Schließen Sie die Verkabelung wie im obigen Bild an.
  • Schließen Sie das ESP32-Board über ein Micro-USB-Kabel an Ihren PC an.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf Upload, um den Code auf den ESP32 hochzuladen.
  • Sehen Sie das Ergebnis auf dem OLED-Display.

Zeit vom DS1307 RTC-Modul auslesen und auf dem OLED anzeigen

Verdrahtungsdiagramm

ESP32 DS1307 OLED Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

ESP32-Code - DS1307 und OLED

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32/esp32-oled-clock */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <RTClib.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // // create SSD1306 display object connected to I2C RTC_DS1307 rtc; String time; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(1); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display // SETUP RTC MODULE if (! rtc.begin()) { Serial.println("Couldn't find RTC"); Serial.flush(); while (true); } // automatically sets the RTC to the date & time on PC this sketch was compiled rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); time.reserve(10); // to avoid fragmenting memory when using String } void loop() { DateTime now = rtc.now(); time = ""; time += now.hour(); time += ':'; time += now.minute(); time += ':'; time += now.second(); oledDisplayCenter(time); } void oledDisplayCenter(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Schnelle Schritte

  • Falls Sie ESP32 zum ersten Mal verwenden, sehen Sie wie man die Umgebung für ESP32 in der Arduino IDE einrichtet.
  • Verbinden Sie die Verkabelung wie im obigen Bild.
  • Verbinden Sie das ESP32-Board mit Ihrem PC über ein Micro-USB-Kabel.
  • Öffnen Sie die Arduino IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf die Upload-Schaltfläche, um den Code auf den ESP32 hochzuladen.
  • Sehen Sie das Ergebnis auf dem OLED-Display.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!