AndroidIOT

Membangun Basic Smart Home Project Menggunakan Konsep IoT, Papan NodeMCU, Firebase Realtime Database, dan Aplikasi Android

Smart Home adalah sistem rumah pintar yang digunakan untuk mengendalikan hampir semua peralatan yang ada di dalam sebuah rumah atau gedung secara jarak jauh. Smart Home dapat dibangun salah satunya dengan menerapkan konsep Internet of Things (IoT) / Internet untuk Segalanya yaitu konsep dimana hampir semua perangkat terhubung dengan Internet.

Bacaan lebih lanjut tentang Smart Home: https://en.wikipedia.org/wiki/Home_automation

Bacaan lebih lanjut tentang IoT: https://en.wikipedia.org/wiki/Internet_of_things

Saat ini sudah banyak sekali produk dan brand Smart Home yang dijual dengan harga terjangkau baik itu produksi dalam negeri maupun luar negeri.

Pada tulisan kali ini, saya akan mencoba membangun project Smart Home sederhana menggunakan konsep IoT, dan beberapa tools seperti papan NodeMCU, database Firebase, dan aplikasi android. Skenario nya adalah seperti ini:

1) Papan NodeMCU sebagai mikrokontroller pengendali perangkat yang ada dirumah, pada kali ini saya menggunakan lampu LED pada NodeMCU (On-board LED) sebagai perangkat yang akan dikendalikan. Lampu LED memiliki dua keadaan yaitu saat ON dan saat OFF. Penulisan perintah pada NodeMCU menggunakan Arduino IDE.

2) Firebase digunakan sebagai penyimpan data keaadaan lampu LED. Firebase juga berperan sebagai penengah/penghubung antara papan NodeMCU dan aplikasi Android yang akan dibuat. Peran Firebase dapat digantikan oleh Web API, namun kali ini saya menggunakan Firebase karena: masih gratis, tidak perlu ngoding lagi untuk membangun web api, tidak perlu menyiapkan hosting segala macem pokoknya tinggal pakai.

3) Aplikasi Android digunakan sebagai remote control sederhana terhadap lampu LED yaitu berupa tombol ON dan OFF. Aplikasi akan dibangun menggunakan Android Studio.

4) Perangkat NodeMCU dan Android memerlukan Internet sehingga membutuhkan WiFi (dapat menggunakan Tethering) untuk menghubungkan NodeMCU dengan aplikasi android melalui jaringan Internet, intinya adalah semua tersambung ke Internet.

Gambaran umum skenario nya adalah seperti dibawah ini

Diagram Sistem Smart Home Sederhana

Adapun peralatan dan perangkat yang diperlukan untuk membangun project ini adalah:

  • Laptop yang telah terinstall Arduino IDE, Android Studio, Web Browser
  • Papan NodeMCU
  • Handphone Android
  • Kabel USB
  • Koneksi Internet (WiFi)

Dalam membangun project ini saya membagi menjadi 3 tahapan: A) Membuat Project pada Firebase, B) Integrasi Firebase dengan Aplikasi Android, C) Menuliskan kode perintah pada NodeMCU dan mengunggahnya menggunakan Arduino IDE

A. Membuat Project Firebase

1. Kunjungi konsol firebase https://console.firebase.google.com/ login dengan akun Google, anda dapat menggunakan layanan ini secara gratis sampai batas yang telah ditentukan

2. Klik pada Add Project, namai dengan SmartHomeBasic , uncheck Firebase Analytics karena saat ini kita tidak memerlukan fitur tersebut (dapat diaktifkan sewaktu-waktu).

3. Setelah project terbuat, anda akan diarahkan ke halaman Overview Project SmartHomeBasic.

B. Integrasi Firebase dengan Aplikasi Android

1. Buat project baru pada Android Studio dengan Nama SmartHomeRemote, saya akan menggunakan bahasa Pemprograman Kotlin

2. Setelah project android terbuat, klik menu Tools, lalu pilih Firebase

Asisten Firebase akan muncul pada Sidebar

3. Pilih Realtime Database > Save and retreive data

Maka langkah-langkah / instruksi akan terbuka

4. Ikuti instruksi tersebut, Hubungkan Android Studio dengan Firebase menggunakan akun Google yang sama

5. Pilih Choose an existing Firebase or Google project. pilih SmartHomeBasic, lalu klik tombol Connect to Firebase

6. Langkah atau step 2, Add the Realtime Database to your app , lalu klik Accept Changes. Project Android telah terhubung dengan Project Firebase

7. Kembali pada halaman console firebase, pilih Database

8. Pada Section Realtime Database, klik Create Database

9. Pilih Start in test mode, kita mengatur database agar dapat dibaca dan ditulis tanpa harus autentikasi terlebih dahulu, cocok untuk mode percobaan (dapat diatur ke mode terkunci atau privat sewaktu-waktu).

10. Kembali pada Android Studio, kita akan membuat aplikasi Android sederhana tampilan nya seperti berikut

terdapat dua buah tombol ON dan OFF, dan sebuah textview untuk memberitahu kondisi/status Lampu apakah ON atau OFF

11. Edit file activity_main.xml menjadi seperti:

12. Edit file MainActivity.kt menjadi seperti:

13. Run project tersebut pada perangkat Android anda, Setelah aplikasi berhasil berjalan, pastikan perangkat android terhubung dengan internet, silakan mencoba menekan tombol ON atau OFF pada aplikasi yang baru dibuat dan periksa console firebase anda pada project SmartHomeBasic > Menu Database > Tab Data

pada child status_lampu“, value nya akan berubah sesuai tombol yang kita tekan pada aplikasi android. Aplikasi Android berhasil menjadi remote control jarak jauh.

C. Menuliskan kode perintah pada NodeMCU dan mengunggahnya menggunakan Arduino IDE

1. Buka Arduino IDE, bagi yang belum install ikuti langkah-langkah pada link ini https://berqas.com/cara-install-arduino-ide-di-windows-10-dan-install-esp8266-add-on-di-arduino-ide/

2. Download FirebaseArduino Library di https://github.com/FirebaseExtended/firebase-arduino/archive/v0.3.zip

3. pada Arduino IDE, pilih menu sketch > include library > Add .zip Library

Pilih file firebase-arduino.zip yang telah didownload

4. edit file ..\Arduino\libraries\firebase-arduino-0.3\src\FirebaseHttpClient.h menggunakan teks editor, ubah baris 40-41 yaitu konstanta kFirebaseFingerprint[] menjadi seperti dibawah ini

static const char kFirebaseFingerprint[] =
      "03 D6 42 23 03 D1 0C 06 73 F7 E2 BD 29 47 13 C3 22 71 37 1B";

5. Install library ArduinoJson, pilih menu Sketch > Include Library > Manage Libraries…

6. Pada kotak pencarian, ketik arduinojson, pilih install, lalu tutup jendela Library Manager

7. tulis kode dibawah pada sketch Arduino IDE, lalu simpan dengan nama smarthomebasic.ino

8. sesuaikan FIREBASE_HOST dengan project firebase anda

9. sesuaikan FIREBASE_AUTH, dapat dilihat di Project settings > tab Service accounts > menu Database secrets, Copy isi Secret nya

10. Sesuaikan WIFI_SSID dan WIFI_PASSWORD yang anda gunakan dirumah

11. Hubungkan papan NodeMCU dan Laptop menggunakan kabel USB

12. Lakukan verify dan upload sketch yang dibuat. Setelah kode berhasil di upload ke papan NodeMCU, maka lampu LED pada NodeMCU (on-Board LED) akan menyala/mati sesuai data status yang disimpan di firebase. Anda dapat mengendalikan lampu LED tersebut menggunakan aplikasi android yang tadi dibuat.

Lampu LED menyala jika state “ON” dan Lampu LED tidak menyala jika state “OFF”

Sekian project smart home sederhana yang saya buat menggunakan konsep IoT, papan NodeMCU, database Firebase, dan aplikasi Android.

2 thoughts on “Membangun Basic Smart Home Project Menggunakan Konsep IoT, Papan NodeMCU, Firebase Realtime Database, dan Aplikasi Android

Comments are closed.