Sensor Suhu dan Kelembapan DHT11: Panduan Arduino, ESP32, dan Pico
Apa itu sensor suhu dan kelembapan DHT11 dan bagaimana cara kerjanya? Pengkabelan Arduino, library DHT, contoh kode, DHT11 vs DHT22, pemakaian di ESP32 dan Pico, serta kesalahan umum.
DHT11 adalah sensor digital murah berwadah plastik biru yang membaca suhu sekaligus kelembapan relatif lewat satu kabel data. Kamu akan menemukannya di hampir setiap proyek Arduino seperti stasiun cuaca, pemantau rumah kaca dan tanaman, termometer kamar bayi, dan rumah pintar yang menyalakan kipas ketika kelembapan naik. Tidak seperti sensor analog, kamu tidak perlu mengukur tegangan lalu repot dengan rumus: sensor mengirim hasil pengukurannya sebagai angka siap pakai.

Apa itu DHT11 dan di mana dipakai?
Kelembapan yang diukurnya adalah kelembapan relatif: persentase dari jumlah uap air maksimum yang bisa ditampung udara pada suhu tersebut. 40–60% dianggap nyaman; di atas 70% berarti lembap dan rawan jamur, di bawah 30% berarti udara kering. DHT11 mengukur nilai ini dan suhu sekitar kira-kira sekali per detik.
- Stasiun cuaca rumahan: tampilkan suhu dan kelembapan di layar LCD atau OLED.
- Pemantauan rumah kaca dan tanaman: beri peringatan ketika kelembapan turun, dan siram tanaman bersama sensor kelembapan tanah.
- Peringatan lembap dan jamur: bunyikan alarm ketika kelembapan kamar mandi, gudang bawah tanah, atau lemari melewati 70%.
- Kipas atau dehumidifier otomatis: nyalakan perangkat lewat relay ketika ambang kelembapan terlewati.
- Data logger: tulis hasil pengukuran ke kartu SD lalu buat grafik harian.
- Pemantauan jarak jauh: pakai ESP32 untuk menampilkan nilainya di halaman web yang bisa kamu buka di HP.
Bagaimana cara kerja DHT11?
Ada dua elemen pengukur di dalam wadahnya. Elemen kelembapan berupa bahan penyerap uap air di antara dua elektroda; ketika kelembapan udara naik, hambatannya turun. Suhu diukur dengan termistor NTC: resistor kecil yang hambatannya turun ketika makin hangat. Mikrokontroler mungil di dalam sensor mengukur kedua hambatan itu, mengoreksinya dengan nilai kalibrasi yang disimpan di pabrik, lalu mengirim hasilnya secara digital.
Komunikasinya berlangsung lewat satu kabel. Arduino membangunkan sensor dengan menahan jalur data di LOW selama minimal 18 milidetik, lalu sensor membalas dengan paket 40 bit: 16 bit kelembapan, 16 bit suhu, dan checksum 8 bit untuk mendeteksi pembacaan yang salah. Kamu tidak perlu menulis pengaturan waktu ini sendiri; library yang akan kita instal di bawah menangani semuanya.
Spesifikasi: DHT11 vs DHT22
| Fitur | DHT11 | DHT22 (AM2302) |
|---|---|---|
| Tegangan catu daya | 3–5,5 V | 3,3–6 V |
| Arus selama pengukuran | 0,5–2,5 mA | 1–1,5 mA |
| Rentang suhu | 0–50 °C | −40–80 °C |
| Akurasi suhu | ±2 °C | ±0,5 °C |
| Rentang kelembapan | 20–90% | 0–100% |
| Akurasi kelembapan | ±5% | ±2% (maks. ±5%) |
| Resolusi | 1 °C / 1% | 0,1 °C / 0,1% |
| Laju pembacaan | Sekali per detik | Sekali setiap 2 detik |
| Warna wadah | Biru | Putih |

