Arduino - Capteur de température

Il existe de nombreux types de capteurs de température compatibles avec Arduino, tels que LM35, TH02, HDC1000 ou HTS221... Dans ce tutoriel, nous allons apprendre à utiliser le capteur de température étanche DS18B20 avec Arduino. Ce capteur est peu coûteux, facile à utiliser et a un aspect soigné.

Préparation du matériel

1×Arduino Uno R3
1×Câble USB 2.0 type A/B (pour PC USB-A)
1×Câble USB 2.0 type C/B (pour PC USB-C)
1×Capteur de température DS18B20 (avec adaptateur)
1×Capteur de température DS18B20 (sans adaptateur)
1×Fils de connexion
1×Optionnel: 9V Power Adapter for Arduino
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables STEM V3 (Arduino inclus)
1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Note d'achat: De nombreux capteurs DS18B20 sur le marché sont de faible qualité. Nous recommandons vivement d'acheter le capteur de la marque DIYables en utilisant le lien ci-dessus. Nous l'avons testé et il a bien fonctionné.

À propos du capteur de température à une seule sonde - DS18B20

Brochage

Le capteur de température DS18B20 possède trois broches :

  • Broche GND : doit être connectée à GND (0V)
  • Broche VCC : doit être connectée à VCC (5V ou 3.3V)
  • Broche DATA : est un bus de données 1-Wire. Elle doit être connectée à une broche numérique sur Arduino.

Le capteur a généralement deux formes : boîtier TO-92 (qui ressemble à un transistor) et sonde étanche. Nous utilisons la forme de sonde étanche dans ce tutoriel.

Brochage du capteur de température DS18B20

Connecter un capteur de température DS18B20 à un Arduino nécessite une résistance de tirage, ce qui peut être compliqué. Cependant, certains fabricants simplifient le processus en proposant un adaptateur de câblage qui intègre une résistance de tirage et un bornier à vis, rendant ainsi l'opération beaucoup plus facile.

Diagramme de câblage

  • Schéma de câblage avec plaque d'essai
Schéma de câblage du capteur de température Arduino

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

  • Schéma de câblage avec adaptateur (recommandé)
Schéma de câblage Arduino DS18B20

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

  • Schéma de câblage réel avec adaptateur
Schéma de câblage de l'adaptateur Arduino DS18B20

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Nous suggérons d'acheter un capteur DS18B20 équipé d'un adaptateur de câblage pour une connexion facile. L'adaptateur intègre une résistance, éliminant ainsi le besoin d'une résistance séparée dans le câblage.

Comment programmer pour le capteur de température DS18B20

  • Inclure la bibliothèque :
#include <OneWire.h> #include <DallasTemperature.h>
  • Déclarez un objet OneWire et un objet DallasTemperature correspondant à la broche connectée à la broche DATA du capteur.
OneWire oneWire(SENSOR_PIN); // configurer une instance oneWire DallasTemperature sensors(&oneWire); // passer oneWire à la bibliothèque DallasTemperature
  • Initialiser le capteur :
sensors.begin(); // initialiser le capteur
  • Envoyez la commande pour obtenir les températures :
sensors.requestTemperatures();
  • Lire la température en Celsius :
tempCelsius = sensors.getTempCByIndex(0);

*(Facultatif) Convertir Celsius en Fahrenheit :

tempFahrenheit = tempCelsius * 9 / 5 + 32;

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> const int SENSOR_PIN = 13; // Arduino pin connected to DS18B20 sensor's DQ pin OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature tempSensor(&oneWire); // pass oneWire to DallasTemperature library float tempCelsius; // temperature in Celsius float tempFahrenheit; // temperature in Fahrenheit void setup() { Serial.begin(9600); // initialize serial tempSensor.begin(); // initialize the sensor } void loop() { tempSensor.requestTemperatures(); // send the command to get temperatures tempCelsius = tempSensor.getTempCByIndex(0); // read temperature in Celsius tempFahrenheit = tempCelsius * 9 / 5 + 32; // convert Celsius to Fahrenheit Serial.print("Temperature: "); Serial.print(tempCelsius); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempFahrenheit); // print the temperature in Fahrenheit Serial.println("°F"); delay(500); }

Étapes rapides

  • Connectez l'Arduino au PC via un câble USB
  • Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
  • Accédez à l'icône Libraries dans la barre gauche de l'IDE Arduino.
  • Recherchez "DallasTemperature", puis trouvez la bibliothèque DallasTemperature de Miles Burton.
  • Cliquez sur le bouton Install pour installer la bibliothèque DallasTemperature.
Bibliothèque de température Dallas Arduino
  • On vous demandera d'installer la dépendance de la bibliothèque.
  • Cliquez sur le bouton Install All pour installer la bibliothèque OneWire.
Bibliothèque onewire Arduino
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code sur Arduino
  • Placez le capteur dans l'eau chaude et froide, ou saisissez le capteur avec votre main
  • Consultez le résultat sur le moniteur série.
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !