Innholdsfortegnelse:
- Trinn 1: Demonstrasjon
- Trinn 2: Montering
- Trinn 3: Montering - Tabell
- Trinn 4: Adafruit GFX -bibliotek
- Trinn 5: Adafruit ST7735 bibliotek
- Trinn 6: NTPClient Library
- Trinn 7: ESP32_NTP.ino
- Trinn 8: Filer
Video: Ikke kast bort tiden din: Bruk NTP !: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Få tiden din til å telle! Dette er et tema som diskuteres ofte blant abonnentene mine, og av hvilken grunn? På grunn av det enkle og uunnværlige faktum at når du lager en datalogger, og for alt som involverer automatisering, trenger du riktig tid! Og det er flere måter å måle tid på: blant annet klokke med batteri, RTC (sanntidsklokke). Men den jeg vil vise deg i dag (som informerer dato, ukedag og klokkeslett) er NTP (Network Time Protocol), som er online. I denne videoen henter vi informasjon om dato og klokkeslett online, og viser informasjonen på skjermen.
Trinn 1: Demonstrasjon
Trinn 2: Montering
Trinn 3: Montering - Tabell
Trinn 4: Adafruit GFX -bibliotek
I Arduino IDE, gå til Sketch-> Include Library-> Manage Libraries …
Installer Adafruit GFX Library
Trinn 5: Adafruit ST7735 bibliotek
I Arduino IDE, gå til Sketch-> Include Library-> Manage Libraries …
Installer Adafruit ST7735
Trinn 6: NTPClient Library
Gå til https://github.com/taranais/NTPClient og last ned det taranais-modifiserte NTPClient-biblioteket.
Pakk ut og legg mappen i C: / Users / Documents / Arduino / biblioteker
Trinn 7: ESP32_NTP.ino
Inkluderer og definerer
#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 dag; int måned; int år; int timer; int minutter; int sekunder; }; // Socket UDP que a lib utiliza para recuperar dados sobre o horário WiFiUDP udp; // Ansvarlig for gjenoppretting av NTPClient ntpClient (udp, // socket udp "0.br.pool.ntp.org", // URL til server 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 = {"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"}; // Objeto responsável pelo display Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Oppsett
ugyldig oppsett () {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 passer nenhum param, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Kjerne nummer}
OppsettNTP
void setupNTP () {// Inicializa o client NTP ntpClient.begin (); // Espera pelo primeiro oppdatering online Serial.println ("Venter på første oppdatering"); mens (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); forsinkelse (500); } Serial.println (); Serial.println ("Første oppdatering fullført"); }
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 ticks vTaskDelay (100); }}
ConnectWiFi
void connectWiFi () {Serial.println ("Koble til"); // 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 ("."); forsinkelse (500); } Serial.println (); Serial.print ("Koblet til"); 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}
Løkke
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Tilbakestill visning av markør. SetCursor (0, 0); // Vis ikke noe 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); forsinkelse (100); }
GetDate
Date getDate () {// Recupera os dados de data and horário usando o client NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Passas 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 (); returdato; }
Trinn 8: Filer
Last ned filene
INO
Anbefalt:
Bruk smarttelefon som ikke -kontakttermometer / bærbart termometer: 8 trinn (med bilder)
Bruk smarttelefon som ikke-kontakttermometer / bærbart termometer: Måling av kroppstemperatur med berøringsfri / kontaktløs som en termopistol. Jeg opprettet dette prosjektet fordi Thermo Gun nå er veldig dyrt, så jeg må skaffe alternativ til å lage DIY. Og formålet er å lage med lavbudsjettversjon.SuppliesMLX90614Ardu
Påminnelse om bruk av skjermtid (fungerer bare på Windows, iOS fungerer ikke): 5 trinn
Påminnelse om bruk av skjermtid (fungerer bare på Windows, iOS fungerer ikke): Innledning Dette er en nyttig maskin laget av Arduino, den minner deg om å hvile ved å lage en " biiii! &Quot; lyd og få datamaskinen til å gå tilbake til låseskjermen etter å ha brukt 30 minutter skjermtid. Etter å ha hvilt i 10 minutter vil det " b
Bruk tiden din til å bruke SLabs-32: 6 trinn
Tid din medarbeider bruker SLabs-32: I denne instruksen skal vi lage et nfc-basert smart medarbeider inn/ut-styringssystem som holder oversikt over dine ansattes arbeidstid. Vi får informasjon om nåværende tid ved hjelp av NTP (Network Time Protocol) ) med Wi-Fi-modulen (Esp826
Ikke kast loddetinn: 5 trinn
Ikke kast loddetinn: Lagre det, og støp kul loddetinnskulptur med det. Lagre alt som fører fra å forurense miljøet. Kort sagt, gå grønt. Bildet viser resultatet av mitt eksperiment med å støpe en loddetinn: inne i formen står det "instruerbare", men dessverre er det
Ikke kast dårlige hodetelefoner! Løs dem: 9 trinn
Ikke kast dårlige hodetelefoner! Løs dem: hodetelefonene mine går nesten alltid på samme sted. i stedet for å kaste dem og betale 10 dollar eller 20 dollar for et nytt par, kjøpte jeg noen små biter og fikset det gamle paret mitt. det er ikke så vanskelig hvis du har litt tid