Prototipe Pemantauan dan Pengendalian Berbasis Node MCU ESP8266 dengan Aplikasi Blynk

Azis Dhava Putranto1, Salsabila Arpita Dhiya Fadhilah2

Intisari Internet of thing (IoT) merupakan suatu konsep yang bertujuan untuk memperluas manfaat dari konektivitas internet yang tersambung secara terus menerus. Internet of thing (IoT) bisa dimanfaatkan pada gedung untuk mengendalikan peralatan elektronik seperti lampu ruangan yang dapat dioperasikan dari jarak jauh melalui jaringan komputer. Internet of thing biasa dipadukan dengan berbagai mikrokontroler.

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 KunciInternet 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

WhatsApp Image 2022-04-10 at 16.52.16

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

WhatsApp Image 2022-04-10 at 22.49.54

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

oem_oem_full01.jpg

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

Daftar harga Stop Kontak Uticon 2 Lubang Bulan Juli 2022

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