Projekt : Raspberry Pi 4B - die Suche nach geeigneter Kühlung (Teil 2)
Projekt : Raspberry Pi 4B - die Suche nach geeigneter Kühlung (Teil 2)
Wenn man das komplette Kit - Lüftersteuerung von CodingWorld (aus Teil 1) aufgebaut hat, sollte es von nun an aus dem Raspberry Pi 4B einen 'coolen' Typen machen.
Um das Script im Hintergrund laufen zu lassen, wird noch ein Systemd-Sevice eingerichtet, der es beim Bootvorgang automatisch startet.
Da man den Temperaturverlauf nicht ständig am Monitor verfolgen muss, werden alle unnötigen Print-Befehle entfernt. Öffnen Sie die Datei
fancontrol.py
1
|
nano ~/fancontrol.py
|
#!/usr/bin/env python
# Temperaturwert ist als Zeichenkette in der Datei tempData gespeichert,
# er wird in eine ganze Zahl nach math. Rundungsregel umgewandelt
# und ganzzahlig ausgegeben
import RPi.GPIO as GPIO
import time
import os
tempData = "/sys/class/thermal/thermal_zone0/temp"
# GPIO's festlegen; GPIO 23: Motor, GPIO: 2,3,4 fuer LEDs
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(2, GPIO.OUT)
GPIO.setup(3, GPIO.OUT)
GPIO.setup(4, GPIO.OUT)
GPIO.output(23, GPIO.LOW)
GPIO.output(2, GPIO.LOW)
GPIO.output(3, GPIO.LOW)
GPIO.output(4, GPIO.LOW)
while True:
os.system('clear')
print("Aktuelle CPU-Temperatur im 15s Intervall:")
print("")
print("********************************")
print("")
print(time.strftime("%d.%m.%Y %H:%M:%S"+ " Uhr: "))
f = open(tempData, "r")
# a = f.readline(2)
# b = f.readline(1)
temp = f.readline(3)
f.close
# temp = a + "." + b + " Grad Celsius"
# print temp
temp = int(temp)
temp = (temp + 5) / 10
print temp , " Grad Celsius"
# *******
# Luefter steuern an GPIO 23
# *******
if temp <= 40:
GPIO.output(23, GPIO.LOW)
GPIO.output(2, GPIO.HIGH)
GPIO.output(3, GPIO.LOW)
GPIO.output(4, GPIO.LOW)
if temp >= 60:
GPIO.output(23, GPIO.HIGH)
GPIO.output(2, GPIO.LOW)
GPIO.output(3, GPIO.LOW)
GPIO.output(4, GPIO.HIGH)
if temp > 40 and temp < 60 :
GPIO.output(2, GPIO.LOW)
GPIO.output(3, GPIO.HIGH)
GPIO.output(4, GPIO.LOW)
time.sleep (15)
|
1
|
sudo cp ~/fancontrol.py /usr/bin
|
1
|
sudo nano /etc/systemd/system/fancontrol.service
|
[Unit]
Description=My service
After=network.target
[Service]
ExecStart=/usr/bin/python -u fancontrol.py
WorkingDirectory=/usr/bin
StandardOutput=inherit
StandardError=inherit
Restart=always
User=ubuntu
[Install]
WantedBy=multi-user.target
|
1
2
|
sudo systemctl start fancontrol.service
sudo systemctl enable fancontrol.service
|
1
2
|
sudo systemctl stop fancontrol.service
sudo systemctl disable fancontrol.service
|
Viel Spass und Erfolg beim Ausprobieren.
zurück zum Teil 1 weiter mit Teil 3