Cara Berkomunikasi dengan MQTT pada NodeMCU

Dipublikasikan oleh Admin pada

Penerapan protokol MQTT pada NodeMCU

Komunikasi data antar perangkat elektronik dan mesin sudah umum menggunakan komunikasi web atau protokol HTTP. Tetapi ada cara alternatif yang lebih ringan dan cepat, yaitu menggunakan protokol MQTT.

Bagaimana cara menggunakan protokol MQTT ini pada NodeMCU? Pada tulisan ini akan diberikan contoh sketch NodeMCU dan script sederhana untuk mengirim (publish) pesan MQTT.

Apa itu MQTT?

MQTT adalah singkatan dari MQ Telemetry Transport. MQTT adalah protokol untuk mengirimkan pesan atau data dengan metode publish dan subscribe.

MQTT dirancang sederhana dan ringan, ditujukan untuk perangkat elektronik berdaya rendah dan jaringan dengan bandwidth terbatas. Selain itu MQTT juga dirancang untuk dapat menjaminan pesan terkirim. Akibatnya MQTT ini menjadi protokol yang ideal untuk komunikasi “mesin-ke-mesin” (M2M) atau “Internet of Things”, dan untuk aplikasi seluler di mana bandwidth dan daya baterai harus diperhatikan.

MQTT diciptakan pada tahun 1999 oleh Dr Andy Stanford-Clark dari IBM, dan Arlen Nipper of Arcom (sekarang Eurotech). MQTT telah diterapkan secara luas di berbagai industri sejak tahun tersebut.

MQTT memiliki port standar TCP/IP 1883. Nomor port ini dicadangkan oleh IANA untuk digunakan oleh MQTT. TCP/IP port 8883 juga terdaftar untuk MQTT melalui SSL.

Cara Kerja MQTT

Dalam MQTT, publish berarti perangkat mengirim pesan (atau data) dengan topik tertentu ke sebuah server perantara (istilahnya broker), analoginya adalah melakukan request ke sebuah web server.

Subscribe berarti perangkat menunggu pesan pada topik tertentu dari sebuah broker. Analoginya adalah menerima response dari sebuah web server.

Walaupun demikian, MQTT tidak sama dengan komunikasi web. Kalau pada komunikasi web, sebuah web server akan menunggu request dari client, baru kemudian mengirimkan response. Sedangkan MQTT yang berbasis protokol TCP/IP dapat mengirim secara dua arah tanpa menunggu request. Selain itu MQTT hanya membutuhkan beberapa byte saja sebagai header, tidak sebanyak header http (web) yang berbaris-baris teks, sehingga dengan MQTT lalu-lintas data menjadi lebih cepat dan ringan.

Untuk menggunakan MQTT pada sistem IoT diperlukan sebuah broker, yaitu sebuah server yang menampung publish dari sebuah perangkat dan mengirimkan ke perangkat lain yang melakukan subscribe.

Broker dapat dibuat sendiri untuk kepentingan perusahaan (untuk melindungi data-data yang sensitif misalnya). Tetapi kita juga bisa menggunakan broker gratis yang banyak kita temukan di Internet, misalnya hivemq.com atau mqttdashboard.com

Bila pembaca ingin mempelajari protokol MQTT lebih detil, silahkan mengunjungi:
https://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html

Ini adalah diagram alur sebuah contoh MQTT, dimana sebuah perangkat mengirimkan pesan berupa nilai suhu ke sebuah broker, kemudian broker tersebut mengirimkan ke perangkat-perangkat yang men-subscribe topik tersebut.

Diagram alur MQTT

Menggunakan MQTT pada NodeMCU

Di bawah ini adalah contoh bagaimana mem-publish data suhu ke sebuah broker, kemudian pesan itu bisa dipantau secara online menggunakan Internet (web browser). Broker yang dipakai adalah broker.mqttdashboard.com dan sensor yang digunakan LM35. Sedangkan topik yang akan dipakai adalah “komputronika/suhu”.

Untuk dapat menggunakan sketch di bawah ini, silahkan download dan install dulu library yang diperlukan dari: https://github.com/256dpi/arduino-mqtt

Silahkan compile dan upload sketch di atas ke NodeMCU. Buka Serial monitor untuk melihat hasilnya.

HTML dan Javascript untuk Membaca Pesan MQTT

Untuk memastikan bahwa pesan-pesan publish dari NodeMCU sudah terkirim dengan benar, maka kita coba membuat sebuah halaman web untuk membaca pesan-pesan tersebut.

Ini adalah tampilan dari script HTML di atas.

Demo MQTT dengan NodeMCU dan HTML Javascript

File demo lengkap HTML + Javascript ini dapat di download di:
http://www.mediafire.com/file/24igv9idhx1ai1h/MQTTHtml.zip/file

Subscribe Pada Topik MQTT

Dengan men-subscribe sebuah topik menggunakan NodeMCU, maka NodeMCU dapat melakukan aksi berdasarkan pesan pada topik tersebut. Misalnya menyalakan LED, menyalakan penyiram air, menggerakan servo, dsb.

Contoh subcribe MQTT dengan NodeMCU akan diberikan pada tulisan berbeda.

Selamat mencoba dan berkreasi dengan NodeMCU dan MQTT. Kalau ada yang kurang jelas silahkan berkomentar.

Kategori: NodeMCU