#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 rtc;
const int relayPin = 2; // กำหนดขาที่ต่อกับรีเลย์
const int sensorPin = 34; // กำหนดขาที่ต่อกับเซ็นเซอร์วัดระดับน้ำ
void setup() {
Serial.begin(115200);
pinMode(relayPin, OUTPUT);
pinMode(sensorPin, INPUT);
// เชื่อมต่อกับ RTC
Wire.begin();
rtc.begin();
// ตรวจสอบว่า RTC ทำงานหรือไม่
if (!rtc.isrunning()) {
Serial.println("RTC is NOT running, setting time..");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Set the RTC to the date & time this sketch was compiled
}
}
void loop() {
DateTime now = rtc.now();
int currentHour = now.hour();
if (currentHour == 6 || currentHour == 12 || currentHour == 16) {
// เปิดปั้มน้ำ
digitalWrite(relayPin, HIGH);
Serial.println("Pump turned ON");
delay(1000); // รอ 1 วินาทีเพื่อป้องกันการเปิดปิดรีเลย์ไปเร็วเกินไป
} else {
// ปิดปั้มน้ำ
digitalWrite(relayPin, LOW);
Serial.println("Pump turned OFF");
delay(1000); // รอ 1 วินาทีเพื่อป้องกันการเปิดปิดรีเลย์ไปเร็วเกินไป
}
// ตรวจสอบระดับน้ำในแทงค์
int sensorValue = digitalRead(sensorPin);
if (sensorValue == HIGH) {
Serial.println("Tank is FULL");
// ปิดปั้มน้ำ
digitalWrite(relayPin, LOW);
Serial.println("Pump turned OFF (Tank is FULL)");
}
delay(1000); // รอ 1 วินาที ก่อนที่จะตรวจสอบเวลาและระดับน้ำอีกครั้ง
}