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:43] loickk [Installation de la librairie] |
espace_public:arduino_capteur_temp [2021/03/10 18:06] loickk supprimée |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
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]]. | 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]]. | ||
+ | {{ :espace_public:photo_temp.jpg?600 |}} | ||
===== Fonctionnement du capteur ===== | ===== 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%) | + | 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**. Attention à ne pas alimenter ce capteur avec une tension d'alimentation de 12V qui détériorerait le capteur. |
+ | |||
+ | 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 |}} | {{ :espace_public:dht11.jpg?400 |}} | ||
Ligne 30: | Ligne 32: | ||
==== Preambule du code ==== | ==== Preambule du code ==== | ||
+ | Ouverture de la librairie 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 <> | ||
#include <DHT.h> | #include <DHT.h> | ||
+ | Déclaration du 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. | ||
#define DHTPIN_1 7 | #define DHTPIN_1 7 | ||
+ | Définition du type de capteur utilisé. Ici c'est un capteur DHT11 mais l'on aurait pu utiliser un capteur DHT22. | ||
#define DHTTYPE DHT11 | #define DHTTYPE DHT11 | ||
+ | Commande qui attribue au nom dht_1 un capteur DHT de type DHTTYPE et branché sur le port DHTPIN_1. | ||
DHT dht_1(DHTPIN_1, DHTTYPE); | 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 <> | + | ==== Initialisation ==== |
- | * 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. | + | void setup() |
- | * 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. | + | Définition du débit de données avec la commande Serial.begin en bits par seconde à une valeur de 9600 bits par secondes. |
+ | Serial.begin(9600); | ||
+ | Démarrage du capteur de température avec la commande dht_1.begin(). | ||
+ | dht_1.begin(); | ||
+ | } | ||
+ | |||
+ | ==== Boucle infinie ==== | ||
+ | void loop() | ||
+ | { | ||
+ | Création d'une nouvelle variable nommée h_1 de type float (variable réelle avec une réelle dite flottante) et attribution de la valeur de l'humidité lue par le capteur avec la commande dht_1.readHumidity() | ||
+ | // Capteur #1 | ||
+ | float h_1 = dht_1.readHumidity(); | ||
+ | Création d'une variable t_1 qui lit la température avec la commande dht_1.readTemperature(); | ||
+ | float t_1 = dht_1.readTemperature(); | ||
+ | Affichage des valeurs dans la console avec la commande Serial.print | ||
+ | Affichage du texte avec des apostrophes ("Comme ceci") pour afficher **Comme ceci** dans la console. | ||
+ | Affichage de la valeur des variables **t_1** et **h_1** avec les commandes Serial.print(t_1) et Serial.print(h_1) | ||
+ | Serial.print(" Humidity #1: "); | ||
+ | Serial.print(h_1); | ||
+ | Serial.print(" %\t"); | ||
+ | Serial.print("Temperature #1: "); | ||
+ | Serial.print(t_1); | ||
+ | Pour sauter une ligne à la fin de la ligne utiliser la commande Serial.println à la place de Serial.print | ||
+ | Serial.println(" *C "); | ||
+ | La commande delay permet de définir un laps de temps de pause permettant de définir la fréquence de mesure entre deux mesures. Ici nous utilisons 1000ms soit 1seconde. | ||
+ | delay(1000); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
- | ==== 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 | ||
- | ==== Boucle ==== | + | ===== Exécution du code ===== |
- | void loop() { | + | * Vérifier/Compiler le code |
- | + | * Téléverser le code | |
- | // Capteur #1 | + | * Afficher les mesures de température dans le Moniteur Série |
- | float h_1 = dht_1.readHumidity(); | + | |
- | 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.println(" *C "); | + | |
- | delay(1000); | + | |
- | } | + | |
- | * On crée une nouvelle variable nommée h_1 de type float (variable réelle avec une réelle dite flottante). On attribue la valeur de l'humidité lue par le capteur avec la commande dht_1.readHumidity() | + | {{ :espace_public:t_h.png?1000 |}} |
- | * De même, on crée une variable t_1 qui lit la température avec la commande dht_1.readTemperature(); | + | |
- | * La commande Serial.print permet d'afficher des valeurs dans la console. | + | |
- | * Pour afficher du texte, on utilise les apostrophes ("Comme ceci") pour afficher **Comme ceci** dans la console. | + | |
- | * Pour afficher la valeur des variables **t_1** et **h_1**, utiliser les commandes Serial.print(t_1) et Serial.print(h_1) | + | |
- | * Pour sauter une ligne à la fin de la ligne utiliser la commande Serial.println à la place de Serial.print | + | |
- | * La commande delay permet de définir un laps de temps de pause permettant de définir la fréquence de mesure entre deux mesures. Ici nous utilisons 1000ms soit 1seconde. | + | |
+ | Etape suivante: [[espace_public:arduino_ventilateur|Régulation d'un ventilateur 12 volts avec une carte Arduino]] |