Nykyisen päivämäärän hankkiminen

Arduino:
Nykyisen päivämäärän hankkiminen

Kuinka:

Arduino itsessään ei sisällä sisäänrakennettua menetelmää nykyisen päivämäärän suoraan noutamiseen, sillä siitä puuttuu reaaliaikakello (RTC). Tämän voi kuitenkin saavuttaa käyttämällä ulkoisia RTC-moduuleja, kuten DS3231, ja kirjastoja, kuten RTClib, jonka on kehittänyt Adafruit, ja joka tekee näiden moduulien kanssa rajapinnan muodostamisesta suoraviivaista.

Varmista ensin, että RTClib-kirjasto on asennettu Arduino IDE:eesi. Kytke sitten RTC-moduulisi Arduinoon sen dokumentaation mukaisesti.

Tässä on yksinkertainen esimerkki aloittamiseen:

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

RTC_DS3231 rtc;

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

  if (!rtc.begin()) {
    Serial.println("Ei löydetty RTC:tä");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC menetti virran, asetetaan aika!");
    // Kun laitteella on uusi tai sen jälkeen kun se on menettänyt virran ja aika täytyy asettaa, voit asettaa sen tässä.
    // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

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

  Serial.print("Nykyinen päivämäärä: ");
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.println(now.day(), DEC);

  delay(3000); // Viivästys 3 sekuntia vähentämään sarjatulostuksen määrää
}

Esimerkkilähtötieto (olettaen, että RTC on aiemmin asetettu):

Nykyinen päivämäärä: 2023/4/15

Tämä koodi alustaa RTC-moduulin ja hakee sitten pääsilmukassa ja tulostaa nykyisen päivämäärän sarjatarkkailuun joka 3. sekunti. Muista, että rtc.adjust(...)-rivi voidaan ottaa kommentista pois ja muuttaa, jotta RTC:n päivämäärä ja aika voidaan asettaa alunperin tai sen jälkeen, kun se on menettänyt virran.