Innholdsfortegnelse:
- Trinn 1: Ting du trenger
- Trinn 2: Tilkoblinger
- Trinn 3: Last ned biblioteker
- Trinn 4: Hva er NTP
- Trinn 5: Kodingsdel
- Trinn 6: Få dato og klokkeslett
Video: Internett -klokke: Vis dato og klokkeslett med en OLED ved bruk av ESP8266 NodeMCU med NTP -protokoll: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Hei folkens i denne instruksjonene, vi vil bygge en internettklokke som vil få tid fra internett, så dette prosjektet trenger ikke noen RTC for å kjøre, det trenger bare en fungerende internettforbindelse
Og for dette prosjektet trenger du en esp8266 som vil ha wifi for å få internettilgang og en skjerm for å vise tiden på den og esp8266 vil hente tid fra internett ved hjelp av NTP -protokoll, ntp står for nettverkstidsprotokoll, så i utgangspunktet er det ntp -servere på nettet som brukes til å synkronisere dataklokker, og vi vil bruke disse serverne for å få tid i prosjektet vårt.
Trinn 1: Ting du trenger
for dette prosjektet trenger du følgende ting:
Esp8266/nodemcu
Oled ssd1306 0.96"
Jumper ledninger
Brødbrett
USB-kabel
Trinn 2: Tilkoblinger
Denne 4-pinners OLED-skjermen kommuniserer med ESP8266-modulen ved hjelp av I2C-protokollen, nedenfor er kretsdiagrammet og tilkoblingstabellen for å koble OLED I2C-pinner med NodeMCU for å vise internettid.
Trinn 3: Last ned biblioteker
Sørg for at du lastet ned SD1306 -biblioteker i Arduino -ideen din som vist på bildet, og sørg for at du også Adafruit GFX -biblioteket, hvis ikke installer disse to bibliotekene.
I din Arduino IDE går du til Libraries manager og søker etter NTP og laster bare ned NTP -klientbiblioteket mens jeg lastet ned, se bildet for ytterligere hjelp.
Trinn 4: Hva er NTP
NTP er en av de eldste nettverksprotokollene (IP) for å synkronisere klokker mellom datanettverk. Den ble designet av David L. Mills ved University of Delaware i 1981. Denne protokollen kan brukes til å synkronisere mange nettverk til Coordinated Universal Time (UTC) i løpet av få millisekunder. UTC er den primære tidsstandarden som verden regulerer klokke og tid med. UTC endres ikke og varierer for forskjellige geografiske steder. NTP bruker UTC som tidsreferanse og gir nøyaktig og synkronisert tid over Internett.
NTP fungerer på en hierarkisk klient-server-modell. Toppmodellen har referanseklokker kjent som “stratum0” som atomklokker, radiobølger, GPS, GSM som mottar tid fra satellitten. Serverne som mottar tid fra stratum0 kalles "stratum1" og servere som mottar tid fra stratum1 kalles "stratum2" og så videre. Dette fortsetter og tidenes nøyaktighet avtar etter hvert trinn. NTP velger automatisk den beste av flere tilgjengelige tidskilder som skal synkroniseres, noe som gjør den til en feiltolerant protokoll. Så her i dette prosjektet får vi tid fra NTP -serveren ved hjelp av ESP8266 NodeMCU og viser den på OLED -skjerm. Den samme typen Internett -klokke er bygget ved bruk av ESP32 i forrige opplæring.
Trinn 5: Kodingsdel
For å be om dato og klokkeslett, initialiser tidsklienten med adressen til NTP -servere. For bedre nøyaktighet, velg adressen til NTP -servere som er i nærheten av ditt geografiske område. Her bruker vi “pool.ntp.org” som gir servere fra hele verden. Hvis du ønsker å velge servere fra Asia, kan du bruke "asia.pool.ntp.org". timeClient tar også UTC -tidsforskyvning i millisekunder av tidssonen din. For eksempel er UTC -offset for India +5: 30, så vi konverterer denne forskyvningen i millisekunder som er lik 5*60*60 +30*60 = 19800.
Område. UTC -tidsforskyvning (timer og minutter). UTC -tidsforskyvning (sekunder)
INDIA +5: 30 19800
LONDON 0:00. 0
NEW YORK -5: 00 -18000
Vennligst kopier følgende kode og skriv inn wifi og passord i koden & Skriv inn tidsforskyvningen i koden, og last den deretter opp til esp8266 -kortene dine.:
#include "NTPClient.h" #include "ESP8266WiFi.h" // gir ESP8266 spesifikke Wi-Fi-rutiner vi kaller for å koble til nettverk #include "WiFiUdp.h" // håndterer sending og mottak av UDP-pakker
#include "SPI.h" // SPI for grensesnitt mellom OLED og NodeMCu
#inkludere "Adafruit_GFX.h"
#inkludere "Adafruit_SSD1306.h"
#define SCREEN_WIDTH 128 // OLED -skjermbredde, i piksler
#define SCREEN_HEIGHT 64 // OLED -skjermhøyde, i piksler
#define OLED_RESET -1
Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);
constchar *ssid = "yourwifissid";
const char *password = "yourwifipass";
WiFiUDP ntpUDP;
NTPClient timeClient (ntpUDP, "pool.ntp.org", 19800, 60000);
String arr_days = {"Søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"};
String date_time; // Du kan angi tidsserverutvalget og forskyvningen (i sekunder, kan // endres senere med setTimeOffset ()). Du kan også angi // oppdateringsintervallet (i millisekunder, kan endres ved hjelp av setUpdateInterval ()).
ugyldig oppsett ()
{
Serial.begin (115200);
WiFi.begin (ssid, passord);
mens (WiFi.status ()! = WL_CONNECTED)
{
forsinkelse (500);
Serial.print (".");
}
hvis (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println (F ("tildeling av SSD1306 mislyktes"));
til(;;); // Ikke fortsett, sløyfe for alltid
}
display.clearDisplay ();
display.setTextSize (2); // Tegn 2X-skala tekst
display.setTextColor (HVIT);
display.setCursor (5, 2);
display.println ("VELKOMMEN TIL");
display.println ("instrukser");
display.println ("Prosjekt");
display.display ();
forsinkelse (3000);
timeClient.begin ();
}
hulrom ()
{
timeClient.update ();
display.clearDisplay ();
Serial.println (timeClient.getFormattedTime ());
display.setTextSize (2); // Tegn 2X-skala tekst
display.setTextColor (BLÅ);
display.setCursor (0, 2);
int hh = timeClient.getHours ();
int mm = timeClient.getMinutes ();
int ss = timeClient.getSeconds ();
hvis (hh> 12)
{
hh = hh-12;
display.print (hh);
display.print (":");
display.print (mm);
display.print (":");
display.print (ss);
display.println ("PM");
}
ellers
{
display.print (hh);
display.print (":");
display.print (mm);
display.print (":");
display.print (ss);
display.println ("AM");
}
int day = timeClient.getDay ();
display.println ("'"+arr_dager [dag]+"'");
date_time = timeClient.getFormattedDate ();
int index_date = date_time.indexOf ("T");
String date = date_time.substring (0, index_date);
Serial.println (dato);
display.println (dato);
display.display ();
// Vis første tekst}
Trinn 6: Få dato og klokkeslett
hvis du koblet alt skikkelig og lastet opp koden ordentlig også, så vil du kunne se ntp -klokken din kjøre på oled -skjermen som min i å kjøre i oled -skjermen. Se bildet for utdata.
Anbefalt:
ESP8266 OLED - Få tid og dato fra Internett: 8 trinn
ESP8266 OLED - Få tid og dato fra internett: I denne opplæringen lærer vi hvordan du får dato og klokkeslett fra NIST TIME -serveren ved hjelp av ESP8266 OLED og Visuino, Se en demonstrasjonsvideo
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: 4 trinn
Kontroll ledet over hele verden ved bruk av internett ved hjelp av Arduino: Hei, jeg er Rithik. Vi kommer til å lage en Internett -kontrollert LED ved hjelp av telefonen din. Vi kommer til å bruke programvare som Arduino IDE og Blynk. Det er enkelt, og hvis du lyktes kan du kontrollere så mange elektroniske komponenter du vilTing We Need: Hardware:
Få tid fra internett ved hjelp av ESP8266 - NTP -klokkeprosjekt med ESP8266 Nodemcu: 5 trinn
Få tid fra internett ved hjelp av ESP8266 | NTP Clock Project With ESP8266 Nodemcu: I denne opplæringen ser vi hvordan du får tid til å bruke ESP8266/nodemcu med Arduino IDE. Å få tid er spesielt nyttig i datalogging for å stemple avlesningene dine. Hvis ESP8266 -prosjektet ditt har tilgang til Internett, kan du få tid ved å bruke Network T
En søt dato, klokkeslett og temperaturvisningsenhet: 3 trinn
En søt enhet for dato, klokkeslett og temperatur: Hei venner, I denne instruksen skal jeg forklare fremgangsmåten for å lage en dato, klokkeslett og nåværende temperaturvisningsenhet ved hjelp av Arduino pro mini, en RTC og åttesifret syv segment display i en veldig kompakt enhet, som er en nyttig enhet
Skyv dato og klokkeslett til Blynk -appen ved hjelp av Wemos D1 Mini Pro: 10 trinn
Skyv dato og klokkeslett til Blynk -appen ved hjelp av Wemos D1 Mini Pro: Vi bruker Wemos D1 Mini Pro til å skyve tiden & dato for Blynk -appen. Du trenger ikke koble noen komponenter til Wemos D1 Mini Pro for denne aktiviteten