Contents
DHT11 adalah sensor suhu dan kelembaban udara yang sifatnya resistif karena berbasis sensor thermistor NTC (Negative Temperature Coefficient). Prinsip dasar NTC adalah tiap ada perubahan suhu (dan kelembaban) akan menghasilkan perubahan resistansi. Semakin tinggi suhu resistansi akan semakin kecil (perbandingan terbalik/negatif). Resistansi thermistor ini kemudian diolah IC didalam DHT11 dan dikeluarkan dalam bentuk signal/data dalam format protokol one wire (1-wire). Dengan demikian kita tidak lagi memerlukan ADC (Analog to Digital Converter) untuk membaca output sensor sehingga sangat cocok diterapkan ke sistem controller yang tidak memiliki ADC internal seperti Raspberry Pi.
Spesifikasi Sensor Suhu dan Kelembaban DHT-11
Berikut ini adalah spesikasi sensor DHT11, dinukilkan dari datasheetnya:
- Supply voltage 3 to 5V
- Max current 2.5mA
- Measurement Range : 20-90%RH 0-50 ℃
- Humidity Accuracy : ±5%RH
- Temperature Accuracy : ±2℃
- Package : 4 Pin Single Row (di pasaran ada yang sudah dalam bentuk modul dengan 3 pin)
Untuk spesifikasi lengkapnya dapat dibaca di datasheet yang dapat Anda baca di sini. Di datasheet Anda juga dapat mempelajari teknik pembacaan output sensor dan bagaimana cara merangkai sensor dalam sistem Anda. Beruntunglah kita tidak perlu mempelajari detail teknik pembacaan sensor dalam bus one wire DHT11. Untuk best practice-nya, kita cukup menggunakan library yang sudah ada. Bagaimana caranya? simak tutorial DHT11-Raspberry Pi berikut ini:
Alat dan Bahan:
- Modul Basic Trainer Kit
- Jumper female to female (sudah tersedia sebagai kelengkapan modul)
- power supply (sudah tersedia)
- laptop
- smartphone sebagai hotspot
- aplikasi Putty dan Notepad++ (silahkan instal dulu dan baca artikel persiapan Raspbery Pi untuk setup environment-nya)
Gambar rangkaian untuk percobaan kali ini adalah sebagai berikut:
Dan untuk wiring/pengkabelan sensor DHT11 ke pin header GPIO Raspiberry Pi 3/4 adalah sebagai berikut:
Konfigurasi Pinout
DHT11 | Pin Raspi (Board) | Pin GPIO |
Vcc | 1 | |
Data | 7 | 4 |
NC | ||
GND | 6 |
Begini tampilan percobaan ini di papan modul Basic Trainer Kit. Perhatikan bahwa di papan modul resistor 4K7 ohm sudah ada, jadi Anda tinggal menjumper pin VCC, Data dan GND sesuai konfigurasi di atas.
Setelah selesai merangkai hardware, sekarang saatnya kita untuk menuliskan scriptnya. Buka Notepad++ Anda, kemudian koneksikan ke Raspberry Pi 3/4 Anda (caranya bisa baca di artikel ini). Kemudian tulis contoh script sebagai berikut:
import Adafruit_DHT import time sensorDHT = Adafruit_DHT.DHT11 pinDHT = 4 while True: humidity, temperature = Adafruit_DHT.read_retry(sensorDHT, pinDHT) print("Temp={0:0.1f}C Humidity={1:0.1f}%".format(temperature, humidity)) time.sleep(3);
Penjelasan program:
- Baris [1-2] : memanggil dependency library yang dibutuhkan (‘Adafruit_DHT’ untuk handle sensor, ‘time’ untuk delay)
- Baris [4-5] : mendefinisikan tipe sensor DHT11 (jika DHT22 tulis ‘Adafruit_DHT.DHT22’) dan pin GPIO yang digunakan (GPIO2)
- Baris [8-10] : pembacaan sensor dan menampilkannya ke terminal
Simpan file di atas dengan nama “dht11.py”. Jangan lupa file tetap diapit tanda petik dua saat menyimpan file di Notepad++
Menjalankan Script Python di Raspberry Pi
Buka aplikasi Putty, kemudian remote login ke Raspi Anda (user : pi, password : raspberry)
Perlu Anda ketahui, untuk menjalankan script di atas, Anda perlu menginstal library DHT11 terlebih dahulu. Ketikkan perintah berikut ke terminal console Putty Anda sbb:
pip install Adafruit-DHT
Tunggu beberapa saat hingga library berhasil diinstal. Jangan lupa, hotspot Anda harus ada koneksi internetnya.
Berikutnya jalankan script ‘dht.py’ dengan mengetikkan perintah sbb:
python dht11.py
Amati yang terjadi pada tampilan terminal Putty Anda. Seharusnya sudah muncul temperatur dan kelembaban yang terbaca sensor
Demikian tutorial kali ini, dimana Anda dapat belajar mengenai cara membaca data suhu dan kelembaban menggunakan sensor DHT11 dan Raspberry Pi. Bahasa pemrograman yang digunakan adalah Python, tapi dapat juga dilakukan bahasa pemrograman lain dengan konsep yang sama. Semoga bermanfaat …
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com