Inhaltsverzeichnis:
- Schritt 1: Dinge, die Sie brauchen
- Schritt 2: Verbindungen
- Schritt 3: Bibliotheken herunterladen
- Schritt 4: Was ist NTP
- Schritt 5: Kodierungsteil
- Schritt 6: Datum und Uhrzeit abrufen
Video: Internetuhr: Datum und Uhrzeit mit einem OLED mit ESP8266 NodeMCU mit NTP-Protokoll anzeigen - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Hallo Leute in diesem Instructables, wir werden eine Internetuhr bauen, die Zeit aus dem Internet bekommt, so dass dieses Projekt keine RTC zum Laufen benötigt, es wird nur eine funktionierende Internetverbindung benötigt
Und für dieses Projekt benötigen Sie einen esp8266, der über ein WLAN für den Internetzugang und ein Display zur Anzeige der Uhrzeit verfügt, und esp8266 ruft die Zeit über das NTP-Protokoll aus dem Internet ab im Web, die verwendet werden, um Computeruhren zu synchronisieren, und wir werden diese Server verwenden, um Zeit in unserem Projekt zu erhalten.
Schritt 1: Dinge, die Sie brauchen
Für dieses Projekt benötigen Sie folgende Dinge:
Esp8266/nodemcu
Oled ssd1306 0,96"
Überbrückungsdrähte
Steckbrett
USB-Kabel
Schritt 2: Verbindungen
Dieses 4-polige OLED-Display kommuniziert mit dem ESP8266-Modul über das I2C-Protokoll. Unten sind der Schaltplan und die Verbindungstabelle zum Verbinden von OLED-I2C-Pins mit NodeMCU zur Anzeige der Internetzeit.
Schritt 3: Bibliotheken herunterladen
Stellen Sie sicher, dass Sie die SD1306-Bibliotheken wie in der Abbildung gezeigt in Ihre Arduino-IDE heruntergeladen haben, und stellen Sie sicher, dass Sie auch die Adafruit GFX-Bibliothek haben, wenn nicht, installieren Sie diese beiden Bibliotheken.
Gehen Sie in Ihrer Arduino-IDE zum Bibliotheksmanager und suchen Sie nach NTP und laden Sie einfach die NTP-Clientbibliothek herunter, wie ich sie heruntergeladen habe. Weitere Hilfe finden Sie im Bild.
Schritt 4: Was ist NTP
NTP ist eines der ältesten Internetprotokolle (IP) für die Synchronisierung von Uhren zwischen Computernetzwerken. Es wurde 1981 von David L. Mills von der University of Delaware entwickelt. Dieses Protokoll kann verwendet werden, um viele Netzwerke innerhalb weniger Millisekunden auf die koordinierte Weltzeit (UTC) zu synchronisieren. UTC ist der primäre Zeitstandard, nach dem die Welt Uhr und Zeit regelt. UTC ändert sich nicht und variiert für verschiedene geografische Standorte. NTP verwendet UTC als Zeitreferenz und bietet eine genaue und synchronisierte Zeit über das Internet.
NTP arbeitet nach einem hierarchischen Client-Server-Modell. Das Top-Modell verfügt über Referenzuhren, die als „stratum0“bekannt sind, wie Atomuhren, Funkwellen, GPS, GSM, die die Zeit vom Satelliten empfangen. Die Server, die Zeit von Stratum0 erhalten, werden als „Stratum1“bezeichnet und Server, die Zeit von Stratum1 erhalten, werden als „Stratum2“bezeichnet und so weiter. Dies geht so weiter und die Genauigkeit der Zeit nimmt nach jeder Stufe ab. NTP wählt automatisch die beste aus mehreren verfügbaren Zeitquellen zum Synchronisieren aus, was es zu einem fehlertoleranten Protokoll macht. Hier in diesem Projekt erhalten wir Zeit vom NTP-Server mit ESP8266 NodeMCU und zeigen sie auf dem OLED-Display an. Dieselbe Art von Internetuhr wird mit ESP32 im vorherigen Tutorial erstellt.
Schritt 5: Kodierungsteil
Um Datum und Uhrzeit anzufordern, initialisieren Sie den Time-Client mit der Adresse des NTP-Servers. Wählen Sie für eine bessere Genauigkeit die Adresse von NTP-Servern, die sich in der Nähe Ihres geografischen Gebiets befinden. Hier verwenden wir „pool.ntp.org“, die Server aus der ganzen Welt bereitstellt. Wenn Sie Server aus Asien auswählen möchten, können Sie „asia.pool.ntp.org“verwenden. timeClient verwendet auch den UTC-Zeitversatz in Millisekunden Ihrer Zeitzone. Zum Beispiel beträgt der UTC-Offset für Indien +5:30, also konvertieren wir diesen Offset in Millisekunden, was 5*60*60+30*60 = 19800 entspricht.
Bereich. UTC-Zeitversatz (Stunden und Minuten). UTC-Zeitversatz (Sekunden)
INDIEN +5:30 1800
LONDON 0:00. 0
NEW YORK -5:00 -18000
Bitte kopieren Sie den folgenden Code und geben Sie Ihr WLAN und Ihr Passwort in den Code ein. Geben Sie den Zeitversatz in den Code ein und laden Sie ihn dann auf Ihre esp8266-Boards hoch.:
#include "NTPClient.h"#include "ESP8266WiFi.h" // bietet ESP8266-spezifische Wi-Fi-Routinen, die wir aufrufen, um eine Verbindung zum Netzwerk herzustellen #include "WiFiUdp.h" // verarbeitet das Senden und Empfangen von UDP-Paketen
#include "SPI.h" // SPI für die Verbindung von OLED mit NodeMCu
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
#define SCREEN_WIDTH 128 // OLED-Displaybreite in Pixel
#define SCREEN_HEIGHT 64 // Höhe des OLED-Displays in Pixel
#define OLED_RESET -1
Adafruit_SSD1306-Anzeige (SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
constchar *ssid = "Ihre Wifissid";
const char *password = "IhrWLAN-Pass";
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 1800, 60000);
String arr_days={"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"};
Zeichenfolge Datum_Uhrzeit; // Sie können den Zeitserverpool und den Offset angeben (in Sekunden, // kann später mit setTimeOffset() geändert werden). Zusätzlich können Sie das // Aktualisierungsintervall angeben (in Millisekunden, kann mit setUpdateInterval() geändert werden).
Void-Setup ()
{
Serial.begin(115200);
WiFi.begin(ssid, Passwort);
while (WiFi.status() != WL_CONNECTED)
{
Verzögerung (500);
Seriendruck (".");
}
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println (F ("SSD1306-Zuordnung fehlgeschlagen"));
zum(;;); // Nicht fortfahren, Endlosschleife
}
display.clearDisplay();
display.setTextSize(2); // Zeichne Text im 2X-Maßstab
display.setTextColor (WEISS);
display.setCursor(5, 2);
display.println("WILLKOMMEN BEI");
display.println (" instructables ");
display.println("Projekt");
display.display();
Verzögerung (3000);
timeClient.begin();
}
Leere Schleife ()
{
timeClient.update();
display.clearDisplay();
Serial.println (timeClient.getFormattedTime());
display.setTextSize(2); // Zeichne Text im 2X-Maßstab
display.setTextColor (BLAU);
display.setCursor(0, 2);
int hh = timeClient.getHours();
int mm = timeClient.getMinutes();
int ss = timeClient.getSeconds();
wenn(hh>12)
{
hh=hh-12;
display.print(hh);
display.print(":");
display.print (mm);
display.print(":");
display.print(ss);
display.println(" PM");
}
anders
{
display.print(hh);
display.print(":");
display.print (mm);
display.print(":");
display.print(ss);
display.println(" AM");
}
int Tag = timeClient.getDay();
display.println("'"+arr_days[day]+"'");
date_time = timeClient.getFormattedDate();
int index_date = date_time.indexOf("T");
String date = date_time.substring(0, index_date);
Serial.println (Datum);
display.println (Datum);
display.display();
// Anfangstext anzeigen }
Schritt 6: Datum und Uhrzeit abrufen
Wenn Sie alles richtig angeschlossen und den Code auch richtig hochgeladen haben, können Sie sehen, wie Ihre NTP-Uhr auf dem Oled-Display läuft, während meine im Oled-Display läuft. Bitte beziehen Sie sich auf das Bild für die Ausgabe.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Uhrzeit und Datum aus dem Internet abrufen - Tutorial: 9 Schritte
Abrufen von Uhrzeit und Datum aus dem Internet - Tutorial: In diesem Tutorial erfahren Sie, wie Sie mit M5Stack StickC und Visuino das Datum und die Uhrzeit vom NIST TIME-Server abrufen. Sehen Sie sich ein Demonstrationsvideo an
ESP8266 Netzwerkuhr ohne RTC - Nodemcu NTP-Uhr Keine RTC - INTERNET-UHR-PROJEKT: 4 Schritte
ESP8266 Netzwerkuhr ohne RTC | Nodemcu NTP-Uhr Keine RTC | INTERNET-UHRPROJEKT: Im Projekt wird ein Uhrenprojekt ohne RTC erstellt, es wird Zeit vom Internet über WLAN benötigt und auf dem st7735-Display angezeigt
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für 0 $.: 9 Schritte
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für $ 0.: In diesem anweisbaren werde ich Sie durch die Reparatur eines toten LCD-Hintergrundlicht-Wechselrichters mit den Teilen führen, die Sie haben. Sie können feststellen, ob Sie ein totes Gegenlicht haben, indem Sie zuerst andere Möglichkeiten ausschließen. Monitor auf mehreren Computern überprüfen. Stellen Sie sicher, dass
So kommunizieren Sie mit einem Alien-Artefakt oder . . .: 4 Schritte (mit Bildern)
Wie man mit einem außerirdischen Artefakt kommuniziert oder…: *** Enge Begegnungen der seltsam-minzigen Art. *** Dieses Instructable zeigt Ihnen, wie Sie eine Altoids-Version des Mutterschiffs "Close Encounters" bauen und damit interagieren. Dies kann ein wichtiges Training für den Tag sein, an dem das Bright White Be