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: