IOTA Tangle adalah distributed ledger yang bersifat publik. Ini berarti data yang diunggah ke IOTA Tangle dapat dilihat oleh siapapun. Sangat disarankan untuk menambahkan layar keamanan tambahan seperti enkripsi data ataupun tanda tangan digital untuk menjaga keamanan data Anda.
Tutorial ini dibuat untuk tujuan edukasi mengenai konsep dan pengaplikasian IoT-Blockchain. Keamanan data menjadi tanggung jawab pribadi masing-masing.
ESP32 - Upload Data Suhu dan Kelembaban DHT11 ke Blockchain IOTA
Ditulis oleh : Fandi Adinata
pada 4 Juni 2023 00:37 WIB
Tutorial di bawah menginstruksikan bagaimana cara untuk mengirimkan data suhu dan kelembaban sensor DHT11 ke blockchain IOTA (lebih dikenal sebagai IOTA Tangle) menggunakan mikrokontroler ESP32 melalui protokol MQTT.
Pengenalan Sensor Suhu dan Kelembaban DHT11
Secara singkat, sensor DHT11 merupakan sensor yang dapat membaca suhu dan kelembaban udara di sekitar sensor. Detail spesifikasi sensor DHT11 diperlihatkan melalui tabel di bawah.
Spesifikasi | DHT11 |
---|---|
Rentang Kelembaban | 20% hingga 80% |
Akurasi Kelembaban | 5% |
Rentang Pembacaan Suhu | 0C hingga 50C |
Akurasi Suhu | +- 2C |
Sampling Rate | 1 Hz |
Pemasangan kabel antara sensor DHT11 dengan ESP32 seperti pada gambar di bawah.
Pinout DHT11. Sumber : circuits-diy.
ESP32 | DHT11 |
---|---|
3V3 | VCC |
D15 | DATA |
GND | GND |
Pengenalan IOTA Tangle
IOTA Tangle adalah jaringan distributed ledger milik IOTA. Jaringan ini tidak menggunakan konsep linear block seperti blockchain ethereum maupun blockchain lainnya, melainkan menggunakan konsep directed acyclic graph(DAG). Konsep ini memungkinkan proses upload data ke distributed ledger menjadi lebih cepat.
Dalam tutorial ini, pengunggahan data ke jaringan IOTA tidak dilakukan langsung ke jaringan IOTA Tangle, melainkan melalui gateway raspberry pi yang mendukung protokol MQTT. Jika Anda tertarik untuk membuat gateway sendiri, silakan baca tutorialnya di sini.
Kode Program
Penjelasan Kode Program
Bagian di atas digunakan untuk memanggil library yang diperlukan, antara lain library DHT11 dari Adafruit dan library PubSubClient.
Ubah bagian di atas sesuai dengan konfigurasi WiFi Anda. SSID untuk nama WiFi dan PASS untuk password WiFi.
Bagian di atas digunakan untuk konfigurasi pin DHT11.
Jika Anda membuat gateway sendiri, Anda dapat mengubah broker MQTT sesuai dengan yang Anda gunakan. topic
adalah topic MQTT untuk submit data dari ESP32 ke gateway.
subscribeTopic
digunakan untuk menerima message ID data yang sudah masuk ke dalam IOTA Tangle. returnTopic
mengikuti akhiran dari subscribeTopic
.
Di dalam void setup, lakukan aktivasi pembacaan DHT11 dan WiFi.
Setting server MQTT menggunakan alamat broker dan port seperti pada kode di atas. Dalam program ini, ESP32 akan menerima message ID dari gateway melalui subscribeTopic
.
Proses penerimaan message ID di atur di fungsi callback()
.
Langkah selanjutnya, aktifkan MQTT dengan memanggil fungsi connectMQTT
.
Fungsi connectMQTT()
dan callback()
seperti pada di bawah.
Letakkan fungsi connectMQTT()
dan callback()
di paling bawah dari file program.
Pembacaan sensor dilakukan setiap 5 menit. Setelah pembacaan sensor selesai, data akan dikirimkan dalam format JSON yang disimpan di variabel mqtt_data
.
JSON kemudian dipublish ke topic surya_gateway/submit
melalui client.publish()
.
Hasil Pengujian pada ESP32
Berdasarkan pengujian, lama waktu yang diperlukan untuk mengirim data ke gateway hingga menerima message ID adalah sekitar 1,5 menit. Lama proses upload dapat bervariasi sesuai dengan kecepatan internet di tempat Anda.
Metode ini tidak dapat digunakan untuk pengiriman data dengan interval pengiriman kurang dari 1,5 menit. Namun, cara ini cocok digunakan untuk pengiriman data dengan interval di atas 5 menit. Seperti 10 menit sekali atau 30 menit sekali.
Serial monitor ESP32.
Data di IOTA Tangle
Data yang telah diunggah ke IOTA Tangle dapat dilihat melalui IOTA Explorer.
Data DHT11 di IOTA Explorer.