La surveillance des conditions environnementales comme la température et l'humidité est essentielle pour diverses applications, de la domotique à la gestion des serres. Avec la plate-forme Arduino polyvalente et des capteurs comme le DHT11 ou le DHT22, la création d'un moniteur de température et d'humidité fiable est à la fois abordable et simple. Dans ce guide, nous vous guiderons à travers les composants nécessaires, le processus de configuration et le codage requis pour donner vie à votre moniteur.
Composants dont vous avez besoin
- Arduino Uno
- Capteur DHT11 ou DHT22
- Résistance de 10k ohms
- Fils de planche à pain et de cavalier
- Affichage LCD (facultatif)
- Câble USB
Comprendre les capteurs DHT11 / DHT22
Les DHT11 et DHT22 sont des capteurs populaires pour mesurer la température et l'humidité. Le DHT11 est rentable et adapté aux applications de base, offrant une plage de température de 0 à 50 ° C avec une précision de ± 2 ° C et une plage d'humidité de 20 à 80% avec une précision de ± 5%. Le DHT22, en revanche, fournit une plage de température plus large de -40 à 80 ° C avec une précision de ± 0,5 ° C et une plage d'humidité de 0 à 100% avec une précision de ± 2 à 5%, ce qui le rend idéal pour des projets plus exigeants.
Câblage du capteur à Arduino
Suivez ces étapes pour connecter votre capteur DHT à l'Arduino:
- Connexions d'alimentation: Connectez la broche VCC du capteur DHT à la broche 5V sur l'Arduino et la broche GND au sol (GND).
- Pin de données: Connectez la broche de données du capteur DHT à une broche d'entrée numérique sur l'Arduino (PIN généralement 2).
- Résistance de traction: Placez une résistance de 10 km entre le VCC et la broche de données pour assurer une transmission de données stable.
- Affichage LCD (facultatif): Si vous utilisez un LCD, connectez-le aux épingles Arduino appropriées pour afficher les lectures.
Programmation de l'Arduino
Pour lire les données du capteur DHT, nous utiliserons le DHT.h
bibliothèque, qui simplifie le processus. Vous trouverez ci-dessous un exemple d'extrait de code pour vous aider à démarrer:
// 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");
}
Explication du code:
- Le
DHT.h
La bibliothèque est incluse pour faciliter la communication avec le capteur. - Nous définissons le type de broche de données et de capteur en utilisant
#define
. - Dans le
setup()
Fonction, nous initialisons la communication série et le capteur DHT. - Le
loop()
function reads the humidity and temperature every two seconds and prints them to the Serial Monitor.
Displaying the Data
For a more user-friendly setup, you can display the readings on an LCD. Modify the code to send data to the LCD instead of the Serial Monitor. Assurez-vous que la bibliothèque LCD appropriée a installé et configurez les broches en conséquence.
Exemple de code pour l'affichage LCD:
// 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(" %");
}
Tester votre configuration
Après avoir téléchargé le code sur votre Arduino, ouvrez le moniteur série (si vous utilisez une sortie série) ou observez l'écran LCD. You should see real-time temperature and humidity readings. Ensure your connections are secure, and the sensor is functioning correctly. If you encounter issues, double-check the wiring and verify that the correct sensor type is defined in your code.
Enhancements and Next Steps
Maintenant que vous avez un moniteur de base de température et d'humidité, considérez les améliorations suivantes:
- Dogging des données: Connectez votre arduino à un module de carte SD pour enregistrer les données au fil du temps pour l'analyse.
- Surveillance sans fil: Utilisez des modules comme ESP8266 ou Bluetooth pour envoyer des données à votre smartphone ou aux services cloud.
- Alertes: Implémentez les alertes basées sur les seuils à l'aide de LED ou de buzzers pour vous informer des conditions extrêmes.
- Plusieurs capteurs: Développez votre configuration pour inclure des capteurs supplémentaires pour des paramètres tels que la qualité de l'air ou l'intensité lumineuse.
Conclusion
Construire un moniteur de température et d'humidité avec le DHT11 / DHT22 et Arduino est un excellent projet pour les débutants et les passionnés. Il offre une expérience pratique avec l'intégration des capteurs, le traitement des données et les techniques d'affichage. Que ce soit pour un usage personnel ou comme base de systèmes plus complexes, ce projet présente la puissance et la flexibilité de l'écosystème Arduino. Bâtiment heureux!