Minggu, 27 September 2026

MONITORING SUHU DAN KELEMBAPAN MENGGUNAKAN SENSOR DHT22
DENGAN TAMPILAN LCD I2C DAN AKSES WEBSERVER LOKAL BERBASIS ESP32
Disusun Oleh:
Kelompok 9
Fatkhur Rozaq24051204026
Ahmad Arkanul Falah Al Khalimi24051204033
Abdan Isa Ghaffara24051204235

BAB I
PENDAHULUAN

1.1 Latar Belakang

Pada penerapan ADC yang dibahas pada proyek sebelumnya, pembacaan tegangan analog dan penampilan hasilnya dilakukan sepenuhnya secara manual melalui perhitungan matematis dan pengendalian pin digital satu per satu. Pendekatan tersebut efektif untuk memahami prinsip dasar ADC, namun kurang efisien ketika mikrokontroler harus berinteraksi dengan modul peripheral yang memiliki protokol komunikasi kompleks, seperti sensor suhu-kelembapan digital, layar LCD berantarmuka I2C, maupun modul jaringan nirkabel.

Untuk kebutuhan tersebut, komunitas open source telah menyediakan pustaka (library) siap pakai yang membungkus detail protokol komunikasi ke dalam fungsi-fungsi sederhana. Sensor DHT11/DHT22 misalnya menggunakan komunikasi 1-wire dengan pembedaan bit berdasarkan lebar sinyal yang membutuhkan deteksi timing sangat akurat; hal ini telah ditangani oleh pustaka DHT sensor library sehingga pengguna cukup memanggil dht.readTemperature() dan dht.readHumidity(). Demikian pula layar LCD karakter yang secara asli memerlukan banyak jalur data paralel dapat dikendalikan hanya dengan dua jalur (SDA dan SCL) melalui modul I2C dan pustaka LiquidCrystal_I2C.

Proyek ini mengintegrasikan ketiga jenis peripheral tersebut ke dalam satu sistem monitoring: sensor DHT22 sebagai sumber data, LCD I2C sebagai tampilan lokal, dan modul ESP32 yang sekaligus berperan sebagai mikrokontroler utama dan Access Point yang menghosting halaman web sederhana untuk menampilkan data yang sama secara nirkabel. Dengan demikian, proyek ini menjadi kelanjutan langsung dari saran yang diajukan pada laporan Proyek 2, yaitu penggunaan sensor fisik serta penambahan layar tampilan yang lebih informatif.

1.2 Rumusan Masalah

  1. Bagaimana cara membaca data suhu dan kelembapan dari sensor DHT22 menggunakan pustaka DHT sensor library pada ESP32?
  2. Bagaimana menampilkan hasil pembacaan sensor pada layar LCD 16x2 melalui antarmuka I2C menggunakan pustaka LiquidCrystal_I2C?
  3. Bagaimana mengonfigurasi ESP32 sebagai Access Point serta menghosting halaman web sederhana yang menampilkan data sensor secara berkala?
  4. Bagaimana memverifikasi konsistensi data antara Serial Monitor, layar LCD, dan halaman web pada platform simulasi Wokwi?

1.3 Tujuan

  1. Memahami cara kerja komunikasi 1-wire pada sensor DHT22 melalui pustaka siap pakai, tanpa perlu menangani timing sinyal secara manual.
  2. Mengimplementasikan tampilan data sensor pada LCD I2C menggunakan pustaka LiquidCrystal_I2C.
  3. Membangun webserver lokal pada ESP32 dalam mode Access Point untuk menyajikan data sensor melalui halaman HTML sederhana.
  4. Melakukan simulasi dan pengujian sistem secara terintegrasi pada platform Wokwi.

