/*************************************************************
You can use this sketch as a debug tool that prints all incoming values
sent by a widget connected to a Virtual Pin 1 in the Blynk App.
App dashboard setup:
Slider widget (0...100) on V1
*************************************************************/
/* Fill-in information from Blynk Device Info here */
//menkoneksikan dengan blynk melalui token yang sudah disediakan pada device info
#define BLYNK_TEMPLATE_ID "TMPL6rQHrSMBg"
#define BLYNK_TEMPLATE_NAME "IOT ke5"
#define BLYNK_AUTH_TOKEN "_lqCjNOtODWJi4U1ym287GGQrSjwyBXb"
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
//menambahkan library wifi, wifiClient, Blynk, Dht dan LiquidCrystal
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
//mendefinisikan tiap pin yang digunakan untuk sensor suhu dan lampu
#define DHTPIN 4
#define DHTTYPE DHT22
//mendefinisikan type dht
DHT dht(DHTPIN, DHTTYPE);
//memberikan timer blynk
BlynkTimer timer;
//mengatur ukuran lcd
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Your WiFi credentials.
// Set password to "" for open networks.pengaturan koneksi wifi internal yang disediakan wokwi
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
//membaca setiap sensor yang dimasukkan
void sendSensor(){
//sensor suhu dan kelembapan
float t = dht.readTemperature();// Membaca suhu dari sensor DHT
float h = dht.readHumidity();// Membaca kelembaban dari sensor DHT
Blynk.virtualWrite(V2, h);//mengaktifkan sesnsor kelembapan saat di nyalakan
Blynk.virtualWrite(V1, t);//mengaktifkan sensor suhu saat dinyalakan
}
// This function will be called every time Slider Widget
// in Blynk app writes values to the Virtual Pin 1
//membuat fungsi untuk VO
BLYNK_WRITE(V0)
{
int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable
digitalWrite(2, pinValue);
float t = dht.readTemperature();
float h = dht.readHumidity();
if (t >= 38){
digitalWrite(2, HIGH);//menghidupkan lampu saat t >=38
}
if (t <= 38){
digitalWrite(2, LOW);//mematikan lampu saat t< 38
}
// You can also use:
// String i = param.asStr();
// double d = param.asDouble();
Serial.print("V0 Slider value is: ");
Serial.println(pinValue);
}
void setup()
{
// Debug console
Serial.begin(115200);
pinMode(2, OUTPUT);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
dht.begin();
timer.setInterval(1000L, sendSensor);
// You can also specify server:
//Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, IPAddress(192,168,1,100), 8080);
}
void loop()
{
Blynk.run();
timer.run();
}