/* ABE 80 Exercise 7
Interfacing Multiple Devices
Submitted by: Jayson J. Labrador
November 6, 2023
*/
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
int redLED = 9;
int buzz = 8;
DHT dht1 (10, DHT22);
DHT dht2 (11, DHT22);
DHT dht3 (12, DHT22);
LiquidCrystal_I2C lcd (0x27, 20, 4);
float t1;
float t2;
float t3;
float ave_T;
float h1;
float h2;
float h3;
float ave_H;
void setup() {
Serial.begin(9600);
pinMode(redLED, OUTPUT);
pinMode(buzz, OUTPUT);
dht1.begin();
dht2.begin();
dht3.begin();
lcd.init();
lcd.backlight();
}
void loop() {
t1 = dht1.readTemperature();
t2 = dht2.readTemperature();
t3 = dht3.readTemperature();
ave_T = (t1 + t2 + t3)/3;
h1 = dht1.readHumidity();
h2 = dht2.readHumidity();
h3 = dht3.readHumidity();
ave_H = (h1 + h2 + h3)/3;
Serial.print("T1 = ");
Serial.print(t1, 1);
Serial.print("C, ");
Serial.print("H1 = ");
Serial.print(h1, 1);
Serial.print("%");
Serial.println();
Serial.print("T2 = ");
Serial.print(t2, 1);
Serial.print("C, ");
Serial.print("H2 = ");
Serial.print(h2, 1);
Serial.print("%");
Serial.println();
Serial.print("T3 = ");
Serial.print(t3, 1);
Serial.print("C, ");
Serial.print("H3 = ");
Serial.print(h3, 1);
Serial.print("%");
Serial.println();
lcd.setCursor(0, 0);
lcd.print(" ABE 80|E7|LABRADOR");
lcd.setCursor(3, 1);
lcd.print("T_ave: ");
lcd.print(ave_T);
lcd.print("C");
lcd.setCursor(3, 2);
lcd.print("H_ave: ");
lcd.print(ave_H);
lcd.print("%");
if(ave_T > 30 && ave_H > 80){
digitalWrite(redLED, HIGH);
tone(buzz, 300, 500);
lcd.setCursor(7, 3);
lcd.print("ALERT!");
}
else{
digitalWrite(redLED, LOW);
lcd.setCursor(7, 3);
lcd.print("NORMAL");
}
delay(2000);
lcd.clear();
}