Përmbajtje:

Mos e humbni kohën tuaj: Përdorni NTP!: 8 hapa
Mos e humbni kohën tuaj: Përdorni NTP!: 8 hapa

Video: Mos e humbni kohën tuaj: Përdorni NTP!: 8 hapa

Video: Mos e humbni kohën tuaj: Përdorni NTP!: 8 hapa
Video: How to use TM1637 4 digits seven segment display with Arduino 2024, Nëntor
Anonim
Image
Image

Bëni kohën tuaj të llogarisë! Kjo është një temë e diskutuar shpesh midis pajtimtarëve të mi, dhe për çfarë arsye? Për shkak të faktit të thjeshtë dhe të domosdoshëm që kur bëni një regjistrues të të dhënave, dhe për gjithçka që përfshin automatizimin, keni nevojë për kohën e duhur! Dhe ka disa mënyra për të matur kohën: ora me bateri, RTC (Ora në kohë reale), ndër të tjera. Por ai që dua t'ju tregoj sot (i cili informon datën, ditën e javës dhe orën) është NTP (Protokolli i Kohes së Rrjetit), i cili është online. Në këtë video, ne do të marrim informacionin e datës dhe orës në internet dhe do të tregojmë informacionin në ekran.

Hapi 1: Demonstrim

Kuvendi
Kuvendi

Hapi 2: Montimi

Hapi 3: Kuvendi - Tabela

Kuvendi - Tabela
Kuvendi - Tabela

Hapi 4: Biblioteka Adafruit GFX

Biblioteka Adafruit GFX
Biblioteka Adafruit GFX

Në Arduino IDE, shkoni te Sketch-> Include Library-> Manage Bibliotekat …

Instaloni Bibliotekën Adafruit GFX

Hapi 5: Biblioteka Adafruit ST7735

Biblioteka Adafruit ST7735
Biblioteka Adafruit ST7735

Në Arduino IDE, shkoni te Sketch-> Include Library-> Manage Bibliotekat …

Instaloni Adafruit ST7735

Hapi 6: Biblioteka NTPClient

Biblioteka NTPClient
Biblioteka NTPClient

Shkoni te https://github.com/taranais/NTPClient dhe shkarkoni bibliotekën NTPClient të modifikuar nga taranais.

Zbërtheni dhe vendoseni dosjen në bibliotekat C: / Users / Documents / Arduino

Hapi 7: ESP32_NTP.ino

Përfshin dhe përcaktojnë

#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, nuk ka hororio de verão de Brasilia int timeZone = -2; // Struct com os dados do dia e hora struct Data {int dayOfWeek; int ditë; muaji int; viti int; orë int; int minuta; sekonda int; }; // Foleja e UDP -së që përdor një libër për rikuperimin e një sistemi të ri WiFiUDP udp; // Përgjigja e objektivit për rikuperimin e dosjeve në NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL për shërbimin e 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 = {"E Diel", "E Hënë", "E Martë", "E Mërkurë", "E Enjte", "E Premte", "E Shtunë"}; // Objeto responsável pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);

Konfigurimi

void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Funksioni që do të kryejë "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULam parametër, N22, // 2, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número do core}

SetupNTP

void setupNTP () {// Inicializa ose klienti NTP ntpClient.begin (); // Espera pelo Primeiro përditësim online Serial.println ("Duke pritur përditësimin e parë"); ndërsa (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); vonesë (500); } Serial.println (); Serial.println ("Përditësimi i parë i plotë"); }

WifiConnectionTask

// Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask (pavlefshme* param) {ndërsa (e vërtetë) {// Shiko një WiFi që nuk ka lidhje nëse (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Vonesa e 100 rriqrave vTaskDelay (100); }}

ConnectWiFi

void connectWiFi () {Serial.println ("Lidhja"); // 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 ("."); vonesë (500); } Serial.println (); Serial.print ("I lidhur me"); Serial.println (WiFi. SSID ()); }

SetupDisplay

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 ose kursori pa ekran.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}

Lak

void loop () {// Recupera os dados sobre a data e horário Data data = getDate (); // Reseta ose shfaqja e kursorit.setCursor (0, 0); // Exibe os dados pa ekran.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); vonesa (100); }

GetDate

Data getDate () {// Recupera os dados de data dhe hororio usando ose klientit NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para a struct Data e datës; sscanf (strDate, "%d-%d-%dT%d:%d:%dZ", & date.year, & date.month, & date.day, & date.hours, & date.minutes, & date.seconds); // Dia da semana nga 0 në 6, dërgo 0 në datën.dayOfWeek = ntpClient.getDay (); data e kthimit; }

Hapi 8: Skedarët

Shkarkoni skedarët

INO

PDF

Recommended: