Système de refroidissement Raspberry Pi utilisant un capteur de température DS18B20

Ce tutoriel vous explique comment réguler la température à l'aide d'un Raspberry Pi, d'un ventilateur et d'un capteur de température DS18B20.

Si vous souhaitez utiliser un DHT11 ou un DHT22 à la place du capteur DS18B20, veuillez vous référer à Raspberry Pi - Système de refroidissement utilisant un capteur DHT..

Préparation du matériel

1×Raspberry Pi 4 Model B
1×DS18B20 Temperature Sensor (WITH Adapter)
1×DS18B20 Temperature Sensor (WITHOUT Adapter)
1×4.7 kΩ resistor
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

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 de température DS18B20

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

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

Diagramme de câblage

Schéma de câblage du système de ventilateur de refroidissement 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

Nous recommandons d'acheter un capteur DS18B20 ainsi que son adaptateur de câblage accompagnant pour une installation sans faille. Cet adaptateur inclut une résistance intégrée, supprimant le besoin d'une résistance supplémentaire dans le câblage.

Comment fonctionne le système

  • Le Raspberry Pi prendra une lecture du capteur de température.
  • Si la température est supérieure au maximum autorisé, le ventilateur sera activé par le Raspberry Pi.
  • Lorsque la température descend en dessous du niveau minimum accepté, le Raspberry Pi éteindra le ventilateur.

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

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

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

Rédigeons le code qui fait activer le ventilateur par le Raspberry Pi lorsque la température dépasse 25°C et le maintiendra en marche jusqu'à ce que la température descende en dessous de 20°C.

É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 un Raspberry Pi, consultez Installation du logiciel - Raspberry Pi.
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Consultez comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Avant d'utiliser le capteur de température DS18B20 avec un Raspberry Pi, nous devons activer l'interface 1-Wire sur le Raspberry Pi. Voir Comment activer l'interface 1-Wire sur Raspberry Pi
  • Installez la bibliothèque pour le capteur de température DS18B20 en exécutant la commande suivante :
pip install w1thermsensor
  • Créez un fichier 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-ds18b20-temperature-sensor from w1thermsensor import W1ThermSensor 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 = 21 # GPIO pin connected to relay, change to your desired GPIO pin # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(FAN_PIN, GPIO.OUT) def find_ds18b20_sensor(): for sensor in W1ThermSensor.get_available_sensors(): if sensor.type == W1ThermSensor.THERM_SENSOR_DS18B20: return sensor return None def read_temperature(sensor): try: temperature_celsius = sensor.get_temperature() return temperature_celsius 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) # Find DS18B20 sensor ds18b20_sensor = find_ds18b20_sensor() if ds18b20_sensor is not None: print(f"DS18B20 Sensor found: {ds18b20_sensor.id}") try: while True: temperature = read_temperature(ds18b20_sensor) control_fan(temperature) time.sleep(0.5) except KeyboardInterrupt: pass finally: GPIO.cleanup() else: print("DS18B20 Sensor not found.")
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 cooling.py

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

  • Changez la température de l'environnement autour du capteur.
  • Vérifiez l'état du ventilateur sur le moniteur série.

Connaissance Avancée

Cette méthode de contrôle est appelée un contrôleur on-off, également connu sous le nom de signaleur ou contrôleur "bang-bang". Il est 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 elle est complexe et difficile à comprendre et à mettre en œuvre. En conséquence, le régulateur PID n'est pas largement utilisé.

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!