Arduino - Système de chauffage

Dans ce tutoriel, nous allons contrôler la température d'une pièce en utilisant un élément chauffant et un capteur de température DS18B20. Lorsque la température est trop basse, allumez l'élément chauffant. Lorsque la température est chaude, éteignez l'élément chauffant. Vous pouvez également adapter le code pour d'autres capteurs de température tels que DHT11 ou DHT22, LM35 à la place du capteur DS18B20.

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×4.7 kΩ Resistor
1×Relais
1×Élément chauffant
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é.

Sur l'élément chauffant et le capteur de température DS18B20

L'élément chauffant utilisé dans ce tutoriel utilise l'alimentation 12v. Si de l'énergie est fournie à l'élément chauffant, celui-ci émet de la chaleur. Pour contrôler l'élément chauffant par Arduino, nous devons utiliser un relais intermédiaire.

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

Diagramme de câblage

  • Schéma de câblage avec planche à pain
Schéma de câblage du système de chauffage 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 du système de chauffage avec contrôle de température par Arduino.

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

Comment fonctionne le système

  • Arduino lit la température à partir du capteur de température
  • Si la température descend en dessous d'un seuil inférieur, Arduino active les éléments chauffants
  • Si la température monte au-dessus d'un seuil supérieur, Arduino éteint l'élément chauffant

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

Code Arduino pour système de refroidissement avec capteur DS18B20

/* * 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-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 2 // Arduino pin connected to DS18B20 sensor's DQ pin #define RELAY_PIN A5 // Arduino pin connected to relay which connected to heating element const int TEMP_THRESHOLD_UPPER = 20; // upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 15; // lower threshold of temperature, change to your desire value 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_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("The heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // turn off } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } delay(500); }

Dans le code ci-dessus, l'Arduino active l'élément chauffant lorsque la température passe sous les 15°C et maintient l'élément chauffant allumé jusqu'à ce que la température dépasse les 20°C.

Étapes rapides

  • Connectez l'Arduino au PC via un câble USB
  • Ouvrez l'Arduino IDE, sélectionnez la bonne carte et le bon port
  • Accédez à 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 sur l'IDE Arduino pour téléverser le code sur Arduino
  • Rendez l'environnement autour du capteur plus chaud ou plus froid
  • Vérifiez la température de l'élément chauffant et de votre pièce

Connaissances avancées

La méthode de contrôle ci-dessus est le régulateur tout ou rien, également connu sous le nom de signalisateur ou régulateur "bang-bang". Cette méthode est très simple à mettre en œuvre.

Il existe une méthode alternative appelée le régulateur PID. Avec le régulateur PID, la température souhaitée est plus stable mais très difficile à comprendre et à mettre en œuvre. Par conséquent, le régulateur PID n'est pas populaire dans le contrôle de température.

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