Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Kamis, 08 Januari 2026

Panduan Lengkap MicroPython ESP32/ESP8266 - Sensor Suhu dan Kelembaban DHT11/DHT22

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.


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