//Libraries
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//Constants
#define DHTPIN1 5 // Digital Pin 5 for Wire Sensor
#define DHTPIN2 10 // Digital Pin 10 for Amp Sensor
#define DHTTYPE DHT22 // DHT22
#define FanPin1 9 //Digital Pin 9 for Amp Fan Control
#define FanPin2 4 //Digital Pin 4 for Wire Fan Contol
const int fan1Threshold = 80; // Temperature threshold to activate fan (°C)
const int fan2Threshold = 80; // Temperature threshold to activate fan (°C)
//Parts
DHT WireSensor(DHTPIN1, DHTTYPE);
DHT AmpSensor(DHTPIN2, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows
float temp1 = AmpSensor.readTemperature();
float temp2 = WireSensor.readTemperature();
void setup()
{
// Initialize LCD
Serial.begin(9600);
lcd.init();
lcd.backlight();
//Begin Sensors
AmpSensor.begin();
WireSensor.begin();
//Set Pins for Fans
pinMode (FanPin1, OUTPUT);
pinMode (FanPin2, OUTPUT);
lcd.setCursor(4,0); // move cursor to (4, 0)
lcd.print("Welcome"); // print message at (0, 0)
delay(2000); //Delay for sensor startup
lcd.setCursor(3,1); // move cursor to (3, 1)
lcd.print("Lets Rock!!"); // print message at (3, 1)
delay(2000); //Delay for sensor startup
lcd.clear();
delay(2000); //Delay for sensor startup
}
void loop()
{
delay(1000); //Delay for sensor startup
temp1 = AmpSensor.readTemperature();
temp2 = WireSensor.readTemperature ();
float temp1_f = (temp1 * 9 / 5) + 32; //converts Temp from C to F
float temp2_f = (temp2 * 9 / 5) + 32; //converts Temp from C to F
// Control for Amp Fan
if (temp1_f > fan1Threshold)
{
digitalWrite(FanPin1, HIGH); // Activate fan (adjust based on your fan)
}
else
{
digitalWrite(FanPin1, LOW); // Deactivate fan (adjust based on your fan)
}
// Control for Wire Fan
if (temp2_f > fan2Threshold)
{
digitalWrite(FanPin2, HIGH); // Activate fan (adjust based on your fan)
}
else
{
digitalWrite(FanPin2, LOW); // Deactivate fan (adjust based on your fan)
}
//Print temp and humidity values to LCD
lcd.setCursor(0, 0);
lcd.print("Amp ");
lcd.print(temp1_f);
lcd.print(" Deg");
lcd.setCursor(0, 1);
lcd.print("Wire ");
lcd.print(temp2_f) ;
lcd.println(" Deg");
delay(25); //Delay 2 sec between temperature/humidity check
//Print temp and humidity values to serial monitor
Serial.print("AmpSensor: Temp:");
Serial.print(temp1_f);
Serial.print(" Deg, Temp: ");
Serial.print(temp2_f);
Serial.println(" Deg");
}