IoT – Berinteraksi Dengan Board FORTHUNER46 Melalui Internet Menggunakan MQTT


Sekilas Tentang IoT dan MQTT

IoT (Internet of Things) adalah terhubungnya berbagai piranti elektronik ke jaringan internet, sehingga piranti-piranti elektronik tersebut dapat saling berbagi data, baik itu membaca data (collecting) maupun menulis data (sharing). MQTT (Message Queueing Telemetry Transport) adalah protokol komunikasi standar ISO (ISO/IEC PRF 20922) berbasis publish-subscribe yang menumpang protokol TCP/IP.

MQTT merupakan protokol yang banyak digunakan untuk Internet of Things karena hemat bandwidth. Proses pertukaran data dengan cara publish-subscribe membutuhkan broker, disebut juga MQTT Broker atau MQTT Server. Untuk saling bertukar data, piranti IoT harus mem-publish dan/atau men-subscribe ke MQTT Broker dengan menggunakan topik tertentu.

Sebagai contoh, sistem IoT untuk monitoring suhu dan tekanan harus terhubung ke MQTT Broker dan secara kontinyu membaca sensor suhu dan tekanan dan kemudian mem-publish datanya ke MQTT Broker dengan topik tertentu, semisal “autoclave/suhu” dan “autoclave/tekanan”.

Selanjutnya, untuk membaca data suhu dan tekanan, MQTT Client harus terhubung ke MQTT Broker dan men-subscribe-kan dirinya ke topik “autoclave/suhu” dan “autoclave/tekanan”. MQTT Client bisa jadi berupa komputer atau gadget.

Untuk piranti IoT dengan fungsi controlling, sistem IoT harus terhubung ke MQTT Client dan men-subscribe-kan dirinya ke topik tertentu, semisal “autoclave/safety/blowdown”. Jadi ketika ada MQTT Client yang mem-publish data ke topik tersebut, piranti IoT akan menerima data dan dapat melakukan aksi sesuai data yang masuk, semisal data “1” untuk ON dan data “0” untuk OFF.

 

FORTHUNER46

FORTHUNER46 adalah board mikrokontroler AVR ATmega8 dengan sistem operasi Forth (AVISE). FORTHUNER46 dapat berinteraksi dengan user melalui port serial RS232. User dapat memasukkan/mengirim perintah dan secara langsung menerima hasilnya.

Lebih lanjut mengenai board FORTHUNER46 dapat Anda baca pada tulisan-tulisan sebelumnya yang membahas mengenai board FORTHUNER46.

Tulisan-tulisan Seputar Board FORTHUNER46

 

Meremote FORTHUNER46 Melalui Internet

Pada eksperimen IoT ini, saya membuat sebuah program aplikasi console (command-line interface), yang memungkinkan kita untuk berinteraksi dengan FORTHUNER46 yang terhubung ke komputer kita, melalui PC lain atau Gadget (Tablet/Handphone) melalui internet. Program aplikasi tersebut adalah mqtt-f46.

mqtt-f46 berfungsi sebagai jembatan yang dapat menghubungkan PC/Gadget yang terhubung ke internet dengan board FORTHUNER46 yang terhubung ke komputer kita yang juga tentunya harus dalam kondisi online ke internet. Dengan demikian, kita bisa berinteraksi dan memrogram FORTHUNER46 dari jarak jauh.

Ketika dijalankan, mqtt-f46 akan membuka komunikasi dengan board FORTHUNER46 dan melakukan koneksi ke MQTT Broker/Server yang kita tentukan. Kita bisa menggunakan MQTT Broker publik seperti test.mosquitto.org atau broker.hivemq.com. Selanjutnya, mqtt-f46 akan men-subscribe ke topik “forthuner46/cmd“. Ke topik inilah nantinya PC/Gadget yang meremote harus mem-publish command.

Jika mqtt-f46 menerima command dari PC/Gadget yang mem-publish command melalui topik “forthuner46/cmd“, maka mqtt-f46 akan mengirimkan command tersebut ke board FORTHUNER46 untuk dievaluasi dan menunggu hasilnya (return). Dan setelah data hasil evaluasi diterima, mqtt-f46 akan mem-publish data tersebut ke topik “forthuner46/ret“. PC/Gadget sebagai MQTT Client harus men-subscribe-kan dirinya ke topik “forthuner46/ret” untuk bisa menampilkan hasil evaluasi board FORTHUNER46.

 

Pengujian

Untuk menguji mqtt-f46, saya menggunakan program mosquitto_pub dan mosquitto_sub dengan koneksi internet sungguhan, artinya dalam pengujian ini saya tidak menggunakan MQTT Broker lokal, tapi menggunakan MQTT Broker publik test.mosquitto.org.

Untuk mengaktifkan mqtt-f46, caranya adalah sebagai berikut:

$ ./mqtt-f46 /dev/ttyS0 tcp://test.mosquitto.org:1883

Setelah mqtt-f46 aktif, kita bisa mencoba mengirimkan command dengan mem-publish data ke broker menggunakan mosquitto_pub. Untuk menyalakan LED yang ada pada pin PB5, kita kirimkan command “$ b5 oh” seperti contoh berikut ini (oh = output high).

$ mosquitto_pub -h test.mosquitto.org -t forthuner46/cmd -m "$ b5 oh"

Untuk mematikan LED PB5, kita kirimkan command “$ b5 ol” dengan cara sebagai berikut (ol = output low).

$ mosquitto_pub -h test.mosquitto.org -t forthuner46/cmd -m "$ b5 ol"

Dan untuk menerima hasil dari evaluasi command, kita subscribe ke broker dengan topik “forthuner46/ret” dengan cara sebagai berikut.

$ mosquitto_sub -h test.mosquitto.org -t forthuner46/ret

 

Skrip f46-pub dan f46-sub

Untuk mempersingkat perintah, saya membuat file skrip bash f46-pub

# f46-pub
#! /bin/sh
mosquitto_pub -h test.mosquitto.org -t forthuner46/cmd -m "$1"

dan f46-sub

# f46-sub
#! /bin/sh
mosquitto_sub -h test.mosquitto.org -t forthuner46/ret

Screenshot pengujian secara keseluruhan ditunjukkan oleh gambar berikut ini.

Perhatikan screenshot diatas. f46-pub mem-publish command: “& 5 10 + .” dan mendapatkan return: “& 5 10 .      15  ok“. Command pengujian selanjutnya adalah “& 4 12 * 3 – .” dan memperoleh return: “& 4 12 * 3 – .    45  ok“.

Lho? Kok kayak kalkulator?

Yup, FORTHUNER46 dengan sistem operasi memang bisa berfungsi sebagai alat hitung, hehehe.

Command-command selanjutnya adalah menyalakan/mematikan LED pada pin PB5 dan menghasilkan LED Blink 500ms dengan command: “$ b5 oh 500 ms wait b5 ol“.

 

Meremote Dari Android

Pengujian ini tidak lengkap jika belum meremote FORTHUNER46 dari tablet/handphone Android. Untuk pengujian ini, saya menggunakan aplikasi MyMQTT dan berikut adalah hasilnya.

 

Kesimpulan

Program mqtt-f46 dapat menjembatani antara FORTHUNER46 yang terhubung pada sebuah PC dengan PC lain atau Gadget yang terhubung ke internet dengan memanfaatkan MQTT Broker.

Dengan sistem ini, kita bisa dengan mudah membuat Super Simple IoT System untuk mengontrol dan memonitor board FORTHUNER46 dari jarak jauh melalui koneksi internet.

 

Program mqtt-f46 ini GRATIS untuk setiap pembelian board FORTHUNER46. Untuk pemesanan silakan menghubungi melalui WA/SMS ke 081231784018.

 

Sekian catatan eksperimen saya kali ini, semoga bermanfaat.

Selamat belajar dan selamat berkarya.

 

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.