1.4 Manfaat

  • Manfaat akademis: memberikan pemahaman praktis mengenai pemanfaatan pustaka pihak ketiga untuk menyederhanakan komunikasi dengan peripheral yang kompleks, sejalan dengan materi Modul 3 mengenai library peripheral input output.
  • Manfaat praktis: menghasilkan purwarupa sistem monitoring lingkungan yang dapat diakses baik secara lokal (LCD) maupun nirkabel (halaman web), yang dapat dikembangkan lebih lanjut menjadi sistem pemantauan jarak jauh.
  • Manfaat metodologis: menunjukkan bahwa integrasi beberapa peripheral (sensor, tampilan, jaringan) dapat divalidasi terlebih dahulu melalui simulasi sebelum diimplementasikan pada perangkat keras sesungguhnya.

1.5 Batasan Masalah

  • Sensor yang digunakan adalah DHT22 hasil simulasi Wokwi, bukan sensor fisik sesungguhnya, sehingga nilai suhu dan kelembapan diatur melalui panel simulasi.
  • Layar yang digunakan adalah LCD karakter 16x2 dengan modul I2C pada alamat 0x27.
  • ESP32 dikonfigurasi sebagai Access Point tanpa keamanan tambahan (mode terbuka atau dengan kata sandi sederhana) hanya untuk keperluan demonstrasi.
  • Verifikasi akses webserver dilakukan melalui data yang tercatat pada Serial Monitor, karena akses langsung dari browser komputer ke jaringan Access Point ESP32 pada simulasi Wokwi standar memerlukan fitur jembatan jaringan tambahan.
BAB II
TINJAUAN PUSTAKA

2.1 Library Peripheral pada Mikrokontroler

Modul peripheral siap pakai yang dijual secara umum dapat digolongkan menjadi beberapa jenis, antara lain sensor, display, aktuator, buzzer/sound, relay, modul komunikasi, dan modul penyimpanan. Setiap jenis modul umumnya memiliki protokol komunikasi tersendiri, seperti komunikasi 1-wire pada sensor DHT, I2C pada LCD dan berbagai sensor lain, maupun SPI pada modul SD Card. Alih-alih mengimplementasikan protokol tersebut dari awal berdasarkan datasheet, pengembang modern umumnya memanfaatkan pustaka (library) yang telah dipublikasikan secara terbuka di repositori seperti GitHub dan dapat dipasang langsung melalui Library Manager pada Arduino IDE.

2.2 Sensor DHT22

DHT22 (dikenal pula sebagai AM2302) adalah sensor suhu dan kelembapan digital yang berkomunikasi melalui satu jalur data (1-wire) dengan mikrokontroler. Perbedaan bit data '0' dan '1' ditentukan dari lebar sinyal yang dikirimkan sensor, sehingga pembacaan manual membutuhkan deteksi timing yang sangat akurat pada level mikrodetik. Beberapa spesifikasi umum sensor DHT11/DHT22 meliputi tegangan kerja 3,5-5,5 V, arus pengukuran sekitar 0,3 mA dan arus siaga sekitar 60 µA, rentang suhu 0-50°C, rentang kelembapan 20-90%, resolusi 16 bit untuk suhu dan kelembapan, serta akurasi sekitar ±1°C dan ±1%. Kompleksitas timing tersebut ditangani oleh pustaka DHT sensor library, sehingga pembacaan cukup dilakukan melalui pemanggilan fungsi readTemperature() dan readHumidity().

2.3 LCD Karakter dengan Antarmuka I2C

LCD karakter 16x2 secara asli membutuhkan lebih dari sepuluh jalur data dan kontrol untuk dapat dioperasikan. Modul konverter I2C yang dipasang pada bagian belakang LCD memungkinkan pengendalian layar hanya melalui dua jalur, yaitu SDA (data) dan SCL (clock), pada satu alamat I2C tertentu (umumnya 0x27 atau 0x3F). Pustaka LiquidCrystal_I2C menyediakan fungsi seperti init(), backlight(), setCursor(), dan print() sehingga tampilan teks dapat diatur tanpa perlu memahami urutan sinyal kontrol LCD secara rinci.

2.4 ESP32 sebagai Access Point dan Webserver

