Inhaltsverzeichnis:

Intelligente Steuerung des Raspberry Pi-Lüfters mit Python & Thingspeak - Gunook
Intelligente Steuerung des Raspberry Pi-Lüfters mit Python & Thingspeak - Gunook

Video: Intelligente Steuerung des Raspberry Pi-Lüfters mit Python & Thingspeak - Gunook

Video: Intelligente Steuerung des Raspberry Pi-Lüfters mit Python & Thingspeak - Gunook
Video: Automatische Lüftersteuerung für den Raspberry über IoBroker 2024, November
Anonim
Intelligente Steuerung des Raspberry Pi-Lüfters mit Python & Thingspeak
Intelligente Steuerung des Raspberry Pi-Lüfters mit Python & Thingspeak

Kurzübersicht

Standardmäßig ist der Lüfter direkt mit dem GPIO verbunden - dies impliziert seinen ständigen Betrieb. Trotz des relativ leisen Betriebs des Lüfters ist sein Dauerbetrieb kein effektiver Einsatz eines aktiven Kühlsystems. Gleichzeitig kann der ständige Betrieb eines Lüfters einfach nur nervig sein. Auch wenn Raspberry Pi ausgeschaltet ist, funktioniert der Lüfter weiterhin, wenn die Stromversorgung angeschlossen ist.

Dieser Artikel zeigt, wie Sie mit einfachen und unkomplizierten Manipulationen aus einem vorhandenen Kühlsystem ein intelligentes machen, das nur dann eingeschaltet wird, wenn der Prozessor es wirklich braucht. Der Lüfter wird nur bei starker Nutzung eingeschaltet, wodurch der Stromverbrauch und die Geräuschentwicklung des Lüfters reduziert werden. Verlängert auch die Lebensdauer des Lüfters, indem er ausgeschaltet bleibt, wenn er nicht benötigt wird.

Was du lernen wirst

So implementieren Sie ein Python-Skript zur Steuerung eines Lüfters basierend auf der aktuellen Temperatur der Raspberry-CPU mithilfe der On-Off-Steuerung mit Temperaturhysterese. So übertragen Sie Daten von Ihrem RaspberryPi in die Things Speak Cloud.

Lieferungen

Die Komponenten, die Sie für dieses Projekt benötigen, sind wie folgt

  • Raspberry Pi 4 Computer Modell B 4GB
  • NPN-Transistor S8050330 Ohm Widerstand
  • Armor Aluminium-Metallgehäuse mit zwei Lüftern für Raspberry Pi
  • Überbrückungskabel
  • Steckbrett

Schritt 1: Aufbau der Schaltung

Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung
Aufbau der Schaltung

Die Schaltung ist ziemlich einfach. Die Stromversorgung des Lüfters wird mit einem NPN-Transistor unterbrochen. In dieser Konfiguration wirkt der Transistor als Low-Side-Schalter. Widerstand ist nur erforderlich, um den Strom durch GPIO zu begrenzen. Der GPIO des Raspberry Pi hat eine maximale Stromabgabe von 16mA. Ich habe 330 Ohm verwendet, was uns einen Basisstrom von etwa (5-0,7) / 330 = 13 mA ergibt. Ich habe einen NPN-Transistor S8050 ausgewählt, sodass das Schalten einer 400-mA-Last von beiden Lüftern kein Problem ist.

Schritt 2: CPU-Temperatur mit ThingSpeak protokollieren

CPU-Temperatur mit ThingSpeak protokollieren
CPU-Temperatur mit ThingSpeak protokollieren

ThingSpeak ist eine Plattform für Projekte, die auf dem Konzept des Internet der Dinge basieren. Mit dieser Plattform können Sie Anwendungen erstellen, die auf Daten basieren, die von Sensoren gesammelt werden. Zu den Hauptfunktionen von ThingSpeak gehören: Echtzeit-Datenerfassung, Datenverarbeitung und Visualisierung. Die ThingSpeak API ermöglicht Ihnen nicht nur das Senden, Speichern und Abrufen von Daten, sondern bietet auch verschiedene statistische Methoden zu deren Verarbeitung.

ThingSpeak kann gängige Geräte und Dienste integrieren wie:

  • Arduino
  • Himbeerpii
  • oBridge / RealTime.io
  • Elektrischer Impuls
  • Mobil- und Webanwendungen
  • Soziale Netzwerke
  • Datenanalyse in MATLAB

