L'humidité et la température sont des paramètres courants pour mesurer les conditions environnementales. Dans ce projet basé sur Arduino, nous allons mesurer la température et l'humidité ambiantes et l'afficher sur un écran LCD 16x2. Un capteur combiné de température et d'humidité DHT11 est utilisé avec Arduino uno pour développer ce projet de thermomètre à échelle Celsius et de mesure d'humidité à échelle de pourcentage. Dans l'un de mes projets précédents, j'ai également développé un thermomètre numérique utilisant le capteur de température LM35.
Ce projet se compose de trois sections - l'une détecte l'humidité et la température à l'aide du capteur d'humidité et de température DHT11. La deuxième section lit la sortie du module DHTsensor et extrait les valeurs de température et d'humidité dans un nombre approprié en pourcentage et en échelle Celsius. Et la troisième partie du système affiche l'humidité et la température sur l'écran LCD.
Le fonctionnement de ce projet est basé sur une communication série à un seul fil. Tout d'abord, arduino envoie un signal de démarrage au module DHT, puis DHT donne un signal de réponse contenant des données de température et d'humidité. Arduino collecte et extrait en deux parties, une est l'humidité et la seconde est la température, puis les envoie à un écran LCD 16x2.
Ici, dans ce projet, nous avons utilisé un module de capteur appelé DHT11. Ce module comprend un complexe d'humidité et de température avec une sortie de signal numérique calibrée. Le module de capteur DHT11 est un module combiné pour détecter l'humidité et la température qui donne un signal de sortie numérique calibré. DHT11 nous donne une valeur très précise de l'humidité et de la température et garantit une fiabilité élevée et une stabilité à long terme. Ce capteur a un composant de mesure d'humidité de type résistif et un composant de mesure de température de type NTC avec un microcontrôleur 8 bits intégré qui a une réponse rapide et rentable et disponible dans un boîtier à une rangée à 4 broches.
Le module DHT11 fonctionne sur la communication série, c'est-à-dire sur la communication à un fil. Ce module envoie des données sous forme de train d'impulsions d'une période de temps spécifique. Avant d'envoyer des données à arduino, il faut une commande d'initialisation avec un délai. Et la durée totale du processus est d'environ 4 ms. Une transmission de données complète est de 40 bits et le format de données de ce processus est donné ci-dessous:
Données RH intégrales 8 bits + données RH décimales 8 bits + données T intégrales 8 bits + données T décimales 8 bits + somme de contrôle 8 bits.
Processus complet
Tout d'abord, arduino envoie un signal de démarrage haut à bas au DHT11 avec un délai de 18µs pour assurer la détection du DHT. Et puis Arduino tire la ligne de données et attend 20 à 40µs pour la réponse de DHT. Une fois que DHT détecte le signal de démarrage, il enverra un signal de réponse de faible niveau de tension à l'arduino d'un retard d'environ 80 µs. Et puis le contrôleur DHT tire la ligne de données et la conserve pendant 80µs pour l'organisation DHT de l'envoi des données.
Lorsque le bus de données est à un niveau de tension bas, cela signifie que DHT11 envoie un signal de réponse. Une fois cela fait, DHT effectue à nouveau une extraction de ligne de données pendant 80 µs pour préparer la transmission de données.
Le format de données envoyé par DHT à arduino pour chaque bit commence par un niveau de tension faible de 50 µs et la longueur du signal de niveau de tension élevé détermine si le bit de données est «0» ou «1».
Une chose importante est de s'assurer de la valeur de la résistance de rappel, car si nous plaçons le capteur DHT à <20 mètres de distance, une résistance de rappel de 5k est recommandée. Si vous placez le DHT à plus de 20 mètres, utilisez une résistance de rappel de valeur appropriée.
Schéma de circuit et explication
Un écran à cristaux liquides est utilisé pour afficher la température et l'humidité qui est directement connecté à arduino en mode 4 bits. Les broches de l'écran LCD à savoir RS, EN, D4, D5, D6 et D7 sont connectées à la broche numérique arduino numéro 2, 3, 4, 5, 6 et 7. Et un module de capteur DHT11 est également connecté à la broche numérique 12 d'arduino avec un Résistance pull-up 5k.
Description de la programmation
En programmation, nous allons utiliser des bibliothèques prédéfinies pour le capteur DHT11 et le module d'affichage LCD.
Ensuite, nous avons défini des broches pour les capteurs LCD et DHT et initialisé toutes les choses dans la configuration. Ensuite, en utilisant la fonction dht, lit le capteur DHT, puis en utilisant certaines fonctions dht, nous extrayons l'humidité et la température et les affichons sur l'écran LCD.
Ici, le symbole de degré est créé en utilisant la méthode des caractères personnalisés.