Anda di halaman 1dari 5

SIMULASI IOT ESP32 – TEMPERATURE CONTROL AUTO DAN MANUAL

KELOMPOK 2 :
1. M. Reza Firdaus
2. M. Syafiq Ramadhan
3. M. Farhan Hatadi
4. M. Fadli
5. Rani Astuti Br Sembiring
6. Ahmad Fauzan Syafi’i
Kami telah melakukan sedikit modifikasi pada rangkaian, dengan menambah 2 buah
led sebagai indicator berjalannya sistem secara manual atau automatis, dan menggunakan 3
buah relay sebagai output yang akan menyalakan serta mematikan kipas.

Adapun komponen yang digunakan ialah, Esp32, Dht22, 2 buah led dan 2 buah resistor
220 Ω, serta 3 relay. Dan berikut link untuk simulasi rangkaian tersebut :
URL = https://drive.google.com/drive/folders/iot_project2_polmed
L

Diagram Rangkaian
START

ESP32
CONNECT TO WIFI

CONNECT TO
BLYNK? N

CONTROL WITH
BLYNK SERVER

MANUAL AUTOMATIS

LED RED ON LED GREEN ON

INITIALIZING
SWICH 1 ON SWICH 2 ON SWICH 3 ON SENSOR
DHT22

RELAY 1 ON RELAY 2 ON RELAY 3 ON TEMP : 29˚ TEMP : 31˚ TEMP : 33˚

RELAY 1 ON RELAY 1, 2 ON
RELAY 1, 2, 3 ON
RELAY 2, 3 OFF RELAY 3 OFF

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,
4. Dan saat mode automatis, maka relay akan menyala sesuai suhu yang telah ditetapkan,
yakni saat :
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
5. Menyalanya relay akan menutup kontak NO yang terdapat pada relay dan akan menyala
kipas yang telah tersambung.
Full Program
//Program Modifikasi Oleh Kelompok 2
//M. Reza Firdaus
//M. Syafiq Ramadhan
//M. Farhan Hatadi
//M. Fadli
//Rani Astuti Br Sembiring
//Ahmad Fauzan Syafi’i

#include "DHTesp.h"

const int DHT_PIN = 15;

DHTesp dhtSensor;
int suhu;
int mode=0;
#define BLYNK_TEMPLATE_ID "TMPL65erWXqgL"
#define BLYNK_TEMPLATE_NAME "IOT 2 dht22 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()
{
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(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_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(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
}

void loop()
{
Blynk.run();
timer.run();
}

Anda mungkin juga menyukai