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

  1. 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
  2. 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.
  3. 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.
  4. 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

  1. Mengirimkan data suhu dan kelembaban dari sensor DHT11 ke Node-RED melalui ESP32 dan protokol MQTT.
  2. Menampilkan data suhu dan kelembaban di dashboard Node-RED.

Alat dan Bahan

  1. ESP32
  2. Sensor DHT11
  3. Breadboard dan kabel jumper
  4. Internet/Wi-Fi
  5. Laptop/PC dengan Node-RED terinstal
  6. MQTT Broker (contoh: Mosquitto broker)
  7. Kabel USB untuk menghubungkan ESP32 dengan laptop

1

Ads Jadwal Training bisaioti Offline
NoMateriTanggalWaktuHargaLokasiViewAction
1IOT PLC SCADA Siemens7-8 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
2IOT PLC SCADA Omron14 - 15 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
3IOT PLC SCADA Schneider21-22 Juni 202508.00 -16.002000000SurabayaSilabusDaftar Sekarang
4IOT PLC SCADA Allen Bradley28-29 Juni 202508.00-16.002000000SurabayaSilabusDaftar Sekarang

Langkah-langkah

  1. Persiapan Perangkat Keras
  1. 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:
    1. DHT sensor library dari Adafruit.
    2. PubSubClient untuk komunikasi MQTT.

Cara instal library: Sketch > Include Library > Manage Libraries, lalu cari library sesuai nama di atas.

  1. 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.
  1. 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);

  }

}
  1. 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.
  1. 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

  1. Pastikan data suhu dan kelembaban terkirim secara periodik dari ESP32 melalui MQTT ke Node-RED.
  2. 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.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Daftar Sekarang