Arduino - Capteur de température - Relais

Ce tutoriel présente comment utiliser un Arduino et un capteur de température DS18B20 pour contrôler un relais. Plus précisément, l'Arduino est programmé pour mesurer continuellement la température à l'aide du capteur DS18B20. Le relais est ensuite ajusté selon les règles suivantes :

Le relais peut alors se connecter à un ventilateur, un élément chauffant, un élément de refroidissement ou d'autres choses.

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×Relay
1×DC Power Jack
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 relais et du capteur de température

Si vous ne connaissez pas les relais et les capteurs de température (brochage, fonctionnement, programmation...), renseignez-vous sur ces derniers dans les tutoriels suivants :

Diagramme de câblage

  • Schéma de câblage avec plaque d'essai
schéma de câblage du relais de 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 du relais du capteur de température arduino DS18B20

This image is created using Fritzing. Click to enlarge image

Nous suggérons l'achat d'un capteur DS18B20 équipé d'un adaptateur de câblage pour faciliter la connexion. L'adaptateur intègre une résistance, ce qui élimine le besoin d'une résistance séparée dans le câblage.

Code Arduino - Capteur de Température Déclenche Relais

/* * 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-relay */ #include <OneWire.h> #include <DallasTemperature.h> const int RELAY_PIN = A5; // Arduino pin connected to the relay's pin const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DATA pin const float TEMPERATURE_THRESHOLD = 20; // °C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensor(&oneWire); // pass oneWire to DallasTemperature library float temperature; int relay_state; void setup() { Serial.begin(9600); // initialize serial pinMode(RELAY_PIN, OUTPUT); sensor.begin(); // initialize the sensor } void loop() { sensor.requestTemperatures(); // send the command to get temperatures temperature = sensor.getTempCByIndex(0); // read temperature in Celsius if (temperature > TEMPERATURE_THRESHOLD) relay_state = HIGH; // set relay_state to HIGH else relay_state = LOW; // set relay_state to LOW digitalWrite(RELAY_PIN, relay_state); // control the relay // print to serial Serial.print("Temperature: "); Serial.print(temperature); Serial.print("°C => relay's state: "); Serial.println(relay_state); }

Étapes rapides

  • Effectuez le câblage entre l'Arduino, le capteur de température et le relais comme le montre le schéma ci-dessus.
  • Connectez l'Arduino au PC via un câble USB.
  • Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port.
  • Naviguez jusqu'à 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
  • Modifiez la température autour du capteur de température
  • Observez le changement du relais
  • Consultez le résultat sur le moniteur série, cela ressemble à ce qui suit :
COM6
Send
Temperature: 19.1°C => relay's state: 0 Temperature: 19.3°C => relay's state: 0 Temperature: 19.7°C => relay's state: 0 Temperature: 19.8°C => relay's state: 0 Temperature: 20.1°C => relay's state: 1 Temperature: 20.6°C => relay's state: 1 Temperature: 21.4°C => relay's state: 1
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Code Arduino - Capteur de température déclenche un relais avec tolérance

Pendant le fonctionnement, la température peut subir des fluctuations au-dessus ou en dessous du seuil prédéfini, entraînant des changements d'état fréquents et soudains sur le relais, ce qui peut causer des problèmes opérationnels imprévus. Pour résoudre ce problème, il est possible d'inclure une marge de tolérance dans le seuil. Le code ci-dessous montre comment cette solution peut être mise en œuvre :

/* * 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-relay */ #include <OneWire.h> #include <DallasTemperature.h> const int RELAY_PIN = A5; // Arduino pin connected to the relay's pin const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DATA pin const float TEMPERATURE_THRESHOLD = 20; // °C const float TOLERANCE = 0.5; // °C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensor(&oneWire); // pass oneWire to DallasTemperature library float temperature; int relay_state; void setup() { Serial.begin(9600); // initialize serial pinMode(RELAY_PIN, OUTPUT); sensor.begin(); // initialize the sensor } void loop() { sensor.requestTemperatures(); // send the command to get temperatures temperature = sensor.getTempCByIndex(0); // read temperature in Celsius if (temperature > (TEMPERATURE_THRESHOLD + TOLERANCE)) relay_state = HIGH; // set relay_state to HIGH else if (temperature < (TEMPERATURE_THRESHOLD - TOLERANCE)) relay_state = LOW; // set relay_state to LOW digitalWrite(RELAY_PIN, relay_state); // control the relay // print to serial Serial.print("Temperature: "); Serial.print(temperature); Serial.print("°C => relay's state: "); Serial.println(relay_state); }

Le code présenté ci-dessus spécifie un seuil de 20°C et une tolérance de 0,5°C. Les conditions suivantes s'appliquent :

  • Si la température est inférieure à 19,5°C, le relais est éteint.
  • Si la température est supérieure à 20,5°C, le relais est allumé.
  • Si la température est entre 19,5°C et 20,5°C, l'état du relais est maintenu inchangé.

※ 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!