Arduino dht22
C'est
un message très simple et petit, mais toujours simple et de petites
choses fabriquent des produits intelligents et d'entreprise. De toute
façon, c'est mon rêve que j'écris un programme que je peux vérifier la
température et l'humidité de ma pièce au lieu de regarder à partir de
petits appareils.
J'utilise le capteur de température et d'humidité
DHT22 avec Arduino Uno R3 et d'obtenir ses données de Arduino Serial
Monitor. Avant d'aller à l'étape suivante, je pense que je dois vous
dire quelque chose à propos du DHT22. Sa plage d'humidité est de 0 à
100% et la plage de température est de -40 à 125 ° C, c'est pourquoi je
préfère le DHT22 par rapport au DHT11.
Arduino avec capteur DHT22 et LCD
Après
l'interfaçage du capteur Arduino avec DHT11 (RHT01), voyons comment
connecter l'Arduino avec DHT22 (AM2302 - RHT03) Humidité numérique et
capteur de température.
Interfaçage Arduino avec le capteur DHT11 et
l'écran LCD Comme ce qui a été fait dans le sujet précédent, les valeurs
de température et d'humidité mesurées sont affichées sur l'écran LCD
1602.
Spécifications techniques du capteur DHT22:
Plage d'humidité: 0 ~ 100% rh
Précision d'humidité: ± 2% RH (max ± 5% RH)
Plage de températures: -40 ~ 80 ° C
Précision de la température: ± 0,5 ° C
Tension de fonctionnement: 3,3 V ~ 5,5 V
Résolution = 0,1
Matériel requis:
Conseil d'administration d'Arduino
Capteur DHT22 (ou AM2302 - RHT03)
Écran LCD 1602
Résistance de 4,7k ohms
Résistance variable de 10k ohms (ou potentiomètre)
Résistance de 330 ohms
Planche à pain
Fils de cavalier
Arduino + DHT22 + Circuit de connexion LCD:
Le diagramme du circuit d'interfaçage est illustré ci-dessous.
Le
DHT22 a 4 broches: VCC (+ 5V), broche de données, NC (PIN non
connectée) et GND (de gauche à droite). Une résistance de traction doit
être ajoutée à la broche de données avec une valeur comprise entre 4,7
et 10k.
La résistance variable 10K est utilisée pour contrôler le
contraste de l'écran LCD et la résistance de 330 ohms fournit la LED de
rétro-éclairage LCD.
Code Arduino:
Dans
cet interfaçage, j'ai utilisé la bibliothèque des capteurs DHT (DHT11,
DHT21 et DHT22) à partir d'AdaFruit. Cette bibliothèque initie le
capteur DHT22 et lit les valeurs de l'humidité et de la température.
La
bibliothèque DHT Adafruit renvoie un nombre flottant d'humidité ainsi
que la température et puisque la résolution du capteur DHT22 est de 0,1,
nous n'avons besoin que d'un nombre après le point. Pour cela, j'ai
utilisé deux variables avec Type int (signé 16 bits) qui sont RH et
Temp. La multiplication des nombres flottants par 10 nous donne ce dont
nous avons besoin en tant que nombres entiers sans aucun point.
Les
valeurs entières de l'humidité et de la température doivent être
affichées sur l'écran LCD après la lecture, et pour cela, j'ai utilisé
deux tableaux de caractères nommés: température (température de char [] =
«temp = 00,0 C»;) et humidité (humidité du charbon [ ] = «Rh =
00,0%»;). L'humidité et les valeurs de température sont copiées sur les
tableaux précédents avant de l'afficher. Par exemple, la valeur de
température est copiée dans la température du réseau comme suit:
Température [7] = (Temp / 100)% 10 + 48;
Cette ligne signifie que le 7ème caractère du tableau est égal à la température des centaines
température [8] = (temp / 10)% 10 + 48;
Cette ligne signifie que le 8ème caractère du tableau est égal aux dizaines de température
température [10] = temp% 10 + 48; (Temp% 10 est égal au reste de Temp / 10)
Et cette ligne signifie que le 10e caractère du tableau est égal à ceux de Temp
Par
exemple, si la température = 37,2 ° C et c'est la valeur que la
bibliothèque Adafruit renvoie en utilisant la fonction dht.readterature
(), en multipliant cette valeur par 10, nous obtenons 372.
rendements: (372/100)% 10 = 3
(372/10)% 10 = 7
372% 10 = 2
Le numéro 48 est utilisé pour convertir les nombres décimaux en ASCII car l'écran LCD fonctionne avec le format ASCII.
La température de la ligne [11] = 223; est pour le symbole de degré (°).
Le code Arduino complet est ci-dessous.