Singkatnya: kalau kamu ingin pembacaan kasar suhu dan kelembapan di dalam ruangan, DHT11 sudah cukup dan lebih murah. Untuk di luar ruangan, di bawah titik beku, atau di mana pun selisih setengah derajat itu penting, pilih DHT22. Pengkabelan dan kode keduanya sama; kamu cukup mengganti tipe sensor di kode.
Pinout dan pengkabelan DHT11
DHT11 dijual dalam dua bentuk: modul 3 pin dengan resistor dan LED di papannya, atau sensor polos berkaki 4. Pada sensor polos, hitung kakinya dari kiri ke kanan dengan sisi berkisi menghadap ke arahmu.
| Sinyal | Modul 3 pin | Sensor 4 kaki | Hubungkan ke |
|---|---|---|---|
| Daya | VCC (+) | Kaki 1 | 5V (3V3 di ESP32 dan Pico) |
| Data | DATA / OUT / S | Kaki 2 | Pin digital (D2 di Uno) |
| Tidak dipakai | — | Kaki 3 | Tidak dihubungkan |
| Ground | GND (−) | Kaki 4 | GND |
Menginstal library DHT
- Buka Library Manager di Arduino IDE (ikon buku di bilah samping kiri Arduino IDE 2).
- Ketik DHT sensor library di kotak pencarian lalu instal library buatan Adafruit.
- Ketika ditanya soal dependensi, pilih Install all supaya Adafruit Unified Sensor ikut terinstal.
- Kalau mau, coba contoh siap pakai di File > Examples > DHT sensor library > DHTtester.
Contoh kode Arduino: suhu, kelembapan, dan indeks panas
Kode di bawah mengambil pembacaan setiap dua detik, memberi tahu ketika pembacaan gagal, dan menggabungkan suhu serta kelembapan untuk menghitung indeks panas (seberapa panas yang terasa). Buka Serial Monitor di 9600 baud untuk melihat hasilnya.
1#include <DHT.h>
2
3#define DHT_PIN 2 // veri pini / data pin
4#define DHT_TYPE DHT11 // DHT22 kullanıyorsan DHT22 yaz / write DHT22 for a DHT22
5
6DHT dht(DHT_PIN, DHT_TYPE);
7
8void setup() {
9 Serial.begin(9600);
10 dht.begin();
11}
12
13void loop() {
14 delay(2000); // ölçümler arası bekleme / wait between readings
15
16 float humidity = dht.readHumidity(); // % bağıl nem / % relative humidity
17 float temperature = dht.readTemperature(); // °C
18
19 if (isnan(humidity) || isnan(temperature)) {
20 Serial.println("Okuma hatası / read error");
21 return;
22 }
23
24 // hissedilen sıcaklık / heat index (°C)
25 float heatIndex = dht.computeHeatIndex(temperature, humidity, false);
26
27 Serial.print("Sicaklik / Temp: ");
28 Serial.print(temperature);
29 Serial.print(" C Nem / Humidity: %");
30 Serial.print(humidity);
31 Serial.print(" Hissedilen / Feels like: ");
32 Serial.print(heatIndex);
33 Serial.println(" C");
34}Memakai DHT11 dengan ESP32
Kode yang sama berjalan di ESP32; cukup atur DHT_PIN ke, misalnya, 4. Beri daya sensor dari pin 3V3 ESP32 supaya jalur datanya juga tetap di 3,3 V; DHT11 bekerja dengan nyaman pada tegangan ini. GPIO 34–39 hanya untuk input, jadi tidak cocok untuk DHT karena jalur datanya dua arah. Ketika memilih pin, cek pin ESP32 mana yang aman di alat Pinout. Kamu bisa menampilkan hasil pengukuran di halaman web lewat Wi-Fi dan memantaunya dari HP.
DHT11 dengan Raspberry Pi Pico (MicroPython)
MicroPython punya modul dht bawaan untuk sensor DHT, jadi tidak ada library yang perlu diinstal. Hubungkan sensor ke pin 3V3 Pico, GND, dan pin GP15:
1import dht
2from machine import Pin
3import time
4
5sensor = dht.DHT11(Pin(15)) # GP15 veri pini / data pin (DHT22 için dht.DHT22)
6
7while True:
8 try:
9 sensor.measure()
10 t = sensor.temperature() # °C
11 h = sensor.humidity() # %
12 print("Sicaklik:", t, "C Nem: %", h)
13 except OSError:
14 print("Okuma hatası / read error")
15 time.sleep(2)Ide proyek dengan DHT11
- Termometer digital dengan LCD: tulis nilainya ke layar 16x2; caranya ada di Memakai Layar LCD I2C.
- Kipas yang dikendalikan kelembapan: nyalakan kipas lewat relay ketika kelembapan melewati 65%; untuk pengkabelannya lihat Apa Itu Modul Relay?
- Alarm lembap: bunyikan buzzer ketika ambangnya terlewati; Apa Itu Buzzer? membahas peringatan berbunyi.
- Pencatat suhu: simpan pembacaan setiap 10 menit dengan modul jam (RTC) dan kartu SD.
- Stasiun cuaca Wi-Fi: tampilkan hasil pengukuran dengan ESP32 di halaman yang bisa dibuka perangkat mana pun di jaringan rumahmu.
Kesalahan umum dan cara mengatasinya
- Terus-menerus NaN atau “Failed to read”: kabel data mungkin terpasang di pin yang berbeda dari pin di kode, resistor pull-up-nya tidak ada, atau kodenya memakai tipe sensor yang salah (DHT22, bukan DHT11).
- Membaca terlalu sering: sensor yang dibaca dengan jeda kurang dari 2 detik akan mengembalikan nilai lama atau error.
- Suhu lebih tinggi dari seharusnya: sensor mungkin terlalu dekat dengan regulator tegangan Arduino atau terkena sinar matahari; letakkan beberapa sentimeter dari board.
- Pembacaan putus-putus di kabel panjang: sinyal melemah setelah beberapa meter; turunkan pull-up ke 4,7 kΩ, beri daya sensor dengan 5 V, dan pakai kabel berkualitas baik.
- Tidak stabil di ESP32: kalau sensor diberi daya 5 V, jalur datanya ditarik ke 5 V; beri daya dari 3V3 dan pakai GPIO yang bisa menjadi input sekaligus output (misalnya 4).
- Mengharapkan respons instan: sensor butuh beberapa detik untuk mendeteksi perubahan kelembapan; DHT11 dirancang untuk memantau ruangan, bukan untuk pengukuran cepat.
Kalau kamu penasaran sensor apa lagi yang bisa dipakai, lihat Panduan Sensor Arduino, dan untuk mengukur jarak, baca Sensor Jarak HC-SR04. Di aplikasi BlueGrays, kamu akan menemukan proyek DHT11 dan DHT22 langkah demi langkah lengkap dengan skema rangkaian dan kodenya.
Pertanyaan umum
Sebaiknya aku beli DHT11 atau DHT22?
Untuk pembacaan kasar suhu dan kelembapan di dalam ruangan, DHT11 sudah cukup dan lebih murah. Pilih DHT22 untuk pemakaian di luar ruangan, suhu di bawah nol, atau akurasi ±0,5 °C. Satu-satunya perubahan di kode adalah mengatur tipe sensor ke DHT22.
Kenapa DHT11-ku mengembalikan NaN atau “Failed to read from DHT sensor”?
Penyebab paling umum adalah pin data yang salah, resistor pull-up yang tidak ada, tipe sensor yang salah di kode, dan membaca terlalu sering. Periksa pengkabelannya, tambahkan resistor 10 kΩ pada sensor polos, dan tunggu 2 detik antarpembacaan.
DHT11-ku menunjukkan suhu yang salah. Bagaimana cara mengkalibrasinya?
Selisih ±2 °C itu normal untuk DHT11. Letakkan sensor di samping termometer yang kamu percaya, catat selisihnya, lalu tambahkan atau kurangi selisih tetap itu dari pembacaan di kodemu. Pastikan sensor jauh dari komponen yang memanas.
Apakah DHT11 bisa bekerja pada 3,3 V?
Bisa, DHT11 bekerja dari 3 sampai 5,5 V. Di board 3,3 V seperti ESP32 dan Raspberry Pi Pico, memberi daya dari pin 3V3 adalah cara terbaik, supaya jalur data tidak pernah menerima 5 V.
Apakah DHT11 bisa dipakai di luar ruangan atau di dekat air?
DHT11 tidak tahan air; hujan, embun, dan sinar matahari langsung bisa merusaknya atau membuatnya salah baca. Di luar ruangan, simpan di dalam kotak berventilasi di tempat teduh; untuk suhu air, DS18B20 yang tahan air lebih cocok.
Bisakah aku menghubungkan lebih dari satu DHT11 ke Arduino?
Bisa, tapi setiap sensor butuh pin datanya sendiri; mereka tidak bisa berbagi satu jalur data. Di kode, kamu mendefinisikan objek DHT terpisah untuk masing-masing, misalnya DHT dht1(2, DHT11) dan DHT dht2(3, DHT11).
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
Suhu dan Kelembapan dengan DHT11
Seberapa hangat kamarmu, dan apakah udaranya lembap atau kering? Sensor DHT11 mengukur suhu dan kelembapan, dan Arduino menulis nilainya di layar LCD dua baris, diperbarui setiap beberapa detik. Jika

