#include <Wire.h>
#include "RTClib.h"
RTC_DS3231 rtc;
#define TRIG_PIN 5
#define ECHO_PIN 18
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
// เริ่มต้น RTC
if (!rtc.begin()) {
Serial.println("ไม่พบ RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC เพิ่งถูกรีเซ็ต ตั้งเวลาใหม่...");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// จะตั้งตามเวลาคอมตอนอัปโหลดโค้ด
}
}
void loop() {
// อ่านระยะจาก HC-SR04
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2; // cm
// อ่านเวลา RTC
DateTime now = rtc.now();
Serial.print("เวลา: ");
Serial.print(now.year()); Serial.print('/');
Serial.print(now.month()); Serial.print('/');
Serial.print(now.day()); Serial.print(' ');
Serial.print(now.hour()); Serial.print(':');
Serial.print(now.minute()); Serial.print(':');
Serial.print(now.second());
Serial.print(" | ระยะทาง: ");
Serial.print(distance);
Serial.println(" cm");
delay(1000);
}