#include <ArduinoJson.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#define TFT_DC 2
#define TFT_CS 15
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
const int redPin=21;
const int BluePin=26;
const int GreenPin=27;
const int Buzzer=25;
#include "DHT.h"
#define DHTPIN 13
#define DHT1PIN 12
#define DHT2PIN 14
#define DHT3PIN 16
#define DHT4PIN 22
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
DHT dht1(DHT1PIN, DHTTYPE);
DHT dht2(DHT2PIN, DHTTYPE);
DHT dht3(DHT3PIN, DHTTYPE);
DHT dht4(DHT4PIN, DHTTYPE);
void setup() {
Serial.begin(9600);
//Serial.println(F("DHTxx test!"));
pinMode(redPin, OUTPUT);
pinMode(BluePin, OUTPUT);
pinMode(GreenPin, OUTPUT);
pinMode(Buzzer, OUTPUT);
tft.begin();
tft.setRotation(0);
dht.begin();
dht1.begin();
dht2.begin();
dht3.begin();
dht4.begin();
}
void loop() {
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(2, 0);
delay(2000);
float h = dht.readHumidity();
float h1 = dht1.readHumidity();
float h2 = dht2.readHumidity();
float h3 = dht3.readHumidity();
float h4 = dht4.readHumidity();
float t = dht.readTemperature();
float t1=dht1.readTemperature();
float t2 = dht2.readTemperature();
float t3=dht3.readTemperature();
float t4=dht4.readTemperature();
//float temp=((t+t1+t3+t4)/5);
// float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(t1)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
//float hif = dht.computeHeatIndex(f, h);
// float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("H1: "));
Serial.print(h);
Serial.print(F("% T1: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(F("H2: "));
Serial.print(h1);
Serial.print(F("% T2: "));
Serial.print(t1);
Serial.print(F("°C "));
Serial.print(F("H3: "));
Serial.print(h2);
Serial.print(F("% T3: "));
Serial.print(t2);
Serial.print(F("°C "));
Serial.print(F("H4: "));
Serial.print(h3);
Serial.print(F("% T4: "));
Serial.print(t3);
Serial.print(F("°C "));
Serial.print(F("H5: "));
Serial.print(h4);
Serial.print(F("% T5: "));
Serial.print(t4);
Serial.print(F("°C "));
// Serial.print(f);
// Serial.print(F("°F Heat index: "));
//Serial.print(hic);
// Serial.print(F("°C "));
//Serial.print(hif);
//Serial.println(F("°F"));
tft.setTextColor(ILI9341_RED);
tft.setTextSize(2);
tft.print("FIRE ALARM SYSTEM");
tft.println(" ");
tft.println(" ");
tft.setTextColor(ILI9341_PINK);
tft.setTextSize(2);
tft.print(F("H1:"));
tft.print(h);
tft.setTextColor(ILI9341_YELLOW);
tft.setTextSize(2);
tft.print(F(" T1:"));
tft.print(t);
tft.println(" ");
tft.println(" ");
tft.setTextColor(ILI9341_PINK);
tft.setTextSize(2);
tft.print(F("H2:"));
tft.print(h1);
tft.setTextColor(ILI9341_YELLOW);
tft.setTextSize(2);
tft.print(F(" T2:"));
tft.print(t1);
tft.println(" ");
tft.println(" ");
tft.setTextColor(ILI9341_PINK);
tft.setTextSize(2);
tft.print(F("H3:"));
tft.print(h2);
tft.setTextColor(ILI9341_YELLOW);
tft.setTextSize(2);
tft.print(F(" T3:"));
tft.print(t2);
tft.println(" ");
tft.println(" ");
tft.setTextColor(ILI9341_PINK);
tft.setTextSize(2);
tft.print(F("H4:"));
tft.print(h3);
tft.setTextColor(ILI9341_YELLOW);
tft.setTextSize(2);
tft.print(F(" T4:"));
tft.print(t3);
tft.println(" ");
tft.println(" ");
tft.setTextColor(ILI9341_PINK);
tft.setTextSize(2);
tft.print(F("H5:"));
tft.print(h4);
tft.setTextColor(ILI9341_YELLOW);
tft.setTextSize(2);
tft.print(F(" T5:"));
tft.print(t4);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println(" ");
tft.println(" ");
tft.println(" ");
//tft.print("Average Temp:");
//tft.print(temp);
if((t>=40) || (t1>=40) || (t2>=40) ||(t3>=40) ||(t4>=40)){
tft.println(" ");
tft.println(" ");
tft.println(" ");
tft.setTextColor(ILI9341_RED);
tft.setTextSize(2);
tft.print(" Hazard");
digitalWrite(redPin, HIGH);
digitalWrite(BluePin, LOW);
digitalWrite(GreenPin, LOW);
delay(1000);
digitalWrite(Buzzer, HIGH);
delay(2000);
digitalWrite(Buzzer, LOW);
delay(1000);
}
else if((((t+t1+t2+t3+t4)/5)>=25) && (((t+t1+t2+t3+t4)/5)<=40)){
// float int temp1=(t+t1+t3+t4)/6;
tft.println(" ");
tft.println(" ");
tft.println(" ");
tft.setTextColor(ILI9341_BLUE);
tft.setTextSize(2);
tft.print("Ambient Temperature");
digitalWrite(BluePin, HIGH);
digitalWrite(redPin, LOW);
digitalWrite(GreenPin, LOW);
// digitalWrite(BUZZER_PIN, LOW);
//delay(1000);
}
else{
tft.println(" ");
tft.println(" ");
tft.println(" ");
tft.setTextColor(ILI9341_GREEN);
tft.setTextSize(2);
tft.print(" Cold");
digitalWrite(GreenPin, HIGH);
digitalWrite(redPin, LOW);
digitalWrite(BluePin, LOW);
// digitalWrite(BUZZER_PIN, LOW);
delay(1000);
}
delay(2000);
}
//if(t>40)||