birdcam-pi/poll_button.sh

93 lines
2.4 KiB
Bash
Raw Normal View History

2021-09-19 20:24:31 +02:00
#!/bin/sh
gpiocmd="$(command -v gpio)"
if [ -z "$gpiocmd" ]; then
echo "Command gpio missing, try to install ..."
echo "Check internet connection ..."
2021-09-21 23:09:37 +02:00
pingserver="raspbian.raspberrypi.org" ### var: pingcheck destination
2021-09-19 20:24:31 +02:00
if ! ping -q -c1 $pingserver>/dev/null; then
echo "No internet connection ..."
exit 0
fi
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
rm wiringpi-latest.deb
# sudo apt update; sudo apt -y install wiringpi
gpiocmd="$(command -v gpio)"
if [ -z "$gpiocmd" ]; then
echo "cannot install wiringpi, exiting ..."
exit 0
fi
fi
2021-09-21 23:05:25 +02:00
gpiopin_sw="0" ### var: gpio switch
gpiopin_led_r="2" ### var: gpio led red
gpiopin_led_g="29" ### var: gpio led green
2021-09-19 20:24:31 +02:00
2021-09-21 23:05:25 +02:00
cameracmd="/home/pi/birdcam/view_birdcam.sh" ### var: path to player script
2021-09-19 20:24:31 +02:00
2021-09-21 23:05:25 +02:00
buttonpolling="0.05" ### var: button polling in seconds
buttontimeout="1" ### var: button timeout in seconds
countermax="1200" ### var: counter max for automatic switching (countermax=time/buttonpolling)
2021-09-19 20:24:31 +02:00
$gpiocmd mode $gpiopin_led_g out
$gpiocmd write $gpiopin_led_g 0
while true; do
2021-09-21 19:26:48 +02:00
counter="0"
2021-09-19 20:24:31 +02:00
$gpiocmd mode $gpiopin_led_r out
$gpiocmd write $gpiopin_led_g 1
2021-09-21 19:26:48 +02:00
while [ "$($gpiocmd read $gpiopin_sw)" -eq "1" ] && [ "$counter" -lt "$countermax" ]; do
counter="$(($counter + 1))"
#echo "$counter"
2021-09-19 20:24:31 +02:00
sleep $buttonpolling
done
2021-09-21 22:25:41 +02:00
$gpiocmd write $gpiopin_led_g 0
$gpiocmd mode $gpiopin_led_r in
2021-09-21 23:05:25 +02:00
camname="random" ### var: parameter for random video
2021-09-21 22:25:41 +02:00
$cameracmd $camname &
echo "$camname started!"
sleep $buttontimeout
counter="0"
$gpiocmd mode $gpiopin_led_r out
$gpiocmd write $gpiopin_led_g 1
while [ "$($gpiocmd read $gpiopin_sw)" -eq "1" ] && [ "$counter" -lt "$countermax" ]; do
counter="$(($counter + 1))"
#echo "$counter"
sleep $buttonpolling
done
2021-09-19 20:24:31 +02:00
$gpiocmd write $gpiopin_led_g 0
$gpiocmd mode $gpiopin_led_r in
2021-09-21 23:05:25 +02:00
camname="birdcam1" ### var: parameter for camera 1
2021-09-19 20:24:31 +02:00
$cameracmd $camname &
echo "$camname started!"
sleep $buttontimeout
2021-09-21 19:26:48 +02:00
counter="0"
2021-09-19 20:24:31 +02:00
$gpiocmd mode $gpiopin_led_r out
$gpiocmd write $gpiopin_led_g 1
2021-09-21 19:26:48 +02:00
while [ "$($gpiocmd read $gpiopin_sw)" -eq "1" ] && [ "$counter" -lt "$countermax" ]; do
counter="$(($counter + 1))"
#echo "$counter"
2021-09-19 20:24:31 +02:00
sleep $buttonpolling
done
$gpiocmd write $gpiopin_led_g 0
$gpiocmd mode $gpiopin_led_r in
2021-09-21 23:05:25 +02:00
camname="birdcam2" ### var: parameter for camera 2
2021-09-19 20:24:31 +02:00
$cameracmd $camname &
echo "$camname started!"
sleep $buttontimeout
2021-09-21 23:05:25 +02:00
done