Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
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 Time Protocol (NTP); no necesita ningún hardware adicional. Puede conectar su ESP8266 a su red wifi y será un reloj que se sincronizará con la red, por lo que si una vez que cargó el código, obtendrá la hora de Internet, por lo que siempre mostrará la hora correcta.
Paso 1: Cosas que necesita
Para este proyecto necesitarás muy pocas cosas: cable USB ESP8266 / NODEMCUA para programarlo.
Paso 2: ¿Qué es un NTP y cómo funcionará?
¿Qué es un NTP? Un NTP significa Protocolo de tiempo de red. Es un protocolo de Internet (IP) estándar para sincronizar los relojes de las computadoras con alguna referencia a través de una red. El protocolo se puede usar para sincronizar todos los dispositivos en red a la hora universal coordinada (UTC). NTP establece los relojes de las computadoras en UTC, en cualquier hora local. El cliente aplica el desplazamiento de zona o el horario de ahorro de luz diurna. De esta manera, los clientes pueden sincronizarse con los servidores independientemente de la ubicación y las diferencias de zona horaria. Solicitar paquete a un servidor NTP. En respuesta a esta solicitud, el servidor NTP envía un paquete de marca de tiempo. Un paquete de marca de tiempo contiene información múltiple como marca de tiempo UNIX, precisión, retraso o zona horaria. Luego, un cliente puede analizar los valores de fecha y hora actuales.
Paso 3: Instalación de la biblioteca en Arduino IDE
En su IDE de Arduino, vaya al administrador de Bibliotecas y busque NTP y simplemente descargue la biblioteca del cliente NTP como la descargué, consulte la imagen para obtener más ayuda.
Paso 4: Parte de codificación
Copie el siguiente código y coloque sus credenciales de red en su código, luego debe configurar el tiempo de compensación para mí, es 19800 porque mi zona horaria es utc + 5:30, por lo que UTC +5: 30 = 5.5 * 60 * 60 = 19800UTC + 1 = 1 * 60 * 60 = 3600 CALCULA tu zona horaria y edítala y luego sube el código. # Incluye "NTPClient.h" #include "ESP8266WiFi.h" #include "WiFiUdp.h" const char * ssid = "***** ****** "; const char * password =" *********** "; const long utcOffsetInSeconds = 19800; char daysOfTheWeek [7] [12] = {" Domingo "," Lunes ", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; // Definir el cliente NTP para obtener timeWiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, "pool.ntp.org", utcOffsetInSeconds); configuración vacía () {Serial.begin (115200); WiFi.begin (ssid, contraseña); while (WiFi.status ()! = WL_CONNECTED) {retraso (500); Serial.print ("."); } timeClient.begin ();} bucle vacío () {timeClient.update (); Serial.print (daysOfTheWeek [timeClient.getDay ()]); Serial.print (","); Serial.print (timeClient.getHours ()); Serial.print (":"); Serial.print (timeClient.getMinutes ()); Serial.print (":"); Serial.println (timeClient.getSeconds ()); //Serial.println (timeClient.getFormattedTime ()); retraso (1000);}
Paso 5: Obtener TIEMPO
Después de cargar el código a Esp8266, puede abrir el monitor en serie y si todo está bien, podrá obtener la hora en el monitor en serie, ya que puedo obtener la hora en mi monitor en serie. mostrar y convertirlo en un reloj de red adecuado. Así que diviértete haciendo tu reloj de red.