Prototipe Pemantauan dan Pengendalian
Berbasis Node MCU ESP8266 dengan Aplikasi Blynk
Azis Dhava Putranto1, Salsabila Arpita Dhiya Fadhilah2
Salah satu penerapan Internet of
thing (IoT) adalah pada smarthome
atau rumah pintar. Smarthome atau
rumah pintar adalan sebuah rumah di mana berbagai peralatan listrik dan
elktronik di hubungkan ke sistem kontrol komputer pusat, sehingga mereka dapat
dinyalakan dan dimatikan pada waktu waktu tertentu.
Pemanfaatan modul
NodeMCU yang berfungsi sebagai mikrokontroler (pengontrol mikro) sekaligus
sebagai interface untuk sistem berbasis blynk sebagai penghubung antara system
Maka dari itu terbentuklah gagasan untuk mengatasi persoalan tersebut yaitu
dengan membuat Prototipe Pemantauan dan Pengendalian Berbasis Node MCU ESP8266
dengan Aplikasi Blynk
Kata Kunci—Internet of
thing (IoT), Smarthome, Node MCU ESP8266, Blynk, Sensor Ultrasonik .
I. Pendahuluan
Sistem
kendali dan pemantauan perangkat ruangan pada smart home merupakan sebuah
bentuk kendali dan dipantau secara otomatis terhadap alat-alat listrik rumah
tangga, sistem penerangan atau sistem keamanan rumah yang semuanya mampu
dikendalikan dan dipantau secara langsung sesuai keinginan oleh pemilik. Saat
ini Peruntukan sistem smarthome pada gedung atau rumah tinggal, dapat digunakan
untuk pengendalian hampir semua perlengkapan dan peralatan pada rumah tinggal,
mulai dari pengaturan tata lampu hingga ke berbagai peralatan rumah tangga
melalui perintah berupa On/Off, hingga sinar inframerah.
Sistem
Smart Home saat ini ada yang menggunakan instalasi kabel dan tanpa kabel.
Sehingga pemanfaatan dan implementasi untuk instalasi secara nirkabel
direalisasikan. Tingkat frekuensi kerja, efektivitas, dan beberapa kelebihan
serta keunggulan lainnya dari komunikasi nirkabel ini, sangat cocok terhadap
sistem Smart Home yang mendukung teknologi modern. Perkembangan kendali dan pemantauan
perangkat ruangan pada smart terus berkembang dimana banyak penelitian membahas
akan teknologi diantaranya kontrol lampu, pompa air, hingga pagar pintu. Selain
itu dapat dilakukan upaya dalam pemanfaatan sejumlah sensor untuk pendeteksian
atau pengukuran level ketinggian air dalam tangki (tandon) air dalam sebuah
subsistem yang dapat diintegrasikan ke sistem smarthome.
Pada
Penelitian ini kami menggunakan mikrokontroler Node MCU ESP8266 sebagai
perangkat pemroses. Penelitian ini bertujuan untuk membangun perangkat kontrol
dengan memanfaatkan teknologi internet untuk melakukan proses pengendalian
lampu, daya elektronik, dan pompa air berbasis aplikasi blynk. Penelitian
dilakukan dengan membangun sebuah prototype dan aplikasi berbasis aplikasi
blynk
menggunakan
bahasa pemrograman c atau dengan aplikasi Arduino Ide. Dalam penelitian ini
terdapat fitur kendali yaitu kendali lampu yang digunakan untuk menghidupkan
atau mematikan lampu, kendali daya elektronik untuk menghidupkan atau
menyalakan perangkat elektronik yang tersembung daya, dan kendali pompa air
menggunakan sensor ultrasonik.
II. Landasan teori
Dalam
pembuatan alat ini, ada beberapa komponen yang digunakan yaitu:
A. NodeMCU ESP 8266
Gambar 1 NodeMCU 8266
Node Mcu adalah sebuah board elektronik yang berbasis
chip ESP8266 dengan kemampuan menjalankan fungsi mikrokontroler dan juga
koneksi internet (WiFi). Terdapat beberapa pin I/O sehingga dapat dikembangkan
menjadi sebuah aplikasi monitoring maupun controlling pada proyek IOT. NodeMCU 8266
B.
Sensor Ultrasonik HY-SRF05
Gambar 2 Sensor Ultrasonik HY-SRF05
Ultrasonic Sensor sangat populer di
aplikasi robotika untuk pengukuran jarak dan obstacle sensor (mencegah
robot/smart car menabrak objek yang menghalangi), sangat cocok diaplikasikan
untuk minsys anda seperti Arduino, Raspberry Pi, dan lain-lain. Versi HY-SRF05 ini adalah versi improvement dari HC-SR04, yaitu
memiliki akurasi lebih baik khususnya dalam pengukuran jarak jauh.Spesifikasinya sebagai
berikut ;
– Working Voltage : 5V(DC)
– Working Current : max 15mA
– Working frequency : 40kHz
– Output Signal : 0-5V (Output high when obstacle in range)
– Sentry Angle : max 15 degree
– Tokoduino dot com
– Sentry Distance : 2cm – 4m
– Measurement resolution : 0,3cm
– Input trigger signal : 10us TTL impulse
– Echo signal : output TTL PWL signal
– Size : 45mm x 20mm x 15mm
C. Aplikasi Blynk
Gambar 3 Aplikasi Blynk
Aplikasi Blynk Blynk adalah
platfor.m untuk IOS atau ANDROID yang
digunakan untuk mengendalikan module arduino,Rasbery Pi, Wemos dan module
sejenisnya melalui internet. Aplikasi ini sangat mudah digunakan bagi orang
yang masih awam. Aplikasi ini memiliki banyak fitur yang memudahkan pengguna
dalam memakainya.
D. Relay
Gambar 6 Relay
Relay adalah saklar
elektromekanikal yang digunakan untuk membuka dan menutup rangkaian listirk
serta menstimulasi listrik kecil menjadi arus yang lebih besar.
Pada dasarnya relay digunakan
sebagai penghubung dan pemutus arus listrik. Elektromagnet yang ada pada relay
akan menggerakkan switch. Dengan demikian, arus listrik dengan daya kecil dapat
mendistribusikan listrik menuju tegangan yang lebih tinggi.
E. Pompa Air DC
Gambar 4 Pompa Mikro
Pompa
mikro adalah perangkat yang dapat mengontrol dan memanipulasi volume cairan
kecil. [3] [4] Meskipun segala jenis pompa kecil sering disebut sebagai pompa
mikro , definisi yang lebih akurat membatasi istilah ini untuk pompa dengan
dimensi fungsional dalam kisaran mikrometer. Pompa semacam itu menjadi
perhatian khusus dalam penelitian mikofluida dan telah tersedia untuk integrasi
produk industri dalam beberapa tahun terakhir. Ukuran keseluruhan yang
diperkecil, potensi biaya, dan akurasi dosis yang lebih baik dibandingkan
dengan pompa mini yang ada memicu minat yang semakin besar untuk jenis pompa
yang inovatif ini.
F. Lampu
Gambar 5
Lampu
Lampu
merupakan sumber pencahayaan yang sangat krusial dan dibutuhkan pada setiap
rumah. Sebuah rumah akan bisa menjadi gelap tanpa adanya lampu sama sekali.
Memang betul, sebuah rumah yang baik adalah rumah dengan pencahayaan alami yang
langsung masuk dari jendela ketika siang hari.
G. Stop Kontak
Gambar 6 Stop kontak
Stop kontak sendiri adalah
sebuah terminal yang berfungsi untuk menghubungkan jalur listrik utama (main
line) ke perangkat elektronik lainnya sehingga perangkat elektronik tersebut
dapat menerima arus listrik dan dapat berfungsi sebagaimana mestinya.
III. Metodologi
Ada bebrapa
alat dan bahand yang harus disiapkan dan beberapa tahapan yang harus dilakukan
untuk membuat alat ini agar tujuan dari pembuatan alat ini dapat tercapai.
A. Alat dan Bahan
-
Node
MCU ESP8266
-
Relay
-
Pompa
air
-
Sensor
Ultrasonik
-
Selang
air
-
PCB
-
Lampu
-
Stop
Kontak
-
Kabel
jumper
-
Solder
-
Bor
-
Lem
tembak
-
Cutter
B. Diagram Pengawatan
Gambar 7 Diagram Pengawatan
C. Diagram Blok
Gambar 8 Diagram Blok
D. Diagram Alir
Gambar 9 Diagram Alir
E. Program
#define BLYNK_PRINT
Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// define the GPIO
connected with Relays and switches
#define RelayPin1
D0 //D0 lampu
#define RelayPin2
D1 //D1
stopkontak
#define RelayPin3
D3 //D2
solenoid
#define RelayPin4
D2 //D3 ?
// iki set nggo sing
ultrasonik
#define trig
D7 //Set In TX D0
#define echo
D8 //Set in RX D0
#define SwitchPin1
D4 //D4
#define SwitchPin2
D5 //D5
#define SwitchPin3
D6 //D6
//#define SwitchPin4
D7 //D7
#define wifiLed
1 //D10
#define VPIN_BUTTON_1
V1
#define VPIN_BUTTON_2
V2
#define VPIN_BUTTON_3
V3
//#define
VPIN_BUTTON_4 V4
long duration;
int distance;
int toggleState_1
= 1; //Define integer to remember the toggle state for relay 1
int toggleState_2
= 1; //Define integer to remember the toggle state for relay 2
int toggleState_3
= 1; //Define integer to remember the toggle state for relay 3
//int toggleState_4 =
1; //Define integer to remember the toggle state for relay 4
int wifiFlag
= 0;
#define BLYNK_TEMPLATE_ID
"TMPLHg7_XIk_"
#define BLYNK_DEVICE_NAME
"Quickstart template"
#define BLYNK_AUTH_TOKEN
"cjgj52SGdU-S2Cy6ofkXSktKFoDMC6Y8"
char auth[]
= BLYNK_AUTH_TOKEN;
char ssid[]
= "TUPPERWARE";
char pass[]
= "bayarblok";
BlynkTimer timer;
void relayOnOff(int relay){
switch(relay){
case 1:
if(toggleState_1 == 1){
digitalWrite(RelayPin1, LOW); // turn on relay 1
toggleState_1 = 0;
Serial.println("Device1 ON");
}
else{
digitalWrite(RelayPin1, HIGH); // turn off relay 1
toggleState_1 = 1;
Serial.println("Device1 OFF");
}
delay(100);
break;
case 2:
if(toggleState_2 == 1){
digitalWrite(RelayPin2, LOW); // turn on relay 2
toggleState_2 = 0;
Serial.println("Device2 ON");
}
else{
digitalWrite(RelayPin2, HIGH); // turn off relay 2
toggleState_2 = 1;
Serial.println("Device2 OFF");
}
delay(100);
break;
case 3:
if(toggleState_3 == 1){
digitalWrite(RelayPin3, LOW); // turn on relay 3
toggleState_3 = 0;
Serial.println("Device3 ON");
}
else{
digitalWrite(RelayPin3, HIGH); // turn off relay 3
toggleState_3 = 1;
Serial.println("Device3 OFF");
}
delay(100);
break;
/*
case 4:
if(toggleState_4
== 1){
digitalWrite(RelayPin4,
LOW); // turn on relay 4
toggleState_4
= 0;
Serial.println("Device4
ON");
}
else{
digitalWrite(RelayPin4,
HIGH); // turn off relay 4
toggleState_4
= 1;
Serial.println("Device4
OFF");
}
delay(100);
break; */
default : break;
}
}
void with_internet(){
//Manual
Switch Control
if
(digitalRead(SwitchPin1) == LOW){
delay(200);
relayOnOff(1);
Blynk.virtualWrite(VPIN_BUTTON_1,
toggleState_1); // Update Button Widget
}
else
if (digitalRead(SwitchPin2)
== LOW){
delay(200);
relayOnOff(2);
Blynk.virtualWrite(VPIN_BUTTON_2,
toggleState_2); // Update Button Widget
}
else
if (digitalRead(SwitchPin3)
== LOW){
delay(200);
relayOnOff(3);
Blynk.virtualWrite(VPIN_BUTTON_3,
toggleState_3); // Update Button Widget
}/*
else if
(digitalRead(SwitchPin4) == LOW){
delay(200);
relayOnOff(4);
Blynk.virtualWrite(VPIN_BUTTON_4,
toggleState_4); // Update Button Widget
}*/
}
void without_internet(){
//Manual
Switch Control
if
(digitalRead(SwitchPin1) == LOW){
delay(200);
relayOnOff(1);
}
else
if (digitalRead(SwitchPin2)
== LOW){
delay(200);
relayOnOff(2);
}
else
if (digitalRead(SwitchPin3)
== LOW){
delay(200);
relayOnOff(3);
}
/*
else if (digitalRead(SwitchPin4) == LOW){
delay(200);
relayOnOff(4);
}*/
}
BLYNK_CONNECTED() {
// Request
the latest state from the server
Blynk.syncVirtual(VPIN_BUTTON_1);
Blynk.syncVirtual(VPIN_BUTTON_2);
Blynk.syncVirtual(VPIN_BUTTON_3);
//
Blynk.syncVirtual(VPIN_BUTTON_4);
}
// When App button is
pushed - switch the state
BLYNK_WRITE(VPIN_BUTTON_1) {
toggleState_1
= param.asInt();
digitalWrite(RelayPin1, toggleState_1);
}
BLYNK_WRITE(VPIN_BUTTON_2) {
toggleState_2
= param.asInt();
digitalWrite(RelayPin2, toggleState_2);
}
BLYNK_WRITE(VPIN_BUTTON_3) {
toggleState_3
= param.asInt();
digitalWrite(RelayPin3, toggleState_3);
}
/*
BLYNK_WRITE(VPIN_BUTTON_4)
{
toggleState_4 = param.asInt();
digitalWrite(RelayPin4, toggleState_4);
}*/
void checkBlynkStatus()
{ // called every
3 seconds by SimpleTimer
bool isconnected = Blynk.connected();
if (isconnected == false) {
wifiFlag
= 1;
digitalWrite(wifiLed, HIGH); //Turn off WiFi LED
}
if (isconnected == true) {
wifiFlag
= 0;
digitalWrite(wifiLed, LOW); //Turn on WiFi LED
}
}
void sendSensor()
{
digitalWrite(trig, LOW);
// Makes trigPin low
delayMicroseconds(2); // 2 micro second delay
digitalWrite(trig, HIGH); // tigPin high
delayMicroseconds(10); // trigPin high for 10 micro seconds
digitalWrite(trig, LOW);
// trigPin low
duration
= pulseIn(echo, HIGH);
//Read echo pin, time in microseconds
distance
= ((13 -(duration * 0.034 / 2))/13)*100;
//Calculating actual/real distance
float
jarak =(duration*0.034/2);
Serial.print("Distance = "); //Output distance on arduino serial monitor
Serial.println(distance);
if(jarak <= 5)
{
digitalWrite(RelayPin3,HIGH);
Blynk.tweet("My Arduino project is tweeting using @blynk_app and
it̢۪s awesome!\n #arduino #IoT #blynk");
Blynk.notify("Post has been twitted");
}
else if(jarak >= 10)
{
digitalWrite(RelayPin3,LOW);
}
Blynk.virtualWrite(V0, distance);
delay(1000);
//Pause for 3 seconds and start measuring distance again
}
void setup()
{
Serial.begin(9600);
pinMode(RelayPin1, OUTPUT);
pinMode(RelayPin2, OUTPUT);
pinMode(RelayPin3, OUTPUT);
//pinMode(RelayPin4,
OUTPUT);
pinMode(wifiLed, OUTPUT);
pinMode(SwitchPin1, INPUT_PULLUP);
pinMode(SwitchPin2, INPUT_PULLUP);
pinMode(SwitchPin3, INPUT_PULLUP);
//
pinMode(SwitchPin4, INPUT_PULLUP);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
//During
Starting all Relays should TURN OFF
digitalWrite(RelayPin1, toggleState_1);
digitalWrite(RelayPin2, toggleState_2);
digitalWrite(RelayPin3, toggleState_3);
//
digitalWrite(RelayPin4, toggleState_4);
Blynk.begin(auth, ssid, pass,"blynk.cloud",
80);
timer.setInterval(1000L, sendSensor); // check if Blynk server is connected every 3 seconds
//
//Blynk.config(AUTH);
}
void loop()
{
if (WiFi.status() != WL_CONNECTED)
{
Serial.println("WiFi Not
Connected");
}
else
{
Serial.println("WiFi
Connected");
Blynk.run();
}
timer.run(); // Initiates
SimpleTimer
if (wifiFlag == 0)
with_internet();
else
without_internet();
}
F. Cara Kerja
Alat ini akan aktif apabila
mendapat catu daya dan koneksi internet. Saat sudah alat dan blynk sudah terkoneksi
dengan internet maka alat bisa dikontrol melalui aplikasi blynk. Saat tombol on
pada blynk ditekan maka relay pada alat ini akan menyala sesuai dengan nomot
tombol yang ditekan, bila tombol 1 ON maka relay 1 On, begitu seterusnnya.
Dengan aplikasi blynk kita dapat mengatur nyala matinya suatu alat elektronik
yang terpasang pada alat ini, dan juga kita dapat memonitoring isi dari tempat
penampungan air yang kita gunakan dirumah.
IV. Analisis
Saat
ketinggian air berada dibawah 20% atau sekitar 3 cm maka popma air yang
terpasang pada alat akan menyala dan air mulai mengisi hingga ketinggian 85%
atau sekitar 13 cm. Saat sudah mencapai 85% maka pompa akan mati dan akan
menyala kembali jika kondisi air berada pada 20%.
V. Kesimpulan
Dari analisis alat ini dapat diambil beberapa
kesimpulan yaitu:
1.
Cara
kerja sensor ultrasonik HC-SR04 pada Alat Pendetesi Banjir Menggunakan IoT
(Blynk) berbasis Node MCU 8266 yaitu untuk mendeteksi ketinggian pada air
sesuai level ketinggian air. Sensor akan mengirimkan gelombang sinyal yang akan
diproses oleh Node MCU 8266 setelah itu outputnya akan mengirimkan data ke
aplikasi Blynk.
2.
Alat ini dapat mengontrol elektronik yang terhubung
dengan baik saat terkoneksi dengan internet.
3. Motor pompa dc yang digunakan akan aktif apabila air dalam tangki penampungan sudah mulai habis atau dibawah 20% dari ketinggian tangki air.
VI. Saran
Alat
ini seharusnya bisa dikontrol melalui saklar fisik dan tidak hanya melalui
smartphone, karena saat tidak terkoneksi internet maka alat tidak bisa dikontrol,
dan saat berada di rumah kita tidak perlu membuka aplikasi pada smartphone
untuk menyalakan suatu alat elektronik
Komentar
Posting Komentar