Bevor wir beginnen, benötigen Sie einen Account bei ThingSpeak.

  1. Gehen Sie zum folgenden Link und melden Sie sich bei ThingSpeak an.
  2. Melden Sie sich nach Ihrer Kontoaktivierung an.
  3. Gehe zu Kanäle -> Meine Kanäle
  4. Klicken Sie auf die Schaltfläche Neuer Kanal.
  5. Geben Sie den Namen, die Beschreibung und die Felder der Daten ein, die Sie hochladen möchten
  6. Klicken Sie auf die Schaltfläche Kanal speichern, um alle Ihre Einstellungen zu speichern.

Wir benötigen einen API-Schlüssel, den wir später zum Python-Code hinzufügen, um unsere CPU-Temperatur in die Thingspeak-Cloud hochzuladen.

Klicken Sie auf die Registerkarte API Keys, um den Write API Key zu erhalten

Sobald Sie den Write API Key haben, sind wir fast bereit, unsere Daten hochzuladen.

Schritt 3: Abrufen der CPU-Temperatur von einem Raspberry Pi mit Python

Das Skript basiert auf einem Abruf der Prozessortemperatur, der jede Sekunde erfolgt. Sie kann vom Terminal abgerufen werden, indem der Befehl vcgencmd mit dem Parameter measure_temp ausgeführt wird.

vcgencmd measure_temp

Die Bibliothek Subprocess.check_output() wurde verwendet, um den Befehl auszuführen und dann mithilfe eines regulären Ausdrucks den tatsächlichen Wert aus der zurückgegebenen Zeichenfolge zu extrahieren.

aus Unterprozessimport check_output

from re import findalldef get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+', temp)[0]) return(temp) print(get_temp())

Nachdem der Temperaturwert abgerufen wurde, müssen die Daten an die ThingSpeak-Cloud gesendet werden. Verwenden Sie Ihren Write API Key, um die myApi-Variable im folgenden Python-Code zu ändern.

von URL-Importanfrage

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) außer KeyboardInterrupt: print ("Beenden gedrückt Strg+C")

Schritt 4: Steuern des Lüfters basierend auf der Temperatur

Das unten gezeigte Python-Skript implementiert eine Logik, die den Lüfter einschaltet, wenn die Temperatur über tempOn ansteigt, und nur ausschaltet, wenn die Temperatur unter den Schwellenwert fällt. Auf diese Weise wird der Lüfter nicht schnell ein- und ausgeschaltet.

RPi. GPIO als GPIO importieren

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 = 50threshold = 10 controlPin = 14 pinState = False GPIO.setmode(GPIO. BCM) GPIO.setup(controlPin, GPIO. OUT, initial=0) while True: temp = get_temp() if temp > tempOn und nicht pinState or temp < tempOn - Threshold und pinState: pinState = nicht pinState GPIO.output(controlPin, pinState) print(str(temp) + " " + str(pinState)) sleep(1) außer KeyboardInterrupt: print("Beenden gedrückt Strg+C") außer: 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")

Schritt 5: Finaler Python-Code

Den wichtigsten Python-Code finden Sie auf meinem GitHub-Konto unter dem folgenden Link. Denken Sie daran, Ihren eigenen Write-API-Schlüssel einzugeben.

  1. Melden Sie sich bei Ihrem Raspberry PI-Board an
  2. Führen Sie den folgenden Befehl auf dem Terminal aus

python3 cpu.py

Schritt 6: Daten über die Thingspeak Cloud überwachen

Überwachung von Daten über die Thingspeak Cloud
Überwachung von Daten über die Thingspeak Cloud

Öffnen Sie nach einer Weile Ihren Kanal auf ThingSpeak und Sie sollten sehen, wie die Temperatur in Echtzeit in die Thingspeak-Cloud hochgeladen wird.

Schritt 7: Führen Sie das Python-Skript beim Start aus

Dazu am Ende der Datei /etc/rc.local:

sudo nano /etc/rc.local

Sie müssen den Skriptstartbefehl vor dem Zeilenausgang 0 platzieren:

sudo python /home/pi/cpu.py &

Das Vorhandensein des &-Symbols am Ende des Befehls ist obligatorisch, da es ein Flag ist, um den Prozess im Hintergrund zu starten. Nach dem Neustart wird das Skript automatisch ausgeführt und der Lüfter schaltet sich ein, wenn die angegebenen Bedingungen erfüllt sind.

Empfohlen: