Frage von gameingcookie, 32

Es soll ein Programm von meinem Raspberry pi die cpu Temp auslesen und wenn sie einen bestimmten Wert überschritten hat soll es einen Ausgang bestromen?

hallo,

ich möchte gerne ein Programm auf meinem Raspberry pi schreiben, dass die cpu temperatur auslest und je nach dem ob eine eingestellte grenze überschritten wird soll es einen der programmierbaren Aus bzw. Eingänge bestromen... ich hab aber leider keine Ahnung wie ich das hinkriege... vll. mit python? mann kann auf jeden fall die cpu-temperatur mit dem befehl: 'vcgencmd measure_temp' auslesen... danke für eure hilfe... (;

lg. gameingcookie

Antwort
von john201050, 28

mit einem shellscript gehts mMn am einfachsten.

--------------------------------------------

zuerst den gewünschten GPIO auf "export" setzen.

echo 17 > /sys/class/gpio/export

dann frägst du in einer endlosschleife die temperatur ab. diese steht in dieser datei:

/sys/class/thermal/thermal_zone0/temp

sobald der wert über den gewünschten steigt, setzt du den oben auf "export" eingestellten pin auf 1. (=strom an)

echo 1 > /sys/class/gpio/gpio17/value
Kommentar von john201050 ,

sorry, hab noch was vergessen.

nachdem du den GPIO mit "export" sozusagen erzeugt hast, musst du noch festlegen, dass du ihn als ausgang verwenden möchtest. das machst du mit:

echo out > /sys/class/gpio/gpio17/direction
Kommentar von john201050 ,

weils mich selbst interessiert hat, hab ich das ganze schnell umgesetzt.

#!/bin/bash

echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction

while [ true ]
do
temp=$(< /sys/class/thermal/thermal_zone0/temp)
if [ $temp -gt 35000 ]
then
echo 1 > /sys/class/gpio/gpio17/value
else
echo 0 > /sys/class/gpio/gpio17/value
fi
sleep 1
done

das ganze in eine dateiname.sh datei kopieren. die datei danach mit chmod 775 dateiname.sh ausführbar machen. fertig.

die 35000 stehen für 35 grad. kannst du auf deine wunsch temperatur einstellen. du kannst natürlich auch gpio17 durch einen beliebigen anderen ersetzen.

Keine passende Antwort gefunden?

Fragen Sie die Community