Sisukord:

Ärge raisake aega: kasutage NTP -d !: 8 sammu
Ärge raisake aega: kasutage NTP -d !: 8 sammu

Video: Ärge raisake aega: kasutage NTP -d !: 8 sammu

Video: Ärge raisake aega: kasutage NTP -d !: 8 sammu
Video: Salajutud episood #20 - Ratastooli warrior 2024, November
Anonim
Image
Image

Võtke oma aeg arvesse! See on minu tellijate seas sageli arutatud teema ja mis põhjusel? Tänu lihtsale ja hädavajalikule tõsiasjale, et kui teete andmekogujat ja kõike, mis hõlmab automatiseerimist, vajate õiget aega! Ja aja mõõtmiseks on mitmeid viise: muuhulgas akuga kell, RTC (reaalajas kell). Kuid see, mida ma tahan teile täna näidata (mis teavitab kuupäeva, nädalapäeva ja kellaaega), on võrgus olev NTP (Network Time Protocol). Selles videos toome veebist välja kuupäeva ja kellaaja teabe ning kuvame selle teabe ekraanil.

1. samm: demonstratsioon

Kokkupanek
Kokkupanek

2. samm: kokkupanek

3. samm: kokkupanek - tabel

Kokkupanek - laud
Kokkupanek - laud

Samm: Adafruit GFX raamatukogu

Adafruit GFX raamatukogu
Adafruit GFX raamatukogu

Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…

Installige Adafruit GFX raamatukogu

Samm: raamatukogu Adafruit ST7735

Adafruit ST7735 raamatukogu
Adafruit ST7735 raamatukogu

Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…

Installige Adafruit ST7735

6. samm: NTPClient Library

NTPClient Library
NTPClient Library

Minge aadressile https://github.com/taranais/NTPClient ja laadige alla taranais-modifitseeritud NTPClient raamatukogu.

Pakkige lahti ja pange kaust C: / Users / Documents / Arduino / teekidesse

Samm 7: ESP32_NTP.ino

Sisaldab ja määratleb

#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, no caso horário de verão de Brasília int timeZone = -2; // Struktuurikomponendid do dia e hora structure Kuupäev {int dayOfWeek; int päev; int kuu; int aasta; int tundi; int minutit; int sekundit; }; // Socket UDP que a lib utiliza para recuperar dados sobre o horário WiFiUDP udp; // Objekti vastus rekuperaatori jaoks, mis sobib horrorio NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL to 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 = {"pühapäev", "esmaspäev", "teisipäev", "kolmapäev", "neljapäev", "reede", "laupäev"}; // Objekti vastus tasapinnalisele ekraanile Adafruit_ST7735 kuva = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);

Seadistamine

void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); setupNTP (); // Cria uma nova tarefa no core 0 xTaskCreatePinnedToCore (wifiConnectionTask, // Função que será executab "wifiConnectionTask", // Nome da tarefa 10000, // Tamanho da memória disponível (em WORDs) NULL, // Não vamos pass, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número do core}

SetupNTP

void setupNTP () {// Inicializa või kliendi NTP ntpClient.begin (); // Espera pelo primeiro update online Serial.println ("Ootan esimest värskendust"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); viivitus (500); } Serial.println (); Serial.println ("Esimene värskendus on lõpule viidud"); }

WifiConnectionTask

// Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask (void* param) {while (true) {// Se a WiFi não está conactada if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // viivitus 100 puugiga vTaskDelay (100); }}

Ühendage WiFi

void connectWiFi () {Serial.println ("Ühendamine"); // 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 ("."); viivitus (500); } Serial.println (); Serial.print ("Ühendatud"); Serial.println (WiFi. SSID ()); }

SetupDisplay

void setupDisplay () {display.initR (INITR_BLACKTAB); // Inicializa või kuva display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho do texto display.fillScreen (ST77XX_BLACK); // Preenche on korrektne ekraan.setCursor (0, 0); // Coloca või kursor ei tule ekraanile.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}

Loop

void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Reset või kursori kuva.setCursor (0, 0); // Exibe os dados ei kuva kuvarit.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); viivitus (100); }

GetDate

Kuupäev getDate () {// Andmete taastamine ja horisontaalne kasutamine või kliendi NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para a structure Kuupäeva kuupäev; 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 (); tagastamise kuupäev; }

8. samm: failid

Laadige failid alla

INO

PDF

Soovitan: