Kode Program Untuk Kontrol Lampu Rumah Via WiFi Android

Melanjutkan catatan kecil sebelumnya, sekarang kita masuk ke bagian kode program lengkap pada sisi NodeMCU agar dapat mengontrol lampu rumah melalui WiFi Android. 


on Sen, 08/21/2017 - 21:53
35.567 View

Melanjutkan catatan kecil sebelumnya, sekarang kita masuk ke bagian kode program lengkap pada sisi NodeMCU agar dapat mengontrol lampu rumah melalui WiFi Android. Saya telah menulis bagian logika kode yang akan diprogram ke NodeMCU, bagian kode yang sudah lengkap ini merupakan pengembangan dari analisis kode sebelumnya. Apabila kode sebelumnya hanya untuk menghubungkan NodeMCU ke WiFi Android, maka kode yang sekarang sudah saya tambahkan bagian logika untuk membuat sebuah web server sederhana.

Web server sederhana ini bekerja sebagai penerima perintah dan pengirim data yang kita minta. Karena sistem antarmukanya saya rancang menggunakan teknologi berbasis web moderen, maka diperlukan sebuah web server sederhana yang berjalan di NodeMCU. Saya sempat berpikir bagaimana caranya membuat sistem ini sesederhana mungkin, sehingga bagi kalian yang ingin mencobanya sendiri dapat mengikutinya dengan sangat mudah. Mulai dari keperluan softwarenya, hingga rangkaian elektroniknya saya rancang dengan sangat simpel. Pada sisi softwarenya, saya sepenuhnya menulis kode logikanya pada program Arduino yang akan di-flash ke NodeMCU, jadi kalian tidak perlu ruwet-ruwet lagi ikut ngoding dari awal. Kalian hanya perlu menyalin kodenya, menempelnya di IDE Arduino, lakukan sedikit penyesuaian sesuai dengan konfigurasi kalian, upload dan selesai deh.

Pada sisi hardware, saya juga menggunakan beberapa modul yang sudah jadi. Seperti misalnya modul power supply, modul relay dan pengkabelannya telah saya rancang sesederhana mungkin. Tapi untuk turorial pengkabelan dan rangkaian tidak akan saya bahas disini, tapi nanti di artikel selanjutnya. Saat ini, saya akan fokuskan pada bagian perangkat lunaknya. Untuk perangkat lunak, pada dasarnya dibagi menjadi dua, kode yang ditanam di NodeMCU dan kode antarmuka. Tapi untuk antarmuka yang berbasis web moderen ini tidak perlu kita ulas, karena sudah berbasis web, saya tinggal taruh kodenya di Internet dan kalian dapat menggunakannya untuk mengakses NodeMCU kalian sendiri nantinya. Jadi tidak perlu buat sendiri-sendiri lagi untuk antarmukanya.

Oke, lanjut ke pokok bahasan, kode utama untuk NodeMCU. Berikut langsung saja saya berikan kode lengkapnya, bagi yang belum tau bagaimana cara memprogram NodeMCU, tutorial cara upload dan setup program Arduino IDE + NodeMCU library ada disini, kalian tinggal salin dan sesuaikan beberapa pengaturan dengan kondisi kalian. 

https://github.com/NarinLab/SaklarApp

atau bisa clone dengan git

git clone https://github.com/NarinLab/SaklarApp.git

**Update 4 September 2017

Kode sekarang telah dilengkapi dengan sistem pengalamatan otomatis DHCP, sehingga kalian sudah tidak perlu report lagi berurusan dengan IP Address :D

Pada kode diatas, saya telah memberikan batasan komentar dengan /***** PENYESUAIAN DIMULAI DARI SINI *****/, silahkan perhatikan isi dari kode yang diapit oleh komentar tersebut. Semua penyesuaian yang mungkin kalian perlukan ada di dalam batasan komentar ini. Terutama pada bagian SSID WiFi dan password kalian, mohon pastikan untuk merubahnya sesuai dengan konfigurasi yang kalian gunakan. Untuk konfigurasi lainnya seharusnya sudah self explanatory ya, dan yang mungkin perlu saya garis bawahi disini adalah apabila kalian mengikuti dengan pasti tutorial pengkabelannya maka seharusnya tidak perlu lagi melakukan penyesuaian pada bagian selain SSID dan password WiFi. Tetapi apabila kalian menambahkan perangkat lain misalnya, yang pada contoh ini menggunakan tiga lampu/perangkat lalu kemudian kalian menambahkan menjadi empat lampu, maka penyesuaian yang kalian perlukan cukup hanya dengan menyalin beberapa fungsi yang mewakali perangkat yang kalian tambahkan.

