Mengirim Data Suhu dan Kelembaban Sensor DHT11 Ke Node-red Menggunakan ESP32 dan MQTT

- Sensor DHT11
- DHT11 adalah sensor yang digunakan untuk mengukur suhu dan kelembaban udara. Sensor ini menggunakan komponen kapasitansi kelembaban dan termistor suhu untuk melakukan pengukuran. DHT11 mengeluarkan data dalam bentuk digital, sehingga sangat mudah digunakan dengan mikrokontroler seperti ESP32.
- Spesifikasi DHT11:
- Tegangan kerja: 3.3V – 5V
- Rentang pengukuran suhu: 0°C – 50°C
- Rentang pengukuran kelembaban: 20% – 90%
- Akurasi suhu: ±2°C
- Akurasi kelembaban: ±5%
- Output: Data digital melalui pin tunggal
- ESP32
- ESP32 adalah mikrokontroler yang populer dengan kemampuan konektivitas Wi-Fi dan Bluetooth bawaan. ESP32 banyak digunakan dalam aplikasi Internet of Things (IoT) karena kemampuannya untuk terhubung dengan internet dan mengirimkan data ke server atau platform IoT, seperti Node-RED.
- Keunggulan ESP32 antara lain:
- Dilengkapi dengan prosesor dual-core, RAM 520KB, dan Wi-Fi serta Bluetooth bawaan.
- Mendukung berbagai protokol komunikasi, termasuk MQTT.
- MQTT (Message Queuing Telemetry Transport)
- MQTT adalah protokol komunikasi berbasis pesan yang dirancang untuk perangkat dengan sumber daya terbatas dan jaringan yang tidak stabil. MQTT menggunakan model publish/subscribe, yang memungkinkan perangkat (publisher) mengirimkan data ke topik tertentu, dan perangkat lain (subscriber) dapat berlangganan ke topik tersebut untuk menerima data.
- Dalam proyek ini, ESP32 akan berperan sebagai publisher yang mengirimkan data suhu dan kelembaban ke topik MQTT, dan Node-RED akan bertindak sebagai subscriber yang menerima dan menampilkan data tersebut.
- Node-RED
- Node-RED adalah alat pemrograman visual yang digunakan untuk menghubungkan perangkat keras, API, dan layanan online. Dalam konteks IoT, Node-RED sangat berguna untuk mengolah dan memvisualisasikan data dari perangkat yang terhubung melalui berbagai protokol, termasuk MQTT.
- Dalam tugas ini, Node-RED akan digunakan untuk menerima data dari ESP32 melalui broker MQTT dan menampilkan data suhu dan kelembaban secara real-time di dashboard.
Tujuan
- Mengirimkan data suhu dan kelembaban dari sensor DHT11 ke Node-RED melalui ESP32 dan protokol MQTT.
- Menampilkan data suhu dan kelembaban di dashboard Node-RED.
Alat dan Bahan
- ESP32
- Sensor DHT11
- Breadboard dan kabel jumper
- Internet/Wi-Fi
- Laptop/PC dengan Node-RED terinstal
- MQTT Broker (contoh: Mosquitto broker)
- Kabel USB untuk menghubungkan ESP32 dengan laptop
No | Materi | Tanggal | Waktu | Harga | Lokasi | View | Action |
---|---|---|---|---|---|---|---|
1 | IOT PLC SCADA Siemens | 7-8 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
2 | IOT PLC SCADA Omron | 14 - 15 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
3 | IOT PLC SCADA Schneider | 21-22 Juni 2025 | 08.00 -16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
4 | IOT PLC SCADA Allen Bradley | 28-29 Juni 2025 | 08.00-16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
Langkah-langkah
- Persiapan Perangkat Keras
- Hubungkan sensor DHT11 dengan ESP32:
- VCC (pin DHT11) ke 3.3V (ESP32)
- GND (pin DHT11) ke GND (ESP32)
- DATA (pin DHT11) ke pin GPIO 2 (ESP32)
- Instalasi Perangkat Lunak
- Pastikan Arduino IDE sudah terinstal.
- Tambahkan ESP32 board ke Arduino IDE melalui: File > Preferences > Additional Board Manager URLs, tambahkan URL:
https://dl.espressif.com/dl/package_esp32_index.json
Lalu ke: Tools > Board > Board Manager, cari ESP32 dan instal.
- Instal library yang diperlukan:
- DHT sensor library dari Adafruit.
- PubSubClient untuk komunikasi MQTT.
Cara instal library: Sketch > Include Library > Manage Libraries, lalu cari library sesuai nama di atas.
- Konfigurasi Node-RED
npm install -g node-red
- Jalankan Node-RED dengan mengetik:
node-red
- Buka Node-RED pada browser dengan mengakses:
http://localhost:1880
- Tambahkan MQTT Input Node dan sambungkan dengan Dashboard Gauge untuk menampilkan suhu dan kelembaban.
- Kode untuk ESP32
Berikut adalah contoh kode untuk ESP32:
#include <WiFi.h> #include <PubSubClient.h> #include <DHT.h> #define DHTPIN 2Â Â Â Â Â Â Â Â // Pin sensor DHT11 #define DHTTYPE DHT11Â Â Â // Tipe sensor DHT11 const char* ssid = "Nama_SSID";Â Â Â Â Â Â Â Â Â Â // Ganti dengan nama SSID Wi-Fi const char* password = "Password_WiFi";Â Â // Ganti dengan password Wi-Fi const char* mqtt_server = "IP_Broker_MQTT"; // Ganti dengan IP atau URL broker MQTT WiFiClient espClient; PubSubClient client(espClient); DHT dht(DHTPIN, DHTTYPE); long lastMsg = 0; char tempMsg[50]; char humMsg[50]; void setup() { Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); dht.begin(); } void setup_wifi() { delay(10); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { Â Â delay(500); Â Â Serial.print("."); } Â Serial.println(""); Serial.println("WiFi connected"); } void reconnect() { while (!client.connected()) { Â Â Serial.print("Attempting MQTT connection..."); Â Â if (client.connect("ESP32Client")) { Â Â Â Â Serial.println("connected"); Â Â } else { Â Â Â Â Serial.print("failed, rc="); Â Â Â Â Serial.print(client.state()); Â Â Â Â Serial.println(" try again in 5 seconds"); Â Â Â Â delay(5000); Â Â Â } } } void loop() { if (!client.connected()) { Â reconnect(); } client.loop(); long now = millis(); if (now - lastMsg > 2000) { Â Â lastMsg = now; Â Â // Membaca suhu dan kelembaban dari sensor DHT11 Â Â float h = dht.readHumidity(); Â Â float t = dht.readTemperature(); Â Â Â if (isnan(h) || isnan(t)) { Â Â Â Â Serial.println("Failed to read from DHT sensor!"); Â Â Â Â return; Â Â } Â Â Â // Mengirimkan data suhu ke topik "temp" Â Â Â snprintf (tempMsg, 50, "%.2f", t); Â Â Serial.print("Publishing temperature: "); Â Â Serial.println(tempMsg); Â Â client.publish("temp", tempMsg); Â Â Â // Mengirimkan data kelembaban ke topik "hum" Â Â Â snprintf (humMsg, 50, "%.2f", h); Â Â Serial.print("Publishing humidity: "); Â Â Serial.println(humMsg); Â Â client.publish("hum", humMsg); Â } }
- Konfigurasi Node-RED
- Buka Node-RED pada browser.
- Tambahkan node MQTT IN untuk menerima pesan dari topik sensor/dht11.
- klik mqtt node
- Sambungkan node MQTT IN ke node debug dan chart untuk menampilkan data suhu dan kelembaban.
Â
- Set node MQTT IN dengan topik sensor/dht11 dan broker yang sesuai.
- Pengujian
- Upload kode ke ESP32.
- Monitor serial pada Arduino IDE untuk memastikan bahwa data suhu dan kelembaban terkirim melalui MQTT.
- Periksa dashboard Node-RED untuk melihat data yang diterima.
Evaluasi
- Pastikan data suhu dan kelembaban terkirim secara periodik dari ESP32 melalui MQTT ke Node-RED.
- Pastikan dashboard Node-RED menampilkan data suhu dan kelembaban secara real-time.
Kesimpulan
Proyek ini menunjukkan bahwa integrasi antara sensor DHT11, ESP32, MQTT, dan Node-RED dapat membentuk sistem monitoring suhu dan kelembaban yang efektif, real-time, dan mudah dikembangkan untuk berbagai aplikasi IoT, terutama dalam skala kecil hingga menengah.
Bagi Anda yang ingin mendalami lebih lanjut tentang IoT, ESP32, MQTT, dan integrasinya dengan sistem otomasi industri, bisaioti menyediakan training IoT dan training PLC yang aplikatif, terstruktur, dan cocok untuk pemula hingga tingkat lanjut.
Kunjungi bisaioti.com untuk informasi lebih lanjut dan jadwal pelatihan terbaru.