Tabla de contenido:
- Paso 1: demostración
- Paso 2: Montaje
- Paso 3: Montaje - Mesa
- Paso 4: Biblioteca Adafruit GFX
- Paso 5: Biblioteca Adafruit ST7735
- Paso 6: Biblioteca NTPClient
- Paso 7: ESP32_NTP.ino
- Paso 8: archivos
Video: No pierda su tiempo: ¡use NTP !: 8 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
¡Haz que tu tiempo cuente! Este es un tema que se discute con frecuencia entre mis suscriptores, ¿y por qué motivo? ¡Debido al hecho simple e indispensable de que cuando se hace un registrador de datos, y para todo lo relacionado con la automatización, se necesita la hora correcta! Y hay varias formas de medir el tiempo: reloj con batería, RTC (Real Time Clock), entre otras. Pero el que quiero mostrarles hoy (que informa la fecha, el día de la semana y la hora) es el NTP (Network Time Protocol), que está en línea. En este video, recuperaremos la información de fecha y hora en línea y mostraremos la información en la pantalla.
Paso 1: demostración
Paso 2: Montaje
Paso 3: Montaje - Mesa
Paso 4: Biblioteca Adafruit GFX
En el IDE de Arduino, vaya a Sketch-> Incluir biblioteca-> Administrar bibliotecas …
Instalar la biblioteca Adafruit GFX
Paso 5: Biblioteca Adafruit ST7735
En el IDE de Arduino, vaya a Sketch-> Incluir biblioteca-> Administrar bibliotecas …
Instalar Adafruit ST7735
Paso 6: Biblioteca NTPClient
Vaya a https://github.com/taranais/NTPClient y descargue la biblioteca NTPClient modificada por taranais.
Descomprima y coloque la carpeta en C: / Users / Documents / Arduino / libraries
Paso 7: ESP32_NTP.ino
Incluye y define
#include #include // Biblioteca NTPClient modificada #include // Socket UDP #include // Display #include // Display #include // Los pinos muestran #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 año; int horas; int minutos; int segundos; }; // Socket UDP que una lib utiliza para recuperar datos sobre el horário WiFiUDP udp; // Objeto responsável para recuperar datos sobre horário NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL del servidor 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 = {"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"}; // Objeto responsável pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Configuración
configuración vacía () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Função que será ejecutada "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // No vamos a passar nenhum parametro 2, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número del núcleo}
ConfiguraciónNTP
void setupNTP () {// Inicializa o cliente NTP ntpClient.begin (); // Espera pelo primeiro update online Serial.println ("Espera primera actualización"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); retraso (500); } Serial.println (); Serial.println ("Primera actualización completa"); }
WifiConnectionTask
// Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask (void * param) {while (true) {// Se a WiFi não está conectado if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Retraso de 100 tics vTaskDelay (100); }}
ConectarWiFi
void connectWiFi () {Serial.println ("Conectando"); // 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 ("."); retraso (500); } Serial.println (); Serial.print ("Conectado a"); Serial.println (WiFi. SSID ()); }
Configuración Pantalla
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 o cursor no começo display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automáticamente}
Círculo
void loop () {// Recupera los datos sobre los datos y el horário Date date = getDate (); // Restaure o 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); retraso (100); }
Obtener la fecha
Date getDate () {// Recupera los datos de los datos y el horário usando el cliente NTP char * strDate = (char *) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para una estructura 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 (); Fecha de regreso; }
Paso 8: archivos
Descarga los archivos
INO
Recomendado:
Haga un interruptor inteligente Sonoff DIY Use la aplicación de Android: 11 pasos
Haga un interruptor inteligente Sonoff DIY Use la aplicación de Android: ¿Qué es Sonoff? Sonoff es una línea de dispositivos de interruptores inteligentes para Smart Home desarrollada por ITEAD. Uno de los dispositivos más flexibles y económicos de esa línea son Sonoff Basic y Sonoff mini. Estos son conmutadores habilitados para Wi-Fi basados en un gran chip, ESP8266 / E
Use los botones de comando en su Magicbit [Magicblocks]: 5 pasos
Use Push Buttons en su Magicbit [Magicblocks]: Este tutorial le enseñará a usar los Push Buttons en su Magicbit usando Magicblocks. Estamos utilizando magicbit como placa de desarrollo en este proyecto que se basa en ESP32. Por lo tanto, cualquier placa de desarrollo ESP32 se puede utilizar en este proyecto
Use los widgets del tablero con Magicbit [Magicblocks]: 5 pasos
Use los widgets del tablero con Magicbit [Magicblocks]: este tutorial le enseñará a usar los widgets del tablero de Magicblocks con su Magicbit. Estamos utilizando magicbit como placa de desarrollo en este proyecto que se basa en ESP32. Por lo tanto, cualquier placa de desarrollo ESP32 se puede utilizar en este proyecto
Obtener tiempo de Internet con ESP8266 - Proyecto de reloj NTP con ESP8266 Nodemcu: 5 pasos
Obtener tiempo de Internet con ESP8266 | Proyecto de reloj NTP con ESP8266 Nodemcu: En este tutorial veremos cómo obtener tiempo usando el ESP8266 / nodemcu con Arduino IDE. Obtener tiempo es especialmente útil en el registro de datos para marcar la hora de sus lecturas. Si su proyecto ESP8266 tiene acceso a Internet, puede obtener tiempo usando Network T
Cómo publicar datos ESP32 con marca de tiempo NTP en IoT Cloud: 5 pasos
Cómo publicar datos ESP32 con marca de tiempo NTP en la nube de IoT: en muchas aplicaciones, los usuarios deben enviar sus datos junto con la marca de tiempo local de los valores que se enviarán en la carga útil a la nube de IoT de AskSensors. El formato de la marca de tiempo es UNIX Epoch time: el número de milisegundos que han transcurrido desde Janu