Pada artikel ini, Arduino Indonesia akan membahas tentang cara menggunakan sensor suhu dan kelembaban DHT11 atau DHT22 dengan papan pengembangan ESP32 dan ESP8266 menggunakan firmware MicroPython.
Penggunaan Modul DHT
Firmware MicroPython secara bawaan sudah menyertakan modul dht, sehingga membaca suhu dan kelembaban menjadi mudah.
1. Mulai dengan mengimpor modul dht dan machine:
import dht
from machine import Pin
2. Buat objek dht yang merujuk ke pin data sensor, dalam contoh ini adalah GPIO 14:
sensor = dht.DHT11(Pin(14))
#sensor = dht.DHT22(Pin(14))
3. Untuk mengukur dan membaca nilai sensor, gunakan:
sensor.measure()
sensor.temperature()
sensor.humidity()
Baca juga: Tutorial MicroPython MQTT - Cara Publish Data Sensor DHT11/DHT22 di ESP32 & ESP8266
Pengenalan Sensor DHT11 dan DHT22
Sensor DHT11 dan DHT22 digunakan untuk mengukur suhu dan kelembaban relatif. Sensor ini sangat populer di kalangan pembuat (maker) dan penggemar elektronika.
Sensor ini memiliki chip yang melakukan konversi analog-ke-digital dan mengeluarkan sinyal digital berisi data suhu dan kelembaban. Hal ini membuatnya sangat mudah digunakan dengan mikrokontroler mana pun.
Perbandingan DHT11 vs DHT22
DHT11 dan DHT22 sangat mirip, tetapi berbeda dalam spesifikasinya. Tabel berikut membandingkan beberapa spesifikasi terpenting dari sensor suhu dan kelembaban DHT11 dan DHT22. Untuk analisis lebih mendalam, silakan periksa datasheet masing-masing sensor.
Sensor DHT22 memiliki resolusi lebih baik dan rentang pengukuran suhu serta kelembaban yang lebih lebar. Namun, harganya sedikit lebih mahal dan pembacaan data hanya dapat diminta setiap 2 detik.
DHT11 memiliki rentang lebih sempit dan akurasi lebih rendah. Namun, Anda dapat meminta pembacaan sensor setiap detik. Harganya juga sedikit lebih murah.
Meski berbeda, keduanya bekerja dengan cara yang serupa, dan Anda dapat menggunakan kode yang sama untuk membaca suhu dan kelembaban. Anda hanya perlu memilih jenis sensor yang digunakan di dalam kode.
Pinout DHT
Sensor DHT memiliki empat pin seperti yang ditunjukkan pada gambar berikut. Namun, jika Anda membeli sensor DHT dalam bentuk breakout board, biasanya hanya tersedia tiga pin dengan resistor pull-up internal pada pin 2.
Tabel berikut menunjukkan pinout DHT22 dan DHT11. Saat sensor menghadap ke Anda, penomoran pin dimulai dari 1 dari kiri ke kanan.
Komponen yang Diperlukan
Untuk mengikuti tutorial ini, Anda perlu menghubungkan sensor suhu DHT11 atau DHT22 ke ESP32 atau ESP8266 dengan menggunakan resistor pull-up 10k Ohm. Berikut daftar komponen yang diperlukan untuk merangkai sirkuit:
- ESP32 atau ESP8266
- Sensor suhu dan kelembaban DHT11 atau DHT22
- Resistor 10k Ohm
- Breadboard
- Kabel jumper
Diagram Rangkaian: ESP32 dengan DHT11/DHT22
Hubungkan sensor DHT22 atau DHT11 ke papan pengembangan ESP32 sesuai diagram skematik berikut.
Dalam contoh ini, pin data DHT dihubungkan ke GPIO 14. Namun, Anda dapat menggunakan pin digital lain yang tersedia.
Diagram Rangkaian: ESP8266 dengan DHT11/DHT22
Ikuti panduan berikut jika Anda menggunakan papan ESP8266.
Kode Program
Buka file baru di IDE MicroPython Anda (seperti uPyCraft IDE atau Thonny IDE) dan salin kode berikut.
from machine import Pin
from time import sleep
import dht
sensor = dht.DHT22(Pin(14))
#sensor = dht.DHT11(Pin(14))
while True:
try:
sleep(2)
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
temp_f = temp * (9/5) + 32.0
print('Temperature: %3.1f C' %temp)
print('Temperature: %3.1f F' %temp_f)
print('Humidity: %3.1f %%' %hum)
except OSError as e:
print('Failed to read sensor.')
Penjelasan Kode
Impor kelas Pin dari modul machine untuk mendefinisikan pin, impor metode sleep dari modul time untuk memberikan jeda dalam kode, dan terakhir impor modul dht untuk mengakses fungsi pembacaan sensor DHT.
from machine import Pin
from time import sleep
import dht
Buat objek dht bernama sensor pada pin data yang ditentukan. Dalam contoh ini, pin data dihubungkan ke GPIO 14. Gunakan perintah berikut jika Anda menggunakan sensor DHT22:
sensor = dht.DHT22(Pin(14))
Beri komentar pada baris sebelumnya dan hapus komentar pada baris berikutnya jika Anda menggunakan sensor DHT11.
#sensor = dht.DHT11(Pin(14))
Di dalam perulangan while, kami menggunakan pernyataan try dan except. Pada blok try, kami mencoba mengambil nilai suhu dan kelembaban.
Catatan: try dan except memungkinkan eksekusi program untuk terus berjalan saat terjadi pengecualian (exception). Misalnya, saat error terjadi, eksekusi kode dalam blok try dihentikan dan dialihkan ke blok except. Dalam contoh kami, pengecualian ini sangat berguna untuk mencegah ESP32 atau ESP8266 crash saat gagal membaca sensor.
Di dalam blok try, pertama-tama tambahkan jeda 2 detik karena laju sampling maksimum DHT22 adalah dua detik. Untuk DHT11, jedanya adalah 1 detik.
sleep(2)
Sebelum meminta data suhu dan kelembaban, Anda perlu menggunakan metode measure() pada objek sensor.
sensor.measure()
Kemudian, baca suhu dengan sensor.temperature() dan kelembaban dengan sensor.humidity(). Simpan pembacaan tersebut ke dalam variabel temp dan hum.
temp = sensor.temperature()
hum = sensor.humidity()
Perintah berikut mengubah suhu ke derajat Fahrenheit.
temp_f = temp * (9/5) + 32.0
Terakhir, tampilkan semua hasil pembacaan di Shell MicroPython menggunakan fungsi print():
print('Temperature: %3.1f C' %temp)
print('Temperature: %3.1f F' %temp_f)
print('Humidity: %3.1f %%' %hum)
Jika terjadi kesalahan saat mengambil pembacaan, blok except akan dijalankan dan pesan error akan dicetak:
except OSError as e:
print('Failed to read sensor.')
Demonstrasi
Setelah menyalin kode dan melakukan penyesuaian yang diperlukan, Anda dapat mengunggah kode ke ESP32 atau ESP8266.
Jika Anda menggunakan Thonny IDE, cukup pergi ke File > Save as…, lalu pilih MicroPython device.
Klik OK untuk mengunggah kode ke papan Anda.
Setelah kode terunggah, tekan tombol RESET pada papan ESP.
Pembacaan suhu dan kelembaban baru akan ditampilkan di Shell MicroPython setiap dua detik.
Baca juga: Panduan Lengkap MicroPython ESP32/ESP8266 - Web Server DHT11/DHT22 sebagai Stasiun Cuaca
Siap Belajar & Bangun Proyek IoT?
KLIK GAMBAR DI BAWAH INI UNTUK BELI TRAINER KIT ESP32
![]() |
| Klik gambar untuk pembelian |
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino










0 on: "Panduan Lengkap MicroPython ESP32/ESP8266 - Sensor Suhu dan Kelembaban DHT11/DHT22 "