Arduino:
Obtendo a data atual

Como fazer:

O próprio Arduino não possui um método embutido para buscar diretamente a data atual, pois ele não tem um relógio de tempo real (RTC). Porém, isso pode ser alcançado usando módulos RTC externos, como o DS3231, e bibliotecas como a RTClib, desenvolvida pela Adafruit, que tornam a interface com esses módulos simples.

Primeiro, certifique-se de que a biblioteca RTClib está instalada no seu Arduino IDE. Depois, conecte o seu módulo RTC ao seu Arduino de acordo com a documentação dele.

Aqui está um exemplo simples para começar:

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

RTC_DS3231 rtc;

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

  if (!rtc.begin()) {
    Serial.println("Não foi possível encontrar o RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC perdeu energia, vamos ajustar a hora!");
    // Quando a hora precisa ser ajustada em um novo dispositivo ou após a perda de energia, você pode fazer isso aqui.
    // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

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

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

  delay(3000); // Atraso de 3 segundos para reduzir o spam serial
}

Saída de amostra (assumindo que seu RTC foi previamente ajustado):

Data Atual: 2023/4/15

Este código inicializa o módulo RTC e, então, no loop, busca e imprime a data atual no Monitor Serial a cada 3 segundos. Lembre-se, a linha rtc.adjust(...) pode ser descomentada e modificada para ajustar inicialmente a data e a hora do RTC ou após ele ter perdido energia.