Cara Menyambungkan Sensor Suhu Dan Kelembapan DHT11 Ke Arduino

Isi kandungan:

Cara Menyambungkan Sensor Suhu Dan Kelembapan DHT11 Ke Arduino
Cara Menyambungkan Sensor Suhu Dan Kelembapan DHT11 Ke Arduino

Video: Cara Menyambungkan Sensor Suhu Dan Kelembapan DHT11 Ke Arduino

Video: Cara Menyambungkan Sensor Suhu Dan Kelembapan DHT11 Ke Arduino
Video: Arduino Uno - Sensor Suhu dan Kelembaban DHT11 Bagian Pertama 2024, November
Anonim

Sensor suhu dan kelembapan DHT17 adalah sensor yang popular dan murah yang boleh digunakan pada suhu dan kelembapan relatif yang cukup luas. Mari lihat bagaimana menghubungkannya ke Arduino dan cara membaca data darinya.

Sensor suhu dan kelembapan DHT11
Sensor suhu dan kelembapan DHT11

Perlu

  • - Arduino;
  • - Sensor suhu dan kelembapan DHT17.

Arahan

Langkah 1

Jadi, sensor DHT11 mempunyai ciri-ciri berikut:

- julat kelembapan relatif yang diukur - 20..90% dengan kesalahan hingga 5%, - julat suhu yang diukur - 0..50 darjah Celsius dengan kesalahan hingga 2 darjah;

- masa tindak balas terhadap perubahan kelembapan - hingga 15 saat, suhu - hingga 30 saat;

- tempoh pengundian minimum adalah 1 saat.

Seperti yang anda lihat, sensor DHT11 tidak begitu tepat, dan julat suhu tidak meliputi nilai negatif, yang hampir tidak sesuai untuk pengukuran luar pada musim sejuk di iklim kita. Walau bagaimanapun, kosnya yang rendah, saiz kecil dan kemudahan penggunaan sebahagiannya mengimbangi kekurangan ini.

Gambar menunjukkan kemunculan sensor dan dimensinya dalam milimeter.

Rupa dan dimensi sensor DHT11
Rupa dan dimensi sensor DHT11

Langkah 2

Pertimbangkan rajah sambungan sensor suhu dan kelembapan DHT11 ke mikrokontroler, khususnya ke Arduino. Pada gambar:

- MCU - mikrokontroler (contohnya, Arduino atau yang serupa) atau komputer papan tunggal (Raspberry Pi atau yang serupa);

- DHT11 - sensor suhu dan kelembapan;

- DATA - bas data; jika panjang kabel penyambung dari sensor ke mikrokontroler tidak melebihi 20 meter, maka disarankan untuk menarik bas ini ke bekalan kuasa dengan perintang 5, 1 kOhm; jika lebih dari 20 meter, maka nilai lain yang sesuai (lebih kecil).

- VDD - bekalan kuasa sensor; voltan yang dibenarkan dari ~ 3.0 hingga ~ 5.5 volt DC; jika bekalan kuasa ~ 3.3 V digunakan, maka disarankan untuk menggunakan wayar bekalan tidak lebih dari 20 cm.

Salah satu petunjuk sensor - yang ketiga - tidak dihubungkan dengan apa-apa.

Sensor DHT11 sering dijual sebagai unit lengkap dengan perpaipan - resistor penarik dan kapasitor penapis yang diperlukan.

Rajah menghubungkan sensor DHT11 ke mikrokontroler
Rajah menghubungkan sensor DHT11 ke mikrokontroler

Langkah 3

Mari kita satukan skema yang dipertimbangkan. Saya juga akan menyambungkan penganalisis logik ke litar supaya saya dapat mengkaji rajah masa komunikasi dengan sensor.

Sensor DHT11 dan Arduino
Sensor DHT11 dan Arduino

Langkah 4

Mari jalan mudah: muat turun perpustakaan untuk sensor DHT11 (pautan di bahagian "Sumber"), pasangkan dengan cara standard (membongkarnya ke dalam direktori / perpustakaan / persekitaran pembangunan Arduino).

Mari tulis lakaran yang ringkas. Mari memuatkannya ke Arduino. Sketsa ini akan mengeluarkan mesej RH dan Suhu yang dibaca dari sensor DHT11 ke port bersiri komputer setiap 2 saat.

Lakarkan untuk bekerja dengan sensor kelembapan suhu DHT11
Lakarkan untuk bekerja dengan sensor kelembapan suhu DHT11

Langkah 5

Sekarang, dengan menggunakan gambarajah masa yang diperoleh dari penganalisis logik, mari kita cari tahu bagaimana pertukaran maklumat dijalankan.

Sensor suhu dan kelembapan DHT11 menggunakan antara muka bersiri satu wayar untuk berkomunikasi dengan mikrokontroler. Satu pertukaran data memakan masa sekitar 40 ms dan mengandungi: 1 bit permintaan dari mikrokontroler, 1 bit respons sensor dan 40 bit data dari sensor. Data tersebut merangkumi: 16 bit maklumat kelembapan, 26 bit maklumat suhu, dan 8 bit cek.

Mari kita perhatikan lebih dekat rajah masa komunikasi Arduino dengan sensor DHT11.

Ini dapat dilihat dari gambar bahawa terdapat dua jenis impuls: pendek dan panjang. Denyutan pendek dalam protokol pertukaran ini menunjukkan angka nol, denyutan panjang - satu.

Jadi, dua denyutan pertama adalah permintaan Arduino kepada DHT11 dan, oleh itu, tindak balas sensor. Seterusnya terdapat kelembapan 16 bit. Lebih-lebih lagi, ia dibahagikan kepada bait, tinggi dan rendah, tinggi di sebelah kiri. Dalam data kami, data kelembapan adalah seperti berikut:

0001000000000000 = 00000000 00010000 = 0x10 = 16% RH.

Data suhu serupa dengan:

0001011100000000 = 00000000 00010111 = 0x17 = 23 darjah celcius.

Check bit - checksum hanyalah penjumlahan dari 4 bait data yang diterima:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 dalam perduaan atau 16 + 23 = 39 dalam perpuluhan.

Disyorkan: