Sadržaj:
- Korak 1: Demonstracija
- Korak 2: Montaža
- Korak 3: Montaža - Tabela
- Korak 4: Adafruit GFX biblioteka
- Korak 5: Biblioteka Adafruit ST7735
- Korak 6: NTPClient biblioteka
- Korak 7: ESP32_NTP.ino
- Korak 8: Datoteke
Video: Ne gubite vrijeme: Koristite NTP!: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Neka se vaše vrijeme računa! Ovo je tema o kojoj se moji pretplatnici često raspravljaju, i iz kojeg razloga? Zbog jednostavne i neophodne činjenice da kada napravite datalogger, a za sve što uključuje automatizaciju, trebate točno vrijeme! Postoji nekoliko načina za mjerenje vremena: sat s baterijom, RTC (sat u stvarnom vremenu), između ostalih. Ali ono što vam želim pokazati danas (koje informira datum, dan u sedmici i vrijeme) je NTP (mrežni protokol vremena), koji je na mreži. U ovom videu ćemo na internetu dohvatiti podatke o datumu i vremenu i prikazati podatke na ekranu.
Korak 1: Demonstracija
Korak 2: Montaža
Korak 3: Montaža - Tabela
Korak 4: Adafruit GFX biblioteka
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte Adafruit GFX biblioteku
Korak 5: Biblioteka Adafruit ST7735
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte Adafruit ST7735
Korak 6: NTPClient biblioteka
Idite na https://github.com/taranais/NTPClient i preuzmite biblioteku NTPClient modificiranu taranaisom.
Raspakirajte i postavite mapu u C: / Users / Documents / Arduino / libraries
Korak 7: ESP32_NTP.ino
Uključuje i definira
#include #include // Biblioteca NTPClient modificada #include // Socket UDP #include // Display #include // Display #include // Pinos do display #define DISPLAY_DC 12 // A0 #define DISPLAY_CS 13 // CS #define DISPLAY_MOSI 14 // SDA #define DISPLAY_CLK 27 // SCK #define DISPLAY_RST 0 // Fuso Horário, no caso horário de verão de Brasília int timeZone = -2; // Struct com os dados do dia e hora struct Date {int dayOfWeek; int dan; int mjesec; int godina; int sati; int minute; int sekundi; }; // Utičnica UDP -a koja se može koristiti za oporavak računara o WiFiUDP -u udp; // Objektivni odgovor na oporavak u skladu s NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL na poslužitelju NTP timeZone*3600, // Deslocamento do horário em relacão ao GMT 0 60000); // Intervalo provjere provjere na mreži // Nomes dos dias da semana char* dayOfWeekNames = {"Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"}; // Objeto responvel pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Postaviti
void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Umjetna nova tarefa bez jezgre 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Função que será executada "wifiConnectionTask", // Ime da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Nomo pass, // prioritet NULL, // Não precisamos de referência para a tarefa 0); // Número do core}
SetupNTP
void setupNTP () {// Inicijalizacija klijentskog NTP ntpClient.begin (); // Espera pelo primeiro ažuriranje na mreži Serial.println ("Čekanje na prvo ažuriranje"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); kašnjenje (500); } Serial.println (); Serial.println ("Prvo ažuriranje završeno"); }
WifiConnectionTask
// Tarefa que verifica is a conexão caiu e tenta reconectarvoid wifiConnectionTask (void* param) {while (true) {// Vidite WiFi nije potrebno povezati ako (WiFi.status ()! = WL_CONNECTED) {// Manda konektor connectWiFi (); } // Odgoda od 100 tikova vTaskDelay (100); }}
ConnectWiFi
void connectWiFi () {Serial.println ("Povezivanje"); // Troque pelo nome e senha da sua rede WiFi WiFi.begin ("SSID", "12345678"); // Espera enquanto não estiver conectado while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kašnjenje (500); } Serial.println (); Serial.print ("Povezano sa"); Serial.println (WiFi. SSID ()); }
SetupDisplay
void setupDisplay () {display.initR (INITR_BLACKTAB); // Pokretanje prikaza display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho do texto display.fillScreen (ST77XX_BLACK); // Preenche com a cor preta display.setCursor (0, 0); // Boja ili kursor bez dolaznog prikaza.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}
Petlja
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Resetiranje prikaza kursora.setCursor (0, 0); // Exibe os dados no display display.printf (" %s / n / n %s / n / n %02d/ %02d/ %d / n / n %02d: %02d: %02d", WiFi. SSID ().c_str (), dayOfWeekNames [date.dayOfWeek], date.day, date.month, date.year, date.hours, date.minutes, date.seconds); kašnjenje (100); }
GetDate
Datum getDate () {// Rekuperacija podataka i podataka o upotrebi klijentskog NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para a struct Date date; sscanf (strDate, "%d-%d-%dT%d:%d:%dZ", & date.year, & date.month, & date.day, & date.hours, & date.minutes, & date.seconds); // Dijeli se od 0 do 6, šalje 0 ili domingo date.dayOfWeek = ntpClient.getDay (); datum povratka; }
Korak 8: Datoteke
Preuzmite datoteke
JA NE
Preporučuje se:
Uradi sam Kako prikazati vrijeme na M5StickC ESP32 pomoću Visuina - jednostavno za napraviti: 9 koraka
DIY Kako prikazati vrijeme na M5StickC ESP32 pomoću Visuina - jednostavno za napraviti: U ovom vodiču naučit ćemo kako programirati ESP32 M5Stack StickC s Arduino IDE -om i Visuinom za prikaz vremena na LCD -u
Arduino vrijeme prikaza na TM1637 LED ekranu pomoću RTC DS1307: 8 koraka
Arduino vrijeme prikaza na TM1637 LED zaslonu pomoću RTC DS1307: U ovom ćemo vodiču naučiti kako prikazati vrijeme pomoću modula RTC DS1307 i LED zaslona TM1637 i Visuina. Pogledajte video
ESP8266 OLED - Dobijte vrijeme i datum s interneta: 8 koraka
ESP8266 OLED - Dobijte vrijeme i datum s Interneta: U ovom ćemo vodiču naučiti kako dobiti datum i vrijeme s NIST TIME servera pomoću ESP8266 OLED i Visuina, Pogledajte demonstracijski video
Primite poruku e -pošte s obavijestima kada kanal na ThingSpeaku neko vrijeme nije bio ažuriran: 16 koraka
Primite poruku e -pošte s obavijestima kada kanal na ThingSpeaku neko vrijeme nije bio ažuriran: Priča u pozadini Imam šest automatiziranih staklenika koji su rašireni po Dublinu, Irska. Korištenjem prilagođene aplikacije za mobilne telefone mogu daljinski nadzirati i komunicirati s automatiziranim funkcijama u svakom stakleniku. Mogu ručno otvoriti / zatvoriti dobitak
Internet sat: Prikažite datum i vrijeme sa OLED -om koristeći ESP8266 NodeMCU sa NTP protokolom: 6 koraka
Internet sat: Prikažite datum i vrijeme sa OLED -om koristeći ESP8266 NodeMCU sa NTP protokolom: Zdravo momci u ovim uputstvima napravit ćemo internetski sat koji će dobijati vrijeme s interneta tako da ovom projektu neće trebati nikakav RTC za pokretanje, samo će mu trebati radna internetska veza A za ovaj projekt potreban vam je esp8266 koji će imati