Seperti misalnya, kalian dapat menyalin fungsi dibawah komentar //DEVICE 1, kemudian //Fungsi get data Dev 1, //Fungsi untuk handler deviceList, //Fungsi untuk mengendalikan lampu (type: RELAY), terakhir //PIN MODE dan mengubah nomernya menjadi 3 untuk lampu ketiga dan seterusnya. Apabila kalian lihat dengan teliti, kalian dapat melihat pola kodenya dengan sangat mudah. Sebagai bayangan, satu NodeMCU dapat mengontrol hingga 10an lebih relai, yang artinya dapat digunakan untuk 10 lampu. Ini adalah konfigurasi tanpa tambahan rangkaian yang lebih rumit, tetapi apabila kalian perlu, sebenarnya kalian bisa menggunakan puluhan hingga ratusan lampu pada satu NodeMCU dengan menggunakan rangkaian tambahan berupa shift register. Tetapi metode ini tidak saya sarankan karena terlalu rumit dan riskan. Lebih baik gunakan tidak lebih dari 5 lampu pada satu NodeMCU, apabila perlu lebih banyak kita dapat menggunakan lebih dari satu NodeMCU. Penggunaan untuk lebih dari satu NodeMCU akan saya bahasa pada catatan berikutnya sudah ditambahkan secara otomatis pada antarmuka web versi terbaru (update 4 september 2017).

Untuk sekarang, setelah kalian selesai melakukan penyesuaian, seharusnya kalian telah dapat mencobanya langsung di HP kalian tanpa harus menunggu untuk memasang pengkabelan dan rangkaian relai dan lampunya. Caranya adalah, setelah NodeMCU selesai diprogram dengan kode diatas, kalian dapat langsung membuka alamat http://lab.tutorkeren.com/saklar . Kode antarmuka yang berbasis web moderen yang saya singgung tadi saya publikasikan di alamat tersebut, silahkan digunakan dengan bijak. Perlu dicatat bahwa, kalian harus berada dalam satu jaringan WiFi dengan NodeMCU agar dapat menggunakan antarmuka tersebut. Jangan lupa aktifkan tethering HP Android kalian agar NodeMCU dapat menghubung ke HP kalian, dan kalian juga perlu koneksi internet untuk dapat mengakses antarmukanya. Selanjutnya kalian dapat mencoba antarmukanya dulu, sebelum kita masuk ke bagian pengkabelan dan menyelesaikan tutorial singkat dan mudah ini, yaitu bagaimana caranya mengontrol lampu rumah melalui WiFi Android melalui web.

Hasilnya adalah seperti berikut (klik untuk memperbesar):

[[{"fid":"1066","view_mode":"wysiwyg","fields":{"format":"wysiwyg","alignment":"center","field_file_image_alt_text[und][0][value]":"Kontrol Lampu Rumah via WiFi Android dengan antarmuka web","field_file_image_title_text[und][0][value]":"Kontrol Lampu Rumah via WiFi Android dengan antarmuka web","external_url":""},"type":"media","field_deltas":{"1":{"format":"wysiwyg","alignment":"center","field_file_image_alt_text[und][0][value]":"Kontrol Lampu Rumah via WiFi Android dengan antarmuka web","field_file_image_title_text[und][0][value]":"Kontrol Lampu Rumah via WiFi Android dengan antarmuka web","external_url":""}},"link_text":null,"attributes":{"alt":"Kontrol Lampu Rumah via WiFi Android dengan antarmuka web","title":"Kontrol Lampu Rumah via WiFi Android dengan antarmuka web","class":"media-element file-wysiwyg media-wysiwyg-align-center","data-delta":"1"}}]]

Pada antarmuka, secara ringkas terdapat informasi penggunaan daya listrik, biaya yang dihabiskan, dan waktu dari perangkat tersebut menyala. Jadi sangat berguna untuk kita dapat memantau penggunaan listrik dengan mudah melalui HP Android kita, selanjutnya saya juga berencana menambahkan fitur auto off dan on untuk lebih jossnya, jadi ikuti terus ya. :D

