Description
Capteur de Température DS18B20 avec Sonde
Le capteur de température DS18B20 avec sonde est un capteur numérique qui utilise un bus 1-Wire pour communiquer avec un microcontrôleur, tel qu’un Arduino. Il est capable de mesurer des températures de -55°C à +125°C avec une précision de ±0.5°C dans la plage de -10°C à +85°C.
Caractéristiques détaillées
- Plage de tension: 3.0V à 5.5V
- Plage de température: -55°C à +125°C
- Précision: ±0.5°C (entre -10°C et +85°C)
- Résolution: Programmable de 9 à 12 bits
- Interface: Bus 1-Wire
- Adresse unique: Chaque capteur possède une adresse 64 bits unique, permettant l’utilisation de plusieurs capteurs sur le même bus
- Dimensions sonde: Ø6 x 35 mm
- Longueur cordon: 1M
Fonctionnement
Le DS18B20 utilise un bus 1-Wire qui nécessite seulement une ligne de données (et la masse) pour la communication avec un microcontrôleur. Le capteur peut être alimenté directement par la ligne de données (“alimentation parasite”), éliminant ainsi le besoin d’une alimentation externe.
Brochage
- Pin 1 (GND): Connecté à la masse (GND)
- Pin 2 (DQ): Connecté à une broche numérique de l’Arduino (avec une résistance de pull-up de 4.7kΩ à VCC)
- Pin 3 (VDD): Connecté à l’alimentation 3.3V ou 5V (peut être laissé non connecté si l’alimentation parasite est utilisée)
Applications
- HVAC: Contrôles environnementaux
- Monitoring de température: Dans les bâtiments, équipements, et machines
- Systèmes de contrôle de processus: Pour le suivi et la régulation des températures
Utilisation avec Arduino Uno
Composants nécessaires
- 1 x Capteur DS18B20
- 1 x Arduino Uno
- 1 x Résistance de 4.7kΩ
- Fils de connexion
- Breadboard
Exemple de code basique
#include <OneWire.h>
#include <DallasTemperature.h>
// Définir la broche de données
#define ONE_WIRE_BUS 2
// Créer une instance de la bibliothèque OneWire
OneWire oneWire(ONE_WIRE_BUS);
// Passer la référence OneWire à la bibliothèque DallasTemperature
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
sensors.begin();
}
void loop() {
sensors.requestTemperatures(); // Envoyer la commande pour obtenir les températures
float temperatureC = sensors.getTempCByIndex(0); // Lire la température en Celsius
Serial.print("Température: ");
Serial.print(temperatureC);
Serial.println(" °C");
delay(1000); // Attendre 1 seconde
}
Explication détaillée du code
- Inclusion des bibliothèques: Le code commence par inclure les bibliothèques nécessaires
OneWire
etDallasTemperature
, qui simplifient la communication avec le capteur DS18B20. - Définition de la broche de données: La broche 2 de l’Arduino est définie comme la broche de données du capteur.
- Initialisation des bibliothèques: Une instance de la classe
OneWire
est créée pour gérer la communication 1-Wire, puis une instance deDallasTemperature
est créée en passant l’instanceOneWire
. - Fonction
setup()
: La communication série est initialisée pour permettre l’affichage des données dans le moniteur série, et la bibliothèqueDallasTemperature
est démarrée avec la méthodebegin()
. - Fonction
loop()
: La fonction principale du programme:- Envoie une commande pour lire la température avec
requestTemperatures()
. - Lit la température du capteur avec
getTempCByIndex(0)
et l’affiche dans le moniteur série. - Attend une seconde avant de répéter le cycle.
- Envoie une commande pour lire la température avec
Composants nécessaires (code avancé)
- 1 x Capteur DS18B20 avec sonde
- 1 x Arduino Uno
- 1 x Écran LCD I2C 1602
- 1 x Résistance 4.7kΩ
- Fils de connexion
- Breadboard
Exemple de code pour afficher la température sur un écran LCD I2C 1602
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define ONE_WIRE_BUS 2 // Pin connectée au capteur DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C de l'écran LCD
void setup() {
lcd.begin();
lcd.backlight();
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperatureC);
lcd.print(" C");
delay(1000);
}
Explication détaillée du code
- Bibliothèques: Les bibliothèques
OneWire
,DallasTemperature
,Wire
etLiquidCrystal_I2C
sont incluses pour la communication avec le capteur et l’écran LCD. - Déclaration des pins et objets: La broche pour le bus OneWire est définie, et les objets
oneWire
,sensors
etlcd
sont initialisés. - Initialisation: Dans
setup()
, la communication avec le capteur et l’écran LCD est commencée. - Lecture et affichage de la température:
- Code de base: La température est lue avec
sensors.requestTemperatures()
etsensors.getTempCByIndex(0)
, puis affichée sur le moniteur série. - Code avancé: La température est lue de la même manière, mais affichée sur l’écran LCD à l’aide de
lcd.setCursor()
etlcd.print()
.
- Code de base: La température est lue avec
Brochage
- VCC (rouge): Connecté à la broche 5V de l’Arduino
- GND (noir): Connecté à la broche GND de l’Arduino
- DQ (jaune): Connecté à la broche numérique 2 de l’Arduino avec une résistance de pull-up de 4.7kΩ entre DQ et VCC
- SDA (LCD): Connecté à la broche A4 de l’Arduino
- SCL (LCD): Connecté à la broche A5 de l’Arduino
Installation de Drivers/bibliothèques
- Bibliothèque OneWire:
- Ouvrez l’IDE Arduino.
- Allez dans le menu Sketch > Include Library > Manage Libraries.
- Recherchez “OneWire” et installez la bibliothèque.
- Bibliothèque DallasTemperature:
- Suivez les mêmes étapes que ci-dessus, en recherchant “DallasTemperature”.
- Bibliothèque LiquidCrystal_I2C:
- Suivez les mêmes étapes, en recherchant “LiquidCrystal_I2C”.
Mots clés: temperature, sensor, probe, capteur de température, sonde DS18B20, mesure de température, capteur étanche, temperature sensor, DS18B20 probe, Arduino temperature sensor, waterproof sensor.