NodeMCU ESP8266 : Prototype Lampu “Auto ON OFF” dengan Membaca Input Analog
1. Overview
Salah satu perangkat elektronik yang sering mengonsumsi daya listrik adalah lampu. Mama saya selalu memarahi saya ketika saya lupa mematikan lampu kamar saya ketika hari sudah terang, katanya kita tidak boleh boros listrik. Untuk menghindari hal tersebut, saya mencoba membuat sebuah prototype untuk mematikan dan menyalakan lampu secara otomatis (walaupun alat aslinya sudah ada, tapi karena ini untuk pembelajaran, mari kita coba saja yaa! tidak ada protes2 gan!).
Oke, overview sebenarnya dari artikel ini adalah kita akan mencoba membaca input analog dari NodeMCU ESP8266. Untuk yang belum tahu apa itu NodeMCU ESP8266, silakan kunjungi artikel berikut :
2. Objectives
- Prototype bisa menyalakan lampu saat kondisi gelap, dengan membaca input analog dari LDR.
- Prototype bisa mematikan lampu saat kondisi terang, dengan membaca input analog dari LDR.
3. Tools
- 1 pcs Node MCU ESP8266 v3 (Rp39.900/pcs) — Link Pembelian
- 1 pcs Resistor 1K (Rp100/pcs) — Link Pembelian
- 1 pcs LDR Photoresistor (Rp500/pcs)— Link Pembelian
- 3 pcs Breadboard 170 Lubang(Rp5.000/pcs) — Link Pembelian
- 3 pcs Jumper Male-to-Male(Rp325/pcs) — Link Pembelian
Total Biaya : Rp56.475 (Harga per 17 Juli 2021)
Disini kita pakai breadboard biar ga nyolder-nyolder lagi ya. Jadi tinggal sat-set-sat-set-simsalabim, alatnya akan berfungsi tanpa nyolder-nyolder.
4. Susunan Rangkaian
Berikut adalah simulasi rangkaiannya:
- ADC merupakan input yang akan dibaca oleh LDR
- VCC merupakan tegangan masuk yang akan diterukan ke resistor dan LDR
- GND akhir dari arus listriknya (kutub negatif)
Berikut adalah rangkaian sebenarnya:
Oke, saya jelasin dikit tentang rangkaiannya kalau misalkan fotonya kurang jelas
- Yang paling pertama harus kalian tahu adalah satu row di breadboard itu sama aja dengan nyolder semua yang ada di satu row itu. Misal kita nyolok 2 pin. Pin pertama di A1 dan pin kedua di B1, nah itu sama aja kalau kita nyolder 2 pin itu. Kalau misal nambah nyolok di pin C1, maka sama aja nyolder 3 pin. Untuk penjelasan lebih jelas tentang breadboard bisa klik ini.
- Kabel warna merah nyambungin Analog(A0), Resistor, dan LDR.
- Kabel warna oranye nyambungin LDR dan Ground(G).
- Kabel warna kuning nyambungin VCC(3V) dan Resistor.
- Nanti lita pakai Builtin LED NodeMCU buat rangkaiannya. LED itu yang diatas WIFI itu yang kecil kayak perasaan dia ke saya :(.
5. Instalasi Software Sebelum Ngoding!
Untuk bagian ini, saya telah membuat artikel terpisah. Silakan cek disini.
6. Coding Time!! Ngodenk Ngodenk Ngodenk!
Deskripsi kodingan :
- Pertama, kita tetapkan beberapa kosntanta yang akan kita gunakan diantaranya adalah :
- ledBuiltIn = LED_BUILTIN — led bawaan di modul ESP8266 nya.
- ldrPin = A0 — input analog di ESP8266.
- DARKEST_LDR_VALUE = 1024 — nilai analog LDR paling gelap.
- LIGHTEST_LDR_VALUE = 700 — nilai analog LDR paling terang di kamar saya.
Sekedar info, saya telah melakukan uji coba di kamar saya, dan kondisi paling terang yang diberikan analog input LDR adalah 700, itu adalah siang hari jam 12 dan kondisi lampu saya menyala. - Kemudian kita lakukan setup pada function void setup():
- Setup serial value berdasarkan modul yang kita gunakan (lihat valuenya dibelakang PCB Node MCU kalian).
- Setup LDR sebagai pin input
- Setup LED BUILTIN sebagai pin output - Lalu pengkondisian yang akan terus berjalan di function void loop():
- delay(1000) — untuk delay loop setiap 1 detik, agar tidak terlalu sering mengambil data (boros energi).
- analogRead(ldrPin) — membaca nilai analog 0–1024 dari
- darkPercentage — membuat persentasi kegelapan
- if (darkPercentage >= 0.85 ) {…}else{…}— jika persentasi kegelapan lebih dari 85%, maka nyalakan lampu. Sebaliknya, jika nilainya lebih kecil dari 85%, maka matikan lampu. Kodingan ini bisa disesuaikan dengan kondisi ruangan masing-masing.
7. Compile and Upload Time!
- Setelah melakukan kodingan, lakukan verify(compile) untuk menguji kodingannya. Jika ada error, maka perbaiki dulu. Pastikan pesan setelah melaukan compile adalah Done Compiling!
- Kemudian, pastikan NodeMCU nya sudah tersambung ke PC masing2. Pastikan juga sudah melakukan Step №5 di artikel ini! Pastikan juga kalian menggunakan PORT USB yang tepat (Tools > Port:).
- Terakhir, upload kodingan tersebut ke modul Node MCU kalian!
- Voila! Kita telah berhasil membuat rangkaian sederhana untuk mematikan dan menyalakan lampu secara otomatis!
7. Result
- Berikut adalah serial monitor (Tools > Serial Monitor)saat kondisi ruangan sangat gelap.
- Berikut adalah serial monitor saat kondisi alat sedang disinari cahaya dai handphone.
- Uji coba modul saat keadaan gelap, terang, dan lampu sebenarnya sedang menyala.
8. Summary
Dengan adanya alat ini, saya berharap Mama saya tidak lagi memarahi saya karena selalu lupa mematikan lampu di siang hari. Kedepannya alat ini hanya tinggal dipasangi Relay agar bisa langsung tercolok ke listriknya.
Terima kasih sudah membaca cerita saya, semoga bermanfaat!~~