Kazalo:
- 1. korak: demonstracija
- 2. korak: Montaža
- 3. korak: Montaža - miza
- 4. korak: Knjižnica Adafruit GFX
- 5. korak: Knjižnica Adafruit ST7735
- 6. korak: Knjižnica NTPClient
- 7. korak: ESP32_NTP.ino
- 8. korak: Datoteke
Video: Ne zapravljajte časa: uporabite NTP!: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Naj se vaš čas šteje! To je tema, o kateri moji naročniki pogosto razpravljajo, in iz katerega razloga? Zaradi preprostega in nepogrešljivega dejstva, da pri izdelavi zapisovalnika podatkov in za vse, kar vključuje avtomatizacijo, potrebujete pravilen čas! Obstaja več načinov za merjenje časa: ura z baterijo, RTC (ura realnega časa), med drugim. Toda tisti, ki vam ga želim pokazati danes (ki obvešča datum, dan v tednu in čas), je NTP (Network Time Protocol), ki je na spletu. V tem videoposnetku bomo na spletu pridobili podatke o datumu in času ter podatke prikazali na zaslonu.
1. korak: demonstracija
2. korak: Montaža
3. korak: Montaža - miza
4. korak: Knjižnica Adafruit GFX
V Arduino IDE pojdite na Sketch-> Include Library-> Manage Libraries …
Namestite knjižnico Adafruit GFX
5. korak: Knjižnica Adafruit ST7735
V Arduino IDE pojdite na Sketch-> Include Library-> Manage Libraries …
Namestite Adafruit ST7735
6. korak: Knjižnica NTPClient
Pojdite na https://github.com/taranais/NTPClient in prenesite knjižnico NTPClient, spremenjeno s taranaisom.
Razpakirajte in mapo postavite v knjižnice C: / Users / Documents / Arduino
7. korak: ESP32_NTP.ino
Vključuje in opredeljuje
#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 mesec; int leto; int ure; int minute; int sekunde; }; // Socket UDP que a lib utilization para recuperar dados sobre or horário WiFiUDP udp; // Objekt odziven na recuperar dados sobre horário NTPClient ntpClient (udp, // vtičnica udp "0.br.pool.ntp.org", // URL za strežnik NTP timeZone*3600, // Deslocamento do horário em relacão ao GMT 0 60000); // Intervalo entre verificações online // Nomes dos dias da semana char* dayOfWeekNames = {"nedelja", "ponedeljek", "torek", "sreda", "četrtek", "petek", "sobota"}; // Objeto responvel pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Nastaviti
void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa brez jedra 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Função que será executada "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Nomo vamos pass, // prioriteta NULL, // Não precisamos de referência para a tarefa 0); // Número do core}
NastavitevNTP
void setupNTP () {// Inicializacijo odjemalca NTP ntpClient.begin (); // posodobitev Espera pelo primeiro na spletu Serial.println ("Čakanje na prvo posodobitev"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); zamuda (500); } Serial.println (); Serial.println ("Prva posodobitev dokončana"); }
WifiConnectionTask
// Tarefa que verifica is a conexão caiu e tenta reconectarvoid wifiConnectionTask (void* param) {while (true) {// Se a WiFi não está conectada if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Zamuda za 100 klopov vTaskDelay (100); }}
ConnectWiFi
void connectWiFi () {Serial.println ("Povezovanje"); // 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 ("."); zamuda (500); } Serial.println (); Serial.print ("Povezano z"); Serial.println (WiFi. SSID ()); }
SetupDisplay
void setupDisplay () {display.initR (INITR_BLACKTAB); // Inicializa o zaslonu display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho do texto display.fillScreen (ST77XX_BLACK); // Preenche com a cor preta display.setCursor (0, 0); // Coloca o kurzorju brez prihajajočega prikaza.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}
Zanka
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Ponastavi prikaz kurzorja.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); zamuda (100); }
GetDate
Datum getDate () {// Recupera os dados de data and horário usando o 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); // Dia da semana de 0 a 6, sendo 0 o domingo date.dayOfWeek = ntpClient.getDay (); datum vračila; }
8. korak: Datoteke
Prenesite datoteke
JAZ NE
Priporočena:
Uporabite potisne gumbe na svojem Magicbitu [Magicblocks]: 5 korakov
Uporaba potisnih gumbov na vašem Magicbitu [Magicblocks]: Ta vadnica vas bo naučila uporabljati potisne gumbe na vašem Magicbitu z uporabo Magicblocks. Kot razvojno ploščo v tem projektu, ki temelji na ESP32, uporabljamo magicbit. Zato je v tem projektu mogoče uporabiti katero koli razvojno ploščo ESP32
Uporabite senzor vlažnosti tal z Magicbitom [Magicblocks]: 5 korakov
Uporaba senzorja vlažnosti tal z Magicbitom [Magicblocks]: Ta vadnica vas bo naučila uporabljati senzor vlažnosti tal s svojim Magicbitom z uporabo Magicblocks. Kot razvojno ploščo v tem projektu, ki temelji na ESP32, uporabljamo magicbit. Zato je v tem projektu mogoče uporabiti katero koli razvojno ploščo ESP32
Uporabite pripomočke nadzorne plošče z Magicbitom [Magicblocks]: 5 korakov
Uporaba pripomočkov nadzorne plošče z Magicbitom [Magicblocks]: Ta vadnica vas bo naučila uporabljati pripomočke nadzorne plošče Magicblocks s svojim Magicbitom. Kot razvojno ploščo v tem projektu, ki temelji na ESP32, uporabljamo magicbit. Zato je v tem projektu mogoče uporabiti katero koli razvojno ploščo ESP32
Internetna ura: Prikaz datuma in časa z OLED -om z uporabo ESP8266 NodeMCU s protokolom NTP: 6 korakov
Internetna ura: Prikaz datuma in časa z OLED -om z uporabo ESP8266 NodeMCU s protokolom NTP: Pozdravljeni, fantje, v tem navodilu bomo zgradili internetno uro, ki bo dobila čas iz interneta, zato ta projekt ne potrebuje nobenega RTC -ja, za izvedbo bo potreben le delujoča internetna povezava In za ta projekt potrebujete esp8266, ki bo imel
Pridobivanje časa iz interneta z uporabo ESP8266 - Projekt ure NTP z Nodemcu ESP8266: 5 korakov
Pridobivanje časa iz interneta z uporabo ESP8266 | Projekt ure NTP z Nodemcu ESP8266: V tej vadnici bomo videli, kako si vzeti čas z uporabo ESP8266/nodemcu z Arduino IDE. Pridobivanje časa je še posebej uporabno pri beleženju podatkov za časovni žig vaših odčitkov. Če ima vaš projekt ESP8266 dostop do interneta, si lahko vzamete čas z uporabo omrežja T