Hvordan Koble DHT11 Temperatur- Og Fuktighetssensor Til Arduino

Innholdsfortegnelse:

Hvordan Koble DHT11 Temperatur- Og Fuktighetssensor Til Arduino
Hvordan Koble DHT11 Temperatur- Og Fuktighetssensor Til Arduino

Video: Hvordan Koble DHT11 Temperatur- Og Fuktighetssensor Til Arduino

Video: Hvordan Koble DHT11 Temperatur- Og Fuktighetssensor Til Arduino
Video: Arduino Uno и Датчик температуры и влажности DHT11 (DHT22) 2024, April
Anonim

DHT17 temperatur- og fuktighetssensor er en populær og billig sensor som kan brukes over et ganske bredt spekter av temperaturer og relativ fuktighet. La oss se hvordan du kobler den til Arduino og hvordan du leser data fra den.

DHT11 temperatur- og fuktighetssensor
DHT11 temperatur- og fuktighetssensor

Nødvendig

  • - Arduino;
  • - DHT17 temperatur- og fuktighetssensor.

Bruksanvisning

Trinn 1

Så DHT11-sensoren har følgende egenskaper:

- område av målt relativ fuktighet - 20..90% med en feil på opptil 5%, - område av målte temperaturer - 0..50 grader Celsius med en feil på opptil 2 grader;

- responstid på fuktighetsendringer - opptil 15 sekunder, temperatur - opptil 30 sekunder;

- minimum valgperiode er 1 sekund.

Som du kan se, er DHT11-sensoren ikke veldig nøyaktig, og temperaturområdet dekker ikke negative verdier, noe som neppe er egnet for utendørsmålinger i den kalde årstiden i vårt klima. Imidlertid kompenserer den lave kostnadene, den lille størrelsen og brukervennligheten delvis disse ulempene.

Figuren viser utseendet til sensoren og dens dimensjoner i millimeter.

Utseende og dimensjoner til DHT11-sensoren
Utseende og dimensjoner til DHT11-sensoren

Steg 2

Tenk på tilkoblingsskjemaet for DHT11 temperatur- og fuktighetssensoren til mikrokontrolleren, spesielt til Arduino. På bildet:

- MCU - mikrokontroller (for eksempel Arduino eller lignende) eller en enkelt datamaskin (Raspberry Pi eller lignende);

- DHT11 - temperatur- og fuktighetssensor;

- DATA - databuss; hvis lengden på tilkoblingskabelen fra sensoren til mikrokontrolleren ikke overstiger 20 meter, anbefales det å trekke denne bussen til strømforsyningen med en 5, 1 kOhm motstand; hvis mer enn 20 meter, så en annen passende verdi (mindre).

- VDD - strømforsyning til sensoren; tillatte spenninger fra ~ 3,0 til ~ 5,5 volt DC; hvis det brukes strømforsyning ~ 3,3 V, anbefales det å bruke en ledning som ikke er lengre enn 20 cm.

En av sensorkablene - den tredje - er ikke koblet til noe.

DHT11-sensoren selges ofte som en komplett montering med den nødvendige rørledningen - opptrekksmotstand og filterkondensator.

Diagram over tilkobling av DHT11-sensor til mikrokontroller
Diagram over tilkobling av DHT11-sensor til mikrokontroller

Trinn 3

La oss sette sammen den vurderte ordningen. Jeg vil også koble en logisk analysator til kretsen slik at jeg kan studere tidsskjemaet for kommunikasjonen med sensoren.

DHT11-sensor og Arduino
DHT11-sensor og Arduino

Trinn 4

La oss gå den enkle veien: Last ned biblioteket for DHT11-sensoren (lenke i seksjonen "Kilder"), installer den på standard måte (pakk den ut i / biblioteker / katalogen i Arduino-utviklingsmiljøet).

La oss skrive en så enkel skisse. La oss laste den inn i Arduino. Denne skissen viser RH- og temperaturmeldingene som leses fra DHT11-sensoren til datamaskinens serielle port hvert 2. sekund.

Skisse for å arbeide med en DHT11 temperaturfuktighetssensor
Skisse for å arbeide med en DHT11 temperaturfuktighetssensor

Trinn 5

Nå, ved hjelp av tidsskjemaet hentet fra logikkanalysatoren, la oss finne ut hvordan informasjonsutvekslingen utføres.

DHT11 temperatur- og fuktighetssensoren bruker et serielt grensesnitt med en ledning for å kommunisere med mikrokontrolleren. Én datautveksling tar omtrent 40 ms og inneholder: 1 forespørselsbit fra mikrokontrolleren, 1 bit av sensorresponsen og 40 databiter fra sensoren. Dataene inkluderer: 16 biter fuktighetsinformasjon, 26 biter temperaturinformasjon og 8 sjekkbiter.

La oss se nærmere på tidsskjemaet for Arduino-kommunikasjonen med DHT11-sensoren.

Det kan sees fra figuren at det er to typer impulser: korte og lange. Korte pulser i denne utvekslingsprotokollen betegner nuller, lange pulser - en.

Så de to første pulser er Arduinos forespørsel til DHT11 og følgelig sensorens respons. Deretter kommer 16 biter fuktighet. Videre er de delt inn i byte, høyt og lavt, høyt til venstre. I vår figur er fuktighetsdataene som følger:

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

Temperaturdata som ligner på:

0001011100000000 = 00000000 00010111 = 0x17 = 23 grader Celsius.

Sjekk biter - sjekksummen er bare summeringen av 4 mottatte databytes:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 i binær eller 16 + 23 = 39 i desimal.

Anbefalt: