Inhoudsopgave:

Tijd krijgen van internet met ESP8266 - NTP-klokproject met ESP8266 Nodemcu - Ajarnpa
Tijd krijgen van internet met ESP8266 - NTP-klokproject met ESP8266 Nodemcu - Ajarnpa

Video: Tijd krijgen van internet met ESP8266 - NTP-klokproject met ESP8266 Nodemcu - Ajarnpa

Video: Tijd krijgen van internet met ESP8266 - NTP-klokproject met ESP8266 Nodemcu - Ajarnpa
Video: ESP8266 Project: How to control 4 AC bulb or load using 4 Relay with NodeMCU and D1 Mini over WiFi 2024, Juli-
Anonim
Tijd krijgen van internet met ESP8266 | NTP-klokproject met ESP8266 Nodemcu
Tijd krijgen van internet met ESP8266 | NTP-klokproject met ESP8266 Nodemcu

In deze tutorial zullen we zien hoe je tijd kunt krijgen met de ESP8266/nodemcu met Arduino IDE. Tijd krijgen is vooral handig bij het loggen van gegevens om uw metingen van een tijdstempel te voorzien. Als uw ESP8266-project toegang heeft tot internet, kunt u tijd krijgen met behulp van Network Time Protocol (NTP) - u hebt geen extra hardware nodig. U kunt uw ESP8266 verbinden met uw wifi-netwerk en het zal een klok zijn die wordt gesynchroniseerd met netwerk, dus als u de code eenmaal hebt geüpload, krijgt deze tijd van internet, zodat deze altijd de juiste tijd weergeeft.

Stap 1: Dingen die je nodig hebt

Dingen die je nodig hebt
Dingen die je nodig hebt

Voor dit project heb je heel weinig dingen nodig: ESP8266/NODEMCUA USB-kabel om het te programmeren.

Stap 2: Wat is een NTP en hoe werkt het?

Wat is een NTP en hoe werkt het?
Wat is een NTP en hoe werkt het?
Wat is een NTP en hoe werkt het?
Wat is een NTP en hoe werkt het?

Wat is een NTP: Een NTP staat voor Network Time Protocol. Het is een standaard internetprotocol (IP) voor het synchroniseren van computerklokken naar een referentie via een netwerk. Het protocol kan worden gebruikt om alle netwerkapparaten te synchroniseren met Coordinated Universal Time (UTC). NTP stelt de klokken van computers in op UTC, elke lokale tijd zone-offset of zomertijd-offset wordt toegepast door de klant. Op deze manier kunnen clients synchroniseren met servers, ongeacht locatie- en tijdzoneverschillen. Hoe het voor ons zal werken: Het clientapparaat zoals ESP8266 maakt verbinding met de server met behulp van het User Datagram Protocol (UDP) op poort 123. Een client verzendt vervolgens een verzoek pakket naar een NTP-server. In reactie op dit verzoek verzendt de NTP-server een tijdstempelpakket. Een tijdstempelpakket bevat meerdere informatie zoals UNIX-tijdstempel, nauwkeurigheid, vertraging of tijdzone. Een client kan vervolgens de huidige datum- en tijdwaarden ontleden.

Stap 3: Bibliotheek installeren op Arduino IDE

Bibliotheek installeren op Arduino IDE
Bibliotheek installeren op Arduino IDE

Ga in je Arduino IDE naar Bibliothekenbeheer en zoek naar NTP en download gewoon de NTP-clientbibliotheek zoals ik heb gedownload, raadpleeg de afbeelding voor meer hulp.

Stap 4: coderingsdeel

Codeergedeelte
Codeergedeelte
Codeergedeelte
Codeergedeelte

Kopieer de volgende code en plaats uw netwerkreferenties in uw code, dan moet u de offsettijd voor mij instellen, het is 19800. Omdat mijn tijdzone utc+5:30 is, dus UTC +5:30=5.5*60*60=19800UTC+1= 1*60*60=3600 BEREKEN uw tijdzone en bewerk deze en upload vervolgens de code.#include "NTPClient.h"#include "ESP8266WiFi.h"#include "WiFiUdp.h"const char *ssid = "***** ******";const char *password = "***********";const long utcOffsetInSeconds = 19800;char daysOfTheWeek[7][12] = {"zondag", "maandag", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};// Definieer NTP Client om timeWiFiUDP ntpUDP;NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);void setup (){ Serieel.begin(115200); WiFi.begin(ssid, wachtwoord); while (WiFi.status() != WL_CONNECTED) {vertraging (500); Serieafdruk ("."); } timeClient.begin();}void loop() { timeClient.update(); Serial.print(daysOfTheWeek[timeClient.getDay()]); Serieel.print(", "); Serial.print(timeClient.getHours()); Serial.print(":"); Serial.print(timeClient.getMinutes()); Serial.print(":"); Serial.println(timeClient.getSeconds()); //Serial.println(timeClient.getFormattedTime()); vertraging (1000);}

Stap 5: TIJD krijgen

TIJD krijgen
TIJD krijgen

Na het uploaden van de code naar Esp8266 kun je de seriële monitor openen en als alles goed is, kun je de tijd op de seriële monitor krijgen, aangezien ik de tijd in mijn seriële monitor kan krijgen. Dus met dit project kun je elke display en maak er een goede netwerkklok van. Dus veel plezier met het maken van je netwerkklok.

Aanbevolen: