Obsah:
- Krok 1: Ukázka
- Krok 2: Sestavení
- Krok 3: Sestavení - stůl
- Krok 4: Knihovna Adafruit GFX
- Krok 5: Knihovna Adafruit ST7735
- Krok 6: Knihovna NTPClient
- Krok 7: ESP32_NTP.ino
- Krok 8: Soubory
Video: Neztrácejte čas: Použijte NTP !: 8 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Nechte svůj čas počítat! Toto je často diskutované téma mezi mými předplatiteli a z jakého důvodu? Vzhledem k jednoduchému a nepostradatelnému faktu, že když děláte datalogger a pro vše, co zahrnuje automatizaci, potřebujete správný čas! A existuje několik způsobů, jak měřit čas: hodiny s baterií, mimo jiné RTC (hodiny v reálném čase). Ale ten, který vám dnes chci ukázat (který informuje o datu, dni v týdnu a čase), je NTP (Network Time Protocol), který je online. V tomto videu získáme informace o datu a čase online a zobrazíme informace na displeji.
Krok 1: Ukázka
Krok 2: Sestavení
Krok 3: Sestavení - stůl
Krok 4: Knihovna Adafruit GFX
V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…
Nainstalujte si knihovnu Adafruit GFX
Krok 5: Knihovna Adafruit ST7735
V Arduino IDE přejděte na Sketch-> Include Library-> Manage Libraries…
Nainstalujte Adafruit ST7735
Krok 6: Knihovna NTPClient
Přejděte na https://github.com/taranais/NTPClient a stáhněte si knihovnu NTPClient upravenou taranais.
Rozbalte a vložte složku do C: / Users / Documents / Arduino / libraries
Krok 7: ESP32_NTP.ino
Zahrnuje 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 den; int měsíc; int rok; int hodiny; int minuty; int sekund; }; // Socket UDP que a lib utiliza para rekuperar dados sobre o horário WiFiUDP udp; // Odpovědnost na hledání dat nebo záznamů NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL do serveru NTP timeZone*3600, // Deslocamento do horário em relacão ao GMT 0 60 000); // Interval entre verificações online // Nomes dos dias da semana char* dayOfWeekNames = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; // Displej responeto reagovat pelo Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Založit
neplatné nastavení () {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 parameter, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número do core}
Nastavení NTP
neplatné nastaveníNTP () {// Inicializace klienta NTP ntpClient.begin (); // Aktualizace Espera pelo primeiro online Serial.println ("Čekání na první aktualizaci"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); zpoždění (500); } Serial.println (); Serial.println („První aktualizace dokončena“); }
Úkol WifiConnection
// Tarefa que verifica se a conexão caiu e tenta reconectarvoid wifiConnectionTask (void* param) {while (true) {// Se a WiFi não está conectada if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Zpoždění 100 tiků vTaskDelay (100); }}
ConnectWiFi
void connectWiFi () {Serial.println ("Připojování"); // 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 ("."); zpoždění (500); } Serial.println (); Serial.print („Připojeno k“); Serial.println (WiFi. SSID ()); }
Nastavení zobrazení
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); // Coloca o cursor no começo display.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo proto display.setTextWrap (false); // Automatická automatická linka}
Smyčka
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Obnovit kurzor 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); zpoždění (100); }
GetDate
Datum getDate () {// Záznam dat a dat o použití klienta o NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Heslo pro řetězec pro strukturované datum Datum; 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 (); datum návratu; }
Krok 8: Soubory
Stáhněte si soubory
INO
Doporučuje:
Vytvořte si vlastní přepínač Sonoff Smart Switch Použijte aplikaci pro Android: 11 kroků
Vytvořte si vlastní přepínač Sonoff Smart Switch Použijte aplikaci pro Android: Co je Sonoff? Sonoff je řada chytrých zařízení pro inteligentní domácnost vyvinutá společností ITEAD. Jedním z nejflexibilnějších a nejlevnějších zařízení z této řady jsou Sonoff Basic a Sonoff mini. Jedná se o přepínače s podporou Wi-Fi založené na skvělém čipu, ESP8266/E
Použijte tlačítka na Magicbit [Magicblocks]: 5 kroků
Používejte tlačítka na svém Magicbit [Magicblocks]: Tento tutoriál vás naučí používat tlačítka na vašem Magicbit pomocí Magicblocks. Jako vývojovou desku v tomto projektu, který je založen na ESP32, používáme magicbit. V tomto projektu lze tedy použít jakoukoli vývojovou desku ESP32
Použijte snímač půdní vlhkosti s Magicbitem [Magicblocks]: 5 kroků
Používejte snímač půdní vlhkosti s Magicbitem [Magicblocks]: Tento tutoriál vás naučí používat snímač půdní vlhkosti se svým Magicbitem pomocí Magicblocks. Jako vývojovou desku v tomto projektu, který je založen na ESP32, používáme magicbit. V tomto projektu proto lze použít jakoukoli vývojovou desku ESP32
Použijte ultrazvukový senzor s Magicbitem [Magicblocks]: 5 kroků
Používejte ultrazvukový senzor s Magicbitem [Magicblocks]: Tento tutoriál vás naučí používat ultrazvukový senzor s Magicbitem pomocí Magicblocks. Jako vývojovou desku v tomto projektu, který je založen na ESP32, používáme magicbit. V tomto projektu lze tedy použít jakoukoli vývojovou desku ESP32
Použijte svůj telefon jako druhý monitor: 5 kroků
Použijte svůj telefon jako druhý monitor: Všichni máme zkušenosti s prací z domova. Poskytuje nám luxus při plnění úkolů nebo úkolů z pohodlí našich domovů. Všichni však chceme tyto úkoly dokončit co nejefektivněji a nejproduktivnějším způsobem, aby