Hoe geniaal een raspberry Pi ook in elkaar zit, soms heb je gewoon behoefte aan iets simpels als een aan/uit-knop. Een laat die er nou niet op zitten. Maar het is gelukkig erg eenvoudig om er zelf een te klussen.
Aanschakelen
Als je met pin 5 en 6 van je gpio 3 seconden met een vrouwelijk dupont draadje verbindt op het moment dat je pi in slaapstand staat schiet hij wakker. Zet er een momentum-knopje tussen en je hebt een aan-schakelaar. Dat was niet zo moeilijk toch?
Uitzetten
Het handig zijn als je op dezelfde manier ook gelijk als uitschakelaar zou werken, maar daar moeten we eerst nog wat voor doen. We maken een python-script wat naar gpio poortje 5 luistert en op het moment dat hij ziet dat het knopje wordt ingedrukt een schutdown-request verstuurd. Open met onderstaand commando een editor.
sudo pico /usr/local/bin/power-switch.py
Plaats daarin dit pythonscript:
import threading, subprocess import RPi.GPIO as GPIO if __name__ == '__main__': try: GPIO.setmode(GPIO.BOARD) GPIO.setup(5, GPIO.IN) GPIO.wait_for_edge(5, GPIO.RISING) pin = GPIO.wait_for_edge(5, GPIO.FALLING, timeout=3000) if pin is None: subprocess.call('sudo shutdown -h now', shell=True) else: subprocess.call('sudo reboot', shell=True) finally: GPIO.cleanup()
Als je dit script je start en je drukt het eerder gemaakte knopje 3 seconden in dan wordt er een shutdown naar je raspberry gestuurd en schiet hij in slaapstand. Druk je hem korter van 3 seconden in dan doet hij een reboot. Vind je dit te lang of te kort pas dan de timeout in het script aan. Hij staat nu op 3000 miliseconden.
Nu gaan we het zo instellen dat hij dit scriptje automatisch start als je jouw pi aanzet. Open /etc/rc.local in een editor naar keuze, bijvoorbeeld pico.
sudo pico /etc/rc.local
Zet ergens in dit script maar boven “exit 0” onderstaand commando
python3 /usr/local/bin/power-switch.py &
Dat is alles
We zijn er. Nog een keer moet je je pi uitzetten door “sudo shutdown” te geven en daarna heb je een eigenhandig aangesloten knopje voor. Vanaf nu kan je jouw pi aanzetten door het knopje 3 seconden in te drukken en op de zelfde manier weer uitzetten.
Recente reacties