- Vue d'ensemble du capteur DHT11:
- Conditions préalables:
- Installation de la bibliothèque LCD Adafruit sur Raspberry Pi:
- Installation de la bibliothèque Adafruit DHT11 sur Raspberry Pi:
- Schéma:
- Programmation Python pour le capteur DHT11:
- Mesure de l'humidité et de la température à l'aide de Raspberry Pi:
La température et l'humidité sont les paramètres les plus courants qui sont surveillés dans n'importe quel environnement. Il existe une multitude de capteurs pour mesurer la température et l'humidité, mais le plus utilisé est le DHT11 en raison de sa plage de mesure et de sa précision décentes. Il fonctionne également avec une communication à une broche et est donc très facile à interfacer avec des microcontrôleurs ou des microprocesseurs. Dans ce tutoriel, nous allons apprendre à interfacer le populaire capteur DHT11 avec Raspberry Pi et afficher la valeur de la température et de l'humidité sur un écran LCD 16x2. Nous l'avons déjà utilisé pour construire la station météo IoT Raspberry Pi.
Vue d'ensemble du capteur DHT11:
Le capteur DHT11 peut mesurer l'humidité relative et la température avec les spécifications suivantes
Plage de température: 0-50 ° C Précision de température: ± 2 ° C Plage d'humidité: 20-90% HR Précision d'humidité: ± 5%
Le capteur DHT11 est disponible sous forme de module ou sous forme de capteur. Dans ce tutoriel, nous utilisons la forme de module du capteur, la seule différence entre les deux est que sous forme de module, le capteur a un condensateur de filtrage et une résistance de tirage attachée à la broche de sortie du capteur. Donc, si vous utilisez le capteur seul, assurez-vous d'ajouter ces deux composants. Apprenez également l'interfaçage DHT11 avec Arduino.
Comment fonctionne le capteur DHT11:
Le capteur DHT11 est livré avec un boîtier de couleur bleue ou blanche. À l'intérieur de ce boîtier, nous avons deux composants importants qui nous aident à détecter l'humidité relative et la température. Le premier composant est une paire d'électrodes; la résistance électrique entre ces deux électrodes est décidée par un substrat de rétention d'humidité. Ainsi, la résistance mesurée est inversement proportionnelle à l'humidité relative de l'environnement. Plus l'humidité relative sera plus faible sera la valeur de la résistance et vice versa. Notez également que l'humidité relative est différente de l'humidité réelle. L'humidité relative mesure la teneur en eau de l'air par rapport à la température de l'air.
L'autre composant est une thermistance NTC montée en surface. Le terme NTC signifie coefficient de température négatif, pour l'augmentation de la température la valeur de la résistance diminuera
Conditions préalables:
On suppose que votre Raspberry Pi est déjà flashé avec un système d'exploitation et qu'il est capable de se connecter à Internet. Sinon, suivez le didacticiel Premiers pas avec Raspberry Pi avant de continuer.
Il est également supposé que vous avez accès à votre pi via les fenêtres de terminal ou via une autre application à travers laquelle vous pouvez écrire et exécuter des programmes python et utiliser la fenêtre de terminal.
Installation de la bibliothèque LCD Adafruit sur Raspberry Pi:
La valeur de la température et de l'humidité sera affichée sur un écran LCD 16 * 2. Adafruit nous fournit une bibliothèque pour faire fonctionner facilement cet écran LCD en mode 4 bits, alors ajoutons-le à notre Raspberry Pi en ouvrant la fenêtre du terminal Pi et en suivant les étapes ci-dessous.
Étape 1: Installez git sur votre Raspberry Pi en utilisant la ligne ci-dessous. Git vous permet de cloner n'importe quel fichier de projet sur Github et de l'utiliser sur votre Raspberry pi. Notre bibliothèque est sur Github, nous devons donc installer git pour télécharger cette bibliothèque dans pi.
apt-get install git
Étape 2: La ligne suivante renvoie à la page GitHub où la bibliothèque est présente, exécutez simplement la ligne pour cloner le fichier projet sur le répertoire de base Pi
git clone git: //github.com/adafruit/Adafruit_Python_CharLCD
Étape 3: Utilisez la commande ci-dessous pour changer de ligne de répertoire, pour accéder au fichier de projet que nous venons de télécharger. La ligne de commande est donnée ci-dessous
cd Adafruit_Python_CharLCD
Étape 4: Dans le répertoire, il y aura un fichier appelé setup.py , nous devons l'installer, pour installer la bibliothèque. Utilisez le code suivant pour installer la bibliothèque
installation sudo python setup.py
C'est-à-dire que la bibliothèque aurait dû être installée avec succès. Maintenant, procédons de la même manière à l'installation de la bibliothèque DHT qui provient également d'Adafruit.
Installation de la bibliothèque Adafruit DHT11 sur Raspberry Pi:
Le capteur DHT11 fonctionne avec le principe du système à un fil. La valeur de la température et de l'humidité est détectée par le capteur, puis transmise via la broche de sortie en tant que données série. Nous pouvons ensuite lire ces données en utilisant la broche d'E / S sur un MCU / MPU. Pour comprendre comment ces valeurs sont lues, vous devrez lire la fiche technique du capteur DHT11, mais pour l'instant, pour simplifier les choses, nous utiliserons une bibliothèque pour parler avec le capteur DHT11.
La bibliothèque DHT11 fournie par Adafruit peut également être utilisée pour DHT11, DHT22 et d'autres capteurs de température à un fil. La procédure d'installation de la bibliothèque DHT11 est également similaire à celle suivie pour l'installation de la bibliothèque LCD. La seule ligne qui changerait est le lien de la page GitHub sur laquelle la bibliothèque DHT est enregistrée.
Entrez les quatre lignes de commande une par une sur le terminal pour installer la bibliothèque DHT
git clone
cd Adafruit_Python_DHT sudo apt-get install build-essential python-dev sudo python setup.py install
Une fois cela fait, vous aurez les deux bibliothèques installées avec succès sur notre Raspberry Pi. Nous pouvons maintenant procéder à la connexion matérielle.
Schéma:
Le schéma de circuit complet Interfaçage DH11 avec Raspberry pi est donné ci-dessous, il a été construit avec Fritzing. Suivez les connexions et effectuez le circuit
Le capteur LCD et DHT11 fonctionne avec une alimentation + 5V, nous utilisons donc les broches 5V du Raspberry Pi pour alimenter les deux. Une résistance de rappel de valeur 1k est utilisée sur la broche de sortie du capteur DHT11, si vous utilisez un module, vous pouvez éviter cette résistance.
Un potentiomètre de 10k est ajouté à la broche Vee de l'écran LCD pour contrôler le niveau de contraste de l'écran LCD. A part cela, toutes les connexions sont assez simples. Mais notez les broches GPIO que vous utilisez pour connecter les broches car nous en aurons besoin dans notre programme. Le tableau ci-dessous devrait vous permettre de déterminer les numéros de broches GPIO.
Utilisez le tableau et effectuez vos connexions selon le schéma électrique. J'ai utilisé une maquette et des fils de cavalier pour faire mes connexions. Depuis que j'ai utilisé le module DHT11, je l'ai connecté directement à Raspberry Pi. Mon matériel ressemblait à ceci ci-dessous
Programmation Python pour le capteur DHT11:
Nous devons écrire un programme pour lire la valeur de la température et de l'humidité du capteur DHT11, puis afficher la même chose sur l'écran LCD. Puisque nous avons téléchargé des bibliothèques pour les capteurs LCD et DHT11, le code devrait être assez simple. Le programme complet python se trouve à la fin de cette page, mais vous pouvez lire plus loin pour comprendre comment le programme fonctionne.
Nous devons importer la bibliothèque LCD et la bibliothèque DHT11 dans notre programme pour utiliser les fonctions qui y sont liées. Puisque nous les avons déjà téléchargés et installés sur notre Pi, nous pouvons simplement utiliser les lignes suivantes pour les importer. Nous importons également la bibliothèque de temps pour utiliser la fonction de retard.
import time #import time for creation delay import Adafruit_CharLCD as LCD #Import LCD library import Adafruit_DHT #Import DHT Library for sensor
Ensuite, nous devons spécifier à quelles broches le capteur est connecté et quel type de capteur de température est utilisé. La variable sensor_name est affectée à Adafruit_DHT.DHT11 puisque nous utilisons ici le capteur DHT11. La broche de sortie du capteur est connectée au GPIO 17 du Raspberry Pi et nous attribuons donc 17 à la variable sensor_pin comme indiqué ci-dessous.
sensor_name = Adafruit_DHT.DHT11 # nous utilisons le capteur DHT11 sensor_pin = 17 # Le capteur est connecté à GPIO17 sur Pi
De même, nous devons également définir à quelles broches GPIO le LCD est connecté. Ici, nous utilisons l' écran LCD en mode 4 bits, nous aurons donc quatre broches de données et deux broches de contrôle à connecter aux broches GPIO du pi. En outre, vous pouvez connecter la broche du rétroéclairage à une broche GPIO si nous souhaitons également contrôler le rétroéclairage. Mais pour l'instant, je n'utilise pas cela, donc je lui ai attribué 0.
lcd_rs = 7 #RS de l'écran LCD est connecté à GPIO 7 sur PI lcd_en = 8 #EN de l'écran LCD est connecté à GPIO 8 sur PI lcd_d4 = 25 # D4 de l'écran LCD est connecté à GPIO 25 sur PI lcd_d5 = 24 # D5 de l'écran LCD est connecté à GPIO 24 sur PI lcd_d6 = 23 # D6 de LCD est connecté à GPIO 23 sur PI lcd_d7 = 18 # D7 de LCD est connecté à GPIO 18 sur PI lcd_backlight = 0 #LED n'est pas connecté, nous attribuons donc à 0
Vous pouvez également connecter un écran LCD en mode 8 bits avec Raspberry pi, mais les broches libres seront réduites.
La bibliothèque LCD d'Adafruit que nous avons téléchargée peut être utilisée pour tous les types d'écrans LCD caractéristiques. Ici, dans notre projet, nous utilisons un écran LCD 16 * 2, nous mentionnons donc le nombre de lignes et de colonnes à une variable comme indiqué ci-dessous.
lcd_columns = 16 # pour 16 * 2 LCD lcd_rows = 2 # pour 16 * 2 LCD
Maintenant que nous avons déclaré les broches LCD et le nombre de lignes et de colonnes pour l'écran LCD, nous pouvons initialiser l'écran LCD en utilisant la ligne suivante qui envoie toutes les informations requises à la bibliothèque.
lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) #Envoyer tous les détails des broches à la bibliothèque
Pour démarrer le programme, nous affichons un petit message d'introduction à l'aide de la fonction lcd.message () puis donnons un délai de 2 secondes pour rendre le message lisible. Pour l'impression sur la 2 ème ligne, la commande \ n peut être utilisée comme indiqué ci-dessous
lcd .message ('DHT11 avec Pi \ n -CircuitDigest') # Donner un temps de message d' introduction au repos (2) # attendre 2 secondes
Enfin, dans notre tout boucle, nous devons lire la valeur de la température et de l' humidité du capteur et l' afficher sur l'écran LCD pour toutes les 2 secondes. Le programme complet à l'intérieur de la boucle while est illustré ci-dessous
while 1: Boucle #Infinite
humidité, température = Adafruit_DHT.read_retry (sensor_name, sensor_pin) #lire du capteur et enregistrer les valeurs respectives dans la variable de température et d'humidité
lcd.clear () # Effacer l' écran LCD lcd.message ('Temp =%.1f C'% temperature) # Afficher la valeur de la température lcd.message ('\ nHum =%.1f %%'% humidité) #Affichage la valeur de Humidity time.sleep (2) # Attendez 2 sec puis mettez à jour les valeurs
Nous pouvons facilement obtenir la valeur de la température et de l'humidité du capteur en utilisant cette seule ligne ci-dessous. Comme vous pouvez le voir, il renvoie deux valeurs qui sont stockées dans la variable humidité et température. Les détails sensor_name et sensor_pin sont transmis en tant que paramètres; ces valeurs ont été mises à jour au début du programme
humidité, température = Adafruit_DHT.read_retry (sensor_name, sensor_pin)
Pour afficher un nom de variable sur l'écran LCD, nous pouvons utiliser les identifiants comme & d,% c etc. Ici, puisque nous affichons un nombre à virgule flottante avec un seul chiffre après la virgule décimale, nous utilisons l'identifiant%.1f pour afficher la valeur dans la température et l'humidité variables
lcd .message ('Temp =%.1f C'% température) lcd .message ('\ nHum =%.1f %%'% humidité)
Mesure de l'humidité et de la température à l'aide de Raspberry Pi:
Effectuez les connexions selon le schéma de circuit et installez les bibliothèques requises. Puis lancez le programme python donné à la fin de cette page. Votre écran LCD devrait afficher un message d'introduction, puis afficher la valeur actuelle de la température et de l'humidité comme indiqué dans l'image ci-dessous.
Si rien ne s'affiche sur l'écran LCD, vérifiez si la fenêtre du shell python affiche des erreurs, si aucune erreur n'est affichée, vérifiez à nouveau vos connexions et ajustez le potentiomètre pour faire varier le niveau de contraste de l'écran LCD et vérifiez si vous obtenez quelque chose. l'écran.
J'espère que vous avez compris le projet et que vous avez apprécié sa construction, si vous avez rencontré un problème pour le faire, signalez-le dans la section commentaires ou utilisez le forum pour obtenir de l'aide technique. Je ferai de mon mieux pour répondre à tous les commentaires.
Vous pouvez également consulter nos autres projets utilisant DHT11 avec d'autres microcontrôleurs.