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
1×USB 2.0 cable type A/B
1×DS18B20 Temperature Sensor (WITH Adapter)
1×DS18B20 Temperature Sensor (WITHOUT Adapter)
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

À 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

This image is created using Fritzing. Click to enlarge image

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

This image is created using Fritzing. Click to enlarge image

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

This image is created using Fritzing. Click to enlarge 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

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!