Unterstützung für Temperatur- und Feuchtigkeitssensoren von Arduino und DHT11
Das Modul DHT11 dient zur Messung von Lufttemperatur und Luftfeuchtigkeit. Das vorgestellte Beispiel zeigt, wie man seine Fähigkeiten mit Arduino nutzt.
Das Beispiel verwendet die folgenden Elemente:
- Arduino Uno
DHT11-Sensor (in unserem Shop gibt es mehrere verschiedene Module, die mit DHT11 ausgestattet sind, aber alle funktionieren auf die gleiche Weise)
- Halterung, z.B. 830 Löcher
- Stecker-Stecker-Verbindungskabel
- DHT11-Bibliothek
Verbinden von DHT11 mit Arduino:
Um die Temperatur- und Feuchtigkeitswerte aus dem Sensor auszulesen, verbinden Sie das System wie folgt mit dem Arduino:
Stift DHT11 | Arduino-Stift |
---|---|
VCC | 5 V |
DATUM | 2 |
Masse | Masse |
Beim Sensor nur ohne Modul sollte die Datenleitung zusätzlich über einen Widerstand, hier 4,7 kΩ , auf die Versorgungsspannung VCC hochgezogen werden (wie im Bild unten). |
Anschlussplan des DHT11-Sensors mit dem Arduino Uno.
Anschlussplan des DHT11-Sensors (Version mit dem Modul) mit dem Arduino Uno.
Programm für Arduino
Zunächst sollte die Bibliothek zur Arduino-Umgebung hinzugefügt werden (Sketch -> Include Library -> Add .ZIP Library ...).
Im Beispiel wurde folgender Code verwendet:
#includedht11 DHT11; #define DHT11PIN 2 // Arduino Pin 2 als Sensorwert zuweisen Void-Setup () { Serial.begin (115200); // Initialisierung des seriellen Monitors Serial.println ("DHT11-Testprogramm"); Serial.println (); } leere Schleife () { int chk = DHT11.read (DHT11PIN); // Überprüfen Sie den Zustand des Sensors und zeigen Sie dann eine Nachricht auf dem seriellen Monitor an Serial.print ("Sensorstatus:"); Schalter (chk) { Fall DHTLIB_OK: Serial.print ("OKt"); brechen; Fall DHTLIB_ERROR_CHECKSUM: Serial.println ("Prüfsummenfehler"); brechen; Fall DHTLIB_ERROR_TIMEOUT: Serial.println ("Timeout Ende - Keine Antwort"); brechen; Ursprünglich: Serial.println ("Unbekannter Fehler"); brechen; } Serial.print ("Feuchtigkeit (%):"); // den Feuchtigkeitswert anzeigen Serial.print ((Float) DHT11.Feuchtigkeit, 2); Serial.print ("tt"); Serial.print ("Temperatur (C):"); // Anzeige der Temperatur Serial.println ((float) DHT11.temperature, 2); Verzögerung (1000); // Verzögerung zwischen aufeinanderfolgenden Lesungen - 1 s }
Das Ergebnis dieses Programms ist auf dem Bildschirm zu sehen:
Screenshot des seriellen Monitors.