#include <DHT.h>
#define DHTPIN 3 // what pin we're connected to
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
int pirPin = 2; // PIR sensor pin
int ledPin = 7; // LED pin
int buzzerPin = 8; // Buzzer pin
int pirState = LOW; // current state of the PIR sensor
int lastPirState = LOW; // previous state of the PIR sensor
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
dht.begin();
}
void loop(){
// Read PIR sensor state
pirState = digitalRead(pirPin);
// If the PIR sensor state has changed
if (pirState != lastPirState) {
// If motion is detected
if (pirState == HIGH) {
digitalWrite(ledPin, HIGH);
digitalWrite(buzzerPin, HIGH);
delay(500);
digitalWrite(buzzerPin, LOW);
Serial.println("Motion detected!");
} else {
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
}
// Remember the PIR sensor state for next time
lastPirState = pirState;
}
// Read temperature and humidity
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Print temperature and humidity to serial monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("% Temperature: ");
Serial.print(temperature);
Serial.println("°C");
delay(1000);
}