/*
Wokwi | questions
LED Not Turning On When Motion is Detected
V. March 24, 2025 — 8:14 AM
I'm working on my smart home automation project using Arduino and ESP32.
The LED(red) in my kitchen are working fine, but the LED(green) in my
living room is not turning on when motion is detected.
I've checked the wiring, and the PIR sensor in the living room is
detecting motion (I can see the serial output), but the LED still
doesn't light up.
Does anyone know what could be causing this issue?
https://wokwi.com/projects/426278676302449665 (edited)
*/
#include <DHT.h>
#define DHTTYPE DHT22
#define DHTPIN 26 // DHT22 sensor pin
#define BUZZER 25 // Buzzer pin
#define PIR_KITCHEN 14 // Kitchen PIR sensor
#define PIR_LIVING 32 // Living Room PIR sensor
#define LED_KITCHEN 27 // Kitchen LED
#define LED_LIVING 33 // Living Room LED
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(PIR_KITCHEN, INPUT);
pinMode(PIR_LIVING, INPUT);
pinMode(LED_KITCHEN, OUTPUT);
pinMode(LED_LIVING, OUTPUT);
pinMode(BUZZER, OUTPUT);
}
void loop() {
// Read PIR sensors
int motionKitchen = digitalRead(PIR_KITCHEN);
int motionLiving = digitalRead(PIR_LIVING);
// 🔵 Kitchen Motion Detection
if (motionKitchen == HIGH) {
digitalWrite(LED_KITCHEN, HIGH);
Serial.println("🔵 Kitchen Motion Detected!");
} else {
digitalWrite(LED_KITCHEN, LOW);
}
// 🟢 Living Room Motion Detection
if (motionLiving == HIGH) {
digitalWrite(LED_LIVING, HIGH);
Serial.println("🟢 Living Room Motion Detected!");
} else {
digitalWrite(LED_LIVING, LOW);
}
// Read DHT22 Temperature
float temperature = dht.readTemperature();
if (isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
noTone(BUZZER); // 确保 buzzer 关闭
return;
}
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("°C");
// 🔥 Fire Alarm Trigger
if (temperature > 50) {
tone(BUZZER, 440);
Serial.println("🔥 WARNING! High Temperature Detected! 🔥");
} else {
noTone(BUZZER);
}
delay(2000);
}Kitchen
Living Room