Raspberry Pi - Système de refroidissement utilisant un capteur DHT

Ce tutoriel vous explique comment utiliser un Raspberry Pi, un ventilateur et soit un capteur DHT11 ou DHT22 pour réguler la température.

Si vous souhaitez utiliser un capteur DS18B20 au lieu d'un capteur DHT, veuillez consulter Système de refroidissement Raspberry Pi utilisant un capteur de température DS18B20. pour plus d'informations.

Préparation du matériel

1×Raspberry Pi 4 Model B
1×DHT11 Temperature and Humidity Sensor
1×Relay
1×12V DC Cooling Fan
1×(Alternative) 5V DC Cooling Fan
1×12V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) Screw Terminal Block Shield for Raspberry Pi
1×(Optional) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B
1×(Optional) Plastic Case and Cooling Fan for Raspberry Pi 4B
1×(Optional) HDMI Touch Screen Monitor for Raspberry Pi

You can use DHT22 sensor instead of DHT11 sensor.

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.

À propos du ventilateur de refroidissement et du capteur DHT

Le ventilateur utilisé dans ce tutoriel nécessite une alimentation de 12v. Si l'alimentation est fournie, le ventilateur s'allumera, sinon il restera éteint. Pour contrôler le ventilateur avec un Raspberry Pi, un relais doit être inséré entre eux.

Si vous n'êtes pas familier avec les capteurs de température et les ventilateurs (y compris les broches, leur fonctionnement et leur programmation), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

  • Schéma de câblage utilisant DHT11
Schéma de câblage du système de ventilateur de refroidissement Raspberry Pi DHT11

This image is created using Fritzing. Click to enlarge image

  • Le schéma de câblage utilisant DHT22
Schéma de câblage du système de ventilation par ventilateur avec DHT22 pour Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :

Raspberry Pi Screw Terminal Block Shield

Comment le système fonctionne

  • Le Raspberry Pi obtient la température du capteur de température.
  • Si la température dépasse le seuil supérieur, le Raspberry Pi active le ventilateur.
  • Si la température descend en dessous du seuil inférieur, le Raspberry Pi désactive le ventilateur.

La boucle est répétée continuellement.

Si vous souhaitez activer et désactiver le ventilateur lorsque la température est au-dessus ou en dessous d'un certain point, il suffit de définir les limites supérieure et inférieure au même nombre.

Code Raspberry Pi

Code Raspberry Pi pour système de refroidissement avec capteur DHT11

Écrivons un code Python pour Raspberry Pi qui, lorsque la température dépasse 25°C, activera le ventilateur. Le ventilateur restera allumé jusqu'à ce que la température descende à 20°C ou moins.

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à Internet si vous devez installer des bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sous Linux et macOS ou PuTTY sous Windows. Consultez comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Si ce n'est pas le cas, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Installez la bibliothèque pour le capteur de température et d'humidité DHT11 en exécutant la commande suivante :
sudo pip3 install Adafruit_DHT
  • Créez un fichier de script Python cooling.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi 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/raspberry-pi/raspberry-pi-cooling-system-using-dht-sensor import Adafruit_DHT import RPi.GPIO as GPIO import time # Constants THRESHOLD_ON = 25 # Upper threshold of temperature, change to your desired value THRESHOLD_OFF = 20 # Lower threshold of temperature, change to your desired value FAN_PIN = 12 # GPIO pin connected to relay, change to your desired GPIO pin DHT11_PIN = 4 # GPIO pin connected to DHT11, change to your desired GPIO pin # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(FAN_PIN, GPIO.OUT) def read_temperature(): try: humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, DHT11_PIN) return temperature except Exception as e: print(f"Error reading temperature: {e}") return None def control_fan(temperature): if temperature is not None: if temperature > THRESHOLD_ON: print("The fan is turned on") GPIO.output(FAN_PIN, GPIO.HIGH) elif temperature < THRESHOLD_OFF: print("The fan is turned off") GPIO.output(FAN_PIN, GPIO.LOW) try: while True: temperature = read_temperature() control_fan(temperature) time.sleep(0.5) except KeyboardInterrupt: pass finally: GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le terminal :
python3 cooling.py
  • Changez la température de l'environnement autour du capteur.
  • Vérifiez l'état du ventilateur sur le moniteur série.

Le script s'exécute en boucle infinie en continu jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

Code Raspberry Pi pour système de refroidissement avec capteur DHT22

Similaire au DHT11, nous pouvons créer le système de refroidissement en utilisant le capteur DHT22 avec le code Python ci-dessous pour Raspberry Pi.

# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi 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/raspberry-pi/raspberry-pi-cooling-system-using-dht-sensor import Adafruit_DHT import RPi.GPIO as GPIO import time # Constants THRESHOLD_ON = 25 # Upper threshold of temperature, change to your desired value THRESHOLD_OFF = 20 # Lower threshold of temperature, change to your desired value FAN_PIN = 12 # GPIO pin connected to relay, change to your desired GPIO pin DHT22_PIN = 14 # GPIO pin connected to DHT22, change to your desired GPIO pin # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(FAN_PIN, GPIO.OUT) def read_temperature(): try: humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, DHT22_PIN) return temperature except Exception as e: print(f"Error reading temperature: {e}") return None def control_fan(temperature): if temperature is not None: if temperature > THRESHOLD_ON: print("The fan is turned on") GPIO.output(FAN_PIN, GPIO.HIGH) elif temperature < THRESHOLD_OFF: print("The fan is turned off") GPIO.output(FAN_PIN, GPIO.LOW) try: while True: temperature = read_temperature() control_fan(temperature) time.sleep(0.5) except KeyboardInterrupt: pass finally: GPIO.cleanup()

Connaissances Avancées

L'approche ci-dessus en matière de régulation est le contrôleur tout ou rien, également appelé signaleur ou contrôleur "bang-bang". Cette technique est facile à mettre en pratique.

Une approche alternative connue sous le nom de régulateur PID existe. Cette méthode est plus efficace pour maintenir une température désirée, cependant, elle est complexe et difficile à comprendre et à appliquer. En conséquence, le régulateur PID n'est pas largement utilisé pour le contrôle de la température.

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!