Die Überwachung von Umgebungsbedingungen wie Temperatur und Luftfeuchtigkeit ist für verschiedene Anwendungen von der Heimautomatisierung bis zum Treibhausmanagement von wesentlicher Bedeutung. Mit der vielseitigen Arduino -Plattform und Sensoren wie dem DHT11 oder DHT22 ist es sowohl erschwinglich als auch unkompliziert. In diesem Handbuch führen wir Sie durch die erforderlichen Komponenten, den Einrichtungsvorgang und die Codierung, die erforderlich ist, um Ihren Monitor zum Leben zu erwecken.
Komponenten, die Sie benötigen
- Arduino uno
- DHT11- oder DHT22 -Sensor
- 10k Ohm Widerstand
- Breadboard- und Jumper -Drähte
- LCD -Anzeige (optional)
- USB -Kabel
Verständnis der DHT11/DHT22 -Sensoren
Die DHT11 und DHT22 sind beliebte Sensoren für die Messung von Temperatur und Luftfeuchtigkeit. Der DHT11 ist kostengünstig und für grundlegende Anwendungen geeignet und bietet einen Temperaturbereich von 0-50 ° C mit einer Genauigkeit von ± 2 ° C mit einer Genauigkeit von ± 5%. Der DHT22 dagegen bietet einen größeren Temperaturbereich von -40 bis 80 ° C mit einer Genauigkeit von ± 0,5 ° C mit einer Genauigkeit von ± 2-5% und ist ideal für anspruchsvolle Projekte.
Verkabelung des Sensors nach Arduino
Befolgen Sie diese Schritte, um Ihren DHT -Sensor mit dem Arduino zu verbinden:
- Stromverbindungen: Schließen Sie den VCC -Stift des DHT -Sensors an den 5 -V -Stift am Arduino und den GND -Stift mit dem Boden (GND) an.
- Datenstift: Schließen Sie den Datenstift des DHT -Sensors an einen digitalen Eingangspin am Arduino an (üblicherweise Pin 2).
- Pull-up-Widerstand: Platzieren Sie einen 10 -km -Ohm -Widerstand zwischen dem VCC- und Daten -PIN, um eine stabile Datenübertragung sicherzustellen.
- LCD -Anzeige (optional): Wenn Sie ein LCD verwenden, verbinden Sie ihn mit den entsprechenden Arduino -Pins zum Anzeigen der Messwerte.
Programmieren des Arduino
Um Daten aus dem DHT -Sensor zu lesen, verwenden wir die DHT.h
Bibliothek, die den Prozess vereinfacht. Unten finden Sie ein Beispielcode -Snippet, um Ihnen den Einstieg zu erleichtern:
// Include the DHT library
#include <DHT.h>
// Define the sensor type and the pin it's connected to
#define DHTPIN 2
#define DHTTYPE DHT22 // Change to DHT11 if you're using that model
// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Start serial communication
Serial.begin(9600);
// Initialize the DHT sensor
dht.begin();
}
void loop() {
// Wait a few seconds between measurements
delay(2000);
// Read humidity and temperature
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Check if any reads failed
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print the results to the Serial Monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
}
Erläuterung des Code:
- Der
DHT.h
Die Bibliothek ist enthalten, um die Kommunikation mit dem Sensor zu erleichtern. - Wir definieren den Datenstift und den Sensortyp mithilfe
#define
. - Im
setup()
Funktion, wir initialisieren die serielle Kommunikation und den DHT -Sensor. - Der
loop()
Funktion liest die Luftfeuchtigkeit und Temperatur alle zwei Sekunden und druckt sie auf den seriellen Monitor.
Daten anzeigen
Für ein benutzerfreundlicheres Setup können Sie die Messwerte auf einem LCD anzeigen. Ändern Sie den Code, um Daten an anstelle des seriellen Monitors an die LCD zu senden. Stellen Sie sicher, dass Sie über die entsprechende LCD -Bibliothek installiert sind, und konfigurieren Sie die Pins entsprechend.
Beispielcode für die LCD -Anzeige:
// Include necessary libraries
#include <DHT.h>
#include <LiquidCrystal.h>
// Define sensor and LCD pins
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// Initialize the LCD (adjust pin numbers as needed)
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);
void setup() {
// Start serial communication
Serial.begin(9600);
dht.begin();
// Initialize the LCD
lcd.begin(16, 2);
lcd.print("Temp & Humidity");
}
void loop() {
delay(2000);
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
lcd.clear();
lcd.print("Sensor Error");
return;
}
// Display on LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print(" %");
}
Testen Sie Ihr Setup
Öffnen Sie nach dem Hochladen des Codes in Ihr Arduino den seriellen Monitor (falls die serielle Ausgabe) oder beobachten Sie die LCD -Anzeige. Sie sollten Echtzeit-Temperatur- und Feuchtigkeitswerte sehen. Stellen Sie sicher, dass Ihre Verbindungen sicher sind und der Sensor korrekt funktioniert. Wenn Sie auf Probleme stoßen, überprüfen Sie die Verkabelung und überprüfen Sie, ob der richtige Sensortyp in Ihrem Code definiert ist.
Verbesserungen und nächste Schritte
Nachdem Sie eine grundlegende Temperatur- und Feuchtigkeitsmonitor haben, sollten Sie die folgenden Verbesserungen berücksichtigen:
- Datenprotokollierung: Schließen Sie Ihr Arduino an ein SD -Kartenmodul an, um Daten für die Analyse im Laufe der Zeit zu protokollieren.
- Drahtlose Überwachung: Verwenden Sie Module wie ESP8266 oder Bluetooth, um Daten an Ihr Smartphone- oder Cloud -Dienste zu senden.
- Warnungen: Implementieren Sie Schwellenwertwarnungen mithilfe von LEDs oder Summer, um Sie über extreme Bedingungen zu informieren.
- Mehrere Sensoren: Erweitern Sie Ihr Setup um zusätzliche Sensoren für Parameter wie Luftqualität oder Lichtintensität.
Abschluss
Der Aufbau eines Temperatur- und Feuchtigkeitsmonitors mit DHT11/DHT22 und Arduino ist ein hervorragendes Projekt für Anfänger und Enthusiasten. Es bietet praktische Erfahrungen mit Sensorintegration, Datenverarbeitung und Anzeigetechniken. Ob für den persönlichen Gebrauch oder als Grundlage für komplexere Systeme, dieses Projekt zeigt die Leistung und Flexibilität des Arduino -Ökosystems. Viel Spaß beim Gebäude!