Table des matières:
- Fournitures
- Étape 1: Construire le circuit
- Étape 2: Enregistrez la température du processeur avec ThingSpeak
- Étape 3: Obtenir la température du processeur à partir d'un Raspberry Pi à l'aide de Python
- Étape 4: Contrôle du ventilateur en fonction de la température
- Étape 5: Code Python final
- Étape 6: Surveillance des données via Thingspeak Cloud
- Étape 7: Exécutez le script Python au démarrage
Vidéo: Contrôle intelligent du ventilateur Raspberry Pi à l'aide de Python et Thingspeak : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Bref aperçu
Par défaut, le ventilateur est directement connecté au GPIO - cela implique son fonctionnement constant. Malgré le fonctionnement relativement silencieux du ventilateur, son fonctionnement continu n'est pas une utilisation efficace d'un système de refroidissement actif. Dans le même temps, le fonctionnement constant d'un ventilateur peut être tout simplement ennuyeux. De plus, si Raspberry Pi est éteint, le ventilateur fonctionnera toujours si l'alimentation est connectée.
Cet article montrera comment, à l'aide de manipulations simples et non compliquées, transformer un système de refroidissement existant en un système intelligent, qui ne sera activé que lorsque le processeur en aura vraiment besoin. Le ventilateur ne s'allumerait qu'en cas d'utilisation intensive, réduisant ainsi la consommation d'énergie et le bruit du ventilateur. Prolonge également la durée de vie du ventilateur en le gardant éteint lorsqu'il n'est pas nécessaire.
Ce que vous apprendrez
Comment implémenter un script Python pour contrôler un ventilateur en fonction de la température actuelle du processeur Raspberry à l'aide du contrôle On-Off avec hystérésis de température. Comment transporter des données de votre RaspberryPi vers Things Speak Cloud.
Fournitures
Les composants dont vous aurez besoin pour ce projet sont les suivants
- Ordinateur Raspberry Pi 4 Modèle B 4 Go
- Résistance transistor NPN S8050330ohms
- Boîtier métallique en aluminium Armor avec deux ventilateurs pour Raspberry Pi
- Câbles de démarrage
- Planche à pain
Étape 1: Construire le circuit
Le circuit est assez simple. L'alimentation du ventilateur est coupée à l'aide d'un transistor NPN. Dans cette configuration, le transistor agit comme un interrupteur côté bas. La résistance n'est requise que pour limiter le courant via GPIO. Le GPIO du Raspberry Pi a une sortie de courant maximale de 16mA. J'ai utilisé 330 ohms, ce qui nous donne un courant de base d'environ (5-0,7)/330 = 13mA. J'ai sélectionné un transistor NPN S8050, donc la commutation d'une charge de 400 mA à partir des deux ventilateurs ne pose aucun problème.
Étape 2: Enregistrez la température du processeur avec ThingSpeak
ThingSpeak est une plateforme de projets basée sur le concept de l'Internet des objets. Cette plate-forme vous permet de créer des applications basées sur des données collectées à partir de capteurs. Les principales fonctionnalités de ThingSpeak incluent: la collecte de données en temps réel, le traitement et la visualisation des données. L'API ThingSpeak vous permet non seulement d'envoyer, de stocker et d'accéder à des données, mais fournit également diverses méthodes statistiques pour les traiter.
ThingSpeak peut intégrer des appareils et des services populaires tels que:
- Arduino
- Framboise pii
- oBridge / RealTime.io
- Diablotin électrique
- Applications mobiles et Web
- Réseaux sociaux
- Analyse de données dans MATLAB
Avant de commencer, vous avez besoin d'un compte chez ThingSpeak.
- Accédez au lien suivant et inscrivez-vous à ThingSpeak.
- Après l'activation de votre compte, connectez-vous.
- Allez dans Chaînes -> Mes chaînes
- Cliquez sur le bouton Nouvelle chaîne.
- Saisissez le nom, la description et les champs des données que vous souhaitez télécharger
- Cliquez sur le bouton Enregistrer la chaîne pour enregistrer tous vos paramètres.
Nous avons besoin d'une clé API, que nous ajouterons plus tard au code python afin de télécharger la température de notre processeur sur le cloud Thingspeak.
Cliquez sur l'onglet Clés API pour obtenir la clé API d'écriture
Une fois que vous avez la clé d'écriture d'API, nous sommes presque prêts à télécharger nos données.
Étape 3: Obtenir la température du processeur à partir d'un Raspberry Pi à l'aide de Python
Le script est basé sur une récupération de la température du processeur, qui se produit toutes les secondes. Il peut être obtenu à partir du terminal en exécutant la commande vcgencmd avec le paramètre measure_temp.
vcgencmd mesure_temp
La bibliothèque Subprocess.check_output() a été utilisée pour exécuter la commande, puis en utilisant une expression régulière pour extraire la valeur réelle de la chaîne renvoyée.
à partir du sous-processus import check_output
à partir de la réimportation findalldef get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+', temp)[0]) return(temp) print(get_temp())
Une fois la valeur de température récupérée, les données doivent être envoyées au cloud ThingSpeak. Utilisez votre clé d'API d'écriture pour modifier la variable myApi dans le code Python ci-dessous.
à partir de la demande d'importation urllib
from re import findall from time import sleep from subprocess import check_output myAPI = '################' baseURL = 'https://api.thingspeak.com/update?api_key=% s' % myAPIdef get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+', temp)[0]) return(temp) try: while True: temp = get_temp() conn = request.urlopen(baseURL + '&field1=%s' % (temp)) print(str(temp)) conn.close() sleep(1) sauf KeyboardInterrupt: print ("Quitter en appuyant sur Ctrl+C")
Étape 4: Contrôle du ventilateur en fonction de la température
Le script Python illustré ci-dessous implémente une logique qui allume le ventilateur lorsque la température dépasse le tempOn et s'éteint uniquement lorsque la température descend en dessous du seuil. De cette façon, le ventilateur ne s'allumera et ne s'éteindra pas rapidement.
importer RPi. GPIO en tant que GPIO
import sys from re import findall from time import sleep from subprocess import check_output def get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+ ', temp)[0]) return(temp) try: GPIO.setwarnings(False) tempOn = 50 seuil = 10 controlPin = 14 pinState = False GPIO.setmode(GPIO. BCM) GPIO.setup(controlPin, GPIO. OUT, initial=0) tandis que True: temp = get_temp() si temp > tempOn et non pinState ou temp < tempOn - seuil et pinState: pinState = pas pinState GPIO.output(controlPin, pinState) print(str(temp) + " " + str(pinState)) sleep(1) except KeyboardInterrupt: print("Quitter appuyé sur Ctrl+C") excepté: print("Other Exception") print("--- Start Exception Data:") traceback.print_exc(limit=2, file=sys.stdout) print("--- End Exception Data:") finally: print("CleanUp") GPIO.cleanup() print("End of program")
Étape 5: Code Python final
Le code python principal se trouve sur mon compte GitHub dans le lien suivant. N'oubliez pas de mettre votre propre clé d'API d'écriture.
- Connectez-vous à votre carte Raspberry PI
- Exécutez la commande suivante sur le terminal
python3 cpu.py
Étape 6: Surveillance des données via Thingspeak Cloud
Après un certain temps, ouvrez votre chaîne sur ThingSpeak et vous devriez voir la température se télécharger dans le cloud Thingspeak en temps réel.
Étape 7: Exécutez le script Python au démarrage
Pour cela, à la fin du fichier /etc/rc.local:
sudo nano /etc/rc.local
Vous devez placer la commande de démarrage du script devant la ligne exit 0:
sudo python /home/pi/cpu.py &
La présence du symbole & à la fin de la commande est obligatoire, car c'est un drapeau pour démarrer le processus en arrière-plan. Après le redémarrage, le script s'exécutera automatiquement et le ventilateur s'allumera lorsque les conditions spécifiées seront remplies.
Conseillé:
Bricolage -- Comment faire un robot araignée qui peut être contrôlé à l'aide d'un smartphone à l'aide d'Arduino Uno : 6 étapes
Bricolage || Comment faire un robot araignée qui peut être contrôlé à l'aide d'un smartphone à l'aide d'Arduino Uno : Tout en créant un robot araignée, on peut apprendre tellement de choses sur la robotique. Dans cette vidéo, nous allons vous montrer comment fabriquer un robot Spider, que nous pouvons faire fonctionner à l'aide de notre smartphone (Androi
Réveil intelligent : un réveil intelligent fabriqué avec Raspberry Pi : 10 étapes (avec photos)
Réveil intelligent : un réveil intelligent fabriqué avec Raspberry Pi : Avez-vous déjà voulu une horloge intelligente ? Si oui, c'est la solution pour vous ! J'ai fait Smart Alarm Clock, c'est une horloge dont vous pouvez changer l'heure de l'alarme en fonction du site Web. Lorsque l'alarme se déclenche, il y aura un son (buzzer) et 2 lumières s'allumeront
Contrôle mené partout dans le monde à l'aide d'Internet à l'aide d'Arduino : 4 étapes
Led de contrôle partout dans le monde à l'aide d'Internet à l'aide d'Arduino : Bonjour, je suis Rithik. Nous allons créer une led contrôlée par Internet à l'aide de votre téléphone. Nous allons utiliser des logiciels comme Arduino IDE et Blynk. C'est simple et si vous réussissez, vous pouvez contrôler autant de composants électroniques que vous le souhaitez
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
Tapis de refroidissement pour ordinateur portable DIY - Awesome Life Hacks avec ventilateur CPU - Idées créatives - Ventilateur d'ordinateur : 12 étapes (avec photos)
Tapis de refroidissement pour ordinateur portable DIY | Awesome Life Hacks avec ventilateur CPU | Idées créatives | Fan d'ordinateur : vous devez regarder cette vidéo jusqu'à la fin. pour comprendre la vidéo