Arduino:
Få det aktuella datumet

Hur man gör:

Arduino i sig har ingen inbyggd metod för att direkt hämta det aktuella datumet, eftersom den saknar en realtidsklocka (RTC). Detta kan dock åstadkommas genom att använda externa RTC-moduler som DS3231 och bibliotek såsom RTClib, utvecklat av Adafruit, vilket gör det enkelt att koppla upp sig mot dessa moduler.

Först, se till att RTClib-biblioteket är installerat i din Arduino IDE. Koppla sedan din RTC-modul till din Arduino enligt dess dokumentation.

Här är ett enkelt exempel för att komma igång:

#include <Wire.h>
#include "RTClib.h"

RTC_DS3231 rtc;

void setup() {
  Serial.begin(9600);

  if (!rtc.begin()) {
    Serial.println("Kunde inte hitta RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC förlorade ström, låt oss ställa in tiden!");
    // När tiden behöver ställas in på en ny enhet eller efter en strömförlust, kan du göra det här.
    // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  DateTime now = rtc.now();

  Serial.print("Aktuellt datum: ");
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.println(now.day(), DEC);

  delay(3000); // Fördröjning med 3 sekunder för att minska seriens spam
}

Exempel på utdata (förutsatt att din RTC har ställts in tidigare):

Aktuellt datum: 2023/4/15

Denna kod initierar RTC-modulen och hämtar sedan och skriver ut det aktuella datumet till seriemotorn var 3:e sekund. Kom ihåg, linjen rtc.adjust(...) kan avkommenteras och modifieras för att initialt eller efter ett strömbortfall ställa in RTC:ns datum och tid.