#include <DHT22.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
DHT22 dht1(2);
DHT22 dht2(3);
DHT22 dht3(4);
int switch1State = 0;
int switch2State = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(9, INPUT_PULLUP);//Switch
pinMode(10, INPUT_PULLUP);
pinMode(11, OUTPUT);//LED
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
float temperature1 = dht1.getTemperature();
float temperature2 = dht2.getTemperature();
float temperature3 = dht3.getTemperature();
float avg = (temperature1 + temperature2 + temperature3)/3 ;
delay(2000);
Serial.println("Temp1 : " + String(temperature1) + " C");
Serial.println("Temp2 : " + String(temperature2) + " C");
Serial.println("Temp3 : " + String(temperature3) + " C");
Serial.println("avg : " + String(avg) + " C");
switch1State = digitalRead(9);
if (switch1State == LOW) {
lcd.clear();
lcd.setCursor(0, 0);
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
lcd.print("Temp1: ");
lcd.print(temperature1);
lcd.print(" C");
delay(1500);
}
switch1State = digitalRead(9);
if (switch1State == LOW) {
lcd.clear();
lcd.setCursor(0, 0);
digitalWrite(11, LOW);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
lcd.print("Temp2: ");
lcd.print(temperature2);
lcd.print(" C");
delay(1500);
}
switch1State = digitalRead(9);
if (switch1State == LOW) {
lcd.clear();
lcd.setCursor(0, 0);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
lcd.print("Temp3: ");
lcd.print(temperature3);
lcd.print(" C");
}
switch2State = digitalRead(10);
if (switch2State == LOW) {
lcd.clear();
lcd.setCursor(0, 0);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
lcd.print("avg: ");
lcd.print(avg);
lcd.print(" C");
delay(1500);
}
}