Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
espace_public:arduino_capteur_temp [2020/08/19 15:30] loickk |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Utilisation du capteur de température et d'humidité ====== | ||
- | |||
- | Dans le cadre de la construction du chauffage solaire aérothermique, un capteur de température et d'humidité est utilisé pour [[espace_public:electronique|piloter de manière électronique la ventilation de l'air dans le panneau]]. | ||
- | |||
- | ===== Fonctionnement du capteur ===== | ||
- | |||
- | Nous allons ici utiliser un capteur de température DHT11(([[https://www.velleman.eu/downloads/29/vma311_a4v01.pdf|Notice d'utilisation du capteur de température et d'humidité DHT 11 de Velleman VMA311]])). Ce offre un bon rapport qualité-performance et est calibrée pour fonctionner sur une carte arduino car son alimentation est en 5V. Sa plage de température est d'environ 0 à 50°C avec une erreur de +/-2°C. La plage de mesure de l'humidité relative est de 20 à 90% avec une erreur de +/-5%. Il existe un modèle plus précis : le DHT22. Il est de la même marque mais est deux fois plus cher. Sa plage de mesure de température et d'humidité s'étend respectivement à (-40 à 80°C +/-0.5°C) et à 0 à 100% HR (±2%) | ||
- | |||
- | {{ :espace_public:dht11.jpg?400 |}} | ||
- | |||
- | Le capteur DHT11 est composé de 3 broches, respectivement de gauche à droite : | ||
- | * Broche Signal | ||
- | * Broche + | ||
- | * Broche - | ||
- | |||
- | La broche signal doit être reliée à une piste de lecture numérique de la carte arduino (piste 7 sur la figure ci-dessous). La broche + doit être reliée à la masse (ground) de la carte Arduino repérée par les lettres GND. Enfin la broche + est reliée à l'alimentation 5V de la carte Arduino. | ||
- | |||
- | {{ :espace_public:dht_11_arduino.png?600 |}} | ||
- | |||
- | ===== Installation de la librairie ===== | ||
- | |||
- | Pour utiliser le capteur, ouvrez l'[[espace_public:arduino|IDE Arduino]] puis : | ||
- | |||
- | * Installer ensuite la librairie dans l'IDE en cliquant sur : Croquis/Inclure une bibliothèque/Gérer les bibliothèques | ||
- | * Rechercher la bibliothèque DHT sensor library de Adafruit et installer la. | ||
- | |||
- | Une fois cette étape réalisée, vous pouvez désormais utiliser la libraire DHT. Nous allons voir en détail le programme écrit dans l'IDE. | ||
- | |||
- | ==== Preambule du code ==== | ||
- | |||
- | #include <DHT.h> | ||
- | #define DHTPIN_1 7 | ||
- | #define DHTTYPE DHT11 | ||
- | DHT dht_1(DHTPIN_1, DHTTYPE); | ||
- | |||
- | * La première ligne permet d'appeler la librairie qui sera utilisée. Celle-ci comporte des commandes déjà configurées. La commande #include permet de charger la librairie dont le nom est compris entre les symboles <> | ||
- | * La seconde ligne déclare le nom attribué au port de lecture numéro 7. Ici, le nom utilisé est DHTPIN_1 mais on aurait pu utiliser toto ou n'importe quoi d'autre tant que l'ensemble du code est cohérent. | ||
- | * La troisième ligne définit le type de capteur utilisé. Ici c'est un capteur DHT11 mais l'on aurait pu utiliser un capteur DHT22. | ||
- | * Enfin la quatrième ligne est une commande. Elle attribue au nom dht_1 un capteur DHT de type DHTTYPE et branché sur le port DHTPIN_1. | ||
- | |||
- | ==== Boucle setup ==== | ||
- | void setup() { | ||
- | Serial.begin(9600); | ||
- | dht_1.begin(); | ||
- | } | ||
- | |||
- | * La commande Serial.begin définit le débit de données en bits par seconde. Ici, nous utilisons un débit de 9600 bits par secondes. | ||
- | * La commande dht_1.begin() démarre le capteur de température | ||
- | |||
- | void loop() { | ||
- | // put your main code here, to run repeatedly: | ||
- | // Capteur #1 | ||
- | float h_1 = dht_1.readHumidity(); | ||
- | // Temperature en degres Celsius | ||
- | float t_1 = dht_1.readTemperature(); | ||
- | Serial.print(" Humidity #1: "); | ||
- | Serial.print(h_1); | ||
- | Serial.print(" %\t"); | ||
- | Serial.print("Temperature #1: "); | ||
- | Serial.print(t_1); | ||
- | Serial.print(" *C "); | ||
- | delay(1000); | ||
- | } | ||
- | |||