Orodha ya maudhui:

Usipoteze Wakati Wako: Tumia NTP !: Hatua 8
Usipoteze Wakati Wako: Tumia NTP !: Hatua 8

Video: Usipoteze Wakati Wako: Tumia NTP !: Hatua 8

Video: Usipoteze Wakati Wako: Tumia NTP !: Hatua 8
Video: Серийный успех: освоение конфигурации коммутатора с помощью Putty! 2024, Julai
Anonim
Image
Image

Tumia muda wako kuhesabu! Hii ni mada inayojadiliwa mara kwa mara kati ya wanachama wangu, na kwa sababu gani? Kwa sababu ya ukweli rahisi na wa lazima kwamba unapotengeneza orodha ya data, na kwa kila kitu kinachojumuisha otomatiki, unahitaji wakati sahihi! Na kuna njia kadhaa za kupima wakati: saa na betri, RTC (Saa Saa Saa), kati ya zingine. Lakini ile ninayotaka kukuonyesha leo (ambayo inafahamisha tarehe, siku ya wiki, na wakati) ni NTP (Itifaki ya Wakati wa Mtandao), ambayo iko mkondoni. Katika video hii, tutapata tarehe na wakati habari mkondoni, na kuonyesha habari kwenye onyesho.

Hatua ya 1: Maonyesho

Mkutano
Mkutano

Hatua ya 2: Mkutano

Hatua ya 3: Mkutano - Jedwali

Mkutano - Jedwali
Mkutano - Jedwali

Hatua ya 4: Maktaba ya Adafruit GFX

Maktaba ya Adafruit GFX
Maktaba ya Adafruit GFX

Katika IDE ya Arduino, nenda kwenye Mchoro-> Jumuisha Maktaba-> Dhibiti Maktaba…

Sakinisha Maktaba ya Adafruit GFX

Hatua ya 5: Maktaba ya Adafruit ST7735

Maktaba ya Adafruit ST7735
Maktaba ya Adafruit ST7735

Katika IDE ya Arduino, nenda kwenye Mchoro-> Jumuisha Maktaba-> Dhibiti Maktaba…

Sakinisha Adafruit ST7735

Hatua ya 6: Maktaba ya Mteja wa NTP

Maktaba ya Mteja wa NTP
Maktaba ya Mteja wa NTP

Nenda kwa https://github.com/taranais/NTPClient na upakue maktaba ya NTPClient ya taranais.

Unzip na uweke folda katika maktaba C: Watumiaji / Nyaraka / Arduino

Hatua ya 7: ESP32_NTP.ino

Inajumuisha na kufafanua

#jumlisha #jumuisha // Biblioteca NTPMteja modificada # pamoja # Socket UDP # ingiza // Onyesha # pamoja # Onyesha # pamoja #Pinos zinaonyesha #fafanua DISPLAY_DC 12 // A0 #fafanua DISPLAY_CS 13 // CS #fafanua DISPLAY_MOSI 14 // SDA #fafanua DISPLAY_CLK 27 // SCK #fafanua 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 Tarehe {int dayOfWeek; siku ya ndani; mwezi wa int; mwaka wa int; masaa kadhaa; dakika; sekunde int; }; // Socket UDP ni lib utiliza kwa recuperar dados sobre o horário WiFiUDP udp; // Kujibu majibu kwa kurejelea hali ya watoto kwa huduma ya 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 = {"Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"}; // Objeto Respável pelo kuonyesha Adafruit_ST7735 onyesha = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);

Sanidi

kuanzisha batili () {Serial.begin (115200); kuanzishaDisplay (); unganishaWiFi (); kuanzishaNTP (); // Cria uma nova tarefa hakuna msingi 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 paramet, // kipaumbele NULL, // Não precisamos de referência para a tarefa 0); // Número do msingi}

SanidiNTP

batili setupNTP () {// Inicializa o mteja NTP ntpClient.begin (); // Espera pelo primeiro sasisha mkondoni Serial.println ("Inasubiri sasisho la kwanza"); wakati (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); kuchelewesha (500); } Serial.println (); Serial.println ("Sasisho la Kwanza limekamilika"); }

Kazi ya WifiConnection

// Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask (void * param) {while (true) {// Se WiFi isão conáta conectada if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Kuchelewa kupe kupe 100 vTaskDelay (100); }}

UnganishaWiFi

batili connectWiFi () {Serial.println ("Kuunganisha"); // Troque pelo nome e senha da sua rede WiFi WiFi.begin ("SSID", "12345678"); // Espera enquanto não estiver conectado wakati (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kuchelewesha (500); } Serial.println (); Serial.print ("Imeunganishwa na"); Serial.println (WiFi. SSID ()); }

SetupDisplay

batili setupDisplay () {display.initR (INITR_BLACKTAB); // Inicializa o onyesha onyesho.setRotation (3); // onyesho la Rotaciona.setTextSize (2); // Tamanho fanya onyesho la maandishi.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 (uwongo); // Não pula linha automaticamente}

Kitanzi

kitanzi batili () {// Recupera os dados sobre a data and horário Date date = getDate (); // Rudisha tena o kuonyesha mshale.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 (), sikuOfWeekNames [tarehe.dayOfWeek], tarehe.tarehe, tarehe.mwezi, tarehe.mwaka, tarehe. Masaa, tarehe.minutes, tarehe.mashindikano); kuchelewesha (100); }

GetDate

Tarehe ya kupataTarehe () {// Kumbukumbu ya data na huduma kwa mteja NTP char * strDate = (char *) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para a struct Tarehe; sscanf (strDate, "% d-% d-% dT% d:% d:% dZ", & date.year, & date.mwezi, & date.day, & date.hours, & date.minutes, & date.seconds); // Dia da semana de 0 a 6, sendo 0 o domingo date.dayOfWeek = ntpClient.getDay (); tarehe ya kurudi; }

Hatua ya 8: Faili

Pakua faili

INO

PDF

Ilipendekeza: