Kako Povezati Senzor Temperature In Vlažnosti DHT11 Na Arduino

Kako Povezati Senzor Temperature In Vlažnosti DHT11 Na Arduino
Kako Povezati Senzor Temperature In Vlažnosti DHT11 Na Arduino

Kazalo:

Anonim

Senzor temperature in vlažnosti DHT17 je priljubljen in poceni senzor, ki ga lahko uporabljate v dokaj širokem območju temperatur in relativne vlažnosti. Poglejmo, kako ga povezati z Arduinom in kako brati podatke iz njega.

Potrebno

  • - Arduino;
  • - DHT17 senzor temperature in vlažnosti.

Navodila

Korak 1

Torej ima senzor DHT11 naslednje značilnosti:

- območje izmerjene relativne vlažnosti - 20..90% z napako do 5%, - razpon izmerjenih temperatur - 0..50 stopinj Celzija z napako do 2 stopinj;

- odzivni čas na spremembe vlažnosti - do 15 sekund, temperature - do 30 sekund;

- najkrajše obdobje glasovanja je 1 sekunda.

Kot lahko vidite, senzor DHT11 ni zelo natančen in temperaturno območje ne pokriva negativnih vrednosti, kar je v naših podnebjih komaj primerno za zunanje meritve v hladni sezoni. Nizka cena, majhnost in enostavnost uporabe pa te pomanjkljivosti delno izravnajo.

Slika prikazuje videz senzorja in njegove mere v milimetrih.

2. korak

Upoštevajte diagram povezave senzorja temperature in vlažnosti DHT11 z mikrokrmilnikom, zlasti z Arduinom. Na sliki:

- MCU - mikrokrmilnik (na primer Arduino ali podoben) ali enojni računalnik (Raspberry Pi ali podoben);

- DHT11 - senzor temperature in vlage;

- DATA - podatkovno vodilo; če dolžina povezovalnega kabla od senzorja do mikrokrmilnika ne presega 20 metrov, je priporočljivo, da to vodilo povlečete na napajanje z uporom 5, 1 kOhm; če je več kot 20 metrov, potem druga primerna vrednost (manjša).

- VDD - napajanje senzorja; dovoljene napetosti od ~ 3,0 do ~ 5,5 voltov enosmernega toka; če se uporablja napajalnik ~ 3,3 V, je priporočljivo uporabiti napajalno žico, ki ni daljša od 20 cm.

Eden od vodnikov senzorja - tretji - ni povezan z ničemer.

Senzor DHT11 se pogosto prodaja kot celoten sklop s potrebnim cevnim vlečnim uporom in kondenzatorjem filtra.

3. korak

Sestavimo obravnavano shemo. Na vezje bom priklopil tudi logični analizator, da bom lahko preučil časovni diagram komunikacije s senzorjem.

4. korak

Pojdimo na preprost način: prenesite knjižnico za senzor DHT11 (povezava v razdelku "Viri"), jo namestite na standardni način (razpakirajte v imenik / knjižnice / razvojnega okolja Arduino).

Napišimo tako preprosto skico. Naložimo ga v Arduino. Ta skica bo vsaka 2 sekundi prikazala sporočila RH in temperature, prebrana s senzorja DHT11, na zaporedna vrata računalnika.

5. korak

Zdaj, s pomočjo časovnega diagrama, pridobljenega iz logičnega analizatorja, ugotovimo, kako poteka izmenjava informacij.

Senzor temperature in vlažnosti DHT11 uporablja enožični serijski vmesnik za komunikacijo z mikrokrmilnikom. Ena izmenjava podatkov traja približno 40 ms in vsebuje: 1 bit zahteve mikrokrmilnika, 1 bit odziva senzorja in 40 podatkovnih bitov senzorja. Podatki vključujejo: 16 bitov informacij o vlažnosti, 26 bitov informacij o temperaturi in 8 kontrolnih bitov.

Oglejmo si podrobneje časovni diagram komunikacije Arduino s senzorjem DHT11.

Iz slike je razvidno, da obstajata dve vrsti impulzov: kratki in dolgi. Kratki impulzi v tem protokolu izmenjave označujejo ničle, dolgi impulzi - enote.

Torej, prva dva impulza sta Arduinova zahteva za DHT11 in s tem odziv senzorja. Sledi 16 bitov vlage. Poleg tega so razdeljeni na bajte, visoke in nizke, visoko na levi. Na naši sliki so podatki o vlagi naslednji:

0001000000000000 = 00000000 00010000 = 0x10 = 16% relativne vlažnosti.

Podatki o temperaturi, podobni:

0001011100000000 = 00000000 00010111 = 0x17 = 23 stopinj Celzija.

Kontrolni bit - kontrolna vsota je le seštevek 4 prejetih bajtov podatkov:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 v binarni obliki ali 16 + 23 = 39 v decimalni obliki.

Priporočena: