HTTP dan MQTT merupakan protokol pengiriman data dari satu piranti ke piranti lain melalui jaringan komputer lokal maupun internet. Mana yang sebaiknya dipakai dalam penerapan pengendalian dan pemantauan jarak jauh melewati jaringan komputer baik lokal maupun internet, tentunya perlu dilihat karakteristik masing-masing protokol dengan mempertimbangkan kebutuhan. Berikut ini pembahasan prinsip-prinsip kerja HTTP dan MQTT.

MQTT merupakan protokol pengiriman data yang populer di bidang Internet of Things.  Ukuran data yang dikirim relatif lebih kecil sehingga data lebih cepat terkirim dan handal.  Penggunaan protokol ini relatif mudah digunakan karena dukungan komunitas yang menediakan library untuk berbagai mancam piranti pengendali seperti PLC, Mikrokontroler maupun pemprograman pada komputer.  

Jika Anda sedang memempelajari MQTT atau sedang mengerjakan proyek untuk Tugas Akhir, Skripsi, Thesis, sering kali memerlukan MQTT Broker yang terkoneksi di internet untuk menunjang interkoneksi antara perangkat-perangkat yang Anda kembangkan.  Pada kesempatan ini saya telah mencoba untuk membuat MQTT Broker menggunakan sebuah SBC  (dalam hal ini saya pakai Orange Pi PC Plus), yang saya hubungkan ke sebuah router dan port yang digunakan (1883) dibuka sehingga bisa diakses dari luar.  Karena jaringan internet saya menggunakan dynamic IP Address, maka perlu adanya nama domain sehingga pengguna tidak kerepotan mengganti IP pada setiap device yang aktif.  Untuk itu saya menggunakan fasilitas Dynamic DNS yang disediakan oleh domain provider yang saya gunakan saat ini. 

Mesin Keadaan Hingga (Finite State Machine)


Sebelum membuat program, ada langkah-langkah perencanaan yang sebaiknya dilakukan supaya sistem yang telah dirancang dapat dengan baik diimplementasikan ke sebuah pengendali.  Artikel ini membahas bagaimana mempersiapkan sebuah diagram mesin keadaan sebelum membuat program PLC.

Mesin keadaan hingga (Finite State Machine) merupakan sebuah model komputasi yang diterapkan pada perangkat keras atau lunak yang merepresentasikan suatu urutan kerja.  Model ini menggambarkan beberapa keadaan yang mungkin terjadi pada suatu sistem, yang keadaan-keadaan ini dipicu oleh peristiwa-peristiwa (event) yang terdapat pada sistem tersebut. Peristiwa-peristiwa ini memungkinkan berubahnya suatu keadaan ke keadaan lain, atau bisa dikatakan sebagai suatu transisi antar keadaan (state transition).

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.  

Kita dapat menghubungkan sebuah mikrokontroler ke jaringan internet dengan bantuan WiFi-Serial module.  Melalui modul ini, sebuah mikrokontroler dapat melakukan transfer data dengan perantara jaringan WiFi.  Kali ini kita akan coba menghubungkan Arduino Mega2560 dengan sebuah modul ESP8266. Ada beberapa skenario yang dapat diterapkan oleh modul WiFi-Serial ini, yaitu sebagai client ataupun server.