ESP32 - Temperatuur- en Vochtigheidssensor

Deze tutorial legt uit hoe u met de ESP32 temperatuur- en vochtigheidswaarden van DHT11 of DHT22 sensoren uitleest en deze afdrukt in de Serial Monitor.

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB Kabel Type-C
1×DHT11 Temperatuur- en Vochtigheidssensormodule
1×(Optioneel) Temperatuur- en Vochtigheidssensor DHT22
1×10 kΩ weerstand
1×Breadboard (experimenteerprint)
1×Jumper draden
1×(Optioneel) DC Stroomaansluiting
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over DHT11 en DHT22 Temperatuur- en Vochtigheidssensor

Kort gezegd is de DHT22 sensor nauwkeuriger, heeft een groter bereik, maar is duurder dan de DHT11. Laten we de overeenkomsten en verschillen bekijken:

De overeenkomsten

  • Zelfde pinout
  • Zelfde bedrading naar ESP32
  • Vergelijkbare ESP32 code

De verschillen

De onderstaande tabel toont de gedetailleerde verschillen tussen DHT11 en DHT22:

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

DHT11 en DHT22 Pinout

De DHT11 en DHT22 sensoren hebben 4 pinnen:

  • GND pin: verbind deze pin met GND (0V)
  • VCC pin: verbind deze pin met VCC (3,3V of 5V)
  • DATA pin: deze pin wordt gebruikt voor communicatie tussen sensor en ESP32
  • NC pin: Niet verbonden
DHT11 and DHT22 temperature and humidity sensor Pinout

Wij raden sterk aan om DHT11 en DHT22 sensormodules te gebruiken. Deze modules bevatten een ingebouwde weerstand en hebben slechts drie pinnen: VCC, GND en DATA pinnen (of soms aangeduid als +, -, en OUT).

DHT11 and DHT22 temperature and humidity module Pinout
image source: diyables.io

De pinvolgorde op de modules kan verschillen per fabrikant. Controleer daarom goed de pinlabels die op de module zijn gedrukt.

Aansluitschema tussen DHT11/DHT22 en ESP32

De bedrading naar de ESP32 is hetzelfde voor beide sensoren. In de originele vorm is een weerstand van 5K tot 10K Ohm vereist om de datalijn hoog te houden en de communicatie tussen sensor en ESP32 mogelijk te maken.

ESP32 - DHT11 Sensor Bedradingsschema

ESP32 DHT11 Temperature and humidity Sensor Wiring Diagram

This image is created using Fritzing. Click to enlarge image

ESP32 - DHT22 Sensor Bedradingsschema

ESP32 DHT22 Temperature and humidity Sensor Wiring Diagram

This image is created using Fritzing. Click to enlarge image

ESP32 - DHT11 Module Bedrading

De meeste DHT22 sensormodules hebben een ingebouwde weerstand, zodat u deze niet extra hoeft toe te voegen. Dit bespaart u wat bedrading of soldeerwerk.

ESP32 DHT11 Temperature and humidity Module Wiring Diagram

This image is created using Fritzing. Click to enlarge image

ESP32 - DHT22 Module Bedrading

De meeste DHT22 sensormodules hebben een ingebouwde weerstand, zodat u deze niet extra hoeft toe te voegen. Dit bespaart u wat bedrading of soldeerwerk.

ESP32 DHT22 Temperature and humidity Module Wiring Diagram

This image is created using Fritzing. Click to enlarge image

ESP32 Code - DHT11

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 21 // ESP32 pin GPIO21 connected to DHT11 sensor #define DHT_SENSOR_TYPE DHT11 DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); dht_sensor.begin(); // initialize the DHT sensor } void loop() { // read humidity float humi = dht_sensor.readHumidity(); // read temperature in Celsius float tempC = dht_sensor.readTemperature(); // read temperature in Fahrenheit float tempF = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(tempC) || isnan(tempF) || isnan(humi)) { 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"); } // wait a 2 seconds between readings delay(2000); }

ESP32 Code - DHT22

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 21 // ESP32 pin GPIO21 connected to DHT22 sensor #define DHT_SENSOR_TYPE DHT22 DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); dht_sensor.begin(); // initialize the DHT sensor } void loop() { // read humidity float humi = dht_sensor.readHumidity(); // read temperature in Celsius float tempC = dht_sensor.readTemperature(); // read temperature in Fahrenheit float tempF = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(tempC) || isnan(tempF) || isnan(humi)) { 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"); } // wait a 2 seconds between readings delay(2000); }

De bovenstaande twee codes verschillen slechts in één regel.

Snelle Stappen

  • Als u voor het eerst de ESP32 gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Voer de bedrading uit volgens bovenstaande afbeelding.
  • Verbind de ESP32 board met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 bord (bijvoorbeeld ESP32 Dev Module) en de COM poort.
  • Klik op het Libraries-icoon in de linkerbalk van de Arduino IDE.
  • Typ "DHT" in het zoekvak en zoek vervolgens naar de DHT sensor bibliotheek van Adafruit.
  • Installeer de bibliotheek door op de Install knop te klikken.
ESP32 DHT sensor library
  • Er verschijnt een venster waarin gevraagd wordt om dependencies voor de bibliotheek te installeren.
  • Installeer alle dependencies door op de Install All knop te klikken.
ESP32 Adafruit Unified sensor library
  • Kopieer één van de bovenstaande codes en open deze met Arduino IDE.
  • Compileer en upload de code naar de ESP32 board door op de Upload knop te klikken in Arduino IDE.
  • Maak de sensor kouder of warmer, bijvoorbeeld door de sensor naast een hete kop koffie te plaatsen.
  • Bekijk het resultaat in de Serial Monitor. Het ziet er ongeveer zo uit:
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  

※ 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!