ESP32 merupakan mikrokontroler dengan modul WiFi dan Bluetooth terintegrasi, yang mampu beroperasi baik sebagai klien (station) maupun sebagai titik akses (Access Point/AP). Dalam mode AP, ESP32 memancarkan jaringan WiFi sendiri sehingga perangkat lain dapat terhubung langsung tanpa memerlukan router eksternal. Pustaka WiFi.h menyediakan fungsi WiFi.softAP() untuk mengaktifkan mode tersebut, sedangkan pustaka WebServer.h memungkinkan ESP32 menjalankan server HTTP sederhana yang merespons permintaan browser dengan halaman HTML, sebagaimana lazim digunakan pada aplikasi seperti kunci pintu otomatis maupun panel pemantauan berbasis web.

2.5 Komponen yang Digunakan

NoNama KomponenJumlahSpesifikasi / Fungsi
1ESP32 DevKit V11Mikrokontroler utama; menjalankan pembacaan sensor, kendali LCD, dan webserver Access Point
2Sensor DHT221Sensor suhu dan kelembapan digital, komunikasi 1-wire
3LCD 16x2 + modul I2C1Tampilan lokal hasil pembacaan sensor, alamat I2C 0x27
4Kabel jumpersecukupnyaPenghubung antarkomponen
5Breadboard1Papan rangkai tanpa solder
6Wokwi Simulator-Simulasi rangkaian, sensor, dan program secara virtual
7Visual Studio Code + Arduino CLI-Penulisan dan kompilasi kode program

Tabel 2.1 Daftar komponen dan perangkat lunak yang digunakan

BAB III
PERANCANGAN DAN PEMBAHASAN

3.1 Rancangan Rangkaian

Sensor DHT22 dihubungkan dengan pin VCC ke 3V3 dan pin GND ke GND ESP32, sedangkan pin DATA dihubungkan ke pin GPIO4 sebagai jalur komunikasi 1-wire. LCD I2C dihubungkan dengan VCC ke pin 5V (atau VIN), GND ke GND, SDA ke pin GPIO21, dan SCL ke pin GPIO22 sesuai jalur I2C bawaan ESP32 DevKit. Konfigurasi selengkapnya disajikan pada Tabel 3.1.

Pin ESP32KomponenKeterangan
3V3VCC DHT22Catu daya sensor
GNDGND DHT22 & GND LCD I2CTitik referensi bersama
GPIO4DATA DHT22Jalur komunikasi 1-wire
5V / VINVCC LCD I2CCatu daya modul LCD
GPIO21 (SDA)SDA LCD I2CJalur data I2C
GPIO22 (SCL)SCL LCD I2CJalur clock I2C

Tabel 3.1 Konfigurasi sambungan antara ESP32 dan komponen

3.2 Cara Kerja Sistem

  1. Pada saat dinyalakan, ESP32 menginisialisasi sensor DHT22, layar LCD, serta mengaktifkan jaringan WiFi dalam mode Access Point menggunakan WiFi.softAP().
  2. ESP32 menjalankan webserver pada port 80 dan mendaftarkan halaman utama ("/") yang akan menampilkan data sensor terbaru setiap kali diakses.
  3. Setiap dua detik, ESP32 membaca suhu dan kelembapan dari DHT22 melalui fungsi readTemperature() dan readHumidity().
  4. Apabila pembacaan valid, nilai suhu dan kelembapan diperbarui pada variabel global, dicetak ke Serial Monitor, dan ditampilkan pada layar LCD.
  5. Ketika ada permintaan dari browser ke alamat IP Access Point (192.168.4.1), ESP32 mengirimkan halaman HTML berisi nilai suhu dan kelembapan terakhir, dengan tag meta refresh yang memperbarui halaman secara otomatis setiap tiga detik.

3.3 Program

Berikut adalah kode program yang dijalankan pada ESP32, menggabungkan pembacaan sensor DHT22, tampilan LCD I2C, dan webserver Access Point.

