Circuit intégré DS1621 et montage de programmation I2C

Figure 1 : Le DS1621, un classique intemporel combinant thermomètre numérique et thermostat programmable sur bus I2C.

Bienvenue sur TechFix Hub ! En 2001, programmer un capteur de température sans ordinateur était un défi technique passionnant. Aujourd'hui, avec l'avènement des microcontrôleurs à bas coût, nous pouvons faire bien mieux : non seulement lire et configurer le capteur, mais aussi en faire le cerveau d'un système de régulation thermique intelligent.

Le DS1621 de Dallas Semiconductor (aujourd'hui Maxim Integrated) est un circuit intégré remarquable. Il combine un thermomètre numérique (résolution de 0,5°C) et un thermostat avec hystérésis, le tout communicant via un simple bus à 2 fils (I2C). Dans ce guide, nous allons voir comment l'interfacer avec un Arduino ou un ESP32 pour créer votre propre station de monitoring thermique.

⚙️ 1. Comment Fonctionne le DS1621 ?

Contrairement aux capteurs analogiques (comme le LM35), le DS1621 effectue la conversion Analogique-Numérique (ADC) en interne. Voici ses atouts majeurs :

  • Communication I2C : Il utilise seulement deux lignes (SDA pour les données, SCL pour l'horloge), libérant les broches de votre microcontrôleur. Jusqu'à 8 DS1621 peuvent partager le même bus grâce à 3 broches d'adressage (A0, A1, A2).
  • Fonction Thermostat Intégrée : C'est sa force principale. Vous pouvez programmer deux registres : Th (Température Haute) et Tl (Température Basse). Lorsque la température dépasse Th, la broche TOUT passe à l'état HAUT. Elle ne repasse à l'état BAS que lorsque la température redescend en dessous de Tl, créant ainsi une hystérésis naturelle qui évite le papillonnement (cyclage rapide) d'un relais.

🛠️ 2. Liste des Composants (BOM) pour le Projet Moderne

Composant Valeur / Référence Rôle
Capteur DS1621 (ou équivalent moderne comme le TMP102) Thermomètre et thermostat numérique I2C.
Microcontrôleur Arduino Nano ou ESP32 Cerveau du système pour lire les données et afficher/controler.
Résistances 2 x 4,7 kΩ Pull-up indispensables sur les lignes SDA et SCL du bus I2C.
Affichage (Optionnel) Écran OLED I2C 0.96" (SSD1306) Pour afficher la température en temps réel sans PC.
Actionneur (Optionnel) Module Relais 5V ou MOSFET Pour piloter un ventilateur ou un élément chauffant via la broche TOUT.

🔌 3. Guide de Câblage et Exemple de Code

Le câblage est d'une simplicité enfantine grâce au bus I2C. N'oubliez pas les résistances de pull-up de 4,7 kΩ entre SDA/VCC et SCL/VCC, surtout si les fils dépassent 15 cm.

  • VDD ➔ 3.3V ou 5V (selon votre microcontrôleur)
  • GND ➔ GND
  • SDA ➔ Broche SDA (A4 sur Arduino Nano, GPIO 21 sur ESP32)
  • SCL ➔ Broche SCL (A5 sur Arduino Nano, GPIO 22 sur ESP32)
  • A0, A1, A2 ➔ GND (pour l'adresse I2C par défaut : 0x48)
#include <Wire.h>

#define DS1621_ADDR 0x48 // Adresse I2C par défaut (A0, A1, A2 à la masse)

void setup() {
  Serial.begin(115200);
  Wire.begin();
  
  // Démarrer la conversion de température en continu
  Wire.beginTransmission(DS1621_ADDR);
  Wire.write(0xAC); // Registre de configuration
  Wire.write(0x02); // Bit 1 = 1 (Conversion continue)
  Wire.endTransmission();
  
  Wire.beginTransmission(DS1621_ADDR);
  Wire.write(0xEE); // Commande "Start Convert T"
  Wire.endTransmission();
}

void loop() {
  Wire.beginTransmission(DS1621_ADDR);
  Wire.write(0xAA); // Commande "Read T"
  Wire.endTransmission();
  
  Wire.requestFrom(DS1621_ADDR, 2);
  if (Wire.available() == 2) {
    int tempMSB = Wire.read();
    int tempLSB = Wire.read();
    
    // Calcul de la température (résolution 0.5°C)
    float temperature = tempMSB + (tempLSB > 128 ? 0.5 : 0.0);
    
    Serial.print("Température: ");
    Serial.print(temperature);
    Serial.println(" °C");
  }
  delay(1000);
}
      

🚀 4. L'Upgrade "TechFix Hub" : Le Thermostat Connecté IoT

Pourquoi s'arrêter à un simple affichage série ? En utilisant un ESP32, vous pouvez transformer ce montage classique en un objet connecté puissant :

  • Dashboard Web Local : L'ESP32 peut héberger un petit serveur Web affichant la courbe de température en temps réel, accessible depuis votre smartphone sur le réseau Wi-Fi local.
  • Intégration Home Assistant : Utilisez le protocole MQTT pour envoyer les données de température à votre box domotique. Vous pourrez ainsi créer des automatisations complexes (ex: "Si la température du serveur dépasse 45°C, allumer le ventilateur et m'envoyer une notification Telegram").
  • Historique des Données : Ajoutez un module de carte microSD ou utilisez une base de données InfluxDB pour logger les températures sur plusieurs mois et analyser les tendances thermiques de votre pièce.

🔗 Pour Aller Plus Loin sur TechFix Hub

Les capteurs et la domotique n'ont plus de secrets pour vous ? Consultez ces guides complémentaires :

✅ Conclusion

Le DS1621 reste un composant pédagogique exceptionnel pour comprendre les bases de la communication I2C et la logique des thermostats à hystérésis. En abandonnant les anciens programmeurs dédiés au profit d'un simple Arduino ou ESP32, vous gagnez en flexibilité, en capacité d'affichage et en connectivité, ouvrant la porte à des projets de régulation thermique professionnels et peu coûteux.

🛠️ Un projet de régulation thermique en tête ?

Vous avez des questions sur le protocole I2C, le calcul de l'hystérésis, ou l'intégration du DS1621 avec un ESP32 ? Posez votre question dans les commentaires ci-dessous, la communauté TechFix Hub se fera un plaisir de vous aider !

Mots-clés : DS1621 Capteur de Température Bus I2C Arduino & ESP32 Thermostat DIY

Bottom Ad [Post Page]