Simulasi Iot Esp32 DHTLDR
Simulasi Iot Esp32 DHTLDR
Adapun komponen yang digunakan ialah, Esp32, Dht11/22, Ldr Module, 2 buah led
dan 2 buah resistor 220 Ω, serta 5 relay. Dan berikut link untuk simulasi rangkaian tersebut :
URL = https://drive.google.com/drive/folders/rezaprojectoit3dht&ldr
L
AC220V
N
Kipas 3
Lampu Utama
Kipas 2
Kipas 1
Lampu Mendung
Diagram Rangkaian
START
ESP32
CONNECT TO WIFI
CONNECT TO
BLYNK? N
CONTROL WITH
BLYNK SERVER
MANUAL AUTOMATIS
INITIALIZING INITIALIZING
Switch Switch Utama
SWICH 1 ON SWICH 2 ON SWICH 3 ON SENSOR SENSOR
Mendung ON ON
DHT22 DHT22
RELAY 4 ON RELAY 5 ON RELAY 1 ON RELAY 2 ON RELAY 3 ON TEMP : 29˚ TEMP : 31˚ TEMP : 33˚ LUX : 1 LUX : 1
END
Diagram Flowchart
Deskripsi kerja
1. Program ini menggunakan ESP32 sebagai mikrokontroller, ESP32 harus terhubung
dengan Internet (WIFI),
2. Setelah terhubung dengan jaringan internet, maka esp32 akan terkoneksi dengan server
blynk,
3. Sistem ini dapat diatur dengan 2 mode, yakni mode manual dan mode automatis, saat
mode manual led merah akan menyala dan relay dapat dioperasikan dengan switch yang
telah dibuat di Blynk, dan apabila mode automatis menyala maka led hijau akan
menyala, dan system akan berjalan secara automatis terus menerus,
4. Pada Blynk akan menunjukkan pembacaan dari sensor dht dan sensor ldr
5. Dan saat mode automatis, maka relay akan menyala sesuai suhu dan intensitas yang
telah ditetapkan, yakni saat :
Suhu ≤ 29˚ maka ketiga relay akan padam
Suhu ≥ 29˚ maka hanya relay 1 yang menyala
Suhu ≥ 31˚ maka relay 1 dan relay 2 yang akan menyala
Suhu ≥ 33˚ maka ketiga relay akan menyala
Lux ≤ 1000 maka relay 4 akan menyala
Lux ≤ 100 maka relay 4 dan 5 akan menyala
Lux ≥ 1000 maka relay 4 dan 5 akan padam
6. Menyalanya relay akan menutup kontak NO yang terdapat pada relay dan akan menyala
kipas serta lampu yang telah tersambung.
7. Program ini juga dapat dinyalakan secara manual pada website blynk dan aplikasi blynk
yang ada di smartphone.
Full Program
//Program Modifikasi Oleh
//M. Reza Firdaus
#include "DHTesp.h"
DHTesp dhtSensor;
int suhu;
int lux;
int mode=0;
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
BlynkTimer timer;
void myTimerEvent()
{
int analogValue = analogRead(36);
float voltage = analogValue * 5/4095.0;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(REZZA10 * 1e3 * pow(10, REZZA) / resistance, (1 / REZZA));
float intensitas = analogRead(lux);
Serial.print("Lux: ");
Serial.println(lux);
TempAndHumidity data = dhtSensor.getTempAndHumidity();
suhu=data.temperature;
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
if(mode==1){
digitalWrite(26,HIGH); //Indikator Automatis
digitalWrite(27,LOW);
if(lux<=1000){ //Lampu Senja
digitalWrite(12, HIGH);
digitalWrite(14, LOW);
}
if(lux<=100){ //Lampu Utama
digitalWrite(14, HIGH);
digitalWrite(12, HIGH);
}
if(lux>1000){ //Lampu Padam
digitalWrite(12, LOW);
digitalWrite(14, LOW);
}
if(suhu<=28){ //MODE AUTOMATIS
digitalWrite(25,LOW); // Kipas 1 OFF
digitalWrite(33,LOW); // Kipas 2 OFF
digitalWrite(32,LOW); // Kipas 3 OFF
}
if(suhu>=29 && suhu<=30){ //MODE AUTOMATIS
digitalWrite(25,HIGH); // Kipas 1 ON
digitalWrite(33,LOW); // Kipas 2 OFF
digitalWrite(32,LOW); // Kipas 3 OFF
}
if(suhu>=31 && suhu<=32){ //MODE AUTOMATIS
digitalWrite(25,HIGH); // Kipas 1 ON
digitalWrite(33,HIGH); // Kipas 2 ON
digitalWrite(32,LOW); // Kipas 3 OFF
}
if(suhu>=33){ //MODE AUTOMATIS
digitalWrite(25,HIGH); // Kipas 1 ON
digitalWrite(33,HIGH); // Kipas 2 ON
digitalWrite(32,HIGH); // Kipas 3 ON
}
}
if(mode==0){
digitalWrite(27,HIGH); //Indikator Manual
digitalWrite(26,LOW);
}
Blynk.virtualWrite(V0,suhu);
Blynk.virtualWrite(V6,lux);
}
BLYNK_WRITE(V1) // Kipas 1
{
int pinValue = param.asInt();
if(mode==0){digitalWrite(25,pinValue);} //MODE MANUAL
}
BLYNK_WRITE(V2) // Kipas 2
{
int pinValue = param.asInt();
if(mode==0){digitalWrite(33,pinValue);} //MODE MANUAL
}
BLYNK_WRITE(V3) // Kipas 3
{
int pinValue = param.asInt();
if(mode==0){digitalWrite(32,pinValue);} //MODE MANUAL
}
BLYNK_WRITE(V5) // Lampu penerangan
{
int pinValue = param.asInt();
if(mode==0){digitalWrite(14,pinValue);} //MODE MANUAL
}
BLYNK_WRITE(V7) // Lampu penerangan MENDUNG
{
int pinValue = param.asInt();
if(mode==0){digitalWrite(12,pinValue);} //MODE MANUAL
}
BLYNK_WRITE(V4)
{
int pinValue = param.asInt();
mode=pinValue;
void setup()
{
Serial.begin(115200);
timer.setInterval(1000L, myTimerEvent);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
pinMode(25,OUTPUT); //Kipas 1
pinMode(33,OUTPUT); //Kipas 2
pinMode(32,OUTPUT); //Kipas 3
pinMode(26,OUTPUT); //Indikator Automatis
pinMode(27,OUTPUT); //Indikator Manual
pinMode(14,OUTPUT); //Lampu Penerangan
pinMode(12,OUTPUT); //Lampu Penerangan
}
void loop()
{
Blynk.run();
timer.run();
}