Description
Voici un descriptif complet du module sonde thermique étanche DS18B20, accompagné d’une guide détaillée d’utilisation avec Arduino, exemples de connexion et code de programmation.
🌡️ Sonde Thermique Étanche DS18B20 – Capteur de Température Numérique pour Arduino
✅ Description Générale
La DS18B20 est une sonde de température numérique étanche qui mesure les températures avec une haute précision dans une gamme large (-55°C à +125°C). Enveloppée dans un tube d’acier inoxydable et dotée de câbles, elle est parfaite pour des mesures dans des environnements humides ou liquides, comme :
- Eau
- Sol
- Chauffage
- Aquariums
⚙️ Caractéristiques techniques
| Caractéristique | Valeur |
|---|---|
| Capteur interne | DS18B20 numérique |
| Gamme de température | de -55°C a +125°C |
| Précision | ±0.5°C (de -10°C à +85°C) |
| Résolution | Programmable : 9–12 bits |
| Protocole | 1-Wire |
| Alimentation | 3.0 – 5.5V |
| Sortie | Numérique (1-Wire, non analogique) |
| Longueur du câble typique | 90–100 cm (varie selon le vendeur) |
| Imperméabilité | Oui (acier inoxydable 304 ou 316) |
📌 Chaque capteur DS18B20 a un ID unique à 64 bits, donc vous pouvez en connecter plusieurs sur le même pin Arduino !
🧪 Connexion à la carte Arduino
🧰 Matériel nécessaire
- Sonde DS18B20 imperméable
- 1 Résistance de 4,7 kΩ
- Arduino Uno, Nano, Mega, etc.
- Plaque d’essai et câbles
🔌 Schéma de connexion
| Fil sonde | Connexion |
|---|---|
| Noir | GND |
| Rouge | 5V |
| Jaune | Données (par exemple D2) |
Important : connecte une résistance de 4,7 kΩ entre le pin données (jaune) et 5V (pull-up), sinon le capteur ne fonctionnera pas correctement.
💻 Programmation Arduino
📦 Bibliothèques Nécessaires
Installe les bibliothèques suivantes depuis Arduino IDE → Gestion des bibliothèques:
- OneWire de Paul Stoffregen
- DallasTemperature de Miles Burton
📜 Code de Base – Lecture de Température d’une DS18B20
#include <OneWire.h>
#include <DallasTemperature.h>
// Pin dati della sonda collegato al pin D2
#define ONE_WIRE_BUS 2
// Setup comunicazione OneWire
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
sensors.begin(); // inizializza i sensori
}
void loop() {
sensors.requestTemperatures(); // richiede la temperatura da tutti i sensori
float tempC = sensors.getTempCByIndex(0); // legge la temperatura del primo sensore trovato
Serial.print("Temperatura: ");
Serial.print(tempC);
Serial.println(" °C");
delay(1000);
}
🧠 Approfondissements et Fonctions Utiles
🔄 Plus de sondes sur le même puce
Chaque DS18B20 a un ID unique: vous pouvez le lire avec sensors.getAddress() et puis l’utiliser pour lire la température d’une sonde spécifique.
📏 Configurer la Résolution
sensors.setResolution(12); // valori validi: 9, 10, 11, 12 (più bit = maggiore precisione, ma lettura più lenta)
🔋 Avantages de la DS18B20
- ✅ Sortie digitale stable et précise
- ✅ Idéale pour des environnements humides ou liquides
- ✅ Supporte plusieurs capteurs en parallèle (grâce au protocole 1-Wire)
- ✅ Code simple et largement supporté
📚 Exemples d’Application
- 🌡️ Surveillance de la température du sol ou de serre
- 💧 Surveillance des liquides (eau, bière, vin, etc.)
- 🐟 Contrôle de la température des aquariums
- 🔥 Contrôle des chaudières ou des systèmes de chauffage
- 🧪 Projets IoT ou data logging avec microSD ou WiFi
🛠 Conseils Pratiques
- Utilise un écran thermorétractable ou des connecteurs étanches si vous prolongez le câble.
- Si vous alimentez le capteur à 3.3V (par exemple sur ESP32), vérifiez que la longueur du câble est limitée (pour éviter les chutes de tension).
- Vous pouvez alimenter le DS18B20 en mode parasite, mais il est recommandé de privilégier l’alimentation normale pour la fiabilité.
✅ Conclusion
La sonde étanche DS18B20 est l’un des capteurs de température les plus polyvalents, précis et faciles à utiliser avec Arduino. Idéal pour :
- Utilisation dans des environnements extérieurs ou liquides
- Projets multiples sur un même pin
- Applications IoT de température
✅ 1. Intégration avec des afficheurs LCD ou OLED
Option A : Afficheur LCD 16×2 avec I2C
🔧 Matériel:
- DS18B20
- Afficheur LCD 16×2 avec adaptateur I2C
- Arduino Uno/Nano
- Résistance 4,7kΩ
📦 Bibliothèques:
LiquidCrystal_I2COneWire,DallasTemperature
📜 Code de base:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 16, 2); // cambia l'indirizzo se necessario
void setup() {
lcd.init();
lcd.backlight();
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp);
lcd.print(" C");
delay(1000);
}
Option B : Afficheur OLED 128×64 I2C (par exemple SSD1306)
📦 Bibliothèques:
Adafruit_SSD1306Adafruit_GFXDallasTemperature,OneWire
📜 Code de base disponible si vous souhaitez également des graphiques personnalisés. Faites-le-moi savoir si vous le souhaitez !
📡 2. Intégration Wi-Fi avec ESP8266/ESP32 (surveillance à distance)
Solution A : ESP8266/ESP32 avec Serveur Web Local
📦 Bibliothèques :
WiFiESPAsyncWebServer(oWebServer.h)DallasTemperature,OneWire
📜 Code : ESP crée une page web accessible depuis PC/smartphone
#include <WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <WebServer.h>
const char* ssid = "TUO_SSID";
const char* password = "TUA_PASSWORD";
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
WebServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(1000);
sensors.begin();
server.on("/", []() {
sensors.requestTemperatures();
float t = sensors.getTempCByIndex(0);
server.send(200, "text/html", "<h1>Temperatura: " + String(t) + " °C</h1>");
});
server.begin();
}
void loop() {
server.handleClient();
}
📲 Ouvrez le navigateur sur votre smartphone → entrez l’IP du module ESP (imprimé dans le Serial Monitor).
Solution B : ESP + Blynk (ou Telegram) → Application smartphone
- Visualisez la température en temps réel
- Ajoutez des notifications, des graphiques et des journaux dans le cloud
Je peux vous fournir du code prêt pour Blynk (2.0) si vous voulez une application sans écrire l’interface de zéro.
📁 3. Sauvegarde sur carte SD
🔧 Matériel :
- Module carte SD (microSD)
- Arduino Uno/Mega
- DS18B20
📦 Bibliothèques:
SD.hSPI.hDallasTemperature,OneWire
📜 Code de base:
#include <SPI.h>
#include <SD.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
#define SD_CS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
File logFile;
void setup() {
Serial.begin(9600);
sensors.begin();
SD.begin(SD_CS);
}
void loop() {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
logFile = SD.open("log.csv", FILE_WRITE);
if (logFile) {
logFile.print(millis() / 1000);
logFile.print(",");
logFile.println(temp);
logFile.close();
}
delay(5000);
}
📝 Fichiers log.csv prêt pour Excel/LibreOffice.
📲 4. Afficher les Données sur Smartphone
Option A: Serveur Web (ESP)
- Ouvrir l’adresse IP du module depuis le navigateur (pas d’application nécessaire)
- Disposition HTML personnalisable
Option B: Application Blynk 2.0
- Tableau de bord graphique: jauge, graphiques, notifications
- Lecture de la température et automatisations (par exemple « allumer la ventilation si >30°C »)
Option C: Bot Telegram (ESP32/ESP8266)
- Recevoir des messages avec la température via Telegram
📦 Projet Complet Possible
Système de Surveillance Intelligente de Température
✔️ DS18B20 étanche
✔️ ESP32 avec Wi-Fi
✔️ Affichage sur écran OLED
✔️ Envoi vers smartphone via Web ou Blynk
Nous avons les fichiers de données techniques de tous les composants, si ce n’est pas présent dans la fiche de téléchargement du produit, envoyez-nous un message via le formulaire de contact et nous le publierons le plus rapidement possible sur notre site.
Nous disposons de fiches techniques de tous les composants. Si celle-ci n’est pas disponible dans la fiche de téléchargement du produit, envoyez-nous un message via le formulaire de contact et nous la publierons sur notre site dès que possible.
Tutorial : Comment utiliser le capteur thermique DS18B20
Le sondes thermiques DS18B20 mesurent des températures précises dans des environnements humides et secs. Idéales pour les projets d’humidité et de température.
Ce qu’il faut
- Arduino
- Résistance pull-up (4,7kΩ)
- Câble de connexion
- 1. Connectez le capteur de température au pin DQ de l’Arduino via le câble.
Étapes
- 2. Connectez la résistance pull-up entre le pin DQ et la VCC de 5V.
- 3. Connectez le pin GND du capteur au GND de l’Arduino.
- 4. Chargez le code Arduino fourni.
- 5. Vérifiez le fichier de données techniques pour la précision de mesure.
- 6. Testez le capteur avec une application de test.
- 6. Testez le capteur avec une application de test.
- 7. Vérifiez la température dans différents environnements.
- 8. Configurez l’alarme de température si nécessaire.
Exemple de code
```void loop() { // Leggi la temperatura OneWire ds(DQ); DigitalClock ds; float tempC = ds.getTempC(); Serial.print("Temperatura: "); Serial.print(tempC); Serial.println("°C"); delay(1000);}```
Mini-projet
Construisez un système de surveillance de la température pour un réservoir d’eau.
Erreurs courantes
- Oublier la résistance pull-up.
- Connecter le pin DQ à VCC.
- Ne vérifiez pas la connexion avant l’utilisation.
- Configurer l’alarme de température sans la configurer.
Accessoires conseillés
- Arduino UNO
- Afficheur LCD 16×2
- Batterie 3,7V
- Câble USB
Questions fréquentes
Comment puis-je vérifier la connexion ?
Vérifiez que la sonde est bien connectée et que la résistance pull-up est installée correctement.
Quelle est la précision de mesure ?
Vérifiez le datasheet pour la précision de mesure.
Peux-je utiliser cette sonde avec un microcontrôleur différent ?
Oui, mais vérifiez la compatibilité avec le pin DQ et la tension d’alimentation.











Avis
Il n’y a pas encore d’avis.