Obsah:
- Krok 1: Ukážka
- Krok 2: Zostavenie
- Krok 3: Zostavenie - stôl
- Krok 4: Knižnica Adafruit GFX
- Krok 5: Knižnica Adafruit ST7735
- Krok 6: Knižnica NTPClient
- Krok 7: ESP32_NTP.ino
- Krok 8: Súbory
Video: Nestrácajte čas: používajte NTP !: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Nechajte svoj čas počítať! Toto je často diskutovaná téma medzi mojimi predplatiteľmi a z akého dôvodu? Vzhľadom na jednoduchý a nepostrádateľný fakt, že keď robíte záznamník údajov a na všetko, čo zahŕňa automatizáciu, potrebujete správny čas! A existuje niekoľko spôsobov, ako merať čas: hodiny s batériou, RTC (hodiny v reálnom čase), okrem iného. Ale ten, ktorý vám chcem dnes ukázať (ktorý informuje o dátume, dni v týždni a čase), je NTP (Network Time Protocol), ktorý je online. V tomto videu získame informácie o dátume a čase online a zobrazíme ich na displeji.
Krok 1: Ukážka
Krok 2: Zostavenie
Krok 3: Zostavenie - stôl
Krok 4: Knižnica Adafruit GFX
V IDE Arduino prejdite na Skica-> Zahrnúť knižnicu-> Spravovať knižnice …
Nainštalujte knižnicu Adafruit GFX
Krok 5: Knižnica Adafruit ST7735
V IDE Arduino prejdite na Skica-> Zahrnúť knižnicu-> Spravovať knižnice …
Nainštalujte Adafruit ST7735
Krok 6: Knižnica NTPClient
Choďte na https://github.com/taranais/NTPClient a stiahnite si taranaisom upravenú knižnicu NTPClient.
Rozbaľte priečinok a vložte ho do priečinka C: / Users / Documents / Arduino / libraries
Krok 7: ESP32_NTP.ino
Zahŕňa a definuje
#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 mountain struct Date {int dayOfWeek; int deň; int mesiac; int rok; int hodiny; int minúty; int sekundy; }; // Ucket UDP que a lib utiliza para rekuperar dados sobre o horário WiFiUDP udp; // Odpovede na otázky súvisiace s načítaním NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL do servera NTP timeZone*3600, // Deslocamento do horário em relacão ao GMT 0 60 000); // Interné overovanie vstupov online // Názvy zoznamov znakov* dayOfWeekNames = {„nedeľa“, „pondelok“, „utorok“, „streda“, „štvrtok“, „piatok“, „sobota“}; // Objeto responzívny pelo displej Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Nastaviť
void setup () {Serial.begin (115200); setupDisplay (); connectWiFi (); 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, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número do core}
SetupNTP
neplatné nastavenieNTP () {// Inicializácia klienta NTP ntpClient.begin (); // Aktualizácia espera pelo primeiro online Serial.println („Čaká sa na prvú aktualizáciu“); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); oneskorenie (500); } Serial.println (); Serial.println („Prvá aktualizácia dokončená“); }
Úloha WifiConnection
// Overenie tara sa vykoná a odpojí wifiConnectionTask (neplatné* param) {while (true) {// Pozrite sa na Wi -Fi pripojenie (WiFi.status ()! = WL_CONNECTED) {// Pripojenie Mandy ku WiFi); } // Oneskorenie 100 tiknutí vTaskDelay (100); }}
ConnectWiFi
void connectWiFi () {Serial.println ("Pripojenie"); // 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 ("."); oneskorenie (500); } Serial.println (); Serial.print („Pripojené k“); Serial.println (WiFi. SSID ()); }
SetupDisplay
neplatné 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); // Farba kurzora nie je zobrazená.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo proto display.setTextWrap (false); // Automatická automatická linka}
Slučka
void loop () {// Recyklácia údajov a dátumov dátum dátum = getDate (); // Obnovenie kurzora 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); oneskorenie (100); }
GetDate
Dátum getDate () {// Získanie údajov a údajov o klientoch NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para a struct Date date; 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 (); dátum návratu; }
Krok 8: Súbory
Stiahnite si súbory
INO
Odporúča:
Používajte tlačidlá na svojom Magicbit [Magicblocks]: 5 krokov
Používajte tlačidlá na svojom Magicbit [Magicblocks]: Tento tutoriál vás naučí používať tlačidlá na vašom Magicbit pomocou Magicblocks. V tomto projekte používame magicbit ako vývojovú dosku, ktorá je založená na ESP32. V tomto projekte je preto možné použiť akúkoľvek vývojovú dosku ESP32
Používajte miniaplikácie na tabuli s Magicbit [Magicblocks]: 5 krokov
Používajte miniaplikácie dashboardu s Magicbitom [Magicblocks]: Tento tutoriál vás naučí používať widgety dashboardu Magicblocks s vašim Magicbitom. V tomto projekte používame magicbit ako vývojovú dosku, ktorá je založená na ESP32. V tomto projekte je preto možné použiť akúkoľvek vývojovú dosku ESP32
Používajte telefón ako druhý monitor: 5 krokov
Používajte telefón ako druhý monitor: Všetci máme skúsenosti s prácou z domu. Poskytuje nám luxus dokončenia práce alebo zadania z pohodlia domova. Všetci však chceme tieto úlohy splniť čo najefektívnejšie a najproduktívnejšie, aby
Používajte smartfón ako bezkontaktný teplomer / prenosný teplomer: 8 krokov (s obrázkami)
Používajte smartfón ako bezkontaktný teplomer / prenosný teplomer: Meranie telesnej teploty bezkontaktným / bezkontaktným teplomerom. Vytvoril som tento projekt, pretože Thermo Gun je teraz veľmi drahý, takže musím nájsť alternatívu k vlastnoručnému vyrobeniu. Cieľom je vytvoriť nízkorozpočtovú verziu. DodávkyMLX90614Ardu
Používajte jeden displej a ponúkajte 4 -ciferný 8886 displej Con Wemos ESP8266 Arduino NodeMCU: 6 krokov
Používame jeden veľký displej so 4 ciframi 8886 s procesorom ESP8266 Arduino NodeMCU: viac ako jedna jednoduchá verzia 8886 displeja, ktorá má jednu noc, jednu veľkú D1 - potrebujem pre Arduino alebo jeden NodeMCU o kvalitných mikrokontroléroch môžete informovať o tom, ako postupovať