Aplikasi Web IoT Dashboard

Membangun aplikasi web sebagai IoT Dashboard yang dapat berkomunikasi melalui MQTT Broker Mosquitto antara website IoT Dashboard dan Iot Development board

Pengantar

Publisher - Subscriber di sisi aplikasi web IoT Dashboard

Pada bagian ini kita akan mengembangkan aplikasi web IoT Dahsboard untuk memonitor data logger beberapa sensor dari IoT Development Board, antara lain:

  • Sensor suhu & kelembaban DHT11

  • Sensor intensitas cahaya LDR

  • Sensor jarak penghalang Ultrasonic

Aplikasi web IoT Dashboard juga berisi beberapa widget untuk mengendalikan beberapa aktuator yang berada di IoT Development Board, antara lain:

  • Widget kontrol slider untuk mengaktifkan dan menonaktifkan 9x LED .

  • Widget kontrol chcekbox untuk mengaktifkan dan menonaktifkan Relay.

  • Widget kontrol checkbox untuk mengaktifkan dan menonaktifkan speaker piezo.

  • Widget kontrol slider untuk mengatur kecepatan putar FAN dengan mode PWM.

Jika ditinjau dari konsep client-server message broker maka aplikasi web IoT Dashboard bisa bertidak sebagai subscriber maupun publisher.

  • Ia akan menjadi subscriber apabila aplikasi web IoT Dashboard menampilkan data logger sensor-sensor yang berada di IoT Development board yang akan menunggu data yang dipublish oleh sensor secara periodik interval waktu.

  • Ia akan menjadi publisher apabila aplikasi web IoT Dashoard mengendalikan aktuator-aktuator yang berada di IoT Development Board melalui widget event yang berada di aplikasi web IoT Dashboard .

Berikut gambaran konsep arsitektur komunikasi antara aplikasi web IoT Dashboard dan IoT Development Board:

Posisi Subscriber dan Publisher IoT Dashboard System

Publisher - Subscriber di sisi IoT Development Board

IoT Development Board DSP-TECH

Serupa dengan aplikasi web IoT Dashboard, IoT Development Board juga bisa bertindak sebagai publisher dan subscriber.

  • Aktuator-aktuator pada IoT Development Board diasumsikan bertindak sebagai subscriber yang menunggu publisher mengirim data sebagai fungsi triger (callback function). Dalam hal ini adalah widget event dari aplikasi web IoT Dashboard.

  • Sensor-sensor pada IoT Development Board diasumsikan bertindak sebagai publisher yang secara periodik interval tertentu mengirim data ke message broker untuk dikonsumsi oleh aplikasi web IoT Dashboard

Berikut ini potongan kode program yang di write ke perangkat IoT Development Board, dimana ia menjalankan fungsi publish dan subscribe dalam satu entitas sekaligus.

Bertindak sebagai publisher pada kalang void loop()
Bertindak sebagai subscriber pada kalang void reconnect()

Mockup Web IoT Dashboard

Sebagai gambaran target pengembangan aplikasi web IoT Dashboard yang akan dicapai adalah sebagai berikut:

Konfigurasi Mosquitto Yang Mendukung Web Socket

Pengantar Websocket

Pada bagian ini ada sedikit perubahan konfigurasi mosquitto.conf berkaitan dengan difungsikannya protokol websocket sebagai dasar komunikasi antara aplikasi web IoT Dashboard dan message broker MQTT Mosquitto.

Latar belakang yang mendasari terciptanya websocket adalah permintaan beberapa client yang mengharuskan developer bisa membuat aplikasi berbasis web secara real time atau real-time apps. Aplikasi real time adalah dimana ketika ada perubahan data, maka saat itu juga website di browser klien juga ada perubahan.

WebSocket adalah standar baru untuk komunikasi realtime pada Web dan aplikasi mobile. WebSocket dirancang untuk diterapkan di browser web dan server web, tetapi dapat digunakan oleh aplikasi client atau server. WebSocket adalah protokol yang menyediakan saluran komunikasi full-duplex melalui koneksi TCP tunggal.

WebSocket merupakan bagian dari HTML5. WebSocket menghadirkan pengurangan besar dalam lalu-lintas jaringan yang tidak penting dan latency dibandingkan dengan solusi polling dan long-polling yang telah digunakan untuk mensimulasikan koneksi dua arah dengan cara menjaga dua koneksi tetap terhubung.

Adapun library MQTT client yang akan digunakan pada aplikas web IoT Dashboard berbasis java script, yaitu Paho MQTT Client (mqttws31.min.js).

Konfigurasi Webscocket pada mosquitto.conf

Backup file mosquitto.conf terlebih dahulu yang terdapat dalam folder C:\Program Files\mosquitto.

Edit file mosquitto.conf dengan aplikasi editor Notepad++ dalam mode Administrator. Kemudian timpa isi file-nya dengan script berikut:

Dalam editor Notepad++ akan tampak seperti berikut ini:

Hentikan terlebih dahulu message broker MQTT Mosquitto jika memang masih aktif.

Aktifkan layanan websocket pada broker MQTT Mosquitto untuk pertama kalinya dengan perintah berikut:

Tampilan pada window command akan tampak seperti gambar di bawah:

Jika hasilnya tampak seperti dibawah ini maka berarti layanan komunikasi dengan websocket pada message broker mosquitto berjalan dengan baik.

Selanjutnya untuk menghentikan atau me-restart layanan message broker dapat menggunakan perintah seperti sebelumnya:

Berikut potongan kode program javascript pada aplikasi web IoT Dashboard yang memanfaatkan port 9001 dan protokol websocket ("/ws") message broker.

Kode index.php di atas serta logo dapat di download di https://github.com/doditsuprianto/IoT-Development-Board-DSP-TECH/blob/master/iot.zip

Video Projek

Untuk menjalankan aplikasi web IoT Dashboard melalui internet browser dengan alamat http://192.168.0.101/iot, ini bila posisi antara Message Broker MQTT Mosquitto dan internet browser dalam satu mesin yang sama.

Anda juga dapat mencoba membuka aplikasi web IoT Dashboard dari alamat IP berbeda namun masih dalam satu network (atau IP tujuan telah di route dan masih terjangkau), misalnya menggunakan smartphone.

Last updated

Was this helpful?