Membuat IOT Smart Relay Sederhana Menggunakan Node MCU V3

Kali ini saya akan mencoba membuat smart relay menggunakan board ESP8266, alat ini nantinya bisa digunakan sebagai sakelar pintar di rumah atau di kantor.

Bahan-bahan yang dibutuhkan adalah:


  • ESP8266 / Node MCU V3



  • Relay 4 Channel



  • Kabel Jumper Female to Female



Pin yang dihubungkan dengan kabel jumper:


ESP8266 Relay 4 Channel
D5 IN1
D6 IN2
D7 IN3
D0 IN4
GND GND
VIN VCC



Jika semua bahan di atas sudah siap, selanjutnya kita akan masuk ke dalam pemrograman menggunakan arduino IDE, disini saya asumsikan kalian sudah menginstall dan memasang library esp8266 di arduino IDE.


Namun sebelum mulai ke program saya akan mencoba sedikit menjelaskan cara kerja dan target program ini nantinya.


Jadi disini saya akan mencoba membuat sebuah smart relay, memang sudah umum di pasaran namun saya akan mencoba menggabungkan beberapa fitur menjadi 1 pada board esp8266, diantaranya fitur bot Telegram, Blynk IoT, Web Panel. Jadi nantinya program ini bisa diakses melalui internet melalui Blynk IoT dan Telegram, tetapi sampai disini saya memiliki satu keraguan yaitu jika sewaktu-waktu internet mati, jadi saya tidak bisa mengakses alat ini. Dari masalah ini saya menambahkan Web Panel untuk mengontrol relay tersebut agar menjadi backup ketika internet tiba-tiba mati.


Lalu setelah masalah di atas terselesaikan, timbul rasa kekhawatiran lagi yaitu mengingat board tersebut memmiliki fitur bot telegram yang dimana cara kerjanya adalah menerima pesan masuk dan mengolahnya lalu mengirimkan jawaban, berarti semua orang dapat memerintah relay ini semaunya. Maka dari itu saya secara default akan mendisable layanan bot Telegram pada board ini dan dapat dinyalakan melalui Web Panel.


Mengapa saya memilih Blynk IoT untuk board saya, karena Blynk IoT sudah banyak yang memakai dari komunitas hingga perusahaan. Yang kedua Blynk IoT sangat fleksibel untuk digabungkan dengan berbagai macam program karena dia memiliki Restful API yang dapat digunakan untuk mengubah value dari datastream nantinya.


Untuk cara mendaftar Blynk IoT dan Bot Telegram bisa kalian cari sendiri di google :) , karena artikel saya kali ini hanya fokus membahas sintaks script pada arduino IDE saja.

Langsung saja masuk ke arduino IDE.


Install kedua library berikut untuk menjalankan Blynk dan Bot Telegram





Jika sudah kita akan mulai dengan mendeklarasikan auth token pada baris paling atas sebelum memulai untuk menginclude library.



Selanjutnya mulai menginclude library dan mendeklarasikan global variable yang akan digunakan nantinya.



Selanjutnya saya akan membuat sebuah function atau void yang bernama server init untuk dipanggil saat pertamakali board dinyalakan dan melakukan initialisasi.



WiFi server memang sengaja tidak saya masukkan kedalam void karena WiFi Server ini memang harus dipanggil sebelum init hampir sama seperti auth token diatas.

Selanjutnya saya akan membuat declaration, setup virtual pin dan trigger parameter untuk Blynk.



Selanjutnya saya akan membuat function untuk init telegram dan menjalankan bot telegram.



Setelah itu membuat function untuk Web Server, jadi board ini nantinya akan menjadi web server untuk menghandle http request dari client ketika offline / tidak ada internet.



Setelah itu kita membuat void setup untuk pertama kali dijalankan oleh board esp8266 ketika pertama kali mendapatkan daya / pertama kali hidup.



Lalu saya akan membuat void loop, yaitu sebuah function yang akan terus di ulang tanpa henti, jika kita sudah masuk di sini kita harus berhati hati dalam membuat perintah karena jika kita mengalami error atau kesalahan pada function ini, semua error akan terus di ulang tanpa henti dan akan menyebabkan board menjadi sangat panas.



Sampai di sini kode sudah siap di upload ke dalam board esp8266.




Sintaks yang sering digunakan



Void adalah sebuah function atau fungsi yang digunakan pada bahasa pemrograman C++.



Include adalah sebuah sintaks untuk mengimport sebuah library di dalam sketch yang ada.



Define, const, string, int, dll adalah sebuah variable. Jika diawali dengan const atau define adalah variable yang paten (tidak bisa diubah).



Pin mode dapat digunakan untuk menentukan sebuah pin digital ingin digunakan sebagai input atau output, digital write digunakan untuk menulis nilai pada pin digital.



Serial print digunakan untuk mencetak sebuah nilai atau text ke dalam serial monitor, fungsi ini biasa digunakan untuk mendebug sebuah code.

Posting Komentar

Post a Comment (0)

Lebih baru Lebih lama