Mündəricat:

Vaxtınızı israf etməyin: NTP istifadə edin !: 8 addım
Vaxtınızı israf etməyin: NTP istifadə edin !: 8 addım

Video: Vaxtınızı israf etməyin: NTP istifadə edin !: 8 addım

Video: Vaxtınızı israf etməyin: NTP istifadə edin !: 8 addım
Video: ZAMAN NEMƏTİNİ İSRAF ETMƏYİN. 2024, Noyabr
Anonim
Image
Image

Vaxtınızı sayın! Abunəçilərim arasında tez -tez müzakirə olunan bir mövzudur və hansı səbəbdən? Datalogger hazırladığınızda və avtomatlaşdırma ilə əlaqəli hər şey üçün düzgün vaxta ehtiyacınız olduğuna görə sadə və əvəzolunmaz faktlara görə! Zamanı ölçməyin bir neçə yolu var: batareyalı saat, RTC (Real Time Clock) və digərləri. Ancaq bu gün sizə göstərmək istədiyim (tarix, həftənin günü və saatı bildirən) onlayn olan NTP (Şəbəkə Saatı Protokolu). Bu videoda tarix və vaxt məlumatlarını onlayn olaraq alacağıq və məlumatları ekranda göstərəcəyik.

Addım 1: nümayiş

Məclis
Məclis

Addım 2: Quraşdırma

Addım 3: Montaj - Cədvəl

Montaj - Cədvəl
Montaj - Cədvəl

Addım 4: Adafruit GFX Kitabxanası

Adafruit GFX Kitabxanası
Adafruit GFX Kitabxanası

Arduino IDE-də, Sketch-> Kitabxanaya daxil et-> Kitabxanaları İdarə et-ə gedin.

Adafruit GFX Kitabxanasını quraşdırın

Addım 5: Adafruit ST7735 Kitabxanası

Adafruit ST7735 Kitabxanası
Adafruit ST7735 Kitabxanası

Arduino IDE-də, Sketch-> Kitabxanaya daxil et-> Kitabxanaları İdarə et-ə gedin.

Adafruit ST7735 quraşdırın

Addım 6: NTPClient Kitabxanası

NTPClient Kitabxanası
NTPClient Kitabxanası

Https://github.com/taranais/NTPClient saytına daxil olun və taranais tərəfindən dəyişdirilmiş NTPClient kitabxanasını yükləyin.

Qovluğu açın və C: / İstifadəçilər / Sənədlər / Arduino / kitabxanalarına qoyun

Addım 7: ESP32_NTP.ino

Daxildir və müəyyən edir

#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, heç vaxt Braziliyada int timeZone = -2; // Struktur əlaqələr qurmaq Tarix {int dayOfWeek; int gün; int ay; int il; int saat; int dəqiqə; int saniyə; }; // Yuva UDP istifadə etmək üçün WiFiUDP istifadə etmək; // NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // NTP timeZone*3600 xidmət göstərən URL, // GMT 0 ilə əlaqə qurun) 60000); // İntervalo entre verificações online // Nomes dos dias da semana char* dayOfWeekNames = {"Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"}}; // Objeto cavab üçün pelo ekran Adafruit_ST7735 ekran = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);

Qurmaq

void setup () {Serial.begin (115200); setupDisplay (); əlaqəWiFi (); quraşdırmaNTP (); // Cria uma nova tarefa yoxdur 0 xTaskCreatePinnedToCore (wifiConnectionTask, // "wifiConnectionTask" funksiyası, // 10000, // Tamanho da memória disponível (em SÖZLƏR) NULL parametri, // Não v2, // prioritet NULL, // Təfərrüatlar üçün dəqiq məlumat yoxdur 0); // Nümer etmək əsas}

NNT qurmaq

boş quraşdırmaNTP () {// Müştəri NTP ntpClient.begin (); // Espera pelo primeiro onlayn yeniləmə Serial.println ("İlk yeniləməni gözləyir"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); gecikmə (500); } Serial.println (); Serial.println ("İlk Yeniləmə Tamamlandı"); }

WifiConnectionTask

// wifiConnectionTask (void* parametri) {bir vaxt (doğru) {// bir WiFi bağlantısı varsa (WiFi.status ()! WL_CONNECTED) {// əlaqə qurmaqWiFi (); } // Gecikmə 100 gənə vTaskDelay (100); }}

Wi -Fi bağlantısı

etibarsız connectWiFi () {Serial.println ("Bağlanır"); // WiFi WiFi.begin ("SSID", "12345678"); // Espera enquanto não estiver conectado while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); gecikmə (500); } Serial.println (); Serial.print ("Bağlandı"); Serial.println (WiFi. SSID ()); }

Quraşdırma Ekranı

void setupDisplay () {display.initR (INITR_BLACKTAB); // Display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho texto display.fillScreen (ST77XX_BLACK); // Preenche ilə əvvəlcədən display.setCursor (0, 0); // Coloca və ya imleci yox, ekran.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo əvvəldən display.setTextWrap (yanlış); // Não pula linha avtomatlaşdırma}

Döngə

void loop () {// Recupera os dados sobre a data and horário Tarix tarixi = getDate (); // Reset o kursor display.setCursor (0, 0); // Exibe os dados 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); gecikmə (100); }

GetDate

Tarix getDate () {// Müştəri NTP -dən istifadə etmək üçün məlumatların geri qaytarılması char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Tarix tarixi; sscanf (strDate, "%d-%d-%dT%d:%d:%dZ", & date.year, & date.month, & date.day, & date.hours, & date.minutes, & date.seconds); // Dia da semana 0 a 6, sendo 0 o domingo date.dayOfWeek = ntpClient.getDay (); qaytarılma tarixi; }

Addım 8: Fayllar

Faylları yükləyin

MƏN YOX

PDF

Tövsiyə: