Peralatan-peralatan listrik dikendalikan dengan sebuah ponsel cerdas atau laptop melalui web browser.  Status atau nilai-nlai dari sensor yang terhubung juga dapat dipantau melalui web browser.  Sistem seperti inilah yang akan kita diskusikan pada artikel ini dan bagaimana mempersiapkan peralatan baik software maupun hardware untuk penerapannya di bidang Internet of Things.  Hardware dan software yang digunakan di sini bukan satu-satunya alat/cara yang bisa digunakan, namun untuk keperluan pembelajaran, maka lebih praktis kita menggunakan perangkat keras Raspberry Pi sebagai server dan mikrokontroler NodeMCU 8266 sebagai perangkat yang akan dikoneksikan ke sensor atau beban.  Software yang digunakan adalah Node-RED dengan protokol komunikasi MQTT, yang dalam banyak hal memberikan keuntungan dan kemudahan dalam implementasinya.  Node-RED merupakan aplikasi dengan platform Nodejs yang berjalan di server dan melayani perangkat yang terhubung ke server tersebut.   Pemprograman Node-RED dilakukan secara grafis melalui web browser yang akan dijelaskan nanti.  

Berikut ini langkah-langkah persiapan secara garis besar instalasi Raspberry Pi 4 yang akan digunakan sebagai server

1. Instalasi Ubuntu Server sebagai operating system pada Raspberry PI

Pilih versi Ubuntu Server sesuai yang diinginkan dan sesuai jenis prosesornya apakah 64bit atau 32bit.  Download di 

https://ubuntu.com/download/raspberry-pi . Setelah selesai download, silakan mini SD Card dengan image tersebut dan lakukan instalasi.  Siapkan hardware berupa monitor dengan koneksi HDMI, kabel HDMI yang sesuai, keyboard, mouse, kabel jaringan atau pakai WiFi.  Setelah itu ikuti petunjuknya dapat di ikuti secara detail di: https://ubuntu.com/tutorials/how-to-install-ubuntu-on-your-raspberry-pi#1-overview 

Setelah selesai instalasi dan asumsinya sudah tersambung ke network dan mendapat IP address, gunakan SSH jika menggunakan PC lain dalam instalasi atau konfigurasi software.  Berikut tampilan awal SSH setelah memasukkan username dan password.

2. Instalasi Node-RED

Node-RED merupakan aplikasi server menggunakan platform Nodejs, sehingga kita perlu terlebih dahulu install Nodejs dan npm.  Syukurlah sudah ada script yang dapat membantu install semua yang kita perlukan.   Untuk itu silakan install Node-Red di Rapberry Pi dengan mengikuti petunjuk di:  https://nodered.org/docs/getting-started/raspberrypi

S
cript yang digunakan (melalui terminal atau SSH) yaitu: 

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Screenshot berikut adalah tampilan ketika Node-RED sedang diinstall.  Tunggu sekitar 30 menit sampai selesai.



tampilan ketika selesai install adalah sebagai berikut:



Apabila Node-RED ingin dijalankan sebagai sebuah service, maka perlu jalankan: node-red-start

Service sedang berjalan, selanjutnya console tersebut bisa ditutup.

Untuk menjalankan Node-RED secara otomatis saat booting, maka perlu ketik:

sudo systemctl enable nodered.service


Untuk menguji instalasi berhasil atau belum, jalankan webbrowser, masukkan alamat http://<hostname>:1880

Hostname dapat dicari dengan menjalankan

                hostname -I

pada prompt di Raspberry Pi
Jika Anda menggunakan SSH, maka seharusnya sudah tahu IP addressnya.

Setelah itu akan tampilan Node-RED sebagai Admin, disini kita bisa membuat program secara grafis mengunakan fungsi di dalam node dan diumpankan melalui aliran garis/kurva atau disebut flow.


Pada aplikasi Node-RED, kita biasanya membutuhkan antarmuka (interface) untuk user melalui webbrowser, atau biasa disebut dengan dashboard.  Secara default, instalasi Node-RED di atas belum termasuk antarmuka dasbor, untuk itu kita perlu pasan node yang digunakan sebagai user input/output saat membuka aplikasi melalui web browser.











cobalah membuat aplikasi sederhana menggunakan Button, Text, Slider dan Gauge seperti ini:



Double-click pada node Button, bagian group pilih [Home]  Default  (atau sesuai menu yang diinginkan),  pada Payload ketik kata misalnya ON, topic: msg.topic lalu klik Done.  Pada Node yang lain (text, slider, gauge), atur menunya [Home] Default. 

setelah itu klik Deploy, lalu masuk ke halaman user interface di http://<hostname>:1880/ui 
Tampilan akan seperti ini.  

apabila Button ditekan, maka text akan bernilai ON.  Apabila slider digeser, maka nilai pada gauge akan berubah sesuai nilai slider.

Latihan:  buatlah aplikasi serupa, dengan dua tombol, masing-masing ON dan OFF, dan selanjutnya nilainya ditampilkan ke text.

3. Instalasi MQTT Broker

Sebelum instalasi, perlu dipahami dulu apa yang dimaksud dengan protokol Message Queuing Telemetry Transport atau MQTT.  Sama halnya dengan HTTP, protokol MQTT berjalan menggunakan layer TCP/IP.  Perbedaannya, HTTP menggunakan konsep Request/Response sedangkan MQTT menggunakan konsep Publish/Subscribe.  Seperti yang Anda ketahui, halaman website ini menggunakan protokol HTTP, sehingga perlu request terlebih dahulu dari client ke server sebelum halaman ini terkirim dari server ke client.  Intinya, apabila kita ingin mendapatkan sesuatu maka harus selalu minta terlebih dahulu. 
Pada MQTT, paket informasi yang dikirim berupa topik dan pesan.  Untuk mendapatkan pesan, maka client device perlu langganan topik tertentu (subscribe) yang selanjutnya akan menerima pesan dari client lain yang pesan tersebut di kirim (publish) dengan topik yang sama.   Setiap client device dapat berperan sebagai subscriber (pelanggan) atau publisher (pengirim) atau keduanya.  Sebuah MQTT Broker (atau server) dibutuhkan pada protokol ini, yaitu bertugas sebagai pengatur lalu lintas data dari/ke client -- client, sesuai topik.

Untuk instalasi pada Raspbery Pi, ketik pada terminal sebagai berikut:

sudo apt install mosquitto

tampilannya: