ESP8266 WiFi – Datum en tijd ophalen van internet (ArduinoIDE)
Op deze pagina staat een voorbeeld om met een ESP module en Arduino code (c++) de datum en tijd op te halen van een NTP server, handig als je “timestamps” nodig hebt voor het uitlezen van sensoren.
Wat heb je nodig?
– NTPClient bibliotheek
Script voor tijd
Dit script geeft de tijd weer in HH:MM:SS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <NTPClient.h> #include <ESP8266WiFi.h> #include <WiFiUdp.h> // WiFi parameters to be configured const char* ssid = ""; // Hoofdlettergevoelig const char* password = ""; // Hoofdlettergevoelig #define NTP_OFFSET 60 * 60 // In seconds #define NTP_INTERVAL 60 * 1000 // In miliseconds #define NTP_ADDRESS "europe.pool.ntp.org" WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, NTP_ADDRESS, NTP_OFFSET, NTP_INTERVAL); void setup(void) { Serial.begin(9600); Serial.print("Bezig met verbinden"); WiFi.begin(ssid, password); // Connect to WiFi timeClient.begin(); // while wifi not connected yet, print '.' // then after it connected, get out of the loop while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // Verbonden. Serial.println("OK!"); } void loop() { timeClient.update(); Serial.println(timeClient.getFormattedTime()); delay(1000); } |
Output:
1 2 3 |
21:58:14 21:58:15 21:58:16 |
Script voor tijd en datum
Dit script geeft de tijd weer in YYYY-MM-DD – HH:MM:SS
LET OP: Voor de datum heb je wel de patched versie van de bibliotheek nodig!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <NTPClient.h> #include <ESP8266WiFi.h> #include <WiFiUdp.h> // WiFi parameters to be configured const char* ssid = "Matrix"; // Hoofdlettergevoelig const char* password = "139726845$e"; // Hoofdlettergevoelig #define NTP_OFFSET 60 * 60 // In seconds #define NTP_INTERVAL 60 * 1000 // In miliseconds #define NTP_ADDRESS "europe.pool.ntp.org" WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, NTP_ADDRESS, NTP_OFFSET, NTP_INTERVAL); void setup(void) { Serial.begin(9600); Serial.print("Bezig met verbinden"); WiFi.begin(ssid, password); // Connect to WiFi timeClient.begin(); // while wifi not connected yet, print '.' // then after it connected, get out of the loop while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // Verbonden. Serial.println("OK!"); } void loop() { timeClient.update(); Serial.print(timeClient.getFormattedDate()); Serial.print(" - "); Serial.println(timeClient.getFormattedTime()); delay(1000); } |
Output:
1 2 3 |
2018-01-17 - 21:58:26 2018-01-17 - 21:58:27 2018-01-17 - 21:58:28 |