#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.clear();
// กำหนดขา 2, 3, และ 4 เป็นขาเอาท์พุท
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
// เริ่มต้นด้วยการเปิดปั๊มน้ำ
digitalWrite(2, HIGH); // ปั๊มน้ำปิด
digitalWrite(3, HIGH); // ไฟ LED ที่ D3 เปิด
digitalWrite(4, HIGH); // ไฟ LED ที่ D4 เปิด
delay(1000);
lcd.setCursor(0, 0);
lcd.print("IRRIGATION");
lcd.setCursor(0, 1);
lcd.print("SYSTEM IS ON ");
delay(3000);
lcd.clear();
}
void loop() {
int value = analogRead(A0);
Serial.println(value);
// ควบคุมปั๊มน้ำและไฟ LED ตามค่าที่อ่านได้จากเซ็นเซอร์ความชื้น
if (value > 950) {
digitalWrite(2, LOW); // ปั๊มน้ำเปิด
digitalWrite(3, LOW); // ไฟ LED ที่ D3 ปิด
digitalWrite(4, HIGH); // ไฟ LED ที่ D4 เปิด
lcd.setCursor(0, 0);
lcd.print("Water Pump is ON ");
} else {
digitalWrite(2, HIGH); // ปั๊มน้ำปิด
digitalWrite(3, HIGH); // ไฟ LED ที่ D3 เปิด
digitalWrite(4, LOW); // ไฟ LED ที่ D4 ปิด
lcd.setCursor(0, 0);
lcd.print("Water Pump is OFF");
}
// แสดงสถานะความชื้นบนจอ LCD
if (value < 300) {
lcd.setCursor(0, 1);
lcd.print("Moisture : HIGH");
} else if (value > 300 && value < 950) {
lcd.setCursor(0, 1);
lcd.print("Moisture : MID ");
} else if (value > 950) {
lcd.setCursor(0, 1);
lcd.print("Moisture : LOW ");
}
}