#define LED_PIN 12
#define FAN_PIN 11
#define PUMP_PIN 10
#define BUTTON_LED 7
#define BUTTON_FAN 6
#define BUTTON_PUMP 5
bool ledState = false;
bool fanState = false;
bool pumpState = false;
void setup() {
Serial.begin(115200); // Kết nối với ESP32
pinMode(LED_PIN, OUTPUT);
pinMode(FAN_PIN, OUTPUT);
pinMode(PUMP_PIN, OUTPUT);
pinMode(BUTTON_LED, INPUT_PULLUP);
pinMode(BUTTON_FAN, INPUT_PULLUP);
pinMode(BUTTON_PUMP, INPUT_PULLUP);
}
void loop() {
// Nhận lệnh từ ESP32 qua Serial để điều khiển thiết bị
if (Serial.available()) {
String command = Serial.readStringUntil('\n');
if (command.startsWith("LED:")) {
ledState = (command.substring(4) == "ON");
digitalWrite(LED_PIN, ledState ? HIGH : LOW);
Serial.println("LED:" + String(ledState ? "ON" : "OFF"));
} else if (command.startsWith("FAN:")) {
fanState = (command.substring(4) == "ON");
digitalWrite(FAN_PIN, fanState ? HIGH : LOW);
Serial.println("FAN:" + String(fanState ? "ON" : "OFF"));
} else if (command.startsWith("PUMP:")) {
pumpState = (command.substring(5) == "ON");
digitalWrite(PUMP_PIN, pumpState ? HIGH : LOW);
Serial.println("PUMP:" + String(pumpState ? "ON" : "OFF"));
}
}
// Đọc nút bấm để điều khiển thiết bị thủ công và gửi trạng thái lên ESP32
if (digitalRead(BUTTON_LED) == LOW) {
ledState = !ledState;
digitalWrite(LED_PIN, ledState ? HIGH : LOW);
delay(200); // Chống rung nút
Serial.println("Button LED Pressed - State: " + String(ledState ? "ON" : "OFF"));
}
if (digitalRead(BUTTON_FAN) == LOW) {
fanState = !fanState;
digitalWrite(FAN_PIN, fanState ? HIGH : LOW);
delay(200);
Serial.println("Button FAN Pressed - State: " + String(fanState ? "ON" : "OFF"));
}
if (digitalRead(BUTTON_PUMP) == LOW) {
pumpState = !pumpState;
digitalWrite(PUMP_PIN, pumpState ? HIGH : LOW);
delay(200);
Serial.println("Button PUMP Pressed - State: " + String(pumpState ? "ON" : "OFF"));
}
}