Hardware

Installatie

Raspberry Pi 4 Model B Default GPIO Pinout with PoE Header - Documents -  Raspberry Pi - element14 Community
  • Connecteer de LED met weerstand in serie op pin 6 en 8
  • Connecteer de drukknop op pin 5 en 9

Software

Installatie

  • Flash de ‘Raspberry Digital Signage’ of de ‘Raspberry Slideshow’ image op de SD kaart met balenaEtcher
  • Bewerk /boot/config.txt als volgt. Zoek eventueel de mode en group waarden op in de officiële Raspberry PI documentatie.
# Voor de LED
enable_uart=1

# Uitschakelen HDMI detectie voor schermen die traag opstarten
hdmi_force_hotplug=1
hdmi_group:0=1
hdmi_mode:0=16
hdmi_group:0=1
hdmi_mode:0=16
  • Bewerk /usr/local/bin/listen-for-shutdown.py
#!/usr/bin/env python

import RPi.GPIO as GPIO
import subprocess


GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(3, GPIO.FALLING)

subprocess.call(['shutdown', '-h', 'now'], shell=False)
  • Maar het script uitvoerbaar
sudo chmod +x /usr/local/bin/listen-for-shutdown.py
  • Bewerk /etc/init.d/listen-for-shutdown.sh
#! /bin/sh

### BEGIN INIT INFO
# Provides:          listen-for-shutdown.py
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

# If you want a command to always run, put it here

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting listen-for-shutdown.py"
    /usr/local/bin/listen-for-shutdown.py &
    ;;
  stop)
    echo "Stopping listen-for-shutdown.py"
    pkill -f /usr/local/bin/listen-for-shutdown.py
    ;;
  *)
    echo "Usage: /etc/init.d/listen-for-shutdown.sh {start|stop}"
    exit 1
    ;;
esac

exit 0
  • Maak uitvoerbaar en registreer in boot sequentie
sudo chmod +x /etc/init.d/listen-for-shutdown.sh
sudo update-rc.d listen-for-shutdown.sh defaults

# Aangezien het nu nog niet draait starten we het script manueel
sudo /etc/init.d/listen-for-shutdown.sh start
Categorieën: Raspberry PI