/*
Test project for the Inter Uni Competition
Environment Control System
Code by Damithra Fernando - StrydoLabs
DHT11/DHT22 - huminidity temperature
Arduino Nano or ESP32
Relays to contrall Output actuators
SIM800c to communication
*/
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 Oled = Adafruit_SSD1306(128,64,&Wire);
#include <DHT.h>; //dht lib
//Constants
#define DHTPIN 23
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
float hum; //Stores humidity value
float temp; //Stores temperature value
float hRange = 40.00;
float tRange = 30.00;
void setup()
{
pinMode (32, INPUT);
pinMode (35, INPUT);
Serial.begin(9600);
Serial.print("Initialize the Environment Control System");
Serial.println(" ");
dht.begin();
Oled.begin(SSD1306_SWITCHCAPVCC, 0x3c);
Oled.clearDisplay();
Oled.setTextColor(WHITE);
Oled.setTextSize(1);
Oled.setCursor(2,0);
Oled.print ("Environment control");
Oled.display();
}
void loop()
{
dht22();
display();
delay(4000);
setOut();
}
void dht22(){
hum = dht.readHumidity();
temp= dht.readTemperature();
Serial.print(" Humidity: ");
Serial.print(hum);
Serial.print(" %, \t Temp: ");
Serial.print(temp);
Serial.println(" °C ");
}
void display(){
Oled.setTextSize(1);
Oled.setCursor(2,26);
Oled.print("Humidity: ");
//Oled.setTextSize(2);
Oled.print(hum);
Oled.print("%");
Oled.setCursor(2,46);
Oled.print("Temp: ");
//Oled.setTextSize(2);
Oled.print(temp);
Oled.print("'C");
Oled.display();
}
void setOut(){
if(hRange > hum && tRange < temp){
Serial.println("\t Sprinkel on");
Serial.println("\t Fan On");
//digitalWrite(32, HIGH);
//digitalWrite(35, HIGH);
}
else if(hRange > hum && tRange > temp){
Serial.println("\t Sprinkel On");
Serial.println("\t Fan Off");
//digitalWrite(32, HIGH);
//digitalWrite(35, HIGH);
}
else if(hRange < hum && tRange < temp){
Serial.println("\t Sprinkel OFF");
Serial.println("\t Fan On");
//digitalWrite(32, HIGH);
//digitalWrite(35, HIGH);
}
else {
Serial.println("\t Sprinkel Off");
Serial.println("\t Fan Off");
//digitalWrite(32, HIGH);
//digitalWrite(35, HIGH);
}
}