Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
In deze tutorial zullen we de DHT11-sensor proberen met Arduino.
DHT11 kan worden gebruikt om temperatuur en vochtigheid te meten.
Benodigde componenten:
- Arduino Nano
- DHT11 temperatuur- en vochtigheidssensor
- USB Mini
- Startkabels
Vereiste bibliotheek:
DHT-bibliotheek
Stap 1: Verbind DHT11 met Arduino
Verbind DHT11 met Arduino met behulp van startkabels.
Zie de afbeelding of volg de onderstaande instructies.
DHT11 naar Arduino
+ => +5V
uit => D12
- => GND
Verbind vervolgens arduino met de computer via een mini-USB
Stap 2: Voeg de DHT-bibliotheek toe
Bibliotheek DHT is hier te downloaden:
DHT11-bibliotheek.
Om een bibliotheek toe te voegen, zie de afbeelding hierboven of volg de onderstaande instructie:
Open Sketch ==> Bibliotheek opnemen ==> voeg. Zip-bibliotheek toe
Zoek het bibliotheekbestand dat u hebt gedownload.
Als het succesvol is, sluit Arduino en open het opnieuw.
Stap 3: Kies Arduino-bord
Ga naar Tools en pas het Arduino-bord aan naar de afbeelding hierboven.
Bord "Arduino Nano"
Processor "ATmega328P (Oude Bootloader)"
Voor een vollediger artikel kunt u lezen op "Hoe Arduino Nano v.3 te gebruiken" dat ik eerder heb gemaakt.
Stap 4: Programma
Voeg deze code toe om de waarde van de DHT11-sensor te lezen
// DHT-temperatuur- en vochtigheidssensor// Unified Sensor Library-voorbeeld // Geschreven door Tony DiCola voor Adafruit Industries // Vrijgegeven onder een MIT-licentie.
// VEREIST de volgende Arduino-bibliotheken:
// - DHT-sensorbibliotheek: https://github.com/adafruit/DHT-sensor-library // - Adafruit Unified Sensor Lib:
#erbij betrekken
#include #include
#define DHTPIN 2 // Digitale pin aangesloten op de DHT-sensor
// Feather HUZZAH ESP8266 opmerking: gebruik pinnen 3, 4, 5, 12, 13 of 14 -- // Pin 15 kan werken, maar DHT moet worden losgekoppeld tijdens het uploaden van het programma.
// Maak een opmerking over het type sensor dat wordt gebruikt:
//#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Zie handleiding voor details over sensorbedrading en gebruik:
//
DHT_Unified dht(DHTPIN, DHTTYPE);
uint32_t vertragingMS;
ongeldige setup() {
Serieel.begin(9600); // Initialiseer apparaat. dht.begin(); Serial.println (F ("DHTxx Unified Sensor-voorbeeld")); // Print temperatuursensor details. sensor_t-sensor; dht.temperatuur().getSensor(&sensor); Serial.println(F("------------------------------------")); Serial.println (F ("Temperatuursensor")); Serial.print (F("Sensortype: ")); Serial.println(sensor.naam); Serial.print (F("Stuurprogrammaversie: ")); Serieel.println(sensor.versie); Serial.print (F("Unieke ID: ")); Serieel.println(sensor.sensor_id); Serial.print (F("Max. waarde: ")); Serial.print(sensor.max_value); Serial.println(F("°C")); Serial.print (F("Min Waarde: ")); Seriële.afdruk (sensor.min_waarde); Serial.println(F("°C")); Serial.print (F("Resolutie: ")); Seriële.afdruk (sensor.resolutie); Serial.println(F("°C")); Serial.println(F("------------------------------------")); // Details van de vochtigheidssensor afdrukken. dht.humidity().getSensor(&sensor); Serial.println (F ("Vochtigheidssensor")); Serial.print (F("Sensortype: ")); Serial.println(sensor.naam); Serial.print (F("Stuurprogrammaversie: ")); Serieel.println(sensor.versie); Serial.print (F("Unieke ID: ")); Serieel.println(sensor.sensor_id); Serial.print (F("Max. waarde: ")); Serial.print(sensor.max_value); Serial.println(F("%")); Serial.print (F("Min Waarde: ")); Seriële.afdruk (sensor.min_waarde); Serial.println(F("%")); Serial.print (F("Resolutie: ")); Seriële.afdruk (sensor.resolutie); Serial.println(F("%")); Serial.println(F("------------------------------------")); // Stel vertraging in tussen sensormetingen op basis van sensordetails. vertragingMS = sensor.min_vertraging / 1000; }
lege lus() {
// Vertraging tussen metingen. vertraging (vertragingMS); // Haal temperatuurgebeurtenis op en druk de waarde af. sensoren_event_t gebeurtenis; dht.temperatuur().getEvent(&event); if (isnan(gebeurtenistemperatuur)) { Serial.println(F("Fout bij het lezen van temperatuur!")); } else { Serial.print(F("Temperatuur: ")); Seriële.afdruk(gebeurtenistemperatuur); Serial.println(F("°C")); } // Haal de vochtigheidsgebeurtenis op en druk de waarde ervan af. dht.humidity().getEvent(&event); if (isnan(event.relative_humidity)) { Serial.println(F("Fout bij lezen vochtigheid!")); } else { Serial.print(F("Vochtigheid: ")); Serial.print(gebeurtenis.relatieve_vochtigheid); Serial.println(F("%")); } }
Of download het bestand onder de Sketch die ik hieronder heb verstrekt.
Klik vervolgens op uploaden en wacht tot het klaar is.
Stap 5: Resultaat
Om de resultaten van temperatuur- en vochtigheidsmetingen te zien, klikt u op Seriële monitor. De resultaten worden daar weergegeven.
Als dit lukt, zien de resultaten eruit als figuur 1
als de sensor niet is geïnstalleerd, ziet deze eruit als afbeelding 2
bedankt voor het lezen, als er vragen zijn, schrijf het dan gewoon in de opmerkingenkolom