Table des matières:

Contrôle précis de la température sur le Raspberry Pi 4: 3 étapes
Contrôle précis de la température sur le Raspberry Pi 4: 3 étapes

Vidéo: Contrôle précis de la température sur le Raspberry Pi 4: 3 étapes

Vidéo: Contrôle précis de la température sur le Raspberry Pi 4: 3 étapes
Vidéo: Station de surveillance RASPBERRY PI - Caméra, température et relay 2024, Novembre
Anonim
Contrôle précis de la température sur le Raspberry Pi 4
Contrôle précis de la température sur le Raspberry Pi 4

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

Configurez votre ventilateur
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)

Créer un contrôleur PI(D)
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.

  1. 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.
  2. 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)
  3. 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).
  4. Ajuster le ventilateur en proportion aux valeurs passées (intégrale/somme de toutes les erreurs précédentes)
  5. 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

Exécuter le script de contrôle au démarrage
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.

  1. ouvrir le terminal
  2. tapez crontab-e dans le terminal
  3. ajoutez la ligne de code suivante au fichier '@reboot python /home/pi/bootScripts/fanControl.py &'
  4. 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é: