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:

Odkaz na YouTube

 

 


úvodní strana webu AstroMiK.org

poslední úprava stránky 29.7.2012