Oke sekian catatan singkatn ini. See u next, apabila ada yang ingin didiskusikan jangan sungkan kirim komentar dibawah, *emo_50*

saya sudah tidak sabar mencoba lampunya *emo_9*

Profil Penulis

User Picture
  • Member Since 9 tahun 4 bulan ago
Aditya Suranata

Embedded System, Internet of Things, Precision Agriculture, Controlled Environment...

Aditya suka menulis, bukan hanya sekedar hobi, menulis menjadi medianya untuk mencurahkan pikiran dan perasaan. Di TutorKeren.com kebanyakan menyumbang tulisan sesuai dengan minat dan keahliannya yaitu pada kategori pemrograman dan elektronika....

Comments

gan ane mau lanjutin yg kemaren, gimana caranya setting IP static pada wifi di nodemcu?

ane udah hapus syntax // dan set IPnya misal jadi 192.168.72.145 dst, tapi ga connect itu kenapa ya? mohon bantuannya gan

 

Kam, 02/01/2018 - 14:08 Link permanen

Halo gan, sorry late reply

Untuk setting IP Statik bisa uncomment bagian:

//Menggunakan DHCP, tidak perlu setting IP 
const IPAddress WIFI_IP(192, 168, 0, 2);
const IPAddress WIFI_GATEWAY(192, 168, 0, 1);
const IPAddress WIFI_SUBNET(255, 255, 255, 0);
const IPAddress WIFI_DNS_1(192, 168, 0, 1);
const IPAddress WIFI_DNS_2(8, 8, 8, 8);

//Versi DHCP, tidak menggunakan config().
WiFi.config(WIFI_IP, WIFI_GATEWAY, WIFI_SUBNET, WIFI_DNS_1, WIFI_DNS_2);

 

Kode terbaru ada di sini: https://github.com/NarinLab/SaklarApp/blob/master/firmware/firmware.ino

Silahkan dicoba, apabila ada kendala bisa pos lagi disini. *emo_58*

Sab, 02/03/2018 - 21:21 Link permanen

mas klo misalnya kirim perintahnya tidak lewat web, tp lgsg buat aplikasi android gmn caranya ya. atau ada tutorial d sini. makasih mohon pencerahannya

Sel, 02/20/2018 - 16:31 Link permanen

Halo Gan,

Untuk bisa langsung dibuka dari Android sangat bisa sekali, source code yg dalam bentuk web tinggal diupload ke layanan yang menyediakan jasa konversi kode aplikasi web ke mobile native. Bisa search di google dengan keyword website to apk

Saya juga berencana upgrade ke versi yang lebih bagus menggunakan Angular dan nanti outputnya akan bisa ke Android dan iOS, sudah saya mulai dan sepertinya rampung dalam waktu dekat. Tetapi jika mas perlu cepat, bisa coba konversi kode webnya ke apk seperti yang saya jelaskan sebelumnya.

Source code ada di github, linknya ada di atas.

Salam *emo_43*

Sel, 02/20/2018 - 17:45 Link permanen

Wow, semangat banget mas *yahoo*

oke berhubung permintaannya begitu, maka saya juga semakin bersemangat untuk menyelesaikan versi upgrade dari SklarApp ini.

Versi yg baru dibuat menggunakan teknologi terbaru juga, mulai dari framework menggunakan Angular 5, komunikasi Websocket dan semuanya tertanam di NodeMCu. Karena menggunakan Angular 5 nanti target platform bisa masuk ke Android, iOS dan juga Web.

Saya akan set juga repository di GitHub untuk source code, dan step by step mulai dari proses desain hingga implementasi akan saya post di tutorial terpisah.

So stay tune... *emo_76*

Rab, 02/21/2018 - 20:32 Link permanen

mas, mau nanya itu kan ada jumlah biaya penggunaan listrik ? itu ukur biayanya pakai alat kah atau di set di kodingan ?

 

Sel, 04/09/2019 - 18:16 Link permanen

In reply to by dits

Halo,

untuk estimasi biaya penggunaan listrik tidak ada pakai alat tambahan, semuanya dikalkulasikan dari program berdasarkan wattage dari alat yang terhubung ke saklar dan durasi saklarnya menyala.

*emo_43*

Jum, 04/12/2019 - 10:55 Link permanen