#define BLYNK_TEMPLATE_ID "TMPL6zN6-CyiQ"
#define BLYNK_TEMPLATE_NAME "GreenHouse"
#define BLYNK_AUTH_TOKEN "jnhWmI1fOXgbIyhqMBQDtCCdO_nD22kA"
#include "DHT.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#define DHTPIN 13
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define ssid "Wokwi-GUEST"
#define pass ""
#define pump 19
#define SWpump 18
#define light 21
#define SWlight 22
int setTemp = 40;
int setHumd = 50;
int valuePump = 0;
int valueLight = 0;
void setup() {
// put your setup code here, to run once:
pinMode(pump,OUTPUT);
pinMode(SWpump,INPUT);
pinMode(light,OUTPUT);
pinMode(SWlight,INPUT);
Serial.begin(9600);
dht.begin();
Blynk.begin(BLYNK_AUTH_TOKEN,ssid,pass);
}
//Đọc dữ liệu từ button trên app
BLYNK_WRITE(V4) {
valuePump = param.asInt();
}
BLYNK_WRITE(V3) {
valueLight = param.asInt();
}
void loop() {
// put your main code here, to run repeatedly:
Blynk.run();
float h = dht.readHumidity();
float t = dht.readTemperature();
int l=valueLight;
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
if(h<setHumd){
digitalWrite(pump,HIGH);
Serial.println("Pump On By Humidity");
delay(5000);
digitalWrite(pump,LOW);
}
if(t<40){
digitalWrite(pump,HIGH);
Serial.println("Pump On By Temp");
delay(5000);
digitalWrite(pump,LOW);
}
if((valuePump==1)||(digitalRead(SWpump)==HIGH)){
digitalWrite(pump,HIGH);
Serial.println("Pump On by Button");
digitalWrite(pump,LOW);
}
//Bật tắt đèn bằng App
if((valueLight==1)||(digitalRead(SWlight)==HIGH)){
digitalWrite(light,HIGH);
Blynk.virtualWrite(V2, l);
Serial.println("Light On");
// delay(5000);
}
if((valueLight==0)&&(digitalRead(SWlight)==LOW)){
digitalWrite(light,LOW);
Serial.println("Light Off ");
Blynk.virtualWrite(V2, l);
// delay(5000);
}
delay(1000); // this speeds up the simulation
}