Sisällysluettelo:
- Vaihe 1: Esittely
- Vaihe 2: Kokoonpano
- Vaihe 3: Kokoonpano - Taulukko
- Vaihe 4: Adafruit GFX -kirjasto
- Vaihe 5: Adafruit ST7735 -kirjasto
- Vaihe 6: NTPClient -kirjasto
- Vaihe 7: ESP32_NTP.ino
- Vaihe 8: Tiedostot
Video: Älä tuhlaa aikaasi: käytä NTP: tä !: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Ota aikasi huomioon! Tämä on usein keskusteltu aihe tilaajieni keskuudessa, ja mistä syystä? Koska yksinkertainen ja välttämätön tosiasia on, että kun teet dataloggeria, ja kaikkeen automaatioon liittyvään, tarvitset oikean ajan! On myös useita tapoja mitata aikaa: muun muassa akkuinen kello, RTC (Real Time Clock). Mutta se, jonka haluan näyttää teille tänään (joka ilmoittaa päivämäärän, viikonpäivän ja ajan), on NTP (Network Time Protocol), joka on verkossa. Tästä videosta haemme päivämäärän ja kellonajan tiedot verkosta ja näytämme tiedot näytöllä.
Vaihe 1: Esittely
Vaihe 2: Kokoonpano
Vaihe 3: Kokoonpano - Taulukko
Vaihe 4: Adafruit GFX -kirjasto
Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…
Asenna Adafruit GFX -kirjasto
Vaihe 5: Adafruit ST7735 -kirjasto
Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…
Asenna Adafruit ST7735
Vaihe 6: NTPClient -kirjasto
Siirry osoitteeseen https://github.com/taranais/NTPClient ja lataa taranais-muokattu NTPClient-kirjasto.
Pura ja aseta kansio C: / Users / Documents / Arduino / -kirjastoihin
Vaihe 7: ESP32_NTP.ino
Sisältää ja määrittelee
#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; // Rakennekomponentit do dia e hora structure Päivämäärä {int dayOfWeek; int päivä; int kuukausi; int vuosi; int tuntia; int minuuttia; int sekuntia; }; // Socket UDP que a lib utiliza para recuperar dados sobre o horário WiFiUDP udp; // Objektivastaus talteenottimen avulla 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 = {"Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"}; // Objektivastaus pelonäyttö Adafruit_ST7735 display = Adafruit_ST7735 (DISPLAY_CS, DISPLAY_DC, DISPLAY_MOSI, DISPLAY_CLK, DISPLAY_RST);
Perustaa
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}
SetupNTP
void setupNTP () {// Inicializa tai asiakas NTP ntpClient.begin (); // Espera pelo primeiro update online Serial.println ("Odotetaan ensimmäistä päivitystä"); while (! ntpClient.update ()) {Serial.print ("."); ntpClient.forceUpdate (); viive (500); } Sarja.println (); Serial.println ("Ensimmäinen päivitys valmis"); }
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 (); } // Viive 100 punkista vTaskDelay (100); }}
Yhdistä Wi -Fi
void connectWiFi () {Serial.println ("Yhdistäminen"); // 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 ("."); viive (500); } Sarja.println (); Serial.print ("Yhdistetty"); Serial.println (WiFi. SSID ()); }
SetupDisplay
void setupDisplay () {display.initR (INITR_BLACKTAB); // Näyttö tai näyttö display.setRotation (3); // Rotaciona display.setTextSize (2); // Tamanho do texto display.fillScreen (ST77XX_BLACK); // Preenche com a cor preta display.setCursor (0, 0); // Coloca tai kohdistin ei tule näyttöä.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // Texto branco com fundo preto display.setTextWrap (false); // Não pula linha automaticamente}
Silmukka
void loop () {// Recupera os dados sobre a data e horário Date date = getDate (); // Nollaa tai osoittimen näyttö.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); viive (100); }
GetDate
Päivämäärä getDate () {// Recupera os dados de data e horário usando o client NTP char* strDate = (char*) ntpClient.getFormattedDate (). C_str (); // Passa os dados da string para a structure Päivämäärä päivämäärä; 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 (); palautuspäivä; }
Vaihe 8: Tiedostot
Lataa tiedostot
INO
Suositeltava:
Arduino -maaperän kosteudenvalvontatikku - älä koskaan unohda kastella kasvejasi: 4 vaihetta (kuvilla)
Arduino -maaperän kosteudenvalvontatikku - älä koskaan unohda kasvien kastelua: Unohdatko usein kastella sisäkasvejasi? Tai ehkä annat heille liikaa huomiota ja kastat heitä? Jos teet niin, sinun pitäisi tehdä itsellesi akkukäyttöinen maaperän kosteuden tarkkailutikku. Tämä näyttö käyttää kapasitiivista maaperän kosteutta
Ikuinen akku - Älä koskaan vaihda AAA -paristoja uudelleen!: 14 vaihetta
Ikuinen akku - Älä koskaan vaihda AAA: ta uudelleen !!: Kyllästynyt vaihtamaan paristoja tässä keittiövaa'assa, koska kuten aina käy, sinulla ei ole koskaan oikeaa kokoa käsilläsi, kun tarvitset niitä. Tämän tekeminen ei ole mitään uutta. Itse asiassa muistan, että tein sen lapsena (c
BEND_it: Älä stressaa vain "BEND_it" ulos: 8 vaihetta (kuvilla)
BEND_it: Älä stressaa vain "BEND_it" Out: JOHDANTOBEND_it on pienimuotoinen pikatestauslaite. Se on hyvä taivuttamaan ja rikkomaan asioita. Siitä voi myös olla välillä hyötyä. Se voisi auttaa noutamaan tietoja, kuten: Vaakasuora työntövoima kaarevista toiminnoista johtuen
KÄYTÄ KÄYTÄ VANHTA KANNETTAVAA AKKUASIA TEHOA PANKKI: 9 vaihetta (kuvilla)
KÄYTÄ VANHA LAPTOP -AKKU TEHOA PANKKI: [Toista video] [Solar Power Bank] Muutama kuukausi sitten Dellin kannettavan tietokoneen akku ei toiminut.Kun irrotan sen verkkovirrasta, kannettava tietokone sammui välittömästi. Muutaman päivän kuluttua turhautuneena, vaihdoin pariston ja säilytin kuolleen (minun
Älä osta GSM -moduulia, käytä vanhaa puhelintasi!: 6 vaihetta
Älä osta GSM -moduulia, käytä vanhaa puhelintasi !: Joten viime aikoina olen tehnyt paljon langattomia projekteja, jotka perustuvat enimmäkseen Bluetooth -moduulin ympärille, mutta siitä lähtien olen halunnut siirtyä eteenpäin ja aloittaa projektien tekstiviestien tai Puheluohjattu, mikä on melkein yhtä helppoa GSM -moduulin avulla