Arduino - Contrôle de la température

Dans ce tutoriel, nous allons réguler la température de la pièce à une plage confortable en utilisant un Arduino, un capteur de température DS18B20, un ventilateur et un élément chauffant. Lorsque la température est trop élevée, allumez le ventilateur de refroidissement pour aérer. Lorsque la température est froide, éteignez le ventilateur de refroidissement et allumez l'élément chauffant.

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×Relais
1×12V DC Ventilateur de refroidissement
1×Alternativement: 5V DC Ventilateur de refroidissement
1×12V Heating Element
1×Adaptateur secteur 12V
1×Connecteur d'alimentation DC
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 système de contrôle de la température ambiante

En bref, Arduino allumera le ventilateur lorsque la pièce sera chaude et activera l'élément chauffant lorsque la pièce sera froide. Voici le détail du fonctionnement d'un système de contrôle de la température d'une pièce en prenant l'exemple du contrôle de la température de la pièce de 18°C à 26°C :

  • Arduino lit la température à partir du capteur de température
  • Si la température dépasse 26°C, Arduino active le ventilateur et éteint l'élément chauffant
  • Si la température tombe en dessous de 18°C, Arduino éteint le ventilateur et active l'élément chauffant

Le processus ci-dessus est répété indéfiniment dans la boucle.

Le ventilateur fonctionne comme un ventilateur.

Si vous ne connaissez pas les capteurs de température, les éléments chauffants et les ventilateurs (brochage, fonctionnement, programmation...), renseignez-vous à leur sujet dans les tutoriels suivants :

Diagramme de câblage

Schéma de câblage de contrôle de température Arduino

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

Veuillez noter que, pour simplifier, le schéma ci-dessus montre deux adaptateurs de courant continu 12V, mais en pratique, vous pouvez utiliser un seul adaptateur de courant continu 12V pour à la fois le ventilateur et l'élément chauffant.

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-control-temperature */ #include <OneWire.h> #include <DallasTemperature.h> const int TEMP_THRESHOLD_UPPER = 26; // °C, upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 18; // °C, lower threshold of temperature, change to your desire value const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DQ pin const int RELAY_FAN_PIN = A5; // Arduino pin connected to relay which connected to fan const int RELAY_HEAT_PIN = A4; // Arduino pin connected to relay which connected to the heating element OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensors(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial sensors.begin(); // initialize the sensor pinMode(RELAY_FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { sensors.requestTemperatures(); // send the command to get temperatures temperature = sensors.getTempCByIndex(0); // read temperature in Celsius if(temperature > TEMP_THRESHOLD_UPPER){ Serial.println("HOT! The fan is turned on and the heating element is turned off"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on the fan digitalWrite(RELAY_HEAT_PIN, LOW); // turn off the heating element } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("COLD! The fan is turned off and the heating element is turned on"); digitalWrite(RELAY_FAN_PIN, LOW); // turn off the fan digitalWrite(RELAY_HEAT_PIN, HIGH); // turn on the heating element } delay(500); }

Dans le code ci-dessus, l'Arduino active le ventilateur lorsque la température dépasse 25°C, et maintient le ventilateur allumé jusqu'à ce que la température descende en dessous de 20°C.

Étapes rapides

  • Connectez Arduino au PC via le câble USB
  • Ouvrez Arduino IDE, sélectionnez la bonne carte et le bon port
  • Naviguez vers l'icône Libraries sur la barre gauche de l’Arduino IDE.
  • 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 téléverser le code vers Arduino
  • Rendez l'environnement autour du capteur plus chaud ou plus froid
  • Observez l'état du ventilateur et de l'élément chauffant

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 !