Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Tutorial: Temperatuur en Vochtigheid Meten met DHT11 en DHT22 Sensoren

In deze Arduino-tutorial leer je hoe je de DHT11 of DHT22 sensor kunt gebruiken om temperatuur en vochtigheid te meten met een Arduino-board. Je kunt de onderstaande video bekijken of de geschreven tutorial volgen voor meer details.

Overzicht

Deze sensoren zijn zeer populair bij elektronica-hobbyisten omdat ze goedkoop zijn maar toch uitstekende prestaties leveren. Hier zijn de belangrijkste specificaties en verschillen tussen de twee sensoren:

De DHT22 is de duurdere versie met betere specificaties. De temperatuurmeetbereik ligt tussen -40 en +125 graden Celsius met een nauwkeurigheid van ±0,5 graden, terwijl de DHT11 een bereik heeft van 0 tot 50 graden Celsius met ±2 graden nauwkeurigheid. De DHT22 heeft ook een betere vochtigheidsmeetbereik: 0 tot 100% met 2-5% nauwkeurigheid, tegenover 20 tot 80% met 5% nauwkeurigheid voor de DHT11.

Arduino Tutorial: Temperatuur en Vochtigheid Meten met DHT11 en DHT22 Sensoren

Er zijn twee specificaties waar de DHT11 beter in scoort: de bemonsteringssnelheid (1 Hz, dus één meting per seconde, tegenover 0,5 Hz voor de DHT22) en een kleinere behuizing. De werkspanning van beide sensoren ligt tussen 3 en 5 volt, met een maximaal verbruik van 2,5 mA tijdens het meten.

Je kunt deze componenten verkrijgen via de onderstaande links:

  • DHT11 Sensor
  • DHT22 Sensor
  • Arduino Board
  • Breadboard en Jumper Draden

Werkprincipe van de DHT11 / DHT22

Laten we eens kijken hoe deze sensoren werken. Ze bestaan uit een vochtigheidsmeetcomponent, een NTC-temperatuursensor (thermistor) en een IC aan de achterkant.

Arduino Tutorial: Temperatuur en Vochtigheid Meten met DHT11 en DHT22 Sensoren

Voor het meten van vochtigheid gebruiken ze een component met twee elektrodes en een vocht-absorberend substraat ertussen. Wanneer de vochtigheid verandert, verandert de geleidbaarheid (of weerstand) tussen de elektrodes. Deze verandering wordt gemeten en door de IC verwerkt zodat een microcontroller het kan uitlezen.

Arduino Tutorial: Temperatuur en Vochtigheid Meten met DHT11 en DHT22 Sensoren

Voor temperatuurmeting gebruiken de sensoren een NTC-thermistor. Een thermistor is een variabele weerstand waarvan de weerstand verandert met de temperatuur. Ze worden gemaakt door gesinterde halfgeleidende materialen (keramiek of polymeren) zodat kleine temperatuursveranderingen grote weerstandsveranderingen opleveren.

Arduino Tutorial: Temperatuur en Vochtigheid Meten met DHT11 en DHT22 Sensoren

De term "NTC" staat voor "Negative Temperature Coefficient", wat betekent dat de weerstand daalt wanneer de temperatuur stijgt.

Schakelschema

De DHTxx-sensoren hebben vier pennen: VCC, GND, datapin en een niet-aangesloten pin. Een pull-up weerstand van 5k tot 10k Ohm is nodig om de datalijn hoog te houden en de communicatie met de Arduino mogelijk te maken. Sommige versies komen op een breakout-board met ingebouwde pull-up weerstand en hebben slechts 3 pennen.

Arduino Tutorial: Temperatuur en Vochtigheid Meten met DHT11 en DHT22 Sensoren

De sensoren gebruiken een eigen single-wire protocol voor dataoverdracht, wat nauwkeurige timing vereist. Gelukkig hoeven we ons daar niet om te zorgen omdat we de DHT-bibliotheek gebruiken die dit allemaal afhandelt.

