Satura rādītājs:
- 1. solis: demonstrācija
- 2. solis: montāža
- 3. solis: salikšana - tabula
- 4. darbība. Adafruit GFX bibliotēka
- 5. darbība: bibliotēka Adafruit ST7735
- 6. darbība: NTPClient bibliotēka
- 7. darbība: ESP32_NTP.ino
- 8. darbība: faili
Video: Netērējiet laiku: izmantojiet NTP !: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Novērtējiet savu laiku! Šī ir mana abonentu bieži apspriesta tēma, un kāda iemesla dēļ? Sakarā ar vienkāršo un neaizstājamo faktu, ka, veidojot datu reģistratoru, un visam, kas saistīts ar automatizāciju, jums ir nepieciešams pareizais laiks! Ir arī vairāki laika mērīšanas veidi: pulkstenis ar akumulatoru, RTC (reālā laika pulkstenis). Bet tas, ko es vēlos jums parādīt šodien (kas informē par datumu, nedēļas dienu un laiku), ir NTP (tīkla laika protokols), kas ir tiešsaistē. Šajā videoklipā mēs izgūsim informāciju par datumu un laiku tiešsaistē un parādīsim informāciju displejā.
1. solis: demonstrācija
2. solis: montāža
3. solis: salikšana - tabula
4. darbība. Adafruit GFX bibliotēka
Arduino IDE dodieties uz Skice-> Iekļaut bibliotēku-> Pārvaldīt bibliotēkas …
Instalējiet Adafruit GFX bibliotēku
5. darbība: bibliotēka Adafruit ST7735
Arduino IDE dodieties uz Skice-> Iekļaut bibliotēku-> Pārvaldīt bibliotēkas …
Instalējiet Adafruit ST7735
6. darbība: NTPClient bibliotēka
Dodieties uz vietni https://github.com/taranais/NTPClient un lejupielādējiet taranais modificēto NTPClient bibliotēku.
Izsaiņojiet un ievietojiet mapi bibliotēkās C: / Users / Documents / Arduino
7. darbība: ESP32_NTP.ino
Ietver un definē
#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; // Struktūra com os dados do dia e hora structure Datums {int dayOfWeek; int dienā; int mēnesī; int gads; int stundas; int minūtes; int sekundes; }; // Socket UDP que a lib utiliza para recuperar dados sobre o horário WiFiUDP udp; // Objektīva atbilde uz rekuperatoru, piemēram, horrorio NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL do servwer 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 = {"svētdiena", "pirmdiena", "otrdiena", "trešdiena", "ceturtdiena", "piektdiena", "sestdiena"}; // Objeto atbildes līmeņa pelo displejs Adafruit_ST7735 displejs = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Uzstādīt
void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Função que será executab "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Não varo pass, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número do core}
SetupNTP
void setupNTP () {// Inicializa vai klienta NTP ntpClient.begin (); // Espera pelo primeiro update online Serial.println ("Gaida pirmo atjauninājumu"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); kavēšanās (500); } Sērijas.println (); Serial.println ("Pirmais atjauninājums pabeigts"); }
WifiConnectionTask
// Tarefa que verifica se 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 (); } // Kavēšanās ar 100 ērcēm vTaskDelay (100); }}
Savienojiet Wi -Fi
void connectWiFi () {Serial.println ("Savienojums"); // 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 ("."); kavēšanās (500); } Sērijas.println (); Serial.print ("Savienots ar"); Serial.println (WiFi. SSID ()); }
SetupDisplay
void setupDisplay () {display.initR (INITR_BLACKTAB); // Inicializa o display display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho do texto display.fillScreen (ST77XX_BLACK); // Preenche com a cor preta display.setCursor (0, 0); // Coloca vai kursors no começo display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}
Cilpa
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Reset vai kursora displejs.setCursor (0, 0); // Exibe os dados nav displeja displeja.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); kavēšanās (100); }
GetDate
Datums getDate () {// Atgūstiet datus, izmantojot datus un lietojiet klienta NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para a structure Datuma datums; 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 (); atgriešanās datums; }
8. darbība: faili
Lejupielādējiet failus
ES NĒ
Ieteicams:
Kā trīskāršot AAA lukturīšu akumulatora darbības laiku: 3 soļi
Kā trīskāršot AAA zibspuldzes akumulatora darbības laiku: Ja izmantojat 3 W LED zibspuldzes, kuras darbina AAA baterijas, paredzams, ka tās ilgs aptuveni 30 minūtes. Ir veids, kā trīskāršot darbības laiku, izmantojot AA baterijas, ko es jums parādīšu, pievienojot tam AA bateriju turētāju
RGB pulkstenis, lai bērniem iemācītu laiku: 4 soļi
RGB pulkstenis, lai mācītu bērniem laiku: Vakar vakarā es nāca klajā ar ideju, kā palīdzēt savam 5 gadu vecumam iegūt laika izjūtu. Ir skaidrs, ka bērni orientējas uz ikdienas notikumiem, lai gūtu priekšstatu par to, kas notiks tālāk. Bet iepriekšējie notikumi parasti ir mazliet juceklis un gandrīz nekad nav kārtībā. Kopš stāsta
DIY Kā parādīt laiku M5StickC ESP32, izmantojot Visuino - viegli izdarāms: 9 soļi
DIY Kā parādīt laiku M5StickC ESP32, izmantojot Visuino - viegli izdarāms: Šajā apmācībā mēs iemācīsimies programmēt ESP32 M5Stack StickC ar Arduino IDE un Visuino, lai parādītu laiku LCD
ESP8266 OLED - iegūstiet laiku un datumu no interneta: 8 soļi
ESP8266 OLED - iegūstiet laiku un datumu no interneta: šajā apmācībā mēs uzzināsim, kā iegūt datumu un laiku no NIST TIME servera, izmantojot ESP8266 OLED un Visuino. Noskatieties demonstrācijas video
Interneta pulkstenis: parādiet datumu un laiku ar OLED, izmantojot ESP8266 NodeMCU ar NTP protokolu: 6 soļi
Interneta pulkstenis: parādīt datumu un laiku ar OLED, izmantojot ESP8266 NodeMCU ar NTP protokolu: Sveiki, puiši, šajā instrukcijā mēs izveidosim interneta pulksteni, kas iegūs laiku no interneta, tāpēc šim projektam nebūs nepieciešams RTC, lai to palaistu. darbojas interneta savienojums Un šim projektam jums ir nepieciešams esp8266, kuram būs