/* MENGENDALIKAN LED MENGGUNAKAN SENSOR SUHU DAN IoT
Jika suhu > 50, maka LED akan Menyala
LED juga dapat nyalakan menggunakan remot IoT */
// Mendefinisikan penggunaan Blynk IoT, data di peroleh dari Home - Device Blynk.io
#define BLYNK_TEMPLATE_ID "TMPL6P21rZGyD" //Menggunanakan ID di HTTP Blynk.io
#define BLYNK_TEMPLATE_NAME "Pengendali Kipas" //Dengan nama Pengendali Kipas
#define BLYNK_AUTH_TOKEN "rxUxGpkdiVrg4tzw26s50EX7cipJnFpj" //Dengan token rxUxGpkdiVrg4tzw26s50EX7cipJnFpj
#define BYLINK_PRINT Serial //Mengaktifkan serial HTTP Blynk.io
//menghubungkan WiFi dan layanan HTTP
#include <WiFi.h> //Menyambungkan ke Wifi
#include <BlynkSimpleEsp32.h> //Menyambungkan ke Blynk.io
//Menghubungkan ke SSID WOKWI-GUEST
char ssid[] = "Wokwi-GUEST"; //Menyambungkan ke wifi dengan ssid Wokwi-GUEST
char pass[] = ""; //Masuk dengan tanpa password
// Mendefinisikan penggunaan PIN ESP 32
#define DHT_PIN 26 //Pembacaan pin DHT pada kaki 26
#define LED_PIN 19 //Kontrol pin LED pada kaki 19
//Sensor suhu dan kelembaban udara dengan DHT22
#include <DHT.h> //Membaca library DHT
#define DHTTYPE DHT22 //Type DHT yang di gunakan DHT22
DHT dht(DHT_PIN, DHTTYPE); //Mengenalkan variabel DHT
//Penggunaan saklar ON/OFF
int saklar = 0; //Mengenalkan variabel saklar dan kondisi awal lampu mati
int kondisi = 0; // menetapkan nilai sensor suhu dan saklar pada nilai 0
BLYNK_WRITE (V2) //Memberikan perintah pada Virtual pin 2 Blynk
{
saklar = param.asInt(); //Mendapatkan parameter nilai dari pin virtual
if(saklar == 1){ //Jika saklar ON
digitalWrite(LED_PIN, HIGH); //Nyalakan LED
Serial.println("Lampu telah dihidupkan"); //Munculkan karakter Lampu telah dihidupkan
Blynk.virtualWrite(V2, HIGH); //Berikan virtua Pin 2/saklar ON
}else{
digitalWrite(LED_PIN, LOW); //Matikan LED
Serial.println("Lampu telah dimatikan"); //Munculkan karakter Lampu telah dimatikan
Blynk.virtualWrite(V2, LOW); //Berikan virtua Pin 2/saklar OFF
}
}
void setup() {
// Menentukan fungsi PIN ESP 32
pinMode(LED_PIN, OUTPUT); //LED_PIN sebagai output/pengontrol LED
//pinMode(DHT_PIN, INPUT); //Pembacaan pin DHT pada kaki 26
dht.begin(); //memulai pembacaan sensor DHT pada kaki 26
Serial.begin(9600); //Menampilkan ke port serial, sebesar 9600 boutrate
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); //Menginisiasi Blynk
}
void loop() {
// Membaca pembacaan sensor DHT22, tentang suhu dan kelembaban
float kelembaban = dht.readHumidity(); //Pembacaan masukan sensor kelembaban ke notasi kelembaban
float suhu = dht.readTemperature(); //Pembacaan masukan sensor suhu ke notasi suhu
//Menampilkan pembacaan suhu dan kelembaban di layar
Serial.print("Suhu ruangan : "); //Menampilkan kalimat Suhu ruangan :
Serial.print(suhu); //Menampilkan data suhu udara dari sensor DHT22
Blynk.virtualWrite(V0, suhu); //Menampilkan data suhu ke dasboard Blynk
Serial.println(" °C"); //Menampilkan simbol °C
Serial.print("Kelembaban Udara Ruangan : "); //Menampilkan kata Kelembaban Udara Ruangan :
Serial.print(kelembaban); //Menampilkan data kelembaban udara dari sensor DHT22
Blynk.virtualWrite(V1, kelembaban); //Menampilkan data kelembaban udara ke dasboard Blynk
Serial.println(" % RH"); //Menampilkan simbol % RH
/*
if (suhu < 50 && saklar == 1) {
kondisi = 1; }
else if (suhu > 50 && saklar == 0) {
kondisi = 1; }
else {
kondisi = 0; }
switch (kondisi) {
case 0:
digitalWrite(LED_PIN, LOW); //maka kipas/lampu dimatikan
Serial.println("Kipas Telah Dimaktikan"); //Munculkan di layar, kipas Telah Dimatikan
Serial.println("*****************************************"); //Menampilkan karakter **********
Blynk.virtualWrite(V2, LOW); //Menampilkan dalam dasboar Blynk.io kipas nyala
break;
case 1:
digitalWrite(LED_PIN, HIGH); //maka kipas/lampu Telah Dinyalakan
Serial.println("Kipas Telah Dinyalakan"); //Munculkan di layar, kipas Telah Dinyalakan
Serial.println("*****************************************"); //Menampilkan karakter **********
Blynk.virtualWrite(V2, HIGH); //Menampilkan dalam dasboar Blynk.io kipas nyala
break;
}
*/
//Menggunakan logika bertingkat IF (Jika)
if (suhu<50 && saklar == 1) { //Jika suhu diatas 50 °C atau saklar ON
digitalWrite(LED_PIN, HIGH); //maka Kipas/Lampu Telah Dinyalakan
Serial.println("Kipas Telah Dinyalakan"); //Munculkan di layar, Kipas Telah Dinyalakan
Serial.println("*****************************************"); //Menampilkan karakter **********
Blynk.virtualWrite(V2, HIGH); //Menampilkan dalam dasboar Blynk.io kipas nyala
}
else if
(suhu>50 && saklar == 0) { //Jika suhu diatas 50 °C atau saklar OFF
digitalWrite(LED_PIN, HIGH); //maka Kipas/Lampu Telah Dinyalakan
Serial.println("Kipas Telah Dinyalakan"); //Munculkan di layar, Kipas Telah Dinyalakan
Serial.println("*****************************************"); //Menampilkan karakter **********
Blynk.virtualWrite(V2, HIGH); //Menampilkan dalam dasboar Blynk.io kipas nyala
}
else { //Selain keadaan diatas:
digitalWrite(LED_PIN, LOW); //maka Kipas/Lampu Dimatikan
Serial.println("Kipas Dimatikan"); //Munculkan di layar, Kipas Dimatikan
Serial.println("*****************************************"); //Menampilkan karakter **********
Blynk.virtualWrite(V2, LOW); //Menampilkan dalam dasboar Blynk.io kipas mati
}
//Penundaan waktu baca selanjutnya
delay(1000); //Penundaan waktu baca selanjutnya 1000 detik
Blynk.run(); //Mengirimkan data ke Blynk.io
}