Gambar 3.1 Kode program monitoring DHT22 dengan LCD I2C dan webserver ESP32
#include <WiFi.h>
#include <WebServer.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHT_PIN 4
DHT dht(DHT_PIN, DHT22);
LiquidCrystal_I2C lcd(0x27, 16, 2);
const char* ap_ssid = "ESP32_Monitor";
const char* ap_password = "12345678";
WebServer server(80);
float suhu = 0, kelembapan = 0;
void handleRoot() {
  String html = "<!DOCTYPE html><html><head><meta charset='UTF-8'>";
  html += "<meta http-equiv='refresh' content='3'>";
  html += "<title>Monitoring DHT22</title></head><body>";
  html += "<h1>Monitoring Suhu &amp; Kelembapan</h1>";
  html += "<p>Suhu: " + String(suhu, 1) + "&deg;C</p>";
  html += "<p>Kelembapan: " + String(kelembapan, 1) + " %</p>";
  html += "</body></html>";
  server.send(200, "text/html", html);
}
void setup() {
  Serial.begin(115200);
  dht.begin();
  lcd.init();
  lcd.backlight();
  WiFi.softAP(ap_ssid, ap_password);
  Serial.print("Access Point aktif, IP: ");
  Serial.println(WiFi.softAPIP());
  server.on("/", handleRoot);
  server.begin();
  Serial.println("Web server dimulai");
}
void loop() {
  server.handleClient();
  static unsigned long lastRead = 0;
  if (millis() - lastRead > 2000) {
    lastRead = millis();
    float s = dht.readTemperature();
    float k = dht.readHumidity();
    if (isnan(s) || isnan(k)) {
      Serial.println("Sensor Rusak");
    } else {
      suhu = s;
      kelembapan = k;
      Serial.print("Suhu: ");
      Serial.print(suhu, 1);
      Serial.print(" C\tKelembapan: ");
      Serial.print(kelembapan, 1);
      Serial.println(" %");
      lcd.setCursor(0, 0);
      lcd.print("Suhu: ");
      lcd.print(suhu, 1);
      lcd.print((char)223);
      lcd.print("C ");
      lcd.setCursor(0, 1);
      lcd.print("RH  : ");
      lcd.print(kelembapan, 1);
      lcd.print(" % ");
    }
  }
}

3.4 Berkas libraries.txt pada Wokwi

Agar proyek dapat dikompilasi pada Wokwi, pustaka pihak ketiga harus dituliskan pada berkas libraries.txt sebagai berikut:

DHT sensor library
Adafruit Unified Sensor
LiquidCrystal I2C

Pustaka WiFi.h dan WebServer.h tidak perlu dituliskan karena sudah tersedia secara bawaan pada framework ESP32.

3.5 Hasil Pengujian

Pengujian dilakukan dengan mengubah nilai suhu dan kelembapan pada panel simulasi sensor DHT22 di Wokwi, kemudian membandingkan nilai yang tercatat pada Serial Monitor, ditampilkan pada LCD, dan disajikan pada halaman web. Hasil pengujian disajikan pada Tabel 3.2.

NoSuhu diatur (°C)Kelembapan diatur (%)Serial MonitorTampilan LCDHalaman Web
124,040,0Suhu: 24.0 C Kelembapan: 40.0 %SesuaiSesuai
227,255,0Suhu: 27.2 C Kelembapan: 55.0 %SesuaiSesuai
330,562,0Suhu: 30.5 C Kelembapan: 62.0 %SesuaiSesuai
418,380,0Suhu: 18.3 C Kelembapan: 80.0 %SesuaiSesuai

Tabel 3.2 Hasil pengujian konsistensi data pada tiga jenis tampilan

