Arduino:
Het huidige datum ophalen
Hoe:
Laten we onze Arduino slim maken over de datum. We gebruiken een RTC-module, zoals de DS3231, die nauwkeurig is en een backupbatterij heeft.
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Kon RTC niet vinden");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC heeft stroom verloren, laten we de tijd instellen!");
// volgende regel stelt de RTC in op de datum & tijd waarop deze sketch is gecompileerd
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
delay(3000); // wacht 3 seconden voordat de datum wordt bijgewerkt
}
Voorbeelduitvoer:
2023/4/5
Diepere Duik:
Historische context? Vroege computers hadden de datum niet nodig. Het werd pas belangrijk toen we begonnen met loggen en multi-gebruikerssystemen. Tegenwoordig wordt het gewoon verwacht.
Alternatieven voor RTC’s bevatten het gebruik van het Network Time Protocol (NTP) wanneer verbonden met het internet, of GPS-modules die nauwkeurige tijd- en datuminformatie bieden.
Implementatiedetails doen ertoe. Niet alle RTC’s zijn gelijk geschapen. Sommige, zoals de DS1307, zijn minder nauwkeurig en kunnen meer over tijd afdwalen. Bibliotheken zoals RTClib.h
abstraheren de verschillen tussen modules, wat je leven makkelijker maakt.
NTP over WiFi gebruiken vereist een andere benadering. Je hebt een ESP8266 of ESP32 met internettoegang nodig, en moet bibliotheken zoals WiFi.h
en NTPClient.h
includeren. Het codeerpatroon verandert— je maakt periodieke verzoeken aan een tijdserver en analyseert de resultaten voor de datum.
Zie Ook:
- RTClib bibliotheek: Een bibliotheek die interface met RTC’s een briesje maakt.
- DS3231 datasheet: De details over de DS3231 RTC-module.
- NTPClient bibliotheek: Voor het verkrijgen van tijd via het internet.
- Tijd en Datum op Arduino Zonder een RTC: Alternatieve methoden als je geen RTC gebruikt.