#include "RTClib.h"
RTC_DS1307 rtc;
void setup () {
Serial.begin(57600);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
Serial.println("Введите дату и время в формате ДД-ММ-ГГГГ/ЧЧ:ММ:СС и нажмите Enter:");
while (true) {
if (Serial.available()) {
String input = Serial.readStringUntil('\n');
input.trim();
if (input.length() == 19 && input.charAt(2) == '-' && input.charAt(5) == '-' && input.charAt(10) == '/' && input.charAt(13) == ':' && input.charAt(16) == ':') {
int day = input.substring(0, 2).toInt();
int month = input.substring(3, 5).toInt();
int year = input.substring(6, 10).toInt();
int hour = input.substring(11, 13).toInt();
int minute = input.substring(14, 16).toInt();
int second = input.substring(17, 19).toInt();
rtc.adjust(DateTime(year, month, day, hour, minute, second));
Serial.println("Время успешно установлено.");
break;
} else {
Serial.println("Неверный формат. Введите время в формате ДД-ММ-ГГГГ/ЧЧ:ММ:СС и нажмите Enter:");
}
}
}
}
void loop() {
DateTime time = rtc.now();
Serial.print("Текущее время: ");
Serial.print(time.timestamp(DateTime::TIMESTAMP_DATE));
Serial.print(" / ");
Serial.println(time.timestamp(DateTime::TIMESTAMP_TIME));
delay(5000);
}