#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
// DS18B20 Temperature Sensor on Pin 8
OneWire oneWire(8);
DallasTemperature sensor(&oneWire);
// PIR Sensor on Pin 9
int inputPin = 9;
int pirState = LOW;
int val = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup(void) {
Serial.begin(115200);
delay(200); // Increased delay for sensor initialization
sensor.begin();
pinMode(inputPin, INPUT);
Serial.println("System Initialized...");
lcd.init();
lcd.backlight();
lcd.print("Hello World!");
}
void loop(void) {
// Read and display temperature
sensor.requestTemperatures();
float tempC = sensor.getTempCByIndex(0);
Serial.print("Temperature: ");
Serial.print(tempC);
Serial.println(" °C");
delay(1000);
// PIR Sensor - Motion Detection
val = digitalRead(inputPin);
if (val == HIGH && pirState == LOW) {
Serial.println("Motion detected!");
pirState = HIGH;
}
else if (val == LOW && pirState == HIGH) {
Serial.println("Motion ended!");
pirState = LOW;
}
delay(200); // Small delay to avoid excessive serial prints
}