Mengukur Suhu dan Kelembaban Udara dengan Sensor DHT11 dan Arduino
|DHT11 adalah salah satu sensor yang dapat mengukur dua parameter lingkungan sekaligus, yakni suhu dan kelembaban udara (humidity). Dalam sensor ini terdapat sebuah thermistor tipe NTC (Negative Temperature Coefficient) untuk mengukur suhu, sebuah sensor kelembaban tipe resisitif dan sebuah mikrokontroller 8-bit yang mengolah kedua sensor tersebut dan mengirim hasilnya ke pin output dengan format single-wire bi-directional (kabel tunggal dua arah). Jadi walaupun kelihatannya kecil, DHT11 ini ternyata melakukan fungsi yang cukup kompleks. Kita tinggal ambil outputnya aja, untuk kemudian dimasukkan ke sistem kita.
Sebelum kita bekerja dengan sensor DHT11, ada baiknya kita ketahui dulu spesifikasinya agar tidak salah mengolah hasil pengukurannya :
Pengukuran Kelembaban Udara
-Resolusi pengukuran: 16Bit
-Repeatability: ±1% RH
-Akurasi pengukuran: 25℃ ±5% RH
-Interchangeability: fully interchangeable
-Waktu respon: 1 / e (63%) of 25℃ 6 detik
-Histeresis: <± 0.3% RH
-Long-term stability: <± 0.5% RH / yr in
Pengukuran Temperatur
-Resolusi pengukuran: 16 Bit
-Repeatability: ±0.2℃
-Range: At 25℃ ±2℃
-Waktu Respon: 1 / e (63%) 10 detik
Karakteristik Electrikal
-Power supply: DC 3.5 – 5.5V
-Konsumsi arus: measurement 0.3mA, standby 60μ A
-Periode sampling : lebih dari 2 detik
Di pasaran terdapat dua macam tipe DHT11 yang umumnya sudah berupa modul, yakni DHT11 dengan 3 pin dan 4 pin. Intinya sih sama saja, karena pada modul DHT11 yang berkaki 4 ada satu pin yang tidak digunakan. Berikut ini adalah fungsi/konfigurasi dari pin-pin tersebut
Pin 1: Vcc 3.5 – 5.5V DC
Pin 2: DATA/serial data (single bus)
Pin 3: NC, not used
Pin 4: GND/ground
Cara identifikasi pin, hadapkan sensor menghadap kita, nah pin yang paling kiri adalah pin 1. Kalau Anda bingung, biasanya di modul DHT11 sudah ada tulisan angka (1,2,3,4) atau fungsinya (Vcc, Data, Gnd).
Sekarang kita sudah tahu karakteristik dan konfigurasi pinout dari sensor DHT11. Langkah berikutnya adalah mencobanya dengan Arduino. Caranya cukup sederhana. Pertama-tama susunlah Arduino dan DHT11 seperti gambar di bawah
Konfigurasi koneksi antara Arduino dan sensor DHT11 adalah sebagai berikut:
Arduino | DHT11 (3 pin) | DHT11 (4 pin) |
Vcc | 1 | 1 |
A0 | 2 | 2 |
Gnd | 3 | 4 |
Berikutnya untuk memudahkan pembacaan hasil pengukuran suhu dan kelembaban, kita akan menggunakan library yang sudah jadi, yakni library ‘dht.h’. Anda dapat mencarinya di internet atau mengunduhnya di sini. Dengan library ini kita akan dapat dengan mudah mengolah data yang dikirim dari pin ‘serial DATA’ sensor DHT11. Jika sudah mengunduh library ini silahkan disalin ke folder ‘libraries’ di C:/Program Files/Arduino. Berikutnya silahkan isikan contoh sketch berikut untuk menangani output module sensor DHT11 ke Arduino
#include <dht.h> #define sensor A0 dht DHT; void setup(){ Serial.begin(9600); delay(500); Serial.println("Sensor Suhu dan Kelembaban Udara dg DHT11\n\n"); delay(1000); } void loop(){ DHT.read11(sensor); Serial.print("Kelembaban udara = "); Serial.print(DHT.humidity); Serial.print("% "); Serial.print("Suhu = "); Serial.print(DHT.temperature); Serial.println(" C "); delay(5000); }
Sudah selesai :). Silahkan cek hasil pengukuran suhu dan kelembaban melalui jendela Serial Monitor (menu ‘Tools-Serial Monitor’).
Gimana? Mudah, bukan? Kunci dari kemudahan menangani suatu sensor dengan Arduino terletak pada banyaknya library yang banyak tersedia di internet secara gratis. Mungkin saja Anda bisa menangani output DHT11 yang menggunakan format serial data (dapat di lihat di datasheet), namun sketch Anda akan lebih panjang dan tentunya membutuhkan waktu ekstra. Dengan demikian Anda dapat lebih fokus pada ‘menyelesaikan’ sistem daripada ‘membuat’ sistem. Contoh: tentunya setelah Anda memperoleh data suhu dan kelembaban, sistem Anda kan tidak akan berhenti di situ saja bukan? Anda masih harus meneruskan data tersebut ke sistem Anda, entah itu untuk membuat remote monitoring, membuat batasan suhu untuk menyalakan pendingin (AC), membuat stasiun cuaca (Weather Station), atau apalah saya sendiri juga ngga tau sistem Anda seperti apa :). Yang jelas, dengan Arduino (dan library-nya) Anda dapat lebih fokus menyelesaikan sistem, daripada masih berkutat, “Gimana sih cara mengambil data dari DHT11?” he he he.
Selamat bereksperimen, dan semoga artikel ini bermanfaat untuk Anda. Jika ada pertanyaan silahkan isi kolom komentar di bawah. Ohya, kalo butuh sensor DHT11 yang udah jadi modul bisa beli di sini, dijamin harganya murah
Assalamu’alaikum
bpk artikelnya sangat membantu
kalau ada artikel tentang barometer bmp 180 dengan arduino dan rain water sensor yl-83 seperti penjelasan pada web tentang dht 11 ini
tolong salamkan/kirim email ke wijayantofariz@gmail.com
kapan2 sy bikinkan tutorialnya
kang, kenapa tidak pakai resistor 10k?
soalnya yg saya baca dari sumber lain dan dari keterangan library arduino itu pake resistor dari pin 2 ke pin 1.
terimakasih.
ooo, kalo dikasih resistor 10k di pin 1 ke pin 2 (bukan sebaliknya ya, walaupun hasilnya sama, tp pengertiannya beda) itu artinya resistor ini sebagai resistor pull-up. Fungsi dari resistor dengan fungsi ini adalah menguatkan signal/data yang keluar di pin 2. Resistor pull-up ini hanya bisa digunakan untuk tipe signal/data yang berada di level logika digital TTL (0 dan 5V). Berati tinggal mas lihat aja di datasheet, output DHT11 itu level tegangannya berapa? kalo berada di level tegangan TTL ya berarti bisa digunakan resistor pull up ini. Catatan: resistor pull up ini biasanya digunakan jika kabel dari DHT11 ke pin… Read more »
Mas saya mau tanya, kalau sensor ini saya taruh di tempat yang jaraknya dengan arduino sekitar 6 km bisa tidak yah kira2?
kalau memang bisa, rangkaian apa yang perlu saya buat dibagian jumpernya, terima kasih.
bisa aja mas, bisa pakai WIFI, jaringan operator (GSM/GPRS/3G/4G/LTE/Wimax) atau pake teknologi baru seperti LORA.
Rangkaian yang diperlukan : perangkat aktif di sisi transmitter dan receiver
kalau pakai jumper biasa gitu ga bisa yah?
ga bisa mas, tegangan output habis di tengah jalan. Ingat rumus R=Rho.l/a, jadi semakin panjang kabel (l) maka resistansi (R) akan semakin besar.
bang saya sudah cek output di serial monitor, 255 ternyata kabel vcc dan ground salah masuk projectboard. saya mau memperpanjang kabel sedikit dari jumper warna warni yg panjang nya sejengkal yagn yg dijual di pasaran perlu diperkuat gak bang sinyalya? tambah 5 cm doang
kl 5 cm aja ga perlu penguat sinyal
mas, kenapa kok tidak kebaca suhu dan kelembapannya ya ?
di serial monitor tulisannya ” kelembapan udara = 0.00 % dan Suhu = 0 C” . kira2 kenapa ya mas ?
maaf saya masih sangat baru dalam hal ini mas , terima kasih
coba cek kabel ke sensornya mas, apakah sudah tersambung dengan baik dan sesuai dengan gambar rangkaian di atas?
Sudah saya cek dan benar mas tapi masih g bisa
mas kok pas upload selalu gk bisa ya, terus pas serial monitornya itu selalu ada tulisan Com1 is not available. Itu kenapa ya? mohon bantuannya, saya masih pemula baru banget soalnya. terimakasih
port com nya lihat di device manager, cari yang konek ke arduino
gan sensor dht 11 bisa di hubungkan dengan plc gak?
kayaknya ga bisa langsung mas. Butuh arduino buat converter-nya
Kalau arti program di baris ketiga itu apa ya mas? Saya coba kok ada tulisan error
No matching funcyion for call to”DHT ::DHT()’
baris ketiga itu artinya kita mendefinisikan sebuah ‘instance’ dari object DHT dari library dht.h dengan nama ‘DHT’. Object turunan ini akan memiliki semua sifat dr objek asalnya (ancestor).
Kalo ada error ini : No matching function for call to DHT ::DHT() –> kemungkinan library dht.h nya belum terinstal
cara mudah instal library bisa dibaca di sini http://saptaji.com/2015/07/09/cara-menambahkan-library-di-arduino-dan-penggunaannya/
Kok sama seperti kasusnya mas Farid, Kelembabab 0.00% dan suhu 0 C, saya pakai DHT 11 yang kakinya 3 mas.
kemungkinan:
1. Salah wiring
2. Salah define pin di sketch
3. sensornya rusak
Mas saya mau tanya dulu kan kkp saya pakai lm35 dan tidak pakai osiloskop untuk mengukur tegangan dipenullisan saya karena lm35 analog. Dan skripsi saya pakai dht11 apa dht11 ini termasuk analog mas? Perlukah mengukur tegangan dengan osiloskop. Makasih mas
DHT11 termasuk sensor analog.
Mengenai perlu tidaknya mengukur tegangan dengan osiloskop tergantung kebutuhan. Untuk kebutuhan riset dan ilmiah mutlak harus dilakukan pengukuran dengan osiloskop, tapi kalo sekedar hobi saya pikir ngga perlu pake osiloskop. Selain itu dilihat juga kebutuhan pengukuran tegangan apakah harus dilihat sampai grafiknya berdasarkan waktu? kalau butuh ya berarti harus pake osiloskop, kalo ngga ya cukup pake avometer.
kasus yang sama dengan saya. tapi output tegangannya sama terus untuk tiap kondisi. apakah memang bgtu? dikarenakan ?
mohon bantuannya
terimakasih
gini mb, DHt11 termasuk sensor analog, tp outputnya berupa data serial. Jadi kalo diukur pake avometer ya sepertinya 4-5 v terus karena yg lewat adalah tegangan serial data, bukan representasi suhu dalam bentuk tegangan. Jadi sebaiknya kalo mau analisa gunakan osiloskop, atau kalau ngga ada osiloskop cukup pake sketch di atas tapi pastikan dulu koneksi pinoutnya benar semua
maaf. saya mau tanya itu tegangan out sensor nya mesti diukur pake osciloscop yah? soalnya saya sudah ukur pake multi analog yang, dapat 4,8-5V terus untuk tiap kondisi
gini mb, DHt11 termasuk sensor analog, tp outputnya berupa data serial. Jadi kalo diukur pake avometer ya sepertinya 4-5 v terus karena yg lewat adalah tegangan serial data, bukan representasi suhu dalam bentuk tegangan. Jadi sebaiknya kalo mau analisa gunakan osiloskop, atau kalau ngga ada osiloskop cukup pake sketch di atas tapi pastikan dulu koneksi pinoutnya benar semua
iya terimakasih sebelumnya. sudah saya coba dan untuk ngkur suhu sudah berhasil. tp saya butuh data tegangan, ngukur pake avometer dapat tegangan segitu. jd tegangannya tetap yah klo pake avometer. klo pake osi bisa hitung tegagnnyakan dari grafiknya tp tidak punya osi.
Output suhunya kalo di tampilkan ke LCD susah gak pak?
ngga susah, bisa baca petunjuknya di lm35 lcd arduino
mas sensor dht11 ini apakah perlu di linearisasi atau di kalibrasi terlebih dahulu? mohon jawabannya
kl pake library di atas sepertinya ga perlu mas, krn sudah dikalibrasi secara software. Tapi kalo dirasa masih kurang akurat bisa dikalibrasi scr hardware juga
Mas bagaimna sensor dht11 menangkap suhu ruangnya
kalo daleman sensor yg terkait karakteristik kimia/fisika bahan sy kurang tau mas, yg jelas sensor ini sebuah transducer yang mengubah besaran nilai lingkungan (dalam hal ini adalah temperatur) menjadi tegangan korelasinya
hai.. bagaimana menampilkan tegangan yang dihasilkan oleh sensor dht ini?
kalau memakai adc, bagaimana cara membedahkan inisialisasi tegangan kelembaban dan suhu??
pake library aja mb, lebih mudah 🙂
boleh minta library yang menampilkan adc kedua parameter kelembaban dan suhu kak?
di artikel udah ada library-nya mb
kalo cara mengkalibrasikan sensor bagaimana yah mas?
kalibrasi secara script aja mas (via library), lebih mudah
Keren Mas Ajie… salam kenal
salam kenal jg mas yusuf 🙂
Mas saya mau tanya, apakah nilai pengukur dari dht11 itu selalu bilangan bulat? Atau bisa bilangan desimal?
bisa bilangan desimal mas