Suhu dan Kelembapan DHT22 ESP32 (dengan Layar LCD)
Proyek ini mengukur suhu dan kelembapan sekitar dengan sensor DHT22 dan menampilkan datanya secara real-time di LCD I2C 16x2. Data dibaca dari sensor dengan protokol satu kabel lewat library Adafruit DHT. Proyek ini menjadi dasar untuk stasiun cuaca IoT, otomasi rumah pintar, atau sistem pemantauan lingkungan di rumah kaca. Komunikasi dengan DHT22 dilakukan lewat pin GPIO 4 ESP32.

Pencatat Data Suhu ESP32 (DHT22 + RTC DS1307 + microSD + OLED)
Buat pencatat suhu bercap waktu dengan ESP32! Baca suhu/kelembapan DHT22 setiap menit, ambil waktu sebenarnya dari RTC DS1307, dan catat ke kartu microSD sebagai CSV. OLED menampilkan suhu langsung (font besar), kelembapan, cap waktu, dan penghitung catatan. File /temp_log.csv bisa dibuka di Excel, Google Sheets, atau Python pandas; cocok untuk rumah kaca, suhu kamar, data laboratorium, penyimpanan makanan, atau sarang lebah.

Jam, Kalender, dan Stasiun Cuaca Dot Matrix (MAX7219, DS1307)
Papan teks berjalan untuk meja atau dinding yang menampilkan waktu, tanggal, dan cuaca ruangan secara bergantian. Di layar LED 8x32, kamu pertama melihat suhu dalam Celsius dan Fahrenheit, lalu kelemb