Gerelateerde tutorial: Leer hoe je een draadloos weerstation bouwt met Arduino.

Broncode

Eerst moeten we de DHT-bibliotheek includeren (beschikbaar op de Arduino-website), de pinnummer definiëren en een DHT-object aanmaken. In de setup starten we de seriële communicatie om resultaten op de seriële monitor te tonen. Met de functie read22() lezen we de data uit en slaan temperatuur en vochtigheid op in variabelen t en h. Bij een DHT11 gebruik je read11(). Tenslotte printen we de waarden op de seriële monitor.

/* DHT11/ DHT22 Sensor Temperatuur en Vochtigheid Tutorial
 * Programma gemaakt door Dejan Nedelkovski,
 * www.HowToMechatronics.com
 */
/*
 * Je kunt de DHT Library vinden op de Arduino website
 * https://playground.arduino.cc/Main/DHTLib
 */
#include <dht.h>
#define dataPin 8 // Definieert pinnummer waaraan de sensor is aangesloten
dht DHT; // Maakt een DHT object aan

void setup() {
  Serial.begin(9600);
}

void loop() {
  int readData = DHT.read22(dataPin); // Leest data van de sensor
  float t = DHT.temperature; // Haalt temperatuurwaarde op
  float h = DHT.humidity;    // Haalt vochtigheidswaarde op

  // Resultaten printen op seriële monitor
  Serial.print("Temperatuur = ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(" Vochtigheid = ");
  Serial.print(h);
  Serial.println(" % ");

  delay(2000); // Wacht 2 seconden, aangezien DHT22 sample rate 0.5Hz is
}

Na het uploaden van de code kun je de temperatuur- en vochtigheidswaarden op de seriële monitor zien.

Ik heb ook een voorbeeld gemaakt waarin de resultaten op een LCD worden getoond. Hier is de broncode daarvoor:

/* DHT11/ DHT22 Sensor Temperatuur en Vochtigheid Tutorial
 * Programma gemaakt door Dejan Nedelkovski,
 * www.HowToMechatronics.com
 */
/*
 * Je kunt de DHT Library vinden op de Arduino website
 * https://playground.arduino.cc/Main/DHTLib
 */
#include <LiquidCrystal.h> // Inclusief LiquidCrystal Library
#include <dht.h>
#define dataPin 8
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Maakt LCD object aan. Parameters: (rs, enable, d4, d5, d6, d7)
dht DHT;

void setup() {
  lcd.begin(16,2); // Initialiseert LCD interface, specificeert afmetingen (breedte en hoogte)
}

void loop() {
  int readData = DHT.read22(dataPin);
  float t = DHT.temperature;
  float h = DHT.humidity;
  lcd.setCursor(0,0); // Zet cursorpositie
  lcd.print("Temp.: "); // Print string "Temp." op LCD
  lcd.print(t); // Print temperatuurwaarde
  lcd.print(" C");
  lcd.setCursor(0,1);
  lcd.print("Vocht: ");
  lcd.print(h);
  lcd.print(" %");
  delay(2000);
}

Stel gerust vragen in de reacties hieronder.

Productieproces

  1. Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
  2. Naadloze temperatuur- en vochtigheidsbewaking op Raspberry Pi met EzTemp
  3. Een MCP3008 ADC gebruiken om analoge sensoren met Raspberry Pi uit te lezen
  4. Universele Android-afstandsbediening bouwen met Arduino, 1Sheeld en IR-besturing
  5. Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
  6. Arduino temperatuur- en vochtigheidslogger met DHT11 en Ethernet Shield
  7. Nauwkeurige Frequentie- en Duty Cycle-meting met Arduino UNO
  8. BME280 Temperatuur, Vochtigheid & Druk Weergeven op Nextion Touchscreen
  9. Naadloze LED-dimmer met Bolt IoT en Arduino UNO
  10. Temperatuur en Vochtigheid met DHT11 op Blynk - Stap-voor-Stap Arduino Tutorial
  11. Bouw een Slimme Arduino-gestuurde Robotarm: Eenvoudige DIY Handleiding