Jak odczytać stan wejścia analogowego w skrypcie?
Odczyt stanu wejść analogowych może być realizowany poprzez własne skrypty. W takim wypadku dużo łatwiej wprowadzać pewne zależności powodujące na przykład wysyłanie komunikatów cyfrowych po przekroczeniu pewnego poziomu wejść analogowych. Poniżej przykład odczytu zmiennych analogowych.
Można wykorzystać do tego celu zmienną:
VAL1=`/usr/bin/io get an1`
Po czym dołożyć pewien warunek wyświetlający komunikat w zależności od poziomu wejścia:
VAL=`/usr/bin/io get an1`
if [ $VAL -gt 500 ]; then
echo="Value is "$VAL
else
echo="Value is less then 500"
fi
Odczyt wejścia może być również realizowany bezpośrednio w instrukcji warunkowej:
if [ `/usr/bin/io get an1` -gt 500 ]; then
echo="Value is "$VAL
else
echo="Value is less then 500"
fi
Poniżej skrypt powodujący wysłanie SMSa w momencie, gdy wejście an1 lub an2 przekroczą ustalony w zmiennych próg:
#!/bin/sh
PHONE=+48500123456
an1thrshold=500
an2thrshold=500
an1txt="Aktivace an1"
an2txt="Aktivace an2"
OLD1=0
OLD2=0
while true
do
VAL1=`/usr/bin/io get an1`
if [ $VAL1 -gt $an1thrshold ]; then
POMVAL1=1
else
POMVAL1=0
fi
if [ "$POMVAL1" != "$OLD1" ]; then
[ "$POMVAL1" = "1" ] && gsmsms $PHONE "$an1txt"
OLD1=$POMVAL1
fi
VAL2=`/usr/bin/io get an2`
if [ $VAL2 -gt $an2thrshold ]; then
POMVAL2=1
else
POMVAL2=0
fi
if [ "$POMVAL2" != "$OLD2" ]; then
[ "$POMVAL2" = "1" ] && gsmsms $PHONE "$an2txt"
OLD2=$POMVAL2
fi
sleep 1
done
EOF
Opis tworzenia i wgrywania tego typu skryptów znajduje się w poradniku „Metody tworzenia własnych skryptów”.
Skontaktuj się ze specjalistą Elmark
Masz pytania? Potrzebujesz porady? Zadzwoń lub napisz do nas!