Eksplorasi Protokol MQTT Pada Mongoose OS

0 157

Pada tulisan sebelumnya penulis telah menujukkan bagaimana melakukan instalasi Mongoose OS pada ESP8266 dan mengeksplorasi file init.js yang  diiniasialisasi paling awal saat ESP8266 boot. Pada tulisan kali ini, penulis akan melanjutkan eksplorasi terhadap sebuah fungsi yang berada init.js yang berfungsi untuk mempublish sebuah topic pada server MQTT

Pada tulisan ini, pembaca diasumsikan sudah memahami tentang protokol MQTT, dan bagaimana melakukan instalasi server MQTT. Jika belum, silahkan membaca pembahasan embeddednesia tentang MQTT.

Dalam eksperimen kali ini digunakan Eclipse Mosquitto  sebagai Message Broker yang diinstall pada sistem operasi Ubuntu 16.04 LTS, yang dijalankan pada Virtual Box. Jika pembaca belum mengetahui apa itu Mosquitto dan bagaimana cara instalasinya, silahkan baca terlebih dahulu pembahasan embeddednesia tentang Mosquitto

Pertama jalankan mos tool dengan command mos ui pada command prompt. Sehingga Web UI terbuka di browser dengan alamat 127.0.0.1:1992

buka file init.js yang berada pada menu Device files.





Perhatikan pada baris 31-36 adalah fungsi yang mempublish sebuah topic yang bernama /devices/nama_id_device/events kala mendapat trigger GPIO0 dengan logika 0. Pada NodeMCU v3  Lolin yang penulis gunakan GPIO0 merujuk pada D3 berdasarkan pada mapping nama port berikut. Anda bisa mengubah GPIO mana yang digunakan untuk mentrigger statement publish topic pada conf9.jsonKonfigurasi server MQTT berada pada menu Device Config. Centang checklist Enable MQTT. Lalu atur MQTT Server ke IP server yang digunakan. Alamat server VM yang digunakan penulis berada pada IP 192.168.8.103:1883 . Klik button  Save Configuration dan perhatikan sistem akan melakukan reboot dan terkoneksi dengan server MQTTyang telah diatur

Peringatan!

Konfigurasi MQTT dalam tutorial ini hanya untuk tujuan eksperimental. Tidak direkomendasikan jika diterapkan pada mesin produksi. Silahkan membaca lebih lanjut mengenai pengaturan sertifikat keamanan pada protokol MQTT





Jika diperhatikan Pada Log Web-UI mongooseOS mengirimkan request connect ke server dan dibalas dengan CONNACK

[Feb 3 12:37:35.474] connected with RUMAH_EMBEDDED, channel 11
[Feb 3 12:37:35.477] dhcp client start…
[Feb 3 12:37:35.480] mgos_net_on_change_c WiFi STA: connected
[Feb 3 12:37:35.497] == Net event: 1313166338 CONNECTED
[Feb 3 12:37:35.957] Tick uptime: 9.039487 {“free_ram”:35664,”total_ram”:52008}
[Feb 3 12:37:36.504] ip:192.168.8.102,mask:255.255.255.0,gw:192.168.8.1
[Feb 3 12:37:36.507] mgos_net_on_change_c WiFi STA: ready, IP 192.168.8.102, GW 192.168.8.1, DNS 192.168.8.1
[Feb 3 12:37:36.530] == Net event: 1313166339 GOT_IP
[Feb 3 12:37:36.534] mgos_mqtt_global_con MQTT connecting to 192.168.8.103:1883
[Feb 3 12:37:36.606] mgos_mqtt_ev MQTT TCP connect ok (0)
[Feb 3 12:37:36.630] mgos_mqtt_ev MQTT CONNACK 0
[Feb 3 12:37:36.635] do_subscribe Subscribing to ‘esp8266_0256ED/rpc’
[Feb 3 12:37:36.639] do_subscribe Subscribing to ‘esp8266_0256ED/rpc/#’

Untuk melihat respon dari topic yang akan di-publish, sebelumnya harus dilakukan subscribe terhadap topic tersebut. Pada server, masukkan command berikut

mosquitto_sub -V mqttv311 -t /devices/esp8266_0256ED/events -d

Setelah semua telah siap, kini hubungkan pin D3 NodeMCU (GPIO0) dengan ground, dan perhatikan respon dari log dan terminal di sisi subscriber. Jika responnya seperti berikut, maka topic telah berhasil dipublish nodemcu dan disubscribe oleh mosquitto client

Log pada Web UI
Tampilan pada terminal subscriber mosquitto client
%d blogger menyukai ini: