Table des matières:
- Fournitures
- Étape 1: Configurez votre ventilateur
- Étape 2: créer un contrôleur PI(D)
- Étape 3: Exécuter le script de contrôle au démarrage
Vidéo: Contrôle précis de la température sur le Raspberry Pi 4: 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Le Fan Shim Pimoroni est une excellente solution pour réduire la température de votre Pi lorsqu'il chauffe. Les fabricants fournissent même un logiciel qui déclenche le ventilateur lorsque la température du processeur dépasse un certain seuil (par exemple, 65 degrés). La température descend rapidement en dessous d'un seuil inférieur et éteint le ventilateur. C'est excellent, mais la température monte et descend sous des charges modérées et crée un bruit de ventilateur audible. Cette instructable réduira le bruit du ventilateur tout en fixant la température du processeur à une valeur spécifique à l'aide de ce qu'on appelle un contrôleur PID. Des seuils plus élevés (par exemple 65 degrés) se traduiront par un ventilateur beaucoup plus silencieux tandis que des seuils inférieurs (par exemple 50 degrés) se traduiront par un ventilateur plus bruyant mais un meilleur contrôle de la température.
L'exemple ci-dessus montre mes résultats en exécutant le contrôleur PID et en modifiant la température cible toutes les 500 secondes. La précision est de +/- 1 degré avec quelques dépassements lors de changements soudains de température.
Il est important de noter que ce test a été effectué sous la même charge pendant toute la durée du test (en regardant BBC iPlayer).
Fournitures
- Framboise Pi 4
- Ventilateur Pimoroni
Étape 1: Configurez votre ventilateur
La première étape consiste à configurer votre ventilateur. Le tuto Pimorini est super !
Ensuite, ouvrez le terminal sur votre Pi (ctrl alt t)
Et installez le code fourni par Pimoroni
git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh
Étape 2: créer un contrôleur PI(D)
Un contrôleur proportionnel intégral dérivé (PID) est un système utilisé pour contrôler la valeur d'un certain processus (température du processeur) en manipulant un dispositif physique (vitesse du ventilateur). Nous pouvons manipuler la «vitesse» et le bruit du ventilateur en l'allumant et en l'éteignant périodiquement (modulation d'onde d'impulsion). La durée pendant laquelle il est allumé pendant une période donnée (par exemple 1 seconde) détermine la vitesse et le niveau sonore du ventilateur (900 ms = fort et rapide, 100 ms = silencieux et lent). Nous utiliserons le PID pour manipuler la vitesse du ventilateur et ainsi contrôler la température.
Nous pouvons diviser l'utilisation d'un PID en nombre d'étapes.
- Décidez de la valeur de la variable de processus que vous souhaitez atteindre (par exemple, température du processeur = 55). C'est ce qu'on appelle votre point de consigne.
- Calculez l'erreur PID. Si votre point de consigne est de 55 degrés et que la température réelle est de 60 degrés, votre erreur est de 5 degrés (Température - point de consigne)
- Modifiez le temps de fonctionnement du ventilateur proportionnellement à l'erreur (les grosses erreurs entraînent de gros changements dans la vitesse du ventilateur, les petites erreurs provoquent de petits changements dans la vitesse du ventilateur).
- Ajuster le ventilateur en proportion aux valeurs passées (intégrale/somme de toutes les erreurs précédentes)
- En option, vous ajustez la vitesse du ventilateur en fonction du taux de variation de l'erreur (dérivée) mais nous ne le ferons pas ici
Maintenant que vous avez la théorie, exécutez le code ci-dessous dans l'IDE Thonny (ou un autre IDE Python). Modifiez la valeur de « cible » dans le code ci-dessous pour modifier la température à laquelle vous souhaitez maintenir votre Pi. J'ai défini les termes « P » et « I » à des valeurs quelque peu arbitraires. N'hésitez pas à les ajuster s'ils ne fonctionnent pas pour vous. augmenter 'P' signifie que le contrôleur répondra rapidement aux nouvelles erreurs (mais peut ne pas être stable). La modification de « I » amènera le contrôleur à pondérer davantage sa réponse par rapport aux valeurs passées. Je n'essaierais pas de rendre ces termes trop gros car le fait de changer rapidement la vitesse du ventilateur ne changera pas rapidement la température. De plus, si vous effectuez un travail incroyablement lourd sur votre Pi, vous risquez de ne pas atteindre la température souhaitée (les limites du ventilateur s'appliquent toujours).
de fanshim importer FanShim
from time import sleep, time import os import math # Renvoie la température du processeur sous forme de chaîne de caractères def getCPUtemperature(): res = os.popen('vcgencmd measure_temp').readline() return(res.replace("temp=", " ").replace("'C\n", "")) fanshim = FanShim() target = 55 # température désirée (jouez avec ça et voyez ce qui se passe) period=1 # PWM period on=.1 # initialiser à 0 % duty cycle off=period-on # initialiser à 0% duty cycle P=.01 # terme de gain proportionnel (jouer avec ça et voir ce qui se passe) intErr=0 # erreur intégrale I=.0001 # terme de gain intégral (jouer avec ça et voir ce qui se passe) tandis que True: # get temperaute temp=int(float(getCPUtemperature())) # calculer l'erreur et lisser err = temp-target # calculer integra lerror et la contraindre intErr=intErr+err if intErr>10: intErr =10 if intErr=period: on=period off=0 else: on=on off = period-on # définir le cycle de service minimum si on<.09: on=.09 else: on=on # PWM sur la broche fanshim si on ==période: fanshim.set_fan(True) sleep(on) else: fanshim.set_fan(True) s leep(on) fanshim.set_fan(False) sleep(off)
Étape 3: Exécuter le script de contrôle au démarrage
Vous pouvez exécuter ce script chaque fois que vous démarrez votre pi ou vous pouvez le déclencher automatiquement au redémarrage. C'est super simple à faire avec crontab.
- ouvrir le terminal
- tapez crontab-e dans le terminal
- ajoutez la ligne de code suivante au fichier '@reboot python /home/pi/bootScripts/fanControl.py &'
- quitter et redémarrer
J'ai mis le script (fanControl.py) dans un floder appelé bootScripts, mais vous pouvez le mettre n'importe où, assurez-vous simplement de spécifier le chemin correct dans crontab.
Terminé! Désormais, votre ventilateur contrôlera la température de votre processeur à une valeur spécifique, tout en minimisant le bruit audible qu'il produit.
Conseillé:
Voltmètre Arduino précis et précis (0-90V DC): 3 étapes
Voltmètre Arduino précis et précis (0-90V DC) : Dans cette instructable, j'ai construit un voltmètre pour mesurer les hautes tensions DC (0-90v) avec une précision et une précision relatives à l'aide d'un Arduino Nano. Les mesures de test que j'ai prises étaient suffisamment précises, principalement à moins de 0,3 V de la tension réelle mesurée avec un
ESP8266 Surveillance de la température Nodemcu à l'aide de DHT11 sur un serveur Web local - Obtenez la température et l'humidité de la pièce sur votre navigateur : 6 étapes
ESP8266 Surveillance de la température Nodemcu à l'aide de DHT11 sur un serveur Web local | Obtenez la température et l'humidité de la pièce sur votre navigateur : Salut les gars, aujourd'hui, nous allons faire une analyse de l'humidité et de l'humidité; système de surveillance de la température utilisant ESP 8266 NODEMCU & Capteur de température DHT11. La température et l'humidité seront obtenues à partir du capteur DHT11 et de l'amp; il peut être vu sur un navigateur quelle page Web sera gérée
Contrôle de la luminosité Contrôle LED basé sur PWM à l'aide de boutons-poussoirs, Raspberry Pi et Scratch : 8 étapes (avec photos)
Contrôle de la luminosité Contrôle des LED basé sur PWM à l'aide de boutons poussoirs, Raspberry Pi et Scratch : j'essayais de trouver un moyen d'expliquer le fonctionnement du PWM à mes étudiants, alors je me suis fixé pour tâche d'essayer de contrôler la luminosité d'une LED à l'aide de 2 boutons poussoirs - un bouton augmentant la luminosité d'une LED et l'autre la diminuant. Pour programmer
Contrôle de la température ambiante basé sur l'IOT : 5 étapes
Contrôle de la température ambiante basé sur l'IOT : ceci est instructable sur le projet de contrôle de la température ambiante basé sur l'IOT. Caractéristiques :-1. Allumez automatiquement le ventilateur au-dessus de la température ambiante spécifiée.2. Éteignez automatiquement le ventilateur en dessous de la température ambiante spécifiée.3. Commande manuelle à tout moment
Comment faire un robot mobile contrôlé - Basé sur DTMF - Sans Microcontrôleur & Programmation - Contrôle depuis n'importe où dans le monde - RoboGeeks : 15 étapes
Comment faire un robot mobile contrôlé | Basé sur DTMF | Sans Microcontrôleur & Programmation | Contrôle depuis n'importe où dans le monde | RoboGeeks : Vous voulez créer un robot qui peut être contrôlé de n'importe où dans le monde, allons-y