Sisukord:
- Samm: asjad, mida vajate
- Samm 2: Ühendused
- Samm: laadige alla raamatukogud
- Samm: mis on NTP
- Samm: kodeeriv osa
- 6. samm: kuupäeva ja kellaaja hankimine
Video: Interneti -kell: kuvage kuupäev ja kellaaeg OLED -i abil, kasutades ESP8266 NodeMCU -d koos NTP -protokolliga: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Tere poisid selles juhendis, me ehitame internetikella, mis saab Internetist aega, nii et selle projekti käivitamiseks pole vaja RTC -d, vaid ainult töötavat Interneti -ühendust
Ja selle projekti jaoks vajate esp8266 -d, millel on Interneti -ühenduse saamiseks wifi ja ekraan, mis kuvab sellel olevat aega ning esp8266 tõmbab Internetist aega NTP -protokolli abil, ntp tähistab võrgu ajaprotokolli, nii et põhimõtteliselt on olemas ntp -serverid veebis, mida kasutatakse arvutikellade sünkroonimiseks, ja me kasutame nende serverite abil oma projekti jaoks aega.
Samm: asjad, mida vajate
selle projekti jaoks vajate järgmisi asju:
Esp8266/nodemcu
Oled SSD1306 0,96"
Jumper juhtmed
Leivalaud
USB kaabel
Samm 2: Ühendused
See 4-kontaktiline OLED-ekraan suhtleb ESP8266 mooduliga, kasutades I2C protokolli, allpool on skeem ja ühenduste tabel OLED I2C tihvtide ühendamiseks NodeMCU-ga Interneti-aja kuvamiseks.
Samm: laadige alla raamatukogud
Veenduge, et laadisite oma Arduino ideesse alla SD1306 raamatukogud, nagu pildil näidatud, ja veenduge, et olete ka Adafruit GFX raamatukogu, kui mitte, siis installige need kaks raamatukogu.
Minge oma Arduino IDE -s teekide haldurisse ja otsige NTP -d ning laadige allalaadimisel lihtsalt NTP -klienditeek alla, lisateabe saamiseks vaadake pilti.
Samm: mis on NTP
NTP on üks vanimaid võrguühendusega Interneti -protokolle (IP) kellade sünkroonimiseks arvutivõrkude vahel. Selle kujundas David L. Mills Delaware'i ülikoolist 1981. aastal. Seda protokolli saab kasutada paljude võrkude sünkroonimiseks universaalse ajaga (UTC) mõne millisekundi jooksul. UTC on peamine aja standard, mille järgi maailm reguleerib kella ja aega. UTC ei muutu ja varieerub erinevates geograafilistes asukohtades. NTP kasutab ajaviitena UTC -d ning pakub Internetis täpset ja sünkroonitud aega.
NTP töötab hierarhilisel kliendi-serveri mudelil. Tippmudelil on referentskellad, mida tuntakse kui “stratum0”, näiteks aatomkellad, raadiolained, GPS, GSM, mis võtab satelliidilt aega. Serverid, mis võtavad aega stratum0 -st, nimetatakse “stratum1” -ks ja serverid, mis saavad aega stratum1 -st, “stratum2” ja nii edasi. See jätkub ja aja täpsus väheneb pärast iga etappi. NTP valib sünkroonimiseks automaatselt mitme olemasoleva ajaallika hulgast parima, mis muudab selle veakindlaks. Nii et siin selles projektis saame aega NTP -serverist, kasutades ESP8266 NodeMCU -d, ja näitame seda OLED -ekraanil. Seda tüüpi Interneti -kell on loodud eelmises õpetuses ESP32 abil.
Samm: kodeeriv osa
Kuupäeva ja kellaaja küsimiseks lähtestage ajaklient NTP -serverite aadressiga. Parema täpsuse huvides valige NTP -serverite aadress, mis asuvad teie geograafilise piirkonna lähedal. Siin kasutame “pool.ntp.org”, mis annab servereid kogu maailmast. Kui soovite valida Aasiast pärit servereid, võite kasutada aadressi „asia.pool.ntp.org”. timeClient võtab ka UTC ajanihke teie ajavööndi millisekundites. Näiteks India UTC nihe on +5: 30, nii et teisendame selle nihke millisekundites, mis on võrdne 5*60*60 +30*60 = 19800.
Piirkond. UTC aja nihe (tunnid ja minutid). UTC ajanihe (sekundit)
INDIA +5: 30 19800
LONDON 0:00. 0
NEW YORK -5: 00-18000
Palun kopeerige järgmine kood ja sisestage koodi sisse oma wifi ja parool & Sisestage koodi nihe ja seejärel laadige see oma esp8266 tahvlitele üles.:
#include "NTPClient.h" #include "ESP8266WiFi.h" // pakub ESP8266-le spetsiifilisi Wi-Fi-tavasid, mida me võrguga ühendamiseks kutsume #Include "WiFiUdp.h" // tegeleb UDP-pakettide saatmise ja vastuvõtmisega
#include "SPI.h" // SPI OLED -i liidestamiseks NodeMCu -ga
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
#define SCREEN_WIDTH 128 // OLED -ekraani laius pikslites
#define SCREEN_HEIGHT 64 // OLED -ekraani kõrgus pikslites
#define OLED_RESET -1
Adafruit_SSD1306 ekraan (SCREEN_WIDTH, SCREEN_HEIGHT ja traat, OLED_RESET);
constchar *ssid = "sinu wifissid";
const char *parool = "teie wifipass";
WiFiUDP ntpUDP;
NTPClient timeClient (ntpUDP, "pool.ntp.org", 19800, 60000);
String arr_days = {"pühapäev", "esmaspäev", "teisipäev", "kolmapäev", "neljapäev", "reede", "laupäev"};
String date_time; // Saate määrata aja serveri kogumi ja nihke (sekundites, // saab hiljem muuta setTimeOffset () abil). Lisaks saate määrata // värskendamise intervalli (millisekundites saab seda muuta, kasutades setUpdateInterval ()).
tühine seadistus ()
{
Seriaalne algus (115200);
WiFi.begin (ssid, parool);
samas (WiFi.status ()! = WL_CONNECTED)
{
viivitus (500);
Seeria.print (".");
}
if (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println (F ("SSD1306 eraldamine nurjus"));
(;;) jaoks; // Ärge jätkake, jätkake igavesti
}
display.clearDisplay ();
display.setTextSize (2); // Joonista 2X skaala tekst
display.setTextColor (VALGE);
display.setCursor (5, 2);
display.println ("TERE TULEMAST");
display.println ("juhised");
display.println ("Projekt");
display.display ();
viivitus (3000);
timeClient.begin ();
}
tühine tsükkel ()
{
timeClient.update ();
display.clearDisplay ();
Serial.println (timeClient.getFormattedTime ());
display.setTextSize (2); // Joonista 2X skaala tekst
display.setTextColor (SININE);
display.setCursor (0, 2);
int hh = timeClient.getHours ();
int mm = timeClient.getMinutes ();
int ss = timeClient.getSeconds ();
kui (hh> 12)
{
hh = hh-12;
kuva.print (hh);
display.print (":");
ekraan.print (mm);
display.print (":");
display.print (ss);
display.println ("PM");
}
muidu
{
kuva.print (hh);
display.print (":");
ekraan.print (mm);
display.print (":");
display.print (ss);
display.println ("AM");
}
int päev = 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 (kuupäev);
display.println (kuupäev);
display.display ();
// Kuva algtekst}
6. samm: kuupäeva ja kellaaja hankimine
kui ühendasite kõik õigesti ja laadisite ka koodi korralikult üles, näete oma ntp -kella teie ekraanil nagu minu oma jooksvalt. Väljundi saamiseks vaadake pilti.
Soovitan:
ESP8266 OLED - hankige aeg ja kuupäev Internetist: 8 sammu
ESP8266 OLED - hankige Internetist kellaaeg ja kuupäev: Selles õpetuses õpime, kuidas saada kuupäev ja kellaaeg NIST TIME serverist, kasutades ESP8266 OLED -i ja Visuino, vaadake näidisvideot
Interneti/pilvega juhitav koduautomaatika, kasutades Esp8266 (aREST, MQTT, IoT): 7 sammu (koos piltidega)
Interneti/pilvega juhitav koduautomaatika, kasutades Esp8266 (aREST, MQTT, IoT): KÕIK krediidid pilveteenuse eest saidile http://arest.io/ !! IoT on praegu maailma enim arutatud teema !! Pilveserverid ja -teenused, mis seda võimaldavad, on tänapäeva maailma tõmbenumber … KAUGUSPIIRMÄRGI VÄLJASTAMINE oli ja on
ESP8266 NODEMCU BLYNK IOT Õpetus - Esp8266 IOT kasutades Blunk ja Arduino IDE - LED -ide juhtimine Interneti kaudu: 6 sammu
ESP8266 NODEMCU BLYNK IOT Õpetus | Esp8266 IOT kasutades Blunk ja Arduino IDE | LED -ide juhtimine Interneti kaudu: Tere juhid, selles juhendis olevad poisid, õpime kasutama IOT -i koos meie ESP8266 või Nodemcu -ga. Me kasutame selleks rakendust blynk. Nii et me kasutame meie esp8266/nodemcu LED -ide juhtimiseks Interneti kaudu. Nii et rakendus Blynk ühendatakse meie esp8266 või Nodemcu -ga
Temperatuuri ja niiskuse Interneti -logger koos ekraaniga, kasutades ESP8266: 3 sammu
Temperatuuri ja niiskuse Interneti -logger koos ekraaniga, kasutades ESP8266: Tahtsin jagada väikest projekti, mis mulle meeldib. See on väike ja vastupidav internetiühendusega temperatuuri ja niiskuse Interneti -logger koos ekraaniga. See logib saidile emoncms.org ja valikuliselt kas kohapeal Raspberry PI -sse või teie enda emoncm -i
Kogu maailma kellaaeg: 5 sammu (koos piltidega)
Ümber maailma ajakell: kas maailma traavides või lihtsalt huvitatud teadmisest, mis kell on enne selle hilisõhtuse kõne tegemist, sobib 5 tsooni maailmakell. Kuna sain oma viimases saadetises täiendavaid TM1637 7 -kohalisi kuvasid, otsustasin kokku panna kella