Le projet consiste à réaliser un thermomètre numérique en utilisant le capteur de température DS18B20 et une carte Arduino. Ce capteur est idéal pour ce type d’application car il est précis, économique et facile à intégrer grâce à son bus unique 1-wire. Il permet de mesurer des températures comprises entre -55 °C et +125 °C avec une précision de ±0,5 °C. Le DS18B20 utilise un protocole de communication numérique appelé 1-wire, ce qui signifie que l’alimentation et les données peuvent passer par le même fil (avec pull-up). Chaque capteur possède un numéro de série unique, permettant de connecter plusieurs capteurs sur le même bus. La carte Arduino interroge le capteur, reçoit les données numériques de température et peut ensuite les afficher ou les utiliser dans un programme. Plage de température : -55 à +125 °CPrécision typique : ±0,5 °CRésolution : 9 à 12 bits, selon le programmeLe module DS18B20 utilise un bus unique. La tension d’alimentation varie de 3,0 V à 5,5 V et il n’y a pas de consommation en veille. Il peut mesurer des températures allant de -55 °C à +125 °C avec une précision de ±0,5 °C. Schéma du projet Programme du projet Pour ce projet, il vous faudra télécharger la librairie suivante : librairie.Pour l’installer, vous pouvez consulter notre cours dédié aux bibliothèques. #include <OneWire.h> #include <DallasTemperature.h> // Le fil DATA est connecté au port 2 de l'Arduino #define ONE_WIRE_BUS 2 // Création d'une instance OneWire pour communiquer avec les appareils OneWire (pas seulement les capteurs de température Maxim/Dallas) OneWire oneWire(ONE_WIRE_BUS); // On passe notre référence OneWire à la bibliothèque Dallas Temperature DallasTemperature sensors(&oneWire); /* * La fonction setup. Nous démarrons uniquement les capteurs ici */ void setup(void) { // Démarrer le port série Serial.begin(9600); Serial.println("Démo de contrôle de capteur de température Dallas"); // Initialiser la bibliothèque sensors.begin(); } /* * Fonction principale, lire et afficher la température */ void loop(void) { // Appel de sensors.requestTemperatures() pour envoyer une demande globale de température // à tous les appareils sur le bus Serial.print("Demande des températures..."); sensors.requestTemperatures(); // Envoi de la commande pour obtenir les températures Serial.println("TERMINÉ"); // Après avoir reçu les températures, on peut les afficher ici. // On utilise la fonction ByIndex et, à titre d'exemple, on prend la température du premier capteur uniquement. Serial.print("Température du capteur 1 (index 0) : "); Serial.println(sensors.getTempCByIndex(0)); }