#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22
#define MQ2_PIN 34
#define LDR_PIN 35
#define BUZZER 26
#define LED 27
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
dht.begin();
lcd.init();
lcd.backlight();
pinMode(MQ2_PIN, INPUT);
pinMode(LDR_PIN, INPUT);
pinMode(BUZZER, OUTPUT);
pinMode(LED, OUTPUT);
lcd.setCursor(0, 0);
lcd.print("Smart Factory");
lcd.setCursor(0, 1);
lcd.print("Monitoring...");
delay(2000);
lcd.clear();
}
void loop() {
// Read sensors
float temp = dht.readTemperature();
float hum = dht.readHumidity();
int gas = analogRead(MQ2_PIN);
int light = analogRead(LDR_PIN);
// Print to Serial Monitor
Serial.print("Temp: "); Serial.print(temp);
Serial.print("C Hum: "); Serial.print(hum);
Serial.print("% Gas: "); Serial.print(gas);
Serial.print(" Light: "); Serial.println(light);
// Display on LCD
lcd.setCursor(0, 0);
lcd.print("T:"); lcd.print(temp); lcd.print("C ");
lcd.print("H:"); lcd.print(hum); lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("G:"); lcd.print(gas);
lcd.print(" L:"); lcd.print(light);
// Alert system
if (temp > 40 || gas > 1500) {
digitalWrite(BUZZER, HIGH);
digitalWrite(LED, HIGH);
} else {
digitalWrite(BUZZER, LOW);
digitalWrite(LED, LOW);
}
delay(2000);
}