Catégories: Circuits microcontrôleurs
Nombre de fois vus: 9996
Commentaires sur l'article: 0
Mesurer la température et l'humidité sur Arduino - une sélection de méthodes
Pour créer une station météo domestique ou un thermomètre, vous devez apprendre à associer la carte Arduino et un appareil pour mesurer la température et l'humidité. La mesure de la température peut être traitée à l'aide d'une thermistance ou d'un capteur numérique DS18B20, mais pour mesurer l'humidité utiliser des appareils plus complexes - capteurs DHT11 ou DHT22. Dans cet article, nous allons vous montrer comment mesurer la température et l'humidité à l'aide de l'Arduino et de ces capteurs.

Mesure de thermistance
La façon la plus simple de déterminer la température est d'utiliser thermistance. Il s'agit d'un type de résistance dont la résistance dépend de la température ambiante. Il existe des thermistances à coefficient de résistance de température positif et négatif - les thermistances PTC (également appelées posistors) et NTC, respectivement.
Dans le graphique ci-dessous, vous voyez la dépendance à la température de la résistance. La ligne pointillée montre la dépendance pour une thermistance TCS négative (NTC) et la ligne continue pour une thermistance TCS positive (PTC).

Que voyons-nous ici? La première chose qui attire votre attention est que le calendrier de la thermistance PTC est cassé et il sera difficile, voire impossible, de mesurer un certain nombre de valeurs de température, mais le calendrier de la thermistance NTC est plus ou moins uniforme, bien qu'il soit clairement non linéaire. Qu'est-ce que cela signifie? L'utilisation d'une thermistance NTC est plus facile à mesurer la température, car il est plus facile de découvrir la fonction par laquelle ses valeurs changent.
Pour convertir la température en résistance, vous pouvez prendre manuellement les valeurs, mais cela est difficile à faire à la maison et vous avez besoin d'un thermomètre pour déterminer les valeurs réelles de la température du milieu. Dans les fiches techniques de certains composants, un tel tableau est donné, par exemple, pour une série de thermistances NTC de Vishay.

Ensuite, vous pouvez organiser la traduction à travers les branches en utilisant la fonction if ... else ou switchcase. Cependant, s'il n'y a pas de tels tableaux dans les fiches techniques, vous devez calculer la fonction par laquelle la résistance change avec l'augmentation de la température.
Pour décrire ce changement, l'équation de Steinhart-Hart existe.

où A, B et C sont les constantes de thermistance déterminées en mesurant trois températures avec une différence d'au moins 10 degrés Celsius. En même temps, différentes sources indiquent que pour une thermistance NTC 10 kΩ typique, elles sont égales à:


B - coefficient bêta, il est calculé sur la base de la mesure de la résistance pour deux températures différentes. Il est indiqué soit dans la fiche technique (comme illustré ci-dessous), soit calculé indépendamment.

Dans ce cas, B est indiqué sous la forme:

Cela signifie que le coefficient a été calculé en fonction des données obtenues lors de la mesure de la résistance à des températures de 25 et 100 degrés Celsius, et c'est l'option la plus courante. Ensuite, il est calculé par la formule:
B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)
Un schéma de connexion typique d'une thermistance à un microcontrôleur est illustré ci-dessous.

Ici, R1 est une résistance constante, la thermistance est connectée à la source d'alimentation et les données sont prises à partir du milieu entre elles, le diagramme indique conditionnellement que le signal est fourni à la broche A0 - ce entrée analogique Arduino.

Pour calculer la résistance d'une thermistance, vous pouvez utiliser la formule suivante:
R de la thermistance = R1⋅ ((Vcc / Voutput) -1)
Pour traduire dans une langue compréhensible pour l'arduino, vous devez vous rappeler que l'arduino a un ADC 10 bits, de sorte que la valeur numérique maximale du signal d'entrée (tension 5V) sera 1023. Ensuite, conditionnellement:
-
Dmax = 1023;
-
D est la valeur réelle du signal.
Ensuite:
R de la thermistance = R1⋅ ((Dmax / D) -1)
Maintenant, nous utilisons cela pour calculer la résistance, puis calculer la température de la thermistance en utilisant l'équation bêta dans un langage de programmation pour Arduino. Le croquis sera comme ceci:

DS18B20
Encore plus populaire pour mesurer la température avec.Arduino a trouvé un capteur numérique DS18B20. Il communique avec le microcontrôleur via l'interface 1 fil, vous pouvez connecter plusieurs capteurs (jusqu'à 127) à un fil, et pour y accéder, vous devrez trouver l'ID de chacun des capteurs.
Remarque: vous devez connaître l'ID même si vous n'utilisez qu'un seul capteur.

Le schéma de connexion du capteur ds18b20 à Arduino ressemble à ceci:


Il existe également un mode d'alimentation parasite - son schéma de connexion ressemble à ceci (vous avez besoin de deux fils au lieu de trois):

Dans ce mode, le bon fonctionnement n'est pas garanti lors de la mesure de températures supérieures à 100 degrés Celsius.
Le capteur de température numérique DS18B20 se compose d'un ensemble complet de nœuds, comme tout autre SIMS. Vous pouvez regarder son appareil interne ci-dessous:

Pour l'utiliser, vous devez télécharger la bibliothèque Onewire pour Arduino, et pour le capteur lui-même, il est recommandé d'utiliser la bibliothèque DallasTemperature.

Cet exemple de code montre les bases du travail avec 1 capteur de température, le résultat en degrés Celsius est émis via le port série après chaque lecture.
DHT11 et DHT22 - capteurs d'humidité et de température

Ces capteurs sont populaires et souvent utilisés pour mesurer l'humidité et la température ambiante. Dans le tableau ci-dessous, nous avons indiqué leurs principales différences.

Le schéma de connexion est assez simple:
-
1 conclusion - nutrition;
-
2 conclusion - données;
-
3 conclusion - non utilisé;
-
4 conclusion - le fil général.
Si vous avez un capteur sous forme de module, il aura trois sorties, mais vous n'avez pas besoin de résistance - il est déjà soudé à la carte.

Pour le travail, nous avons besoin de la bibliothèque dht.h, elle n'est pas dans le jeu standard, elle doit donc être téléchargée et installée dans le dossier des bibliothèques dans le dossier avec l'arduino IDE. Il prend en charge tous les capteurs de cette famille:
-
DHT 11;
-
DHT 21 (AM2301);
-
DHT 22 (AM2302, AM2321).
Exemple d'utilisation de la bibliothèque:

Conclusion
De nos jours, créer votre propre station de mesure de la température et de l'humidité est très simple grâce à la plateforme Arduino. Le coût de tels projets est de 3-4 cents roubles. Pour la durée de vie de la batterie, et non la sortie vers un ordinateur, peut être utilisé affichage des caractères (nous les avons décrits dans un article récent), vous pouvez alors construire un appareil portable à utiliser à la maison et dans la voiture. Écrivez dans les commentaires ce que vous aimeriez apprendre d'autre sur l'artisanat artisanal simple sur arduino!
Voir aussi sur ce sujet:Capteurs populaires pour Arduino - connexion, diagrammes, croquis
Voir aussi sur electro-fr.tomathouse.com
: