Mesurer des températures avec des capteurs DS18B20 (non Grove)
Objectif
L'objectif de ce montage est de mesurer simultanément deux températures avec des capteurs DS18B20 non Grove.
Par exemple, en sciences physiques, on pourra visualiser “en direct” la courbe de solidification (ou de fusion) de l'eau en même temps que celle de l'eau salée.
En ajoutant un troisième capteur, on pourrait aussi superposer celle du cyclohexane.
Nous verrons aussi comment faire communiquer la carte Arduino avec Regressi pour exploiter les données acquises.
Pour information, un projet complémentaire permet d'acquérir des températures à l'aide d'un capteur DS18B20 Grove et d'une interface graphique.
Présentation du capteur de température
Le capteur de température DS18B20 permet de mesurer avec une assez bonne précision des températures allant de -55°C à +125°C.
C'est un capteur numérique de température .
Ce capteur communique avec l’Arduino grâce à un bus 1-Wire ou (OneWire).
Sur un bus 1-Wire, il est possible de connecter plusieurs capteurs de température.
Pour éviter tout risque de conflit, chaque capteur dispose d'une adresse unique attribuée lors de sa fabrication.
Exemple : l'adresse de notre capteur est 0x28, 0x44, 0x62, 0x79, 0x97, 0x05, 0x03, 0x51
Pour déterminer l'adresse d'un capteur 1-Wire, on peut utiliser le scanner sur le site du carnetdumaker.net avec le montage ci-dessous.
Montage
Sur ce schéma le capteur est représenté en format transistor mais au lycée nous l'utiliserons au format sonde étanche.
Au lycée, il ne sera pas nécessaire de faire le montage, il est prêt à l'emploi sur un shield.
Code
Le code permet d'afficher sur l'écran LCD les deux températures mesurer à l'aide des sondes DS18B20 et de les envoyer sur la liaison série pour être lus par Regressi.
Pour simplifier le code, nous utiliserons plusieurs bibliothèques :
- DallasTemperature.h pour les capteur de température ;
- OneWire.h pour le bus 1-Wire ;
- LiquidCrystal_I2C.h pour l'écran LCD.
Ces bibliothèques ne sont pas incluses de base dans le logiciel Arduino, il faudra les installer au préalable. (voir à la fin)
Le code Arduino pour deux capteurs DS18B20 (non Grove) sur un même bus 1-Wire :
Le code Arduino pour trois capteurs DS18B20 Grove :
Attention les codes Arduino précédents ne fonctionnent pas avec l'interface graphique “Thermomètre”. Quelles modifications sont nécessaires. Voir ici.
Affichage des températures
En plus de l'écran LCD, les températures mesurées peuvent être affichées sur le moniteur série ou sur le traceur série.
Acquisition des températures avec Regressi
Il est possible d'acquérir les mesures de température directement dans Regressi avec une version récente (4.5.7).
- Dans le menu Fichier → Nouveau → Arduino / micro:bit :
- Avec le bouton Options, régler les paramètres de la liaison série pour que Regressi communique avec la carte Arduino.
- Cliquer sur le bouton Acquisition pour obtenir les mesures. Le graphique s'affiche automatiquement.
- Cliquer sur Stop pour arrêter l'acquisition.
- Cliquer sur traitements pour envoyer les données dans Regressi.
- Vous pouvez maintenant traiter ces données avec les fonctions habituelles de Regressi.
Exemple de courbes de fusion obtenues au lycée
Courbes de fusion obtenues avec 3 capteurs
Rappel sur l'installation d'une bibliothèque
Par exemple, pour installer la bibliothèque DallasTemperature.h :
- Ouvrez l’IDE Arduino et aller dans Croquis –> Inclure une bibliothèque –> Gérer les bibliothèques ;
- Sélectionner puis installer la bibliothèque indiquée ci-dessous.
Statistiques du site
- Cette page a été consultée par 1 visiteurs aujourd'hui.
- Cette page a été consultée par 1842 visiteurs depuis le 02/01/2024.