Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Dans ce tutoriel, nous verrons comment gagner du temps en utilisant l'ESP8266/nodemcu avec Arduino IDE. Obtenir du temps est particulièrement utile dans l'enregistrement de données pour horodater vos lectures. Si votre projet ESP8266 a accès à Internet, vous pouvez obtenir du temps en utilisant Network Time Protocol (NTP) - vous n'avez besoin d'aucun matériel supplémentaire. Vous pouvez connecter votre ESP8266 à votre réseau wifi et ce sera une horloge qui sera synchronisée avec le réseau, donc si une fois que vous avez téléchargé le code, il obtiendra l'heure d'Internet afin qu'il affiche toujours l'heure correcte.
Étape 1: choses dont vous avez besoin
Pour ce projet, vous aurez besoin de très peu de choses: Câble USB ESP8266/NODEMCUA pour le programmer.
Étape 2: Qu'est-ce qu'un NTP et comment cela fonctionnera-t-il ?
Qu'est-ce qu'un NTP: Un NTP signifie Network Time Protocol. Il s'agit d'un protocole Internet (IP) standard pour synchroniser les horloges des ordinateurs avec une référence sur un réseau. Le protocole peut être utilisé pour synchroniser tous les appareils en réseau avec le temps universel coordonné (UTC). NTP règle les horloges des ordinateurs sur UTC, n'importe quelle heure locale. le décalage de zone ou le décalage d'heure d'été est appliqué par le client. De cette manière, les clients peuvent se synchroniser avec les serveurs indépendamment de l'emplacement et des différences de fuseau horaire. Comment cela fonctionnera pour nous: Le périphérique client tel que ESP8266 se connecte au serveur à l'aide du protocole de datagramme utilisateur (UDP) sur le port 123. Un client transmet ensuite un demander un paquet à un serveur NTP. En réponse à cette demande, le serveur NTP envoie un paquet d'horodatage. Un paquet d'horodatage contient plusieurs informations telles que l'horodatage UNIX, la précision, le délai ou le fuseau horaire. Un client peut ensuite analyser les valeurs de date et d'heure actuelles.
Étape 3: Installation de la bibliothèque sur l'IDE Arduino
Dans votre IDE Arduino, accédez au gestionnaire de bibliothèques et recherchez NTP et téléchargez simplement la bibliothèque cliente NTP telle que je l'ai téléchargée, reportez-vous à l'image pour obtenir de l'aide.
Étape 4: coder la partie
Veuillez copier le code suivant et mettre vos informations d'identification réseau dans votre code, puis vous devez définir l'heure de décalage pour moi, il est 19800 car mon fuseau horaire est utc+5:30 donc UTC +5:30=5.5*60*60=19800UTC+1= 1*60*60=3600CALCULER votre fuseau horaire et le modifier puis télécharger le code.#include "NTPClient.h"#include "ESP8266WiFi.h"#include "WiFiUdp.h"const char *ssid = "***** ******";const char *password = "************";const long utcOffsetInSeconds = 19800;char daysOfTheWeek[7][12] = {"Dimanche", "Lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"};// Définir le client NTP pour obtenir timeWiFiUDP ntpUDP;NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);void setup (){ Serial.begin(115200); WiFi.begin(ssid, mot de passe); while (WiFi.status() != WL_CONNECTED) { délai (500); Serial.print ("."); } timeClient.begin();}void loop() { 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()); retard(1000);}
Étape 5: Obtenir du TEMPS
Après avoir téléchargé le code sur Esp8266, vous pouvez ouvrir le moniteur série et si tout va bien, vous pourrez obtenir l'heure sur le moniteur série car je peux obtenir l'heure sur mon moniteur série. Donc, avec ce projet, vous pouvez attacher n'importe quel afficher et en faire une horloge réseau appropriée. Alors amusez-vous à faire votre horloge réseau.