Taula de continguts:
- Pas 1: demostració
- Pas 2: Muntatge
- Pas 3: Muntatge - Taula
- Pas 4: Biblioteca Adafruit GFX
- Pas 5: Biblioteca Adafruit ST7735
- Pas 6: Biblioteca NTPClient
- Pas 7: ESP32_NTP.ino
- Pas 8: fitxers
Vídeo: No perdeu el temps: utilitzeu NTP !: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Feu que el vostre temps compti! Aquest és un tema que es discuteix sovint entre els meus subscriptors i per quin motiu? A causa del fet senzill i indispensable que quan feu un registre de dades i per a tot allò que impliqui automatització, necessiteu el temps correcte. I hi ha diverses maneres de mesurar el temps: rellotge amb bateria, RTC (Real Time Clock), entre d’altres. Però el que us vull mostrar avui (que informa de data, dia de la setmana i hora) és el NTP (Network Time Protocol), que està en línia. En aquest vídeo, recuperarem la informació de data i hora en línia i mostrarem la informació a la pantalla.
Pas 1: demostració
Pas 2: Muntatge
Pas 3: Muntatge - Taula
Pas 4: Biblioteca Adafruit GFX
A l'IDE Arduino, aneu a Sketch-> Inclou biblioteca-> Gestiona biblioteques …
Instal·leu la biblioteca Adafruit GFX
Pas 5: Biblioteca Adafruit ST7735
A l'IDE Arduino, aneu a Sketch-> Inclou biblioteca-> Gestiona biblioteques …
Instal·leu Adafruit ST7735
Pas 6: Biblioteca NTPClient
Aneu a https://github.com/taranais/NTPClient i descarregueu la biblioteca NTPClient modificada per taranais.
Descomprimiu i poseu la carpeta a les biblioteques C: / Users / Documents / Arduino
Pas 7: ESP32_NTP.ino
Inclou i defineix
#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 dia; int mes; int any; hores int; minuts int; segons segons; }; // Socket UDP que a lib utiliza para recuperar dados sobre o horario WiFiUDP udp; // Objeto responsável por recuperar dados sobre horario NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL del servei NTP timeZone * 3600, // Deslocamento do horário em relacão ao GMT 0 60000); // Intervalo entre verificações online // Nomes dos dias da week char * dayOfWeekNames = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; // Objeto responsável pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Configuració
configuració nul·la () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Funció que serà executada "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memòria disponível (em WORDs) NULL, // Não vamos passar nenhum parametro 2, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número do core}
Configuració de NTP
void setupNTP () {// Inicialització del client NTP ntpClient.begin (); // Espera pelo primer update online Serial.println ("Esperant la primera actualització"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); retard (500); } Serial.println (); Serial.println ("Primera actualització completa"); }
WifiConnectionTask
// Tarefa que verification is a connection caiu e tenta reconectarvoid wifiConnectionTask (void * param) {while (true) {// Se a WiFi no està conectado if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Retard de 100 paparres vTaskDelay (100); }}
ConnectWiFi
void connectWiFi () {Serial.println ("Connexió"); // Troque pelo nome e senha da sua rede WiFi WiFi.begin ("SSID", "12345678"); // Espera enquanto no estiver connectado while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); retard (500); } Serial.println (); Serial.print ("Connectat a"); Serial.println (WiFi. SSID ()); }
Configuració de visualització
void setupDisplay () {display.initR (INITR_BLACKTAB); // Inicialitzar o mostrar display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho do text display.fillScreen (ST77XX_BLACK); // Preenche com a cor preta display.setCursor (0, 0); // Coloca o cursor no começo display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}
Bucle
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Restableix el cursor display.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); retard (100); }
GetDate
Data getDate () {// Recupera els dades de dades i horari usant el client NTP char * strDate = (char *) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string per 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 setmana de 0 a 6, sendo 0 o domingo date.dayOfWeek = ntpClient.getDay (); data de retorn; }
Pas 8: fitxers
Descarregueu els fitxers
INO
Recomanat:
Feu un bricolatge Sonoff Smart Switch Utilitzeu l'aplicació Android: 11 passos
Feu un bricolatge Sonoff Smart Switch Utilitzeu l'aplicació Android: què és Sonoff? Sonoff és una línia de dispositius de commutació intel·ligent per a Smart Home desenvolupada per ITEAD. Un dels dispositius més flexibles i econòmics d’aquesta línia són Sonoff Basic i Sonoff mini. Aquests són commutadors habilitats per a Wi-Fi basats en un gran xip, ESP8266 / E
Utilitzeu els botons de pressió al Magicbit [Magicblocks]: 5 passos
Utilitzeu els botons push al Magicbit [Magicblocks]: aquest tutorial us ensenyarà a utilitzar els botons push al Magicbit mitjançant Magicblocks. Estem utilitzant Magicbit com a tauler de desenvolupament d’aquest projecte basat en ESP32. Per tant, qualsevol placa de desenvolupament ESP32 es pot utilitzar en aquest projecte
Obtenir temps des d'Internet mitjançant ESP8266 - Projecte de rellotge NTP amb ESP8266 Nodemcu: 5 passos
Obtenir temps des d'Internet mitjançant ESP8266 | Projecte de rellotge NTP amb ESP8266 Nodemcu: en aquest tutorial veurem com obtenir temps utilitzant l’ESP8266 / nodemcu amb Arduino IDE. Obtenir temps és especialment útil en el registre de dades per marcar temporalment les vostres lectures. Si el vostre projecte ESP8266 té accés a Internet, podeu obtenir temps utilitzant Network T
Com publicar dades ESP32 amb marca de temps NTP al núvol IoT: 5 passos
Com publicar dades ESP32 amb marca de temps NTP al núvol IoT: en moltes aplicacions, els usuaris han d’enviar les seves dades juntament amb la marca de temps local dels valors que s’enviaran a la càrrega útil al núvol IoT AskSensors. El format de marca de temps és UNIX Epoch time: el nombre de mil·lisegons que han transcorregut des del gener
Visualització de temps i temps Arduino 3 en 1: 11 passos
Pantalla de temps i temps Arduino 3-en-1: m'agraden els microcontroladors PIC i m'agrada programar en llenguatge assemblador. De fet, durant els darrers dos anys, he publicat al meu lloc web uns 40 projectes basats en aquesta combinació. Fa poc, estava demanant algunes peces a una de les meves versions preferides dels EUA