Innehållsförteckning:
- Steg 1: Demonstration
- Steg 2: Montering
- Steg 3: Montering - Tabell
- Steg 4: Adafruit GFX -bibliotek
- Steg 5: Adafruit ST7735 bibliotek
- Steg 6: NTPClient -bibliotek
- Steg 7: ESP32_NTP.ino
- Steg 8: Filer
Video: Slösa inte bort din tid: Använd NTP !: 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Få din tid att räkna! Detta är ett ofta diskuterat ämne bland mina prenumeranter, och av vilken anledning? På grund av det enkla och oumbärliga faktumet att när du gör en datalogger och för allt som rör automatisering behöver du rätt tid! Och det finns flera sätt att mäta tid: bland annat klocka med batteri, RTC (Real Time Clock). Men den jag vill visa dig idag (som informerar datum, veckodag och tid) är NTP (Network Time Protocol), som är online. I den här videon hämtar vi information om datum och tid online och visar informationen på displayen.
Steg 1: Demonstration
Steg 2: Montering
Steg 3: Montering - Tabell
Steg 4: Adafruit GFX -bibliotek
I Arduino IDE, gå till Sketch-> Inkludera bibliotek-> Hantera bibliotek …
Installera Adafruit GFX Library
Steg 5: Adafruit ST7735 bibliotek
I Arduino IDE, gå till Sketch-> Inkludera bibliotek-> Hantera bibliotek …
Installera Adafruit ST7735
Steg 6: NTPClient -bibliotek
Gå till https://github.com/taranais/NTPClient och ladda ner det taranais-modifierade NTPClient-biblioteket.
Packa upp och placera mappen i C: / Users / Documents / Arduino / libraries
Steg 7: ESP32_NTP.ino
Inkluderar och definierar
#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ånad; int år; int timmar; int minuter; int sekunder; }; // Socket UDP que a lib utiliza para recuperar dados sobre o horário WiFiUDP udp; // Objeto responsável por recuperar dados sobre horário 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 = {"söndag", "måndag", "tisdag", "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);
Uppstart
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 param, // prioridade NULL, // Não precisamos de referência para a tarefa 0); // Número do core}
SetupNTP
void setupNTP () {// Inicializa o client NTP ntpClient.begin (); // Espera pelo primeiro uppdatering online Serial.println ("Väntar på första uppdatering"); medan (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); fördröjning (500); } Serial.println (); Serial.println ("Första uppdateringen klar"); }
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 ("Ansluter"); // 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 ("."); fördröjning (500); } Serial.println (); Serial.print ("Ansluten till"); Serial.println (WiFi. SSID ()); }
SetupDisplay
void setupDisplay () {display.initR (INITR_BLACKTAB); // Inicializa o display display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho gör 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}
Slinga
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Återställ markörvisning.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); fördröjning (100); }
GetDate
Date getDate () {// Recupera os dados de data and horário usando o client 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 (); Återlämningsdatum; }
Steg 8: Filer
Ladda ner filerna
INO
Rekommenderad:
I2C / IIC LCD -skärm - Använd en SPI LCD till I2C LCD -skärmen Använd SPI till IIC -modulen med Arduino: 5 steg
I2C / IIC LCD -skärm | Använd en SPI LCD till I2C LCD -skärmen Använda SPI till IIC -modulen med Arduino: Hej killar eftersom en vanlig SPI LCD 1602 har för många trådar att ansluta så det är mycket svårt att ansluta den till arduino men det finns en modul på marknaden som kan konvertera SPI -display till IIC -display så då behöver du bara ansluta 4 ledningar
Köp inte en GSM -modul, använd din gamla telefon !: 6 steg
Köp inte en GSM -modul, använd din gamla telefon !: Så nyligen har jag gjort många trådlösa projekt, mestadels baserat på en Bluetooth -modul men sedan dess har jag velat gå vidare och börja göra mina projekt SMS eller Telefonsamtalskontroll vilket är nästan lika enkelt med hjälp av en GSM -modul
Släng inte bort lödningen: 5 steg
Släng inte bort lodet: Spara det och gjut sval lödskulptur med det. Spara allt som leder från att förorena miljön. Kort sagt, Go Green. Bilden visar resultatet av mitt experiment med att gjuta en lödgöt: inuti formen står det "instruerbara" men tyvärr
Använd din Mac OSX som en Wirelss -adapter för din XBOX 360: 6 steg
Använd din Mac OSX som en Wirelss -adapter för din XBOX 360: Jag såg en annan guide om hur du gör det här men det var fruktansvärt fel och utelämnade så mycket saker, så jag bestämde mig för att göra min egen
Släng inte bort dåliga telefoner! Fixa dem: 9 steg
Släng inte dåliga telefoner! Fixa dem: mina hörlurar går nästan alltid sönder på samma ställe. istället för att krossa dem och skjuta ut $ 10 eller $ 20 dollar för ett nytt par, köpte jag några små bitar och fixade mitt gamla par. det är inte så svårt om du har tid