Arduino, Tutoriels

Comment utiliser DS18B20 capteur de température numérique avec Arduino

Ds18B20 Arduino

C’est quoi un capteur DS18B20

Le capteur DS18B20 est un capteur de température numérique à 1-Wire qui peut être utilisé pour mesurer la température dans une plage de -55 degrés Celsius à +125 degrés Celsius avec une précision de +/- 0,5 degrés Celsius.

Le capteur DS18B20 utilise un circuit intégré à semi-conducteur pour détecter la température et convertir cette information en un signal numérique. Il possède également une mémoire intégrée pour stocker les informations de calibration, ce qui permet une précision élevée et une répétabilité de la mesure de température. Il est également facile à utiliser et à intégrer dans les projets grâce à son interface de bus 1-Wire. Il peut être utilisé avec un grand nombre de microcontrôleurs et de plates-formes de développement, comme Arduino, Raspberry Pi, etc.

Le capteur est généralement disponible sous deux formes. L’une se présente sous forme de boîtier TO-92, qui ressemble à un simple transistor. L’autre se présente sous forme d’une sonde en acier inoxydable qui contient le capteur DS18B20. Il est généralement utilisé pour des applications de mesure de température dans des endroits difficiles d’accès ou dans des environnements industriels.

Ds18B20 Capteur De Température Digital Avec Sonde

Les applications du DS18B20

Le DS18B20 est utilisé dans de nombreuses applications en raison de sa simplicité d’utilisation, de sa précision et de sa compatibilité avec de nombreux microcontrôleurs, notamment :

  • Surveillance de température : Il est souvent utilisé pour surveiller les températures dans les systèmes de climatisation, les réfrigérateurs, les congélateurs, les fours, etc.
  • Contrôle de température : Il est utilisé pour contrôler la température dans les systèmes de chauffage, les sécheurs, les cuiseurs, les étuves, etc.
  • Mesure de température en milieu industriel : Il est applicable dans les usines de traitement des aliments, les usines chimiques, les centrales électriques, etc.
  • Domotique : Il est utilisé pour mesurer la température à l’intérieur et à l’extérieur des maisons et des immeubles pour le contrôle de la température et de l’humidité.
  • Automobile : Il est utilisé pour mesurer la température de l’huile, de l’eau, de l’air d’admission, de l’air de refroidissement, etc.
  • Instrumentation scientifique : Par exemple dans les laboratoires pour mesurer la température dans les expériences scientifiques.

Les broches du DS18B20

Il possède 3 broches :

  • VCC : broche d’alimentation (généralement connectée à 3,3 ou 5 volts)
  • GND : broche de masse (connectée à la masse du circuit)
  • Data : broche de données (connectée à un port de données du microcontrôleur)

Les éléments que vous aurez besoin pour utiliser le DS18B20 avec Arduino :

Le branchement

Ds18B2 Arduino
Ds18B20 Arduino
DS18B20 Arduino
  • La broche GND doit être connectée à la masse de l’Arduino
  • La broche VCC à la broche 3.3V de l’Arduino
  • La broche DQ à une broche digitale de l’Arduino (par exemple, la broche 2)
  • Branchez la résistance de pull-up de 4,7kΩ entre VCC et la broche DQ du DS18B20. Cette résistance est nécessaire pour maintenir un état haut sur la ligne de données 1-Wire lorsque le capteur n’est pas en cours d’utilisation

Note : Si vous utilisez DS18B20 avec sonde , connectez le fil rouge à 5V, le fil noir à la terre et le fil jaune au broche numérique 2 sur l’Arduino

Installation de la bibliothèque pour DS18B20

Pour installer la bibliothèque du capteur DS18B20, suivez les étapes suivantes :

  1. Dans l’Arduino IDE, accédez à Sketch > Include Library > Manage Libraries.
  2. Attendez que la liste des bibliothèques installées soit mise à jour.
  3. Utilisez le champ de recherche pour trouver “ds18b20”
  4. Sélectionnez la bibliothèque “DallasTemperature” par Miles Burton et cliquez sur installer.
  5. Il est important de noter que la bibliothèque “DallasTemperature” est spécifique au matériel et doit être utilisée en conjonction avec la bibliothèque “OneWire” pour communiquer avec le capteur DS18B20. Assurez-vous donc d’installer également cette bibliothèque.

Le code

  1. Ouvrez le logiciel Arduino IDE et créez un nouveau sketch. Ajoutez les lignes suivantes en haut du sketch pour inclure la bibliothèque OneWire et déclarer les variables nécessaires :
#include <OneWire.h>
OneWire ds(2); // Déclarez un objet OneWire lié à la broche 2

2. Dans la fonction setup(), ajoutez les lignes suivantes pour initialiser la communication avec le capteur :

Serial.begin(9600); // Initialisez la communication série à une vitesse de 9600 bauds

3. Dans la fonction loop(), ajoutez les lignes suivantes pour lire la température :

byte data[12]; // Tableau de données pour stocker les données du capteur
byte addr[8]; // Tableau d'adresses pour stocker l'adresse unique du capteur
if ( !ds.search(addr)) {
    Serial.println("Pas de capteur trouvé");
ds.reset_search();
delay(250);
return;
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC incorrect");
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44, 1); // Lancez une conversion de température
delay(1000); // Attendez la fin de la conversion
byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Demandez les données de température
for (int i = 0; i < 9; i++) { // Boucle pour lire les données
data[i] = ds.read();
}
ds.reset_search();
byte MSB = data[1];
byte LSB = data[0];
float tempRead = ((MSB << 8) | LSB); // Concaténez les octets pour obtenir la température
float TemperatureSum = tempRead / 16;
Serial.print("Température : ");
Serial.print(TemperatureSum);
Serial.println("°C");

4. Téléversez le sketch sur votre Arduino et ouvrez le moniteur série pour voir les données de température enregistrées par le capteur .

Note :

Il est possible de visualiser les données de température mesurées par le capteur DS18B20 sur un écran LCD.

Cette article vous aidera pour mieux comprendre comment utiliser un afficheur LCD : https://www.moussasoft.com/afficheur-lcd-arduino

Explication du code :

Il commence par inclure la bibliothèque OneWire pour utiliser les fonctions nécessaires à la communication avec le capteur. Ensuite, il déclare un objet OneWire lié à la broche 2 de l’Arduino, qui est utilisée pour la communication avec le capteur. Il initialise également la communication série à une vitesse de 9600 bauds pour permettre l’affichage des données sur le moniteur série. Il déclare ensuite des tableaux de données pour stocker les données envoyées par le capteur et son adresse unique. Il effectue des vérifications pour vérifier si un capteur a été trouvé sur le bus 1-Wire et si la valeur de contrôle de redondance cyclique (CRC) est correcte pour l’adresse du capteur. Il envoie ensuite une commande de conversion de température au capteur pour démarrer la mesure et attend la fin de la conversion pour lire les données. Il concatène ensuite les octets de température pour obtenir la température en degrés Celsius et imprime la température sur le moniteur série.

Lien outilles

Video explicatif du tutoriel de DS18B20 avec Arduino : https://www.youtube.com/watch?v=Y1__vmkr8-g

La fiche technique du DS18B20 : https://www.analog.com/media/en/technical-documentation/data-sheets/ds18b20.pdf