// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID "TMPL6zl-DgqFy"
#define BLYNK_TEMPLATE_NAME "Control LED RGB"
#define BLYNK_AUTH_TOKEN "QHKfRcE-qqzxV6WGyGVcVi8jzCP_rwt3"
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include "DHTesp.h"
DHTesp dht;
String noted;
String note;
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
BLYNK_WRITE(V1){
int pinValue = param.asInt();
if(pinValue == 1){
digitalWrite(19, HIGH);
}
if(pinValue == 0){
digitalWrite(19, LOW);
}
}
BLYNK_WRITE(V2){
int pinValue = param.asInt();
if(pinValue == 1){
digitalWrite(18, HIGH);
}
if(pinValue == 0){
digitalWrite(18, LOW);
}
}
BLYNK_WRITE(V3){
int pinValue = param.asInt();
if(pinValue == 1){
digitalWrite(5, HIGH);
}
if(pinValue == 0){
digitalWrite(5, LOW);
}
}
BLYNK_WRITE(V0){
int pinValue = param.asInt();
if(pinValue == 1){
digitalWrite(19, HIGH);
digitalWrite(18, HIGH);
digitalWrite(5, HIGH);
}
if(pinValue == 0){
digitalWrite(19, LOW);
digitalWrite(18, LOW);
digitalWrite(5, LOW);
}
}
void SensorTemp()
{
delay(dht.getMinimumSamplingPeriod());
float temperature = dht.getTemperature()+0.2;
/* Get temperature value */
Serial.print(dht.getStatusString());
/* Print status communication */
Blynk.virtualWrite(V9, temperature);
Blynk.virtualWrite(V6, noted);
Serial.print("\t\t");
Serial.print(temperature, 1);
Serial.print("\t\t");
Serial.println(noted);
Serial.print("\t\t");
if(temperature <= 20){
noted = "Cool";
}
else if(temperature >= 22 && temperature <= 37){
noted = "Normal";
}
else if(temperature >= 38){
noted = "Hot";
}
else {
noted = "";
}
delay(500);
}
void SensorHum()
{
delay(dht.getMinimumSamplingPeriod());
/* Delay of amount equal to sampling period */
float humidity = dht.getHumidity()+0.2;
/* Get humidity value */
Serial.print(dht.getStatusString());
/* Print status communication */
Blynk.virtualWrite(V11, humidity);
Blynk.virtualWrite(V5, note);
Serial.print("\t");
Serial.print(humidity, 1);
Serial.print("\t\t");
Serial.println(note);
Serial.print("\t\t");
if(humidity <= 30){
note = "Dry";
}
else if(humidity >= 30 && humidity <= 60){
note = "Normal";
}
else if(humidity >= 60){
note = "Moist";
}
else {
note = "";
}
delay(500);
}
void setup()
{
// Debug console
Serial.begin(9600);
Serial.println();
Serial.println("Status\tHumidity (%)\tTemperature (C)\t");
dht.setup(21, DHTesp::DHT22);;
pinMode(19, OUTPUT);
pinMode(18, OUTPUT);
pinMode(5, OUTPUT);
// Setup a function to be called every second
//Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
Blynk.begin(auth, ssid, pass, IPAddress(128,199,144,129), 8080);
}
void loop()
{
Blynk.run();
SensorTemp();
SensorHum();
timer.run();
}