• Tidak ada hasil yang ditemukan

SIMULASI IOT ESP32 dhtldr

M. REZA FIRDAUS

Academic year: 2023

Membagikan "SIMULASI IOT ESP32 dhtldr"

Copied!
6
0
0

Teks penuh

(1)

SIMULASI IOT ESP32

TEMPERATURE & INTENSITAS CONTROL AUTO DAN MANUAL NAMA : M. REZA FIRDAUS

NIM : 2105031009 KELAS : EL4B

Saya telah melakukan modifikasi pada rangkaian, dengan menambah sensor ldr dan 2 buah led sebagai indicator berjalannya sistem secara manual atau automatis, dan menggunakan 5 buah relay sebagai output yang akan menyalakan serta mematikan kipas / lampu.

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 N AC220V

Kipas 1

Kipas 2 Kipas 3

Lampu Utama

Lampu Mendung

Diagram Rangkaian

(2)

START

ESP32 CONNECT TO WIFI

CONNECT TO BLYNK?

CONTROL WITH BLYNK SERVER

Y N

MANUAL AUTOMATIS

LED RED ON

RELAY 2 ON RELAY 3 ON

RELAY 1 ON

SWICH 1 ON SWICH 2 ON SWICH 3 ON

LED GREEN ON

TEMP : 31˚

INITIALIZING SENSOR DHT22

TEMP : 33˚

TEMP : 29˚

RELAY 1 ON RELAY 2, 3 OFF

RELAY 1, 2 ON

RELAY 3 OFF RELAY 1, 2, 3 ON

END Switch Utama

ON Switch

Mendung ON

RELAY 5 ON RELAY 4 ON

INITIALIZING SENSOR DHT22

LUX : 1 LUX : 1

RELAY 4 ON

RELAY 5, OFF RELAY 4, 5 ON

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.

(3)

Full Program

//Program Modifikasi Oleh //M. Reza Firdaus

#include "DHTesp.h"

const int DHT_PIN = 15;

const int LDR_PIN = 2;

const float REZZA = 0.7;

const float REZZA10 = 50;

DHTesp dhtSensor;

int suhu;

int lux;

int mode=0;

#define BLYNK_TEMPLATE_ID "TMPL65erWXqgL"

#define BLYNK_TEMPLATE_NAME "IOT 2 dht dan ldr Polmed"

#define BLYNK_AUTH_TOKEN "LvyvsjOmLSZwJwl6r8Vy1k5uG4CDXkiN"

#define BLYNK_PRINT Serial

#include <WiFi.h>

#include <WiFiClient.h>

#include <BlynkSimpleEsp32.h>

char auth[] = BLYNK_AUTH_TOKEN;

char ssid[] = "Wokwi-GUEST";

char pass[] = "";

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;

(4)

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 {

(5)

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);

Blynk.begin(auth, ssid, pass);

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

(6)

pinMode(14,OUTPUT); //Lampu Penerangan pinMode(12,OUTPUT); //Lampu Penerangan }

void loop() {

Blynk.run();

timer.run();

}

Referensi

Dokumen terkait