Turinys:
- 1 žingsnis: demonstracija
- 2 žingsnis: Surinkimas
- 3 žingsnis: Surinkimas - stalas
- 4 žingsnis: „Adafruit GFX“biblioteka
- 5 veiksmas: „Adafruit ST7735“biblioteka
- 6 veiksmas: NTPClient biblioteka
- 7 veiksmas: ESP32_NTP.ino
- 8 žingsnis: failai
Video: Negaiškite laiko: naudokite NTP !: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Skaičiuok savo laiką! Tai dažnai aptariama tema tarp mano prenumeratorių ir dėl kokios priežasties? Dėl paprasto ir būtino fakto, kad kurdami duomenų registratorių ir viską, kas susiję su automatizavimu, jums reikia tinkamo laiko! Ir yra keli laiko matavimo būdai: laikrodis su baterija, RTC (realaus laiko laikrodis) ir kt. Tačiau tą, kurį šiandien noriu jums parodyti (nurodo datą, savaitės dieną ir laiką), yra NTP (tinklo laiko protokolas), kuris yra internete. Šiame vaizdo įraše mes nuskaitysime datos ir laiko informaciją internete ir parodysime informaciją ekrane.
1 žingsnis: demonstracija
2 žingsnis: Surinkimas
3 žingsnis: Surinkimas - stalas
4 žingsnis: „Adafruit GFX“biblioteka
„Arduino IDE“eikite į Eskizas-> Įtraukti biblioteką-> Tvarkyti bibliotekas …
Įdiekite „Adafruit GFX“biblioteką
5 veiksmas: „Adafruit ST7735“biblioteka
„Arduino IDE“eikite į Eskizas-> Įtraukti biblioteką-> Tvarkyti bibliotekas …
Įdiekite „Adafruit ST7735“
6 veiksmas: NTPClient biblioteka
Eikite į https://github.com/taranais/NTPClient ir atsisiųskite taranais pakeistą NTPClient biblioteką.
Išpakuokite ir įdėkite aplanką į C: / Users / Documents / Arduino / bibliotekas
7 veiksmas: ESP32_NTP.ino
Apima ir apibrėžia
#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 structure“Data {int dayOfWeek; int diena; int mėnuo; int metai; int valandos; int minutes; int sekundės; }; // Socket UDP que a lib utiliza para recuperar dados sobre o horário WiFiUDP udp; // Objekto atsakas į rekuperatorių, kad būtų galima valdyti NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL serverio 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 = {"Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"}; // Objektinis atsakas į pelės ekraną Adafruit_ST7735 ekranas = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Sąranka
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}
SąrankaNTP
void setupNTP () {// Inicializa arba kliento NTP ntpClient.begin (); // Espera pelo primeiro update online Serial.println ("Laukiama pirmojo atnaujinimo"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); vėlavimas (500); } Serial.println (); Serial.println („Pirmasis atnaujinimas baigtas“); }
„WifiConnectionTask“
// 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 (); } // Delay de 100 erkių vTaskDelay (100); }}
„ConnectWiFi“
void connectWiFi () {Serial.println („Prisijungimas“); // 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 ("."); vėlavimas (500); } Serial.println (); Serial.print ("Prisijungta"); 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); // Spalva arba žymeklis be ekrano. SetTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}
Kilpa
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Atstatyti arba žymeklio rodymą.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); vėlavimas (100); }
„GetDate“
Data getDate () {// Atkurti duomenis iš duomenų ir išnaudoti kliento NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para a structure 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 (); grįžimo data; }
8 žingsnis: failai
Atsisiųskite failus
AŠ NE
Rekomenduojamas:
Naudokite „Magicbit“mygtukus [Magicblocks]: 5 žingsniai
Mygtuko „Magicbit“naudojimas [Magicblocks]: Ši pamoka išmokys jus naudoti „Magicbit“mygtukus naudojant „Magicblocks“. Šiame projekte, kuris grindžiamas ESP32, mes naudojame „Magicbit“kaip kūrimo lentą. Todėl šiame projekte gali būti naudojama bet kuri ESP32 kūrimo plokštė
Naudokite dirvožemio drėgmės jutiklį su „Magicbit“[„Magicblocks“]: 5 žingsniai
Naudokite dirvožemio drėgmės jutiklį su „Magicbit“[„Magicblocks“]: ši pamoka išmokys jus naudoti dirvožemio drėgmės jutiklį su „Magicbit“naudojant „Magicblocks“. Šiame projekte, kuris grindžiamas ESP32, mes naudojame „Magicbit“kaip kūrimo lentą. Todėl šiame projekte galima naudoti bet kurią ESP32 kūrimo plokštę
Naudokite ultragarso jutiklį su „Magicbit“[„Magicblocks“]: 5 žingsniai
Naudokite ultragarso jutiklį su „Magicbit“[„Magicblocks“]: ši pamoka išmokys jus naudoti ultragarso jutiklį su „Magicbit“naudojant „Magicblocks“. Šiame projekte, kuris grindžiamas ESP32, mes naudojame „Magicbit“kaip kūrimo lentą. Todėl šiame projekte gali būti naudojama bet kuri ESP32 kūrimo plokštė
Laiko gavimas iš interneto naudojant ESP8266 - NTP laikrodžio projektas su ESP8266 „Nodemcu“: 5 žingsniai
Laiko gavimas iš interneto naudojant ESP8266 | NTP laikrodžio projektas su ESP8266 Nodemcu: Šioje pamokoje pamatysime, kaip gauti laiko naudojant ESP8266/nodemcu su „Arduino IDE“. Laiko gavimas yra ypač naudingas registruojant duomenis ir rodant laiko žymę. Jei jūsų ESP8266 projektas turi prieigą prie interneto, galite gauti laiko naudodami „Network T
Kaip paskelbti ESP32 duomenis su NTP laiko žyma „IoT Cloud“: 5 žingsniai
Kaip paskelbti ESP32 duomenis su NTP laiko žyma „IoT Cloud“: Daugelyje programų vartotojai turi siųsti savo duomenis kartu su vietine reikšmių, kurios turi būti išsiųstos į naudingąją apkrovą, laiko žyma į „AskSensors IoT“debesį. Laiko žymos formatas yra UNIX epochos laikas: milisekundžių skaičius, praėjęs nuo sausio