Raspberry Pi Sebagai Gateway IOTA via MQTT


Ditulis oleh : Fandi Adinata

pada 14 Mei 2023 14:13 WIB



Konsep Gateway IOTA.


IOTA memberikan terobosan dalam dunia distributed ledger technology (DLT) dengan memberikan layanan DLT yang bebas biaya transaksi yang tentunya sangat membantu perkembangan teknologi IoT-Blockchain.

Sebagai gambaran, sebuah perangkat IoT yang digunakan dalam tracking barang logistik secara real-time setidaknya menghasilkan data lokasi, data kondisi di dalam kendaraan, serta data kendaraan itu sendiri. Kita anggap pengiriman paket data dilakukan setiap 5 menit. Barang kemudian dikirim dari Jakarta menuju Surabaya yang memakan waktu 10 jam. Maka setidaknya perangkat IoT menghasilkan 120 data dalam sekali perjalanan.

Jika memakai blockchain yang berbayar dan kita anggap biaya untuk input data ke blockchain adalah Rp100 per input, maka setidaknya biaya yang harus dibayarkan adalah Rp12.000,-. Itu baru satu perangkat. Bagaimana kalau ada 100 perangkat? Bagaimana kalau 1000? Tentunya biaya operasional jadi membengkak.

Di IOTA, tidak ada yang namanya biaya jaringan (hingga saat ini). Tapi tetap, mau memakai blockchain berbayar ataupun tidak, semuanya tetap berfungsi untuk menjaga keaslian data.

Tapi dalam implementasinya, pengiriman data dari perangkat IoT ke IOTA masih menggunakan protokol HTTP dimana protokol ini memakan banyak kuota data, terutama untuk data yang dikirimkan terus-menerus.

Di sini, penulis mengembangkan prototipe gateway yang bertujuan supaya perangkat IoT dapat menggunakan MQTT untuk pengiriman data. Selain itu, pengguna tidak perlu melakukan proses instalasi yang panjang dan rumit sehingga mempercepat proses produksi. Proses lainnya akan diproses di gateway hingga ke IOTA Tangle. Sehingga kerja perangkat IoT menjadi lebih ringan, menghasilkan data dan mengirimkan data melalui MQTT.


Testing Single Data

1. Tentukan topic MQTT Anda

Topic ini berfungsi sebagai alamat Anda untuk menerima id pesan dari IOTA. Di sini, penulis menggunakan alamat "mydata".

2. Subscribe ke topic MQTT

Buka command prompt dan ketik command berikut untuk pindah ke folder instalasi mosquitto.

              
              $ cd C:\Program Files\mosquitto
              
            

Lakukan subscribe ke alamat topic MQTT yang telah dipilih sebelumnya. Alamat lengkap topic menjadi "surya_gateway/{topic_dipilih}"

              
              $ mosquitto_sub -h test.mosquitto.org -t "surya_gateway/mydata"
              
            

2. Publish data ke MQTT

Gunakan data dummy saja untuk melakukan testing. Sebagai contoh, penulis akan mengirimkan "data" ke topic MQTT.

Buka command prompt baru dan ketik seperti di bawah.

              
              $ cd C:\Program Files\mosquitto
              
            

Di sini, data yang akan dikirimkan harus diapit dengan tanda petik satu ('). Format pengiriman menjadi '{data_dikirim}'/{topic_dipilih}.

              
              $ mosquitto_pub -h test.mosquitto.org -t "surya_gateway/submit" -m "'data'/mydata"
              
            


Publish data ke topic MQTT. Sumber: Penulis


3. Menerima ID Pesan IOTA

Data yang dikirim akan diproses di gateway dan kemudian dikirimkan ke IOTA. Setelah gateway menerima balasan berupa ID pesan dari IOTA, gateway akan meneruskan ID pesan ke topic MQTT yang telah dipilih pada langkah nomor 1. Lama proses dapat bervariasi tergantung banyaknya pesan yang di-handle.



Menerima ID pesan IOTA. Sumber: Penulis


Jika sudah menerima ID pesan, Anda dapat membuka https://explorer.iota.org/devnet untuk melihat data yang telah Anda upload ke IOTA Tangle



Data yang sudah diinput di IOTA. Sumber: Penulis



Testing Multiple Data

Seringkali, data yang dihasilkan perangkat IoT bisa lebih dari satu data. Bagian ini menjelaskan bagaimana mengirimkan banyak data ke IOTA Tangle melalui gateway. Topic yang digunakan pada contoh ini sama dengan di bagian sebelumnya.

1. Publish Mutiple Data ke MQTT

Data dikirmkan dalam format JSON. Namun, semua tanda petik dua (") diganti menjadi petik satu ('). Sebagai contoh, data yang akan dikirimkan adalah nama pengirim dan nama penerima. Format JSON yang dikirim adalah sebagai berikut.

{
 'pengirim':'fandi',
 'penerima':'adinata'
}


Di command prompt, ketik command berikut.

              
              $ mosquitto_pub -h test.mosquitto.org -t "surya_gateway/submit" -m "{'pengirim':'fandi','penerima':'adinata'}/mydata"
              
            



Publish data JSON ke topic MQTT. Sumber: Penulis


2. Menerima ID Pesan IOTA

ID pesan akan dikirimkan gateway ke alamat topic yang telah dipilih sebelumnya. ID pesan berada paling bawah.



ID Pesan dari IOTA. Sumber: Penulis


Data dapat dilihat di explorer IOTA seperti pada gambar di bawah



Data di IOTA Explorer. Sumber: Penulis



Custom Gateway

Anda dapat melakukan instalasi dan kustomisasi gateway ini di Raspberry Pi Anda. Untuk saat ini, program hanya mendukung Raspberry Pi OS 32-bit. Penjelasan lengkap dapat dilihat di link berikut:

https://github.com/SuryaAssistant/iota-raspberrypi-gateway