#define BLYNK_TEMPLATE_ID "TMPL3JQ_Drv1n"
#define BLYNK_TEMPLATE_NAME "BASIC EV MONITORING OPERATION AND TESTING SYSTEM"
#define BLYNK_AUTH_TOKEN "68m6WC1b_qdNWvpXLnrkGSlLJEIoeljv"
#include<WiFi.h>
#include<Blynk.h>
//LCD I2C library:
#include <LiquidCrystal_I2C.h>
//DHT22 sensor library:
#include <DHT.h>;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
char auth[] = "68m6WC1b_qdNWvpXLnrkGSlLJEIoeljv";
//LCD I2C address 0x27, 16 column and 2 rows!
LiquidCrystal_I2C lcd(0x27, 16, 2);
//Constants:
#define DHTPIN 2 //what pin we're connected to
#define DHTTYPE DHT22 //DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE); //Initialize DHT sensor for normal 16mhz Arduino
//Variables:
float H; //Humidity value
float T; //Temperature value
int buzzer = 12;
//Initialize LCD, DHT22 sensor and buzzer:
void setup(){
lcd.init();
lcd.backlight();
dht.begin();
pinMode(buzzer, OUTPUT);
WiFi.begin(ssid, password);
Serial.print("Connecting to Wi-Fi");
Serial.print("."); //Print some text in Serial Monitor
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
Serial.println("Connected to Wi-Fi");
// Initialize Blynk
Blynk.begin(auth, ssid, password);
}
Serial.begin(9600);
Serial.println("DHT22 sensor with Arduino Uno R3!");
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop(){
Blynk.run();
int value=random(0,101);
Blynk.virtualWrite(v3,value);
delay(2000);
//Read data and store it to variables hum and temp
H = dht.readHumidity();
T = dht.readTemperature();
//Print temp and humidity values to serial monitor
Serial.print("Humidity: ");
Serial.print(H);
Serial.println(" %; ");
Serial.print("Temperature: ");
Serial.print(T);
Serial.println(" Celsius.\n");
/*If humidity is higher than 70% &
temperature is higher than 30 degrees Celsius
then it will show on LCD „Too warm! Cool down!”*/
if(H >= 70.00 && T >= 30.00)
{
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
lcd.println(" Too warm! ");
lcd.setCursor(0, 1);
lcd.println(" Cool down! ");
lcd.setCursor(0, 0);
digitalWrite(buzzer, 1);
tone(buzzer, 900, 100);
delay(400);
digitalWrite(buzzer, 0);
tone(buzzer, 900, 100);
delay(400);
digitalWrite(buzzer, 1);
tone(buzzer, 900, 100);
delay(400);
digitalWrite(buzzer, 0);
tone(buzzer, 900, 100);
delay(400);
}
else
{
/*If humidity is lower than 70% &
temperature is lower than 30 degrees Celsius
then it will show on LCD „Temp. & hum. are in normal limits”*/
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
lcd.println("Temp. & hum. are");
lcd.setCursor(0, 1);
lcd.println("in normal limits");
lcd.setCursor(0, 0);
digitalWrite(buzzer, 0);
}
/*If either humidity is lower than 70%, but
temperature is higher than 30 degrees Celsius,
then it will show on LCD „Be ware! Temp. too high” or
humidity is higher than 70%, but
temperature is lower than 30 degrees Celsius, then
it will show on LCD „Be ware! Hum. too high”*/
if(H < 70.00 && T >= 30.00){
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
lcd.println("Be ware! ");
lcd.setCursor(0, 1);
lcd.println("Temp. too high! ");
lcd.setCursor(0, 0);
digitalWrite(buzzer, 1);
tone(buzzer, 400, 400);
delay(400);
digitalWrite(buzzer, 0);
tone(buzzer, 400, 400);
delay(400);
}
if(H >= 70.00 && T < 30.00){
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
lcd.println("Be ware! ");
lcd.setCursor(0, 1);
lcd.println("Hum. too high! ");
lcd.setCursor(0, 0);
digitalWrite(buzzer, 1);
tone(buzzer, 400, 400);
delay(400);
digitalWrite(buzzer, 0);
tone(buzzer, 400, 400);
delay(400);
}
}