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?

...komplette Frage anzeigen

1 Antwort

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
Antwort bewerten Vielen Dank für Deine Bewertung
john201050 07.03.2016, 19:47

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
0
john201050 07.03.2016, 20:34

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.

0

Was möchtest Du wissen?