Linux Bash eval - 3D Drucker Temperaturüberwachung
Für meinen 3D-Drucker habe ich eine zusätzliche Temperaturüberwachung gebastelt. Der Drucker wird von einem GT2560 Board gesteuert, zusätzlich verwende ich einen Raspberry um per Webinterface auf den Drucker zuzugreifen. Die Idee war jetzt eine komplett unabhängige Temperaturmessung zum GT2560 Board mit mehreren Sensoren am Raspberry. Die Protokollierung und Parametrisierung wollte ich auf einem Webserver im Internet vornehmen.
Dateiformat, File auf dem Webserver
t1off=50000|t2off=35000|t3off=60000|t4off=32000|t5off=45000
Die einfache Textdatei beinhaltet die Schwellwerte um den Strom am Drucker zu deaktivieren.
Beispiel: Raspberry Temperatur auslesen
temp1=$(cat /sys/bus/w1/devices/28-031689c848ff/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-)
temp2=$(cat /sys/bus/w1/devices/28-041692c80bff/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-)
temp3=$(cat /sys/bus/w1/devices/28-0416928fceff/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-)
temp4=$(cat /sys/bus/w1/devices/28-031689ce28ff/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-)
temp5=$(cat /sys/bus/w1/devices/28-031689cab2ff/w1_slave | grep -E -o ".{0,0}t=.{0,5}" | cut -c 3-)
siehe auch: https://www.libe.net/raspberry-pi-temperatur
Download der Schwellwerte und Zuweisen in Bash
#!/bin/bash
IFS="|";
RESULT="$(wget -qO- 'https://Domin' --user=admin --password=???)"
for NAME in $RESULT
do
eval "$NAME"
done
An dieser Stelle besteht die Möglichkeit mit dem Abholen der Werte, die aktuellen Temperaturwerte per GET-abzuliefern,
curl -f "https://websiteurl/data.php?device=3D&t1=$temp1&t2=$temp2&t3=$temp3&t4=$temp4&t5=$temp5<1=$lasttemp1" -o /var/mytempvars.var -u User:Password -m 3
RESULT="$(cat /var/mytempvars.var)"
Verwenden der Variable, z.B. Ausschalten der Stromversorgung
if [ $temp1 -gt $t1off ] || [ $temp2 -gt $t2off ] || [ $temp3 -gt $t3off ] || [ $temp4 -gt $t4off ] || [ $temp5 -gt $t5off ] #disabled Fail$
then
echo "turning off: t1:$temp1 fc:$fc"
gpio export 21 high
gpio export 22 high
fi
sleep 5
done
({{pro_count}})
Beitrag bewerten:{{percentage}} % positiv
({{con_count}})