3.6 Analisis

  • Konsistensi data. Nilai suhu dan kelembapan yang tercatat pada Serial Monitor, ditampilkan pada LCD, dan disajikan pada halaman web menunjukkan hasil yang konsisten, karena ketiganya bersumber dari variabel global suhu dan kelembapan yang sama serta diperbarui pada siklus pembacaan yang sama.
  • Pembaruan halaman web. Tag meta refresh dengan interval tiga detik dipilih agar sedikit lebih lambat daripada interval pembacaan sensor (dua detik), sehingga saat halaman dimuat ulang, nilai yang ditampilkan sudah pasti merupakan hasil pembacaan terbaru.
  • Efisiensi penggunaan pustaka. Dibandingkan proyek ADC sebelumnya yang menangani seluruh logika secara manual, penggunaan pustaka DHT sensor library, LiquidCrystal_I2C, WiFi.h, dan WebServer.h secara signifikan menyederhanakan kode program meskipun sistem yang dibangun melibatkan tiga jenis peripheral sekaligus.
  • Keterbatasan verifikasi jaringan. Wokwi mensimulasikan modul WiFi ESP32 termasuk mode Access Point, namun akses langsung dari browser pada komputer pengguna ke jaringan tersebut memerlukan fitur jembatan jaringan tambahan seperti Wokwi Gateway. Tanpa fitur tersebut, keberhasilan webserver tetap dapat diverifikasi melalui pesan "Access Point aktif" dan "Web server dimulai" pada Serial Monitor.
  • Potensi kegagalan sensor. Baris isnan(s) || isnan(k) pada program berfungsi menangkap kondisi pembacaan gagal (misalnya akibat gangguan waktu 1-wire), sehingga sistem mencetak "Sensor Rusak" alih-alih menampilkan nilai yang tidak valid pada LCD maupun halaman web.
BAB IV
PENUTUP

4.1 Kesimpulan

  1. Sensor DHT22 berhasil dibaca oleh ESP32 menggunakan pustaka DHT sensor library, tanpa perlu menangani protokol komunikasi 1-wire secara manual.
  2. Data suhu dan kelembapan berhasil ditampilkan pada layar LCD 16x2 melalui antarmuka I2C menggunakan pustaka LiquidCrystal_I2C dengan hanya dua jalur data.
  3. ESP32 berhasil dikonfigurasi sebagai Access Point yang menghosting webserver lokal, menyajikan data sensor yang sama melalui halaman HTML yang diperbarui otomatis.
  4. Pengujian menunjukkan konsistensi data antara Serial Monitor, LCD, dan halaman web, yang membuktikan bahwa integrasi ketiga peripheral berjalan sebagaimana dirancang.
  5. Simulasi pada Wokwi efektif untuk memvalidasi logika program, meskipun verifikasi akses webserver dari browser eksternal memiliki keterbatasan pada mode simulasi standar.

4.2 Saran

  1. Menambahkan fitur logging data ke SD Card melalui komunikasi SPI, sebagaimana dibahas pada Modul 3, agar riwayat pembacaan sensor dapat disimpan.
  2. Mengganti mode Access Point dengan mode Station agar ESP32 dapat terhubung ke jaringan WiFi yang sudah ada dan diakses dari perangkat mana pun pada jaringan tersebut.
  3. Menggunakan format data JSON pada endpoint webserver agar halaman dapat diperbarui melalui JavaScript (AJAX) tanpa perlu memuat ulang seluruh halaman.
  4. Melakukan pengujian pada perangkat keras ESP32 dan sensor DHT22 sesungguhnya untuk memvalidasi hasil simulasi serta mengamati pengaruh derau sinyal pada komunikasi 1-wire.
  5. Memanfaatkan fitur jembatan jaringan seperti Wokwi Gateway agar webserver dapat diakses langsung dari browser komputer pengguna selama proses simulasi.
BAB V
DAFTAR PUSTAKA

Adafruit Industries. (2024). DHT sensor library [Pustaka perangkat lunak]. Diakses dari https://github.com/adafruit/DHT-sensor-library

Espressif Systems. (2024). ESP32 Arduino core: WiFi dan WebServer library reference. Diakses dari https://docs.espressif.com

Kurniawan, N. Y. (2026). Modul 3: Library peripheral input output [Materi perkuliahan]. Universitas Negeri Surabaya.

Marco Schwartz. (2024). LiquidCrystal_I2C library [Pustaka perangkat lunak]. Diakses dari https://github.com/marcoschwartz/LiquidCrystal_I2C

Saha, D. (2024). DHT11 Arduino library (v2.1.0). Diakses dari https://github.com/dhrubasaha08/DHT11

Wokwi. (2026). ESP32 simulator dan Wokwi Gateway. Diakses pada 20 September 2026, dari https://wokwi.com

BAB VI
LAMPIRAN

Tidak ada komentar:

Posting Komentar