Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Aufbau der Schaltung
- Schritt 2: CPU-Temperatur mit ThingSpeak protokollieren
- Schritt 3: Abrufen der CPU-Temperatur von einem Raspberry Pi mit Python
- Schritt 4: Steuern des Lüfters basierend auf der Temperatur
- Schritt 5: Finaler Python-Code
- Schritt 6: Daten über die Thingspeak Cloud überwachen
- Schritt 7: Führen Sie das Python-Skript beim Start aus
Video: Intelligente Steuerung des Raspberry Pi-Lüfters mit Python & Thingspeak - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
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
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
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.
- Gehen Sie zum folgenden Link und melden Sie sich bei ThingSpeak an.
- Melden Sie sich nach Ihrer Kontoaktivierung an.
- Gehe zu Kanäle -> Meine Kanäle
- Klicken Sie auf die Schaltfläche Neuer Kanal.
- Geben Sie den Namen, die Beschreibung und die Felder der Daten ein, die Sie hochladen möchten
- 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.
- Melden Sie sich bei Ihrem Raspberry PI-Board an
- Führen Sie den folgenden Befehl auf dem Terminal aus
python3 cpu.py
Schritt 6: Daten über die Thingspeak Cloud überwachen
Ö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:
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu -- ESP32-Anfängerleitfaden: 5 Schritte
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu || ESP32-Anfängerhandbuch: In diesem Projekt zeige ich Ihnen, wie einfach / schwierig es ist, einen ESP32 mit der Arduino IDE zu verwenden, um jedem Elektronikprojekt eine WiFi-Steuerung hinzuzufügen. Unterwegs zeige ich Ihnen, wie Sie mit dem ESP32 einen einfachen WLAN-Server erstellen und wie Sie
Erste Schritte mit Python: 7 Schritte (mit Bildern)
Erste Schritte mit Python: Programmieren ist großartig! Es ist kreativ, macht Spaß und gibt Ihrem Gehirn ein mentales Training. Viele von uns wollen etwas über Programmieren lernen, aber überzeugen sich selbst davon, dass wir es nicht können. Vielleicht hat es zu viel Mathematik, vielleicht der Jargon, der erschreckend herumgeworfen wird
EINFACHER CARBOT -- ARDUINO -- BLUETOOTH-STEUERUNG -- TUTORIAL: 10 Schritte (mit Bildern)
EINFACHER CARBOT || ARDUINO || BLUETOOTH-STEUERUNG || TUTORIAL: IN DIESEM ANLEITUNG ZEIGE ICH, WIE MAN EINEN EINFACHEN BOT HERSTELLT, DER VON IHREM SMARTPHONE ÜBER BLUETOOTHPARTS GEBAUT WIRD:☻ARDUINO☻2X GETRIEBEMOTOREN☻HC-05 BLUETOOTH MODUL☻LAPTOP ODER PC ICH HABE EINE POWER BANK VERWENDET
SERVO-Steuerung lernen (auf einen Blick): 6 Schritte
SERVO-Steuerung lernen (auf einen Blick): In diesem Modul lernen Sie die Steuerung eines mit Arduino kompatiblen Mikro- oder Mini-Servos. Ein Servomotor wird im Allgemeinen in allen Automatisierungsprojekten verwendet, die bewegliche Teile haben. Es spielt eine sehr wichtige Rolle Rolle in der Robotik, die präzise Bewegung
$3 & 3 Steps Laptopständer (mit Lesebrille & Stiftablage): 5 Schritte
3 $ & 3 Steps Laptopständer (mit Lesebrille & Stiftablage): Dieser $ 3 & Der Laptopständer mit 3 Schritten kann innerhalb von 5 Minuten hergestellt werden. Es ist sehr stark, leicht und kann zusammengeklappt werden, um es überall hin mitzunehmen