Talaan ng mga Nilalaman:

Huwag Sayangin ang Iyong Oras: Gumamit ng NTP !: 8 Mga Hakbang
Huwag Sayangin ang Iyong Oras: Gumamit ng NTP !: 8 Mga Hakbang

Video: Huwag Sayangin ang Iyong Oras: Gumamit ng NTP !: 8 Mga Hakbang

Video: Huwag Sayangin ang Iyong Oras: Gumamit ng NTP !: 8 Mga Hakbang
Video: How To Lower High Cholesterol Naturally - Master Health 2024, Nobyembre
Anonim
Image
Image

Bilangin ang iyong oras! Ito ay isang madalas na tinalakay na paksa sa aking mga tagasuskribi, at sa anong kadahilanan? Dahil sa simple at kailangang-kailangan na katotohanan na kapag gumawa ka ng isang datalogger, at para sa lahat ng bagay na may kinalaman sa automation, kailangan mo ng tamang oras! At maraming mga paraan upang masukat ang oras: orasan gamit ang baterya, RTC (Real Time Clock), bukod sa iba pa. Ngunit ang nais kong ipakita sa iyo ngayon (na nagpapabatid ng petsa, araw ng linggo, at oras) ay ang NTP (Network Time Protocol), na online. Sa video na ito, kukunin namin ang impormasyon sa petsa at oras sa online, at ipapakita ang impormasyon sa display.

Hakbang 1: Pagpapakita

Assembly
Assembly

Hakbang 2: Assembly

Hakbang 3: Assembly - Talahanayan

Assembly - Talahanayan
Assembly - Talahanayan

Hakbang 4: Adafruit GFX Library

Adafruit GFX Library
Adafruit GFX Library

Sa Arduino IDE, pumunta sa Sketch-> Isama ang Library-> Pamahalaan ang Mga Aklatan…

I-install ang Adafruit GFX Library

Hakbang 5: Adafruit ST7735 Library

Adafruit ST7735 Library
Adafruit ST7735 Library

Sa Arduino IDE, pumunta sa Sketch-> Isama ang Library-> Pamahalaan ang Mga Aklatan…

I-install ang Adafruit ST7735

Hakbang 6: NTPClient Library

Library ng NTPClient
Library ng NTPClient

Pumunta sa https://github.com/taranais/NTPClient at i-download ang binago ng taranais na NTPClient library.

I-unzip at ilagay ang folder sa C: / Users / Documents / Arduino / library

Hakbang 7: ESP32_NTP.ino

May kasamang at tumutukoy

#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; // Struct com os dados do dia e hora struct Date {int dayOfWeek; int araw; int buwan; int taon; int oras; int minuto; int segundo; }; // Socket UDP que a lib utiliza para sa recuperar magiging sobre o hor WiFi WiFiUDP udp; // Objeto responsável por recuperar magiging 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 = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; // Objeto responsável pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);

Pag-set up

void setup () {Serial.begin (115200); setupDisplay (); kumonektaWiFi (); 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, // Não vamos passar nenhum parametro 2, // prioridade Null, // Não precisamos de referência para a tarefa 0); // Número do core}

Pag-setupNTP

void setupNTP () {// Inicializa o client NTP ntpClient.begin (); // Espera pelo primeiro update online Serial.println ("Naghihintay para sa unang pag-update"); habang (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); pagkaantala (500); } Serial.println (); Serial.println ("Kumpletong Unang Pag-update"); }

WifiConnectionTask

// Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask (void * param) {habang (totoo) {// Se a WiFi não está conectada if (WiFi.status ()! = WL_CONNected) {// Manda conectar connectWiFi (); } // Delay de 100 ticks vTaskDelay (100); }}

ConnectWiFi

void connectWiFi () {Serial.println ("Kumokonekta"); // Troque pelo nome e senha da sua rede WiFi WiFi.begin ("SSID", "12345678"); // Espera enquanto não estiver conectado habang (WiFi.status ()! = WL_CONNected) {Serial.print ("."); pagkaantala (500); } Serial.println (); Serial.print ("Nakakonekta sa"); 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 o cursor no começo display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}

Loop

void loop () {// Recupera os naging sobre a data at horário Date date = getDate (); // Reseta o cursor 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); pagkaantala (100); }

GetDate

Petsa getDate () {// Recupera os naging de data at kasalukuyang gumagamit ng client NTP char * strDate = (char *) ntpClient.getFormattedDate (). C_str (); // Passa os magiging da string para sa isang istruktura Petsa ng petsa; 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 (); petsa ng pagbabalik; }

Hakbang 8: Mga File

I-download ang mga file

INO

PDF

Inirerekumendang: