Raspberry Pi
10) Skript pro automatické spouštění
+ vypínání RasPi tlačítkem
Aby se RasPi stalo úplně nezávislé na okolních počítačích,
napsal jsem ještě jeden skript, který dělá to, že když RasPi naběhne,
zabliká jedna z LEDek. V tom okamžiku je možné pomocí dalších
skriptů a tlačítek připojených na GPIO, ovládat běh dalších
programů a signalizovat stav jejich provádění (například spustit záznam
webkamery při pozorování oblohy v terénu mimo dosah internetu).
Vypnutí RasPi je možné také pomocí tlačítka.
Takže už není nutné mít RasPi připojené k počítačové síti a
přistupovat k němu přes VNC. Stačí mít ke GPIO připojená nějaká
tlačítka a LEDky.
Vytvoření skriptu je velice podobné tomu, co jsem prováděl v bodu
5) - zprovoznění automatického spouštění VNC serveru.
Nejdříve je třeba vytvořit vlastní ovládací skript. Já jsem ho
nazval startovaciskript1 uložil ho do složky /usr/bin/
sudo nano /usr/bin/startovaciskript1 |
Do něj jsem vložil toto:
#!/bin/sh
# zablikani ledkou, ktere signalizuje nastartovani RasPi
sleep 2
gpio-admin export 18
echo out > /sys/devices/virtual/gpio/gpio18/direction
echo 1 > /sys/devices/virtual/gpio/gpio18/value
sleep 1
echo 0 > /sys/devices/virtual/gpio/gpio18/value
sleep 1
echo 1 > /sys/devices/virtual/gpio/gpio18/value
sleep 1
echo 0 > /sys/devices/virtual/gpio/gpio18/value
gpio-admin unexport 18
# konec zablikani ledkou
gpio-admin export 21
gpio-admin export 22
# pri pripadnem testovani dalsich tlacitek se tlacitka aktivuji tady
# gpio-admin export 23
while [ 1 ]
do
stav21=`cat /sys/devices/virtual/gpio/gpio21/value`
stav22=`cat /sys/devices/virtual/gpio/gpio22/value`
# tady je mozne testovat dalsi tlacitka a vykonavat dalsi akce
# stav23=`cat /sys/devices/virtual/gpio/gpio23/value`
# if [ "$stav23" -eq "0" ] ; then
#
# spusteni nejakeho programu po stisku tlacitka 23
# /home/pi/skripty/blik #to jsem si splacal jen takovy jednoduchy blikatko
#
#
# fi
# vypnuti RasPi po soucasnem stisku tlacitek 21 a 22
if [ "$stav21" -eq "0" ] && [ "$stav22" -eq "0" ]; then
gpio-admin export 18
echo out > /sys/devices/virtual/gpio/gpio18/direction
echo 1 > /sys/devices/virtual/gpio/gpio18/value
# tady se uvolni vsechny pouzite porty
gpio-admin unexport 18
gpio-admin unexport 21
gpio-admin unexport 22
# gpio-admin unexport 23
sudo /sbin/shutdown -h now
fi
sleep 1
done
|
... pak se soubor uloží stiskem kláves Ctrl+X , Y , Enter
... a nastaví se mu spustitelnost:
sudo chmod 755 /usr/bin/startovaciskript1 |
Dále se vytvoří soubor ve složce /etc/init.d/ s názvem
například startovaciskript:
sudo nano /etc/init.d/startovaciskript |
Do něj se zkopíruje toto:
#!/bin/sh
# /etc/init.d/startovaciskript
### BEGIN INIT INFO
# Provides: startovaciskript
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
VNCUSER='pi'
case "$1" in
start)
su pi -c '/usr/bin/startovaciskript1' &
echo "Nastartovano"
;;
stop)
pkill /usr/bin/startovaciskript1
echo "Zastaveno"
;;
*)
echo "Usage: /usr/bin/startovaciskript1 {start|stop}"
exit 1
;;
esac
exit 0
|
... pak se soubor uloží stiskem kláves Ctrl+X , Y , Enter
Potom se tomuto souboru nastaví atribut spustitelnosti:
sudo chmod 755 /etc/init.d/startovaciskript |
... a pak se provede ještě toto:
sudo update-rc.d startovaciskript defaults |
Po restartu a naběhnutí systému by měla 2x bliknout LED č.18.
Když se pak stisknou zároveň tlačítka 21 a 22, LED č.18 se rozsvítí
trvale a bude svítit tak dlouho, než se systém vypne.
Tady je video:
|