Hoe De DHT11 Temperatuur- En Vochtigheidssensor Op Arduino Aan Te Sluiten

Inhoudsopgave:

Hoe De DHT11 Temperatuur- En Vochtigheidssensor Op Arduino Aan Te Sluiten
Hoe De DHT11 Temperatuur- En Vochtigheidssensor Op Arduino Aan Te Sluiten

Video: Hoe De DHT11 Temperatuur- En Vochtigheidssensor Op Arduino Aan Te Sluiten

Video: Hoe De DHT11 Temperatuur- En Vochtigheidssensor Op Arduino Aan Te Sluiten
Video: Arduino Tutorial 50: How to Connect and Use the DHT11 Temperature and Humidity Sensor 2024, December
Anonim

De DHT17 temperatuur- en vochtigheidssensor is een populaire en goedkope sensor die over een vrij groot bereik van temperaturen en relatieve vochtigheid kan worden gebruikt. Laten we eens kijken hoe we het op de Arduino kunnen aansluiten en hoe we er gegevens uit kunnen lezen.

DHT11 temperatuur- en vochtigheidssensor
DHT11 temperatuur- en vochtigheidssensor

Noodzakelijk

  • -Arduino;
  • - DHT17 temperatuur- en vochtigheidssensor.

instructies:

Stap 1

De DHT11-sensor heeft dus de volgende kenmerken:

- bereik van gemeten relatieve vochtigheid - 20..90% met een fout tot 5%, - bereik van gemeten temperaturen - 0..50 graden Celsius met een fout tot 2 graden;

- reactietijd op veranderingen in vochtigheid - tot 15 seconden, temperatuur - tot 30 seconden;

- de minimale peilingsperiode is 1 seconde.

Zoals je kunt zien, is de DHT11-sensor niet erg nauwkeurig en dekt het temperatuurbereik geen negatieve waarden, wat nauwelijks geschikt is voor buitenmetingen in het koude seizoen in ons klimaat. De lage kosten, het kleine formaat en het gebruiksgemak compenseren deze nadelen echter gedeeltelijk.

De afbeelding toont het uiterlijk van de sensor en de afmetingen in millimeters.

Uiterlijk en afmetingen van de DHT11-sensor
Uiterlijk en afmetingen van de DHT11-sensor

Stap 2

Denk aan het aansluitschema van de DHT11 temperatuur- en vochtigheidssensor naar de microcontroller, in het bijzonder naar de Arduino. Op de afbeelding:

- MCU - microcontroller (bijvoorbeeld Arduino of vergelijkbaar) of computer met één bord (Raspberry Pi of vergelijkbaar);

- DHT11 - temperatuur- en vochtigheidssensor;

- DATA - databus; als de lengte van de verbindingskabel van de sensor naar de microcontroller niet langer is dan 20 meter, dan is het raadzaam om deze bus naar de voeding te trekken met een weerstand van 5, 1 kOhm; indien meer dan 20 meter, dan een andere geschikte waarde (kleiner).

- VDD - sensorvoeding; toelaatbare spanningen van ~ 3,0 tot ~ 5,5 volt DC; als er een voeding ~ 3,3 V wordt gebruikt, dan is het raadzaam om een voedingskabel te gebruiken die niet langer is dan 20 cm.

Een van de sensordraden - de derde - is nergens op aangesloten.

De DHT11-sensor wordt vaak verkocht als een complete montage met de nodige leidingen - pull-up-weerstand en filtercondensator.

Diagram voor het aansluiten van de DHT11-sensor op de microcontroller
Diagram voor het aansluiten van de DHT11-sensor op de microcontroller

Stap 3

Laten we het weloverwogen schema samenstellen. Ik zal ook een logische analysator op het circuit aansluiten, zodat ik het timingdiagram van de communicatie met de sensor kan bestuderen.

DHT11-sensor en Arduino
DHT11-sensor en Arduino

Stap 4

Laten we het op de eenvoudige manier doen: download de bibliotheek voor de DHT11-sensor (link in de sectie "Bronnen"), installeer deze op de standaardmanier (uitpakken in de \bibliotheken\-directory van de Arduino-ontwikkelomgeving).

Laten we zo'n eenvoudige schets schrijven. Laten we het in Arduino laden. Deze schets voert elke 2 seconden de RV- en temperatuurberichten uit die van de DHT11-sensor worden gelezen naar de seriële poort van de computer.

Schets voor het werken met een DHT11 temperatuur-vochtigheidssensor
Schets voor het werken met een DHT11 temperatuur-vochtigheidssensor

Stap 5

Laten we nu, met behulp van het timingdiagram dat is verkregen van de logische analysator, uitzoeken hoe de informatie-uitwisseling wordt uitgevoerd.

De DHT11 temperatuur- en vochtigheidssensor gebruikt een enkeldraads seriële interface om te communiceren met de microcontroller. Eén gegevensuitwisseling duurt ongeveer 40 ms en bevat: 1 verzoekbit van de microcontroller, 1 bit van de sensorrespons en 40 databits van de sensor. De gegevens omvatten: 16 bits vochtigheidsinformatie, 26 bits temperatuurinformatie en 8 controlebits.

Laten we het timingdiagram van de Arduino-communicatie met de DHT11-sensor eens nader bekijken.

Uit de figuur blijkt dat er twee soorten impulsen zijn: kort en lang. Korte pulsen in dit uitwisselingsprotocol duiden nullen aan, lange pulsen - enen.

Dus de eerste twee pulsen zijn het verzoek van de Arduino aan DHT11 en dienovereenkomstig de reactie van de sensor. Vervolgens komt 16 bits vochtigheid. Bovendien zijn ze links verdeeld in bytes, hoog en laag, hoog. Dat wil zeggen, in onze figuur zijn de vochtgegevens als volgt:

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

Temperatuurgegevens vergelijkbaar met:

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

Controlebits - de controlesom is slechts de som van 4 ontvangen databytes:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 in binair of 16 + 23 = 39 in decimaal.

Aanbevolen: