TP Arduino capteur de température DS18B20
TP Arduino capteur de température DS18B20
...
Principe de fonctionnement de la régulation thermique du mini serre :
Si la température mesurée dans la mini serre dépasse la température consigne de 30°C, la lucarne s’ouvre et le ventilateur extracteur d’air se met en marche. Ainsi l’air chaud est expulsé hors de la serre et de l’air plus frais entre par la lucarne. La lucarne reste ouverte et le ventilateur en marche tant que la température reste au dessus de 30°C. Dès que la température descend en dessous de 30°C la lucarne se referme et le ventilateur extracteur s’arrête. Le même cycle recommence automatiquement dès que la température remonte à nouveau au dessus de 30°C….
Caractéristiques techniques du capteur de température :
Le DS18B20 est un capteur de température précis intégrant un convertisseur analogique – numérique :
- Plage de température mesurable : -55 à +125 °C
- Temps de conversion d’une mesure : environ 750 ms (12 bits)
But du programme :
Commande automatique d’ouverture / fermeture de la lucarne (ouverture) et activation du ventilateur extracteur d’air afin de réguler la température de la mini serre.
lucarne
ventilateur extracteur d’air
Entrée d’AIR FRAIS
Extraction d’AIR CHAUD
TP4 – REGULATION THERMIQUE
Capteur de température (type : ds18b20)
Complément d’informations :
il diffère des autres capteurs habituellement utilisés par le fait qu'il communique de manière logique avec les équipements. En effet, là où on récupèrera une tension analogique avec certains capteurs, ici, on utilisera un protocole de communication pour discuter avec lui. Ce protocole est le 1-Wire, créé par Dallas Semiconductor, également fabriquant du DS18b20.
Pour simplifier l'utilisation de ce protocole pour les utilisateurs Arduino, une librairie nommée OneWire a été écrite
PARTIE 1 : Branchement et Programmation du capteur de Température
Branchement du capteur en utilisant un « shield Moteur » :
(l’avantage du shield est également d’utiliser un cable 3 connecteur rouge : +5Volts – noir : le moins - Blanc : le signal) ce qui facilité la compréhension et la réalisation du cablage ).
Branchement du capteur directement sur la carte Arduino Uno (Attention pour la deuxième partie du TP il faudra piloter un moteur à courant continu en gérant les deux sens de rotation ouverture/fermeture de la lucarne donc une carte de contrôle du sens de rotation du moteur, appelé aussi Shield Moteur sera indispensable….)
Programmation du capteur pour Mesurer une température en Degré Clesius et afficher la valeur sur un moniteur série :
1- Démarrer le logiciel Arduino : « Démarrer / Tous les programmes /
2- Lancer l’application Ardublock : en cliquant dans la barre d’outils sur « Outils » puis « Ardublock ».
Réaliser le programme ci-dessous puis transférer le programme vers la carte Arduino UNO en
cliquant sur « Transférer » ou « Upload »:
Pour afficher sur l’ordinateur la température mesurée :
1- Afficher le fenêtre principale du logiciel Arduino en cliquant sur le volet
Au bas de l’écran
2- la fenêtre suivante apparaît puis sélectionner « Outils » puis
« Moniteur série »
La température apparaît dans la fenêtre suivante
La température est actualisé dans un délai de 1000 ms (millisecondes) soit 1 seconde.
PARTIE 2 : Programmation du capteur de Température + ventilateur extracteur d’air
Programmation Arduino :
Réaliser le programme ci-dessous puis « Transférer » le programme en cliquant sur « Transférer »
Si la température est supérieure ou égale à 28°C la DEL s’allume et le ventilateur extracteur d’air se met en marche
SINON la DEL s’éteind et le ventilateur extracteur d’air s’arrête
VCC → +5 volts
GND → GND
IN → D6
VCC → +5 volts
DQ → D5
GND → GND
+12 volts Ventilateur
Extracteur d’air
Détecteur de température
RELAIS = interrupteur commandé
Pin 10
GND
Branchement :
PARTIE 3: Programmation du capteur de Température + moteur d’ouverture de la lucarne + ventilateur extracteur d’air
Moteur d’Ouverture / Fermeture de la lucarne (petite fenêtre d’aération)
VCC → +5 volts
GND → GND
IN → D6
VCC → +5 volts
DQ → D5
GND → GND
+12 volts Ventilateur extracteur d’air
Détecteur de température
RELAIS = interrupteur commandé
Pin 10
GND
Branchement :
Programmation PARTIE 3 :
Réaliser le programme ci-dessous puis « Transférer » le programme en cliquant sur « Transférer »
Logigramme de fonctionnement du système
Programmation graphique avec Ardublock (Arduino)
Temp
> ou = 28 ° C
Allumer la DEL
OUI
NON
Début
Ouvrir la lucarne
Actionner ventilateur
Eteindre la DEL
Fermer la lucarne
Arrêter le ventilateur
Description du fonctionnement attendu :
Si la température est supérieur ou égale à 28°C :
- allumer la DEL
- mettre en marche le ventilateur extracteur d’air
- Ouvrir la lucarne en faisant tourner le moteur d’ouverture/fermeture de la lucarne pendant 6 secondes (6000 millisecondes).
ATTENTION : le ventilateur extracteur d’air doit continuer de fonctionner jusqu’à ce que la temprétarure redescende en dessous de 28°C
Si la température est inférieure à 28°C :
- éteindre la DEL
- arrêter le ventilateur extracteur d’air
- fermer la lucarne en faisant tourner le moteur d’ouverture/fermeture de la lucarne pendant 6 secondes (6000 millisecondes dans le sens inverse)
... ... ...
Mesure de température avec un capteur DS18B20
- Lecture du document de présentation du bus 1-Wire et analyse de la documentation du DS18B20
- Prendre connaissance des documents sur le bus 1-Wire.
- Quelle est la plage d'alimentation du capteur ? →
- Peut-il être alimenté directement sur la carte Arduino Uno ? →
- Quel est le code famille (family code) du circuit ? →
- Dans quelle plage de températures le capteur peut-il effectuer des mesures ? →
- La valeur de la température est fournie sous quel format binaire ?
- Mise en œuvre du capteur et analyse du programme
- Quelle est la sortie de la carte Arduino uno utilisée pour communiquer avec le capteur ? →
- Câbler le composant comme illustré sur le site.
- Le circuit est-il câblé en mode alimentation « externe » ou « parasite » →
Le programme source servant d'inspiration figure en Document ANNEXE 1.
- Quelle est la librairie nécessaire pour faire fonctionner le capteur sur la carte Arduino ?
→
- Surligner sur le document ANNEXE 1 le nom de cette librairie.
- Télécharger cette librairie depuis le site et l'installer sur le PC.
- Récupérer le projet Arduino sur le site et le désarchiver dans un sous-répertoire « 1-Wire » dans votre sous-répertoire de travail.
- Compiler et tester le programme. Sur le site figure une vidéo illustrant le résultat attendu.
Faire constater
- Justifier le format des variables :
data[9] →
addr[8] →
- Surligner dans le programme la ligne de commande permettant de lancer la conversion. Indiquer le nom donné à cette commande dans la documentation du capteur →
- Surligner dans le programme la ligne de commande permettant de lire la température. Indiquer le nom donné à cette commande dans la documentation du capteur →
- Surligner la partie récupérant toutes les données contenues dans la RAM du capteur.
- Quel est le nom et le format de la variable qui récupère la température ? →
- Expliciter ce qu'exécute la ligne de programmation : *temp = ((data[1] << 8) | data[0]) * 0.0625;
→
- Avant toute récupération de mesures sur capteur le « Family code » est-il vérifié ? Si oui surligner cette partie d'une autre couleur.
- Mettre en service l'analyseur logique et capturer une trame lors d'une mesure.
- Identifier le numéro de série (unique) du capteur →
- Identifier sur cette capture les différentes commandes commentées précédemment.
- Pour une température donnée (relevée dans le moniteur série Arduino) récupérer dans la trame capturée les octets de la RAM qui contiennent la température et vérifier que les 2 valeurs sont les mêmes.