Table des matières:

Contrôle intelligent du ventilateur Raspberry Pi à l'aide de Python et Thingspeak : 7 étapes
Contrôle intelligent du ventilateur Raspberry Pi à l'aide de Python et Thingspeak : 7 étapes

Vidéo: Contrôle intelligent du ventilateur Raspberry Pi à l'aide de Python et Thingspeak : 7 étapes

Vidéo: Contrôle intelligent du ventilateur Raspberry Pi à l'aide de Python et Thingspeak : 7 étapes
Vidéo: Les Distributeurs Ne Veulent Pas Que Vous Sachiez Ça 2024, Juillet
Anonim
Contrôle intelligent du ventilateur Raspberry Pi à l'aide de Python et Thingspeak
Contrôle intelligent du ventilateur Raspberry Pi à l'aide de Python et Thingspeak

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

Construire le circuit
Construire le circuit
Construire le circuit
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

Enregistrez la température du processeur avec ThingSpeak
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.

  1. Accédez au lien suivant et inscrivez-vous à ThingSpeak.
  2. Après l'activation de votre compte, connectez-vous.
  3. Allez dans Chaînes -> Mes chaînes
  4. Cliquez sur le bouton Nouvelle chaîne.
  5. Saisissez le nom, la description et les champs des données que vous souhaitez télécharger
  6. 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.

  1. Connectez-vous à votre carte Raspberry PI
  2. Exécutez la commande suivante sur le terminal

python3 cpu.py

Étape 6: Surveillance des données via Thingspeak Cloud

Surveillance des données via Thingspeak Cloud
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é: