#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h> // memanggil library DHT
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6y5-YpMQf"
#define BLYNK_TEMPLATE_NAME "coba"
#define BLYNK_AUTH_TOKEN "wp8-ik4u4CThPRSvSLPHK0hTwu6xsZHD"
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define DHTPIN 22 // pin data DHT22 dihubungkan ke GPIO2 (pin D22)
#define DHTTYPE DHT22 // menggunakan sensor DHT22
DHT dht(DHTPIN, DHTTYPE); // inisialisasi sensor DHT
float temperature;
float humidity;
BlynkTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5)
void myTimerEvent()
{
Blynk.virtualWrite(V7, temperature);
Blynk.virtualWrite(V6, humidity);
}
BLYNK_WRITE(V0)
{
int pinValue0 = param.asInt(); // assigning incoming value from pin V1 to a variable
if(pinValue0 == 1){
digitalWrite(15, HIGH);
}else{
digitalWrite(15, LOW);
}}
BLYNK_WRITE(V2)
{
int pinValue1 = param.asInt(); // assigning incoming value from pin V1 to a variable
if(pinValue1 == 1){
digitalWrite(2, HIGH);
}else{
digitalWrite(2, LOW);
}}
BLYNK_WRITE(V3)
{
int pinValue2 = param.asInt(); // assigning incoming value from pin V1 to a variable
if(pinValue2 == 1){
digitalWrite(4, HIGH);
}else{
digitalWrite(4, LOW);
}}
BLYNK_WRITE(V4)
{
int pinValue3 = param.asInt(); // assigning incoming value from pin V1 to a variable
if(pinValue3 == 1){
digitalWrite(5, HIGH);
}else{
digitalWrite(5, LOW);
}}
BLYNK_WRITE(V5)
{
int pinValue4 = param.asInt(); // assigning incoming value from pin V1 to a variable
if(pinValue4 == 1){
digitalWrite(18, HIGH);
}else{
digitalWrite(18, LOW);
}}
void setup()
{
// Debug console
Serial.begin(9600);
dht.begin(); // mulai sensor DHT
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
timer.setInterval(1000L, myTimerEvent);
pinMode(15, OUTPUT);
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(18, OUTPUT);
}
void loop()
{
humidity = dht.readHumidity(); // membaca data kelembaban
temperature = dht.readTemperature(); // membaca data suhu dalam Celsius
Serial.print("Kelembaban: ");
Serial.print(humidity);
Serial.print(" %\t"); // tanda tab
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.println(" *C"); // baris baru
Blynk.run();
timer.run(); // Initiates BlynkTimer
}