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.