Mengukur Suhu dengan NTC dan Layar LCD 2x16
Ukur suhu di sekitarmu dengan sensor yang mirip manik-manik kecil. Komponen bernama NTC ini makin mudah dilewati listrik ketika makin hangat; Arduino membaca perubahan itu, mengubahnya menjadi derajat

HTTPClient + API Cuaca ESP32 (dengan Layar LCD)
Di proyek ini, kita memakai ESP32 untuk melakukan panggilan REST API ke API cuaca (wttr.in) lewat internet dengan HTTPClient.h. Kita mengurai respons JSON yang diterima dengan ArduinoJson v7 dan menampilkan kota, suhu, kelembapan, cuaca, dan informasi angin di layar LCD I2C dalam bahasa Turki dan Inggris. wttr.in gratis dan tidak butuh kunci API; kamu cukup memasukkan nama kota apa pun untuk mengambil kondisi cuaca terkini kota itu. Data diperbarui otomatis setiap 30 menit.

Stasiun Penyiraman Pintar
Tukang kebun yang menyiram tanamanmu sendiri, supaya tanaman tidak kering ketika kamu berlibur. Sensor kelembapan tanah mengukur seberapa basah tanahnya; ketika kering, Arduino menyalakan pompa air be
Artikel lainnya
Aplikasi BlueGrays
Rakit rangkaian ini langkah demi langkah di ponselmu
Skema pengkabelan, kode, dan daftar komponen dalam satu layar. 200+ proyek Arduino, ESP32, dan Pico siap dibuat.
Pindai dengan ponselmu
Arahkan kamera ke kode ini dan toko aplikasi di ponselmu akan terbuka.
atau buka toko aplikasi

