#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Pin Definitions
#define DHTPIN 2
#define DHTTYPE DHT11
#define MQ135PIN A0
#define LDRPIN A1
#define LEDPIN 5
#define BUZZERPIN 4
// Initialize DHT sensor
DHT dht(DHTPIN, DHTTYPE);
// Initialize LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Begin serial communication
Serial.begin(9600);
// Initialize sensors and peripherals
dht.begin();
lcd.begin(16,2);
lcd.backlight();
pinMode(MQ135PIN, INPUT);
pinMode(LDRPIN, INPUT);
pinMode(LEDPIN, OUTPUT);
pinMode(BUZZERPIN, OUTPUT);
// Display startup message
lcd.setCursor(0, 0);
lcd.print("Smart Helmet");
delay(2000);
lcd.clear();
}
void loop() {
// Read temperature and humidity
float temp = dht.readTemperature();
float hum = dht.readHumidity();
// Read gas level
int gasLevel = analogRead(MQ135PIN);
// Read light intensity
int lightLevel = analogRead(LDRPIN);
// Display data on LCD
lcd.setCursor(0, 0);
lcd.print("T:");
lcd.print(temp);
lcd.print(" H:");
lcd.print(hum);
lcd.setCursor(0, 1);
lcd.print("Gas:");
lcd.print(gasLevel);
// Alert for high gas level
if (gasLevel > 600) { // Adjust threshold as needed
digitalWrite(BUZZERPIN, HIGH);
} else {
digitalWrite(BUZZERPIN, LOW);
}
// Automated light control
if (lightLevel < 500) { // Adjust threshold for low light
digitalWrite(LEDPIN, HIGH); // Turn on LED
} else {
digitalWrite(LEDPIN, LOW); // Turn off LED
}
delay(1000); // Update interval
}