Tutorial Monitoring Suhu & Kelembapan dengan ESP8266

Pada tutorial lanjutan ini, kita akan membuat sistem Monitoring Suhu dan Kelembapan menggunakan sensor DHT11 atau DHT22. Data suhu dan kelembapan akan ditampilkan secara real-time melalui Web Browser (menggunakan Async Web Server mode AP) serta ditampilkan secara lokal pada LCD.

Sama seperti tutorial sebelumnya, ESP8266 akan bekerja dalam mode Access Point (AP) sehingga sistem dapat digunakan tanpa koneksi internet dan tanpa router.

Fitur

Sistem monitoring ini dirancang untuk memberikan informasi kondisi lingkungan secara langsung dan mudah diakses. Fitur-fitur yang akan terdapat pada sistem ini bisa kita cek dibawah ini.

  • Monitoring suhu dan kelembapan menggunakan sensor DHT11 / DHT22
  • ESP8266 beroperasi sebagai WiFi Access Point (AP)
  • Data sensor ditampilkan pada Web Browser secara asynchronous
  • Data suhu dan kelembapan ditampilkan secara lokal pada LCD

Alat Dan Bahan

Nama KomponenGambar Komponen
NodeMcu esp8266
Sensor DHT 11
LCD 16×2 I2C
Kabel Jumper
Breadboard

Gambar Rangkaian

ESP8266DHT-11
pin D2pin Data
pin vin /vupin VCC (+)
pin GNDpin GND
ESP8266LCD I2C
pin D5SCL
pin D6SDA
pin vin /vuVCC
pin GNDGND

Cara Kerja Alat

  1. ESP8266 akan membaca data suhu dan kelembapan dari sensor DHT secara berkala.
  2. Data hasil pembacaan akan ditampilkan pada LCD sebagai monitoring lokal.
  3. ESP8266 akan membuat jaringan WiFi sendiri (Mode AP).
  4. Pengguna menghubungkan HP atau laptop ke WiFi ESP8266.
  5. Data suhu dan kelembapan ditampilkan pada halaman web melalui Web Server.

Library yang Digunakan

Pastikan library berikut ini sudah terinstal di Arduino IDE kamu:

  • ESP8266WiFi.h
  • ESPAsyncWebServer.h
  • ESPAsyncTCP.h
  • DHT.h
  • LiquidCrystal_I2C.h

Code

#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN D2
#define DHTTYPE DHT11

LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(DHTPIN, DHTTYPE);

const char* ssid = "DHT_Monitor_AP";
const char* password = "12345678";

AsyncWebServer server(80);

float temperature = 0;
float humidity = 0;

String htmlPage() {
  String html = "";
  html += "<!DOCTYPE html><html><head>";
  html += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
  html += "<title>DHT Monitor</title>";
  html += "</head><body>";
  html += "<h1>Monitoring Suhu & Kelembapan</h1>";
  html += "<p>Suhu: " + String(temperature) + " &deg;C</p>";
  html += "<p>Kelembapan: " + String(humidity) + " %</p>";
  html += "</body></html>";
  return html;
}

void setup() {
  lcd.init();
  lcd.backlight();

  dht.begin();

  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, password);

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(200, "text/html", htmlPage());
  });

  server.begin();
}

void loop() {
  humidity = dht.readHumidity();
  temperature = dht.readTemperature();

  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temperature);
  lcd.print(" C");

  lcd.setCursor(0, 1);
  lcd.print("Hum : ");
  lcd.print(humidity);
  lcd.print(" %");

  delay(2000);
}

Petunjuk Pengerjaan dan Uji Coba

  1. Rangkai sensor DHT11/DHT22 dan modul LCD sesuai dengan tabel koneksi yang telah dijelaskan. Pastikan setiap pin terhubung dengan benar, terutama jalur VCC dan GND, agar sensor dan LCD dapat bekerja dengan normal.
  2. Hubungkan papan ESP8266 ke komputer menggunakan kabel USB, kemudian buka Arduino IDE. Pilih tipe board dan port yang sesuai, lalu unggah (upload) program monitoring suhu dan kelembapan ke ESP8266 hingga proses selesai tanpa error.
  3. Setelah upload berhasil, lepaskan ESP8266 dari komputer (opsional), lalu pastikan papan sudah mendapatkan sumber daya. Selanjutnya, aktifkan fitur WiFi pada HP atau laptop.
  4. Cari jaringan WiFi dengan nama DHT_Monitor_AP, kemudian hubungkan perangkat ke jaringan tersebut. Tunggu hingga perangkat berhasil terhubung.
  5. Buka aplikasi browser (Chrome, Firefox, atau sejenisnya), lalu ketik alamat IP 192.168.4.1 pada kolom alamat dan tekan Enter.
  6. Perhatikan halaman web yang tampil. Nilai suhu dan kelembapan akan ditampilkan secara real-time melalui web, sementara informasi yang sama juga dapat dilihat langsung pada layar LCD yang terpasang pada rangkaian.