ESP8266 - Système de chauffage

Dans ce tutoriel, nous utiliserons l'ESP8266, un élément chauffant et le capteur de température DS18B20 pour contrôler la température d'une pièce.

De plus, le code peut être adapté pour d'autres capteurs de température tels que DHT11, DHT22 ou LM35 au lieu du capteur DS18B20.

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×DS18B20 Temperature Sensor (WITH Adapter)
1×DS18B20 Temperature Sensor (WITHOUT Adapter)
1×4.7 kΩ resistor
1×Relay
1×Heating Element
1×12V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

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 de l'élément chauffant et du capteur de température DS18B20

L'élément chauffant utilisé dans ce tutoriel nécessite une alimentation de 12v. Si de l'énergie est fournie à l'élément chauffant, il générera de la chaleur. Pour contrôler l'élément chauffant avec un ESP8266, un relais doit être utilisé comme intermédiaire.

Si vous n'êtes pas familier avec les capteurs de température et les éléments chauffants (brochages, fonctionnement, programmation, etc.), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage du système de chauffage ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Fonctionnement du système

  • L'ESP8266 surveille la température à partir du capteur de température.
  • Si la température descend en dessous d'une certaine limite inférieure, l'ESP8266 activera les éléments chauffants.
  • Lorsque la température dépasse une limite supérieure spécifique, l'ESP8266 désactivera les éléments chauffants.

La boucle est répétée en continu.

Code ESP8266 pour système de refroidissement avec capteur DS18B20

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN D7 // The ESP8266 pin connected to DS18B20 sensor's DQ pin #define RELAY_PIN D1 // The ESP8266 pin connected to relay which connected to heating element const int THRESHOLD_OFF = 20; // upper threshold of temperature, change to your desire value const int THRESHOLD_ON = 15; // lower threshold of temperature, change to your desire value OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. DS18B20.begin(); // initialize the sensor pinMode(RELAY_PIN, OUTPUT); // initialize digital pin as an output } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures temperature = DS18B20.getTempCByIndex(0); // read temperature in Celsius if(temperature > THRESHOLD_OFF) { Serial.println("The heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // turn off } else if(temperature < THRESHOLD_ON){ Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } delay(500); }

Dans le code ci-dessus, lorsque la température est inférieure à 15°C, l'ESP8266 activera l'élément chauffant. L'élément chauffant restera activé jusqu'à ce que la température dépasse 20°C.

Étapes rapides

Pour commencer avec l'ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
  • Connectez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, telle que (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Connectez votre ESP8266 à l'ordinateur avec un câble USB.
  • Ouvrez Arduino IDE et sélectionnez la bonne carte et le bon port.
  • Cliquez sur l'icône Libraries dans la barre gauche de Arduino IDE.
  • Recherchez “Dallas”, puis localisez la bibliothèque DallasTemperature de Miles Burton.
  • Appuyez sur le bouton Install pour installer la bibliothèque DallasTemperature.
Bibliothèque de température Dallas ESP8266 NodeMCU
  • Vous serez invité à installer la dépendance. Cliquez sur le bouton Install All pour installer la bibliothèque OneWire.
Bibliothèque onewire ESP8266 NodeMCU
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour compiler et télécharger le code vers l'ESP8266.
  • Modifiez la température de l'environnement autour du capteur.
  • Vérifiez la température de l'élément chauffant et de la pièce.

Connaissances avancées

La technique mentionnée ci-dessus est le régulateur tout ou rien, que l'on appelle également un signalisateur ou régulateur "bang-bang". Il est très facile de mettre en œuvre cette méthode.

Une approche alternative connue sous le nom de régulateur PID existe. Cette méthode de contrôle de la température est plus stable, mais complexe et difficile à comprendre et à mettre en pratique. En conséquence, le régulateur PID n'est pas largement utilisé.

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