ESP32 Tutorial 53/55 - Baue eine LCD-Internet-Uhr | SunFounder's ESP32 IoT-Lernkit

ESP32 Tutorial 53/55 - Baue eine LCD-Internet-Uhr | SunFounder's ESP32 IoT-Lernkit

In diesem Tutorial werden wir eine mit dem Internet verbundene LCD-Uhr mit dem ESP32-Mikrocontroller von SunFounder bauen. Diese Uhr synchronisiert sich automatisch mit der aktuellen Zeit über das Internet und zeigt die Zeit entweder im 12-Stunden- oder im 24-Stunden-Format sowie den Wochentag, das Datum und den Monat an. Die Verwendung des Network Time Protocol (NTP) stellt sicher, dass die Uhr ohne manuelle Anpassungen genau bleibt.

esp32-53-internet-uhr-haupt

Dieses Projekt nutzt die integrierten Wi-Fi-Funktionen des ESP32, um die aktuelle Zeit von einem NTP-Server abzurufen. Wir werden ein LCD (Liquid Crystal Display) verwenden, um die Zeit anzuzeigen, die gemäß den Benutzerpräferenzen formatiert werden kann. Für weitere Klarstellungen zu einzelnen Schritten sehen Sie sich bitte das Video bei (im Video bei 00:30) an.

Hardware erklärt

Die Hauptkomponenten für dieses Projekt sind der ESP32-Mikrocontroller, ein 20x4-LCD-Display und eine Stromquelle. Der ESP32 ist ein leistungsstarker Mikrocontroller mit integriertem WLAN und Bluetooth, was ihn für IoT-Projekte geeignet macht. Das LCD wird verwendet, um die Uhrzeit und das Datum anzuzeigen, und es kann für verschiedene Displaygrößen konfiguriert werden.

Das LCD funktioniert über das I2C-Protokoll, das die Kommunikation über zwei Leitungen (SDA und SCL) ermöglicht. Dies vereinfacht die Verdrahtung und reduziert die Anzahl der benötigten Pins auf dem ESP32. Die Verbindung zum NTP-Server erfolgt über die WLAN-Fähigkeiten des ESP32, was Echtzeit-Updates ermöglicht.

  • Stellen Sie die richtige Betriebsspannung (5 V) sicher.
  • Verwenden Sie Entkoppelkondensatoren in der Nähe der Stromanschlüsse für Stabilität.
  • Sei vorsichtig mit I2C-Verbindungen, um Buskonflikte zu vermeiden.
  • Überprüfen Sie die I2C-Adresse des LCDs (0x27 oder 0x3F).
  • Überprüfen Sie die Wi-Fi-Anmeldeinformationen für eine genaue Verbindung.
  • Behandeln Sie Anpassungen an der Sommerzeit in Ihrem Code.
  • Verwenden Sie den richtigen NTP-Server für Ihren geografischen Standort.
  • Reinigen Sie immer das LCD, bevor Sie das Display aktualisieren.

Verdrahtungsanweisungen

ESP32-11_LCD-wiring

Um den ESP32 mit dem LCD zu verbinden, beginnen Sie damit, die Stromanschlüsse anzuschließen. Verbinden Sie VCC des LCD mit dem 5V-Pin des ESP32 und den GND-Pin des LCD mit dem GND-Pin des ESP32. Für die I2C-Kommunikation verbinden Sie den SDA-Pin des LCD mit GPIO 21 des ESP32 und den SCL-Pin mit GPIO 22. Stellen Sie sicher, dass die Verbindungen sicher sind, um Kommunikationsprobleme zu vermeiden.

Beim Einrichten der Verkabelung verwenden Sie männlich-zu-weiblich Jumper-Kabel für einfache Verbindungen. Wenn Ihr LCD eine andere I2C-Adresse oder Pin-Konfiguration hat, passen Sie den Code entsprechend an. Sehen Sie sich das Video bei (im Video bei 05:30) für alternative Verkabelungsoptionen an, falls erforderlich.

Code-Beispiele & Anleitung

Der Code initialisiert das LCD und richtet die Wi-Fi-Verbindung ein, um Zeitdaten vom NTP-Server abzurufen. Wichtige Kennungen wiessidundpasswordwerden verwendet, um eine Verbindung zum Wi-Fi-Netzwerk herzustellen, währendntpServer1undntpServer2Geben Sie die zu verwendenden NTP-Server an.

const char* ssid = "dars";
const char* password = "llllllllllllll";
const char* ntpServer1 = "pool.ntp.org";
const char* ntpServer2 = "time.nist.gov";

Dieser Abschnitt zeigt die Netzwerk-Anmeldeinformationen und Serveradressen. Stellen Sie sicher, dass Sie Ihre Wi-Fi-SSID und Ihr Passwort korrekt eingeben, da jeder Fehler das ESP32 daran hindert, eine Verbindung zum Internet herzustellen.

In derprintLocalTime()Funktion, die aktuelle Zeit wird für die Anzeige formatiert. Die Strukturtmwird verwendet, um zeitliche Informationen zu speichern, währendstrftimehilft, die Zeit in eine lesbare Zeichenkette zu formatieren.

void printLocalTime() {
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)) {
    Serial.println("No time available (yet)");
    return;
  }
  char timeHour[5];
  strftime(timeHour, 5, "%H", &timeinfo);

Dieser Code überprüft, ob die lokale Zeit verfügbar ist, und ruft die Stunde ab. Die formatierte Stunde wird dann verwendet, um die aktuelle Zeit auf dem LCD anzuzeigen. Wenn die Zeit noch nicht verfügbar ist, wird eine Nachricht im Serial Monitor ausgegeben.

Schließlich, dassetup()Die Funktion initialisiert das LCD und verbindet sich mit Wi-Fi. Sie konfiguriert auch die NTP-Servereinstellungen und setzt einen Callback für die Zeitsynchronisierung.

void setup() {
  Serial.begin(115200);
  lcd.init(); // initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);

Dieser Auszug initialisiert den Serial Monitor zum Debuggen, richtet das LCD ein und versucht, sich mit dem angegebenen Wi-Fi-Netzwerk zu verbinden. Der Verbindungsstatus wird im Serial Monitor angezeigt, sodass Sie die Verbindung überprüfen können.

Demonstration / Was zu erwarten ist

Bei erfolgreicher Einrichtung zeigt das LCD die aktuelle Uhrzeit, den Wochentag und das Datum an. Sie können damit rechnen, dass sich die Uhrzeit alle 5 Sekunden aktualisiert, dank derloop()Funktion. Wenn die Verbindung zum NTP-Server fehlschlägt, wird eine Nachricht im Serial Monitor angezeigt, die darauf hinweist, dass die Zeit noch nicht verfügbar ist (im Video um 12:00).

Häufige Fallstricke sind falsches Verkabeln, falsche I2C-Adressen und falsche Wi-Fi-Anmeldeinformationen. Stellen Sie sicher, dass alle Verbindungen sicher sind und dass der NTP-Server von Ihrem Netzwerk aus erreichbar ist.

Video-Zeiten

  • 00:00 Start
  • 2:10 Einführung
  • 5:15 Verdrahtung erklärt
  • 7:32 Arduino-Code erklärt
  • 18:43 ESP32-Board und COM-Port im Arduino IDE auswählen
  • 20:27 Internet-Uhr-Demonstration

Bilder

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring-schematic
esp32-53-internet-clock-main
esp32-53-internet-clock-main
854-ESP32 Tutorial 53/55- Internet Clock
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Dateien📁

Erforderliche Datei (.h)