Sisällysluettelo:

Älä tuhlaa aikaasi: käytä NTP: tä !: 8 vaihetta
Älä tuhlaa aikaasi: käytä NTP: tä !: 8 vaihetta

Video: Älä tuhlaa aikaasi: käytä NTP: tä !: 8 vaihetta

Video: Älä tuhlaa aikaasi: käytä NTP: tä !: 8 vaihetta
Video: Älä tuhlaa säästöjäsi ensiasuntoon | Lehto Raha 2024, Marraskuu
Anonim
Image
Image

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

Kokoonpano
Kokoonpano

Vaihe 2: Kokoonpano

Vaihe 3: Kokoonpano - Taulukko

Kokoonpano - Pöytä
Kokoonpano - Pöytä

Vaihe 4: Adafruit GFX -kirjasto

Adafruit GFX -kirjasto
Adafruit GFX -kirjasto

Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…

Asenna Adafruit GFX -kirjasto

Vaihe 5: Adafruit ST7735 -kirjasto

Adafruit ST7735 -kirjasto
Adafruit ST7735 -kirjasto

Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…

Asenna Adafruit ST7735

Vaihe 6: NTPClient -kirjasto

NTPClient -kirjasto
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

PDF

Suositeltava: