ESP32 Webserver DHT11 Temperature and Humidity Measurement

Tujuan:

Peserta dapat membangun sistem webserver menggunakan ESP32 yang menampilkan data suhu dan kelembaban dari sensor DHT11 secara real-time melalui halaman web.

Alat dan Bahan:

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
  1. ESP32 Development Board
  2. Sensor DHT11
  3. Breadboard
  4. Kabel jumper
  5. Resistor 10kΩ (opsional untuk pull-up pada pin data DHT11)
  6. USB Cable (untuk menghubungkan ESP32 ke PC)

Perangkat Lunak:

  1. Arduino IDE (dengan dukungan ESP32)
  2. Library yang diperlukan:
    • DHT sensor library by Adafruit
    • ESPAsyncWebServer dan AsyncTCP (untuk web server)

Langkah-Langkah:

  1. Persiapan Hardware
  1. Rangkai komponen seperti gambar di bawah ini:
DHT11 Pin ESP32 Pin
VCC 3.3V
GND GND
DATA GPIO 2
  1. Jika menggunakan resistor pull-up, hubungkan resistor 10kΩ antara VCC dan pin data sensor DHT11.
  1. Instalasi Library yang Diperlukan
  1. Buka Arduino IDE.
  2. Pastikan Anda sudah menginstal ESP32 board di Arduino IDE. Jika belum:
    • Buka File > Preferences, lalu tambahkan URL ini di bagian Additional Board Manager URLs:
https://dl.espressif.com/dl/package_esp32_index.json
    • Pergi ke Tools > Board > Board Manager, cari “ESP32”, dan instal.
  1. Instal DHT Sensor Library:
    • Pergi ke Sketch > Include Library > Manage Libraries.
    • Cari “DHT sensor library by Adafruit” dan instal.
  2. Instal library untuk webserver:
    • ESPAsyncWebServer dan AsyncTCP:
      • Buka Sketch > Include Library > Manage Libraries.
      • Cari ESPAsyncWebServer dan AsyncTCP. Instal kedua library tersebut.
  1. Kode Program

Berikut adalah kode program untuk ESP32 Webserver menggunakan sensor DHT11:

#include <WiFi.h>
#include <ESPAsyncWebServer.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>




// Definisikan pin DHT dan tipe sensor

#define DHTPIN 4     
#define DHTTYPE DHT11 




DHT dht(DHTPIN, DHTTYPE);




// Konfigurasi Wi-Fi

const char* ssid = "Nama_WiFi";        // Ganti dengan nama WiFi Anda
const char* password = "Password_WiFi";  // Ganti dengan password WiFi Anda
AsyncWebServer server(80);


String readDHTTemperature() {

  float t = dht.readTemperature();
  if (isnan(t)) {
    return "--";
  } else {
    return String(t);
  }
}




String readDHTHumidity() {
  float h = dht.readHumidity();
  if (isnan(h)) {
    return "--";
  } else {
    return String(h);
  }
}




void setup() {

  // Memulai serial monitor
  Serial.begin(115200);
  dht.begin();

  // Hubungkan ke Wi-Fi

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
  Serial.println(WiFi.localIP());




  // Rute untuk menampilkan halaman web

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    String html = "<!DOCTYPE html><html>";
    html += "<head><meta name='viewport' content='width=device-width, initial-scale=1.0'>";
    html += "<title>ESP32 DHT11 WebServer</title></head>";
    html += "<body><h1>ESP32 DHT11 Sensor Data</h1>";
    html += "<p>Temperature: " + readDHTTemperature() + " &deg;C</p>";
    html += "<p>Humidity: " + readDHTHumidity() + " %</p>";
    html += "</body></html>";
    request->send(200, "text/html", html);
  });

  // Memulai server
  server.begin();
}


void loop() {

  // Tidak ada kode dalam loop

}
  1. Ubah SSID dan Password Wi-Fi

Di bagian berikut, ganti nama Wi-Fi dan password sesuai dengan jaringan Wi-Fi yang Anda gunakan:

const char* ssid = "Nama_WiFi";       
const char* password = "Password_WiFi";
  1. Unggah Program ke ESP32
  1. Sambungkan ESP32 ke komputer menggunakan kabel USB.
  2. Pilih Tools > Board > ESP32 Dev Module.
  3. Pilih port yang sesuai di Tools > Port.
  4. Klik tombol Upload di Arduino IDE untuk mengunggah program ke ESP32.
  1. Uji Webserver
  1. Setelah proses upload selesai, buka Serial Monitor di Arduino IDE dengan baudrate 115200 untuk melihat alamat IP ESP32.
  2. Catat alamat IP tersebut (contoh: 192.168.1.10).
  3. Buka browser web di perangkat yang terhubung ke jaringan Wi-Fi yang sama, dan masukkan alamat IP yang ditampilkan di Serial Monitor.
  4. Halaman web akan menampilkan suhu dan kelembaban dari sensor DHT11 secara real-time.

Tugas Akhir:

  1. Tambahkan fitur untuk memperbarui data suhu dan kelembaban secara otomatis tanpa perlu me-refresh halaman secara manual.
  2. Buat laporan hasil implementasi, termasuk screenshot tampilan webserver yang berjalan.

Related Articles

Leave a Reply

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

Daftar Sekarang