Arduino - Temperatuur en Vochtigheid Sensor

In deze tutorial leert u:

Als u alleen temperatuur wilt meten, raden wij het gebruik aan van een waterdichte DS18B20 temperatuursensor. Het is een goedkope en nette sensor die u in warm of koud water kunt plaatsen.

Over DHT11 en DHT22 Temperatuur- en Vochtigheidssensor

Gemeenschappelijke kenmerken van DHT11 en DHT22

  • Pinout is hetzelfde
  • Aansluiting op Arduino is hetzelfde
  • Programmering (met een bibliotheek) is vergelijkbaar (slechts één regel code verschilt)

Verschillen tussen DHT11 en DHT22

DHT11 DHT22
Prijs zeer goedkoop goedkoop
Temperatuurbereik 0°C tot 50°C -40°C tot 80°C
Temperatuurnauwkeurigheid ± 2°C ± 0,5°C
Vochtigheidsbereik 20% tot 80% 0% tot 100%
Vochtigheidsnauwkeurigheid 5% ± 2 tot 5%
Leessnelheid 1Hz (één keer per seconde) 0,5Hz (één keer per 2 seconden)
Afmetingen behuizing 15,5mm x 12mm x 5,5mm 15,1mm x 25mm x 7,7mm
Bedrijfsspanning 3 tot 5V 3 tot 5V

Zoals u ziet is de DHT22 iets nauwkeuriger, heeft een groter bereik maar is ook duurder dan de DHT11.

Pinout

De DHT11 en DHT22 sensor in originele vorm hebben vier pinnen:

  • GND pin: moet verbonden worden met GND (0V)
  • VCC pin: moet verbonden worden met VCC (5V of 3,3V)
  • DATA pin: deze pin wordt gebruikt voor communicatie tussen sensor en Arduino
  • NC pin: Niet verbonden, deze pin kan genegeerd worden
DHT11 en DHT22 temperatuur- en vochtigheidssensor pinout

Sommige fabrikanten leveren de DHT11 en DHT22 sensor in modulevorm met drie pinnen: GND, VCC en DATA (of alternatief: -, +, en OUT).

※ Notiz:

In modulevorm kan de volgorde van de pinnen per fabrikant verschillen. Gebruik ALTIJD de opdruk op de module. Kijk goed!

DHT11 en DHT22 temperatuur- en vochtigheidsmodule pinout

Aansluitschema

De aansluiting op Arduino is hetzelfde voor beide sensoren. In originele vorm is een weerstand van 5 kΩ tot 10 kΩ vereist om de datalijn hoog te houden en communicatie tussen sensor en Arduino mogelijk te maken.

Arduino - DHT11 Sensor Aansluiting

Arduino DHT11 Temperatuur- en Vochtigheidssensor Aansluitschema

This image is created using Fritzing. Click to enlarge image

Arduino - DHT22 Sensor Aansluiting

Arduino DHT22 Temperatuur- en Vochtigheidssensor Aansluitschema

This image is created using Fritzing. Click to enlarge image

Arduino - DHT11 Module Aansluiting

De meeste DHT22 sensormodules hebben een ingebouwde weerstand, dus deze hoeft niet toegevoegd te worden. Dit bespaart bedrading en soldeerwerk.

Arduino DHT11 Temperatuur- en Vochtigheidsmodule Aansluitschema

This image is created using Fritzing. Click to enlarge image

Arduino - DHT22 Module Aansluiting

De meeste DHT22 sensormodules hebben een ingebouwde weerstand, dus deze hoeft niet toegevoegd te worden. Dit bespaart bedrading en soldeerwerk.

Arduino DHT22 Temperatuur- en Vochtigheidsmodule Aansluitschema

This image is created using Fritzing. Click to enlarge image

Hoe Programmeert U Voor DHTxx Temperatuursensor

Het programmeren van beide sensoren is vergelijkbaar. Slechts één regel code verschilt.

  • Voeg de bibliotheek toe:
#include "DHT.h"
  • Definieer de Arduino pin die verbonden is met de DHT sensor:
#define DHTPIN 2
  • Definieer het sensortype: DHT11 of DHT22 (Dit is de regel die verschilt)
#define DHTTYPE DHT11

of

#define DHTTYPE DHT22
  • Declareer het DHT object
DHT dht(DHTPIN, DHTTYPE);
  • Initialiseer de sensor:
dht.begin();
  • Lees de vochtigheid:
float humi = dht.readHumidity();
  • Lees de temperatuur in Celsius:
float tempC = dht.readTemperature();
  • Lees de temperatuur in Fahrenheit:
float tempF = dht.readTemperature(true);

Arduino Code - DHT11

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // initialize the sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht.readHumidity(); // read temperature as Celsius float tempC = dht.readTemperature(); // read temperature as Fahrenheit float tempF = dht.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

Arduino Code - DHT22

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-temperature-humidity-sensor */ #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // initialize the sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht.readHumidity(); // read temperature as Celsius float tempC = dht.readTemperature(); // read temperature as Fahrenheit float tempF = dht.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

Als u de twee bovenstaande codes vergelijkt, ziet u dat er één regel verschilt (regel 11).

Snelle Stappen

  • Verbind de Arduino met uw PC via USB-kabel
  • Open Arduino IDE, selecteer de juiste board en poort
  • Ga naar het Libraries-icoon in de linkerzijbalk van de Arduino IDE
  • Zoek op “DHT”, en vind de DHT sensor bibliotheek van Adafruit
  • Klik op de Install-knop om de bibliotheek te installeren
Arduino DHT sensor bibliotheek
  • U wordt gevraagd om enkele andere bibliotheekafhankelijkheden te installeren
  • Klik op de Install All-knop om alle benodigde bibliotheken te installeren
Arduino Adafruit Unified sensor bibliotheek
  • Kopieer de code hierboven die overeenkomt met uw sensor en open deze in de Arduino IDE
  • Klik op de Upload-knop in Arduino IDE om de code naar de Arduino te uploaden
  • Maak de omgeving rondom de sensor warmer of kouder
  • Bekijk de resultaten in de Serial Monitor
COM6
Send
Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!