#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 // DS18B20 data pin
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
const int pirPin = 3;
const int buzzerPin = 4;
const int ledTempPin = 5;
const int ledMotionPin = 6;
const float tempThreshold = 50.0; // Celsius
const int motionThreshold = HIGH; // PIR sensor logic level for motion detection
void setup() {
Serial.begin(9600);
sensors.begin();
pinMode(pirPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledTempPin, OUTPUT);
pinMode(ledMotionPin, OUTPUT);
}
void loop() {
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
int motionDetected = digitalRead(pirPin);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" C");
Serial.print("Motion Detected: ");
Serial.println(motionDetected);
if (temperature > tempThreshold) {
digitalWrite(ledTempPin, HIGH);
tone(buzzerPin, 1000); // 1kHz tone
} else {
digitalWrite(ledTempPin, LOW);
noTone(buzzerPin);
}
if (motionDetected == motionThreshold) {
digitalWrite(ledMotionPin, HIGH);
tone(buzzerPin, 2000); // 2kHz tone for motion detection
} else {
digitalWrite(ledMotionPin, LOW);
}
delay(1000);
}