Table des matières:
- Étape 1: Démonstration
- Étape 2: Assemblage
- Étape 3: Assemblage - Tableau
- Étape 4: Bibliothèque Adafruit GFX
- Étape 5: Bibliothèque Adafruit ST7735
- Étape 6: bibliothèque client NTPC
- Étape 7: ESP32_NTP.ino
- Étape 8: Fichiers
Vidéo: Ne perdez pas votre temps : utilisez NTP ! : 8 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Faites que votre temps compte ! C'est un sujet fréquemment discuté parmi mes abonnés, et pour quelle raison ? Du fait simple et indispensable que lorsque vous faites un datalogger, et pour tout ce qui concerne l'automatisation, vous avez besoin de la bonne heure ! Et il existe plusieurs façons de mesurer le temps: horloge avec batterie, RTC (Real Time Clock), entre autres. Mais celui que je veux vous montrer aujourd'hui (qui informe la date, le jour de la semaine et l'heure) est le NTP (Network Time Protocol), qui est en ligne. Dans cette vidéo, nous allons récupérer les informations de date et d'heure en ligne et afficher les informations à l'écran.
Étape 1: Démonstration
Étape 2: Assemblage
Étape 3: Assemblage - Tableau
Étape 4: Bibliothèque Adafruit GFX
Dans l'IDE Arduino, allez dans Sketch->Inclure la bibliothèque->Gérer les bibliothèques…
Installer la bibliothèque Adafruit GFX
Étape 5: Bibliothèque Adafruit ST7735
Dans l'IDE Arduino, allez dans Sketch->Inclure la bibliothèque->Gérer les bibliothèques…
Installer Adafruit ST7735
Étape 6: bibliothèque client NTPC
Accédez à https://github.com/taranais/NTPClient et téléchargez la bibliothèque NTPClient modifiée par taranais.
Décompressez et placez le dossier dans C:\Users\Documents\Arduino\libraries
Étape 7: ESP32_NTP.ino
Comprend et définit
#include #include //Biblioteca NTPClient modificada #include //Socket UDP #include //Afficher #include //Afficher #include //Les pinos affichent #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; jour int; mois entier; int année; heures entières; minutes entières; int secondes; }; //Socket UDP que une bibliothèque utilise pour récupérer les données sobre ou horário WiFiUDP udp; //Objeto responsável por recuperar dados sobre horário 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 = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"}; //Objeto responsável pelo display Adafruit_ST7735 display = Adafruit_ST7735(DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Installer
void setup(){ Serial.begin(115200); setupAffichage(); connecterWiFi(); setupNTP(); //Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore(wifiConnectionTask, //Função que será executada "wifiConnectionTask", //Nome da tarefa 10000, //Tamanho da memória disponível (em WORDs) NULL pasar, //Nome da tarefa 10000, //Tamanho da memória disponível (em WORDs), //prioridade NULL, //Não precisamos de referência para a tarefa 0); //Número do core }
ConfigurationNTP
void setupNTP(){ //Inicialisation du client NTP ntpClient.begin(); //Espera pelo primeiro mise à jour en ligne Serial.println("En attente de la première mise à jour"); while(!ntpClient.update()) { Serial.print("."); ntpClient.forceUpdate(); retard (500); } Serial.println(); Serial.println("Première mise à jour terminée"); }
WifiConnexionTâche
//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(); } //Délai de 100 ticks vTaskDelay(100); } }
Connectez-vous au Wi-Fi
void connectWiFi(){ Serial.println("Connexion"); //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("."); retard (500); } Serial.println(); Serial.print("Connecté à "); Serial.println(WiFi. SSID()); }
ConfigurationAffichage
void setupDisplay(){ display.initR(INITR_BLACKTAB); //Inicializa o display display.setRotation(3); // Rotation display.setTextSize(2); //Tamanho do texto display.fillScreen(ST77XX_BLACK); //Preenche com a cor preta display.setCursor(0, 0); //Coloca o curseur aucun começo display.setTextColor(ST77XX_WHITE, ST77XX_BLACK); //Texto branco com fundo preto display.setTextWrap(false); //Não pula linha automaticamente }
Boucle
void loop(){ //Recupera os dados sobre a data and horário Date date = getDate(); //Réinitialiser le curseur 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); }
Avoir un rendez-vous
Date getDate(){ //Récupérer les données et l'horário usando du client NTP char* strDate = (char*)ntpClient.getFormattedDate().c_str(); //Passa os dados da string para 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 semana de 0 a 6, sendo 0 o domingo date.dayOfWeek = ntpClient.getDay(); date de retour; }
Étape 8: Fichiers
Télécharger les fichiers
INO
Conseillé:
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : 6 étapes
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : Dans ce rapide Instructable, nous allons faire un simple contrôleur de moteur pas à pas à l'aide d'un moteur pas à pas. Ce projet ne nécessite aucun circuit complexe ni microcontrôleur. Alors sans plus tarder, commençons
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : 9 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : Dans l'un de mes précédents Instructables, je vous ai montré comment contrôler un moteur pas à pas à l'aide d'un moteur pas à pas sans microcontrôleur. C'était un projet rapide et amusant, mais il est venu avec deux problèmes qui seront résolus dans ce Instructable. Alors, esprit
Locomotive modèle commandée par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
Locomotive modèle commandée par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Dans l'un des précédents Instructables, nous avons appris à utiliser un moteur pas à pas comme encodeur rotatif. Dans ce projet, nous allons maintenant utiliser cet encodeur rotatif à moteur pas à pas pour contrôler un modèle de locomotive à l'aide d'un microcontrôleur Arduino. Alors, sans fu
Moteur pas à pas contrôlé par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Vous avez quelques moteurs pas à pas qui traînent et vous voulez faire quelque chose ? Dans ce Instructable, utilisons un moteur pas à pas comme encodeur rotatif pour contrôler la position d'un autre moteur pas à pas à l'aide d'un microcontrôleur Arduino. Alors sans plus tarder, allons-y
Refroidisseur / support pour ordinateur portable à coût zéro (pas de colle, pas de perçage, pas d'écrous et de boulons, pas de vis): 3 étapes
Refroidisseur / support pour ordinateur portable à coût zéro (pas de colle, pas de perçage, pas d'écrous et de boulons, pas de vis) : MISE À JOUR : VEUILLEZ VOTEZ POUR MON INSTRUCTIBLE, MERCI ^_^ VOUS POUVEZ AUSSI AIMER VOTER POUR MON AUTRE CONCOURS ENTRÉE SUR www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ OU PEUT-ÊTRE VOTER POUR MON MEILLEUR AMI