Buongiorno,
Oggi vi propongo una piccola guida su come realizzare i pulsanti di spegnimento e riaccensione per il nostro Raspberry.
Parte 0: premessa
Come sappiamo, il RPi non ha un pulsante di accensione ne spegnimento di fabbrica: una volta alimentato si accende immediatamente e per spegnerlo si può usare il comando # poweroff; inoltre dopo essere stato spento, per riaccendere il RPi è necessario scollegarlo e ricollegarlo all’alimentazione (e tanti saluti al connettore!)
Il consumo del RPi è irrisorio, quindi (sotto questo punto di vista) forse non conviene neanche spegnerlo e riaccenderlo, ma potrebbe essere utile per varie ragioni: per esempio, una persona che vive in una zona soggetta a frequenti blackout, salva il RPi da arresti anomali, preservando così il file system. Altra argomentazione potrebbe essere il fatto che la scheda SD, essendo una memoria flash, è soggetta ad usura e più tempo il Raspberry sta acceso, più la SD si consuma.
Ma a inizio articolo abbiamo detto che esiste già un comando per spegnerlo: a cosa dovrebbe servire un pulsante? Può risultare comodo per media center o anche per RPi usati da remoto.
Parte 1: il pulsante di accensione
Per quanto riguarda il pulsante di accensione bisogna premettere anche che sono necessarie competenze elettroniche: è necessario saldare due cavetti sul nostro RPi (ammetto che anch’io quando l’ho fatto avevo un po’, come dire, di paura!)
Leggete questo articolo per sapere cosa saldare.
Una volta saldato i due cavetti al connettore, non ci resta che saldarli alle due estremità di un pulsante NO (NA in italiano), ossia un pulsante che, quando premuto, crea un contatto fra i due morsetti.
Ecco fatto, abbiamo realizzato il nostro pulsante di accensione! Una volta spento il RPi possiamo usarlo per riaccenderlo: molto più comodo che scollegarlo e ricollegarlo!
N.B.: se premete il tasto mentre RPi è acceso, questo si riavvierà e ciò equivale a un arresto anomalo, quindi è da evitare!
Parte 2: il pulsante di spegnimento
Per quanto riguarda il pulsante di spegnimento: la parte hardware è più semplice ma è necessaria una parte software. che intercetta la pressione del pulsante ed impartisce il comando poweroff.
E’ infatti sufficiente collegare le due estremità di un pulsante NO una au una GPIO e una ad un GND (vi consiglio GPIO 10 così il codice d’esempio funziona senza problemi!).
Per il software invece create il file /root/shutdown_button
sudo nano /root/shutdown_button
E inserite il seguente codice
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import os GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) #Nelle due righe seguenti, eventualmente sostituire 10 col numero del GPIO a cui avete collegato il pulsante (numerazione GPIO.BCM) GPIO.setup(10,GPIO.IN,pull_up_down=GPIO.PUD_UP) GPIO.wait_for_edge(10,GPIO.FALLING) os.system("poweroff") |
Diamo i giusti permessi al file coi seguenti comandi:
sudo chown root:root /root/shutdown_button
sudo chmod 770 /root/shutdown_button
Ora modificate il file /etc/rc.local per farlo eseguire in automatico
sudo nano /etc/rc.local
e aggiungete prima dell’ultima riga la seguente:
1 |
/root/shutdown_button & #mi raccomando la & finale |
in modo che il file sia uguale al seguente (ovviamente se lo avete modificato prima per altri motivi ci avrete anche altre righe)
Premete CTRL+X, digitate Y ed invio.
Ora non ci resta che riavviare il RPi
sudo reboot
Ora, se premete il tasto di spegnimento, il Raspberry si spegne correttamente!
Per concludere vi mostro come ho aggiunto i tasti di accensione e spegnimento al RPi che uso come media center (troverò un modo per indicare qual è ON e qual è OFF, magari delle etichette con stampate le icone di font awesome).
Se avete dubbi non esitate a scrivere su RaspberryItaly, il forum italiano dedicato al Raspberry Pi!
Un commento
Pingback: RetroPie su Raspberry Pi 3 | Enrico Marogna