Sommario:
- Passaggio 1: circuito elettronico
- Passaggio 2: codice Python
- Passaggio 3: come avviare automaticamente lo script dopo la procedura di avvio
Video: Pulsante di spegnimento per Raspberry Pi: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
Il Raspberry Pi è una piattaforma di elaborazione molto utile che consente di creare varie applicazioni di progetto IoT/robotica/casa intelligente/…. L'unica cosa che non ha però, rispetto a un normale computer, è un pulsante di spegnimento e spegnimento. Quindi, come possiamo crearne uno noi stessi? Va bene, facciamolo insieme!
Per questo tutorial, avrai bisogno di quanto segue:
- 1 Raspberry Pi già configurato e pronto all'uso
- 1 breadboard o qualcosa che ti permetta di creare il circuito elettronico
- 1 pulsante
- 2 ponticelli
Se non hai mai usato un Raspberry Pi, puoi dare un'occhiata al mio tutorial su come e cosa fare per configurarlo:
www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/
Passaggio 1: circuito elettronico
Niente di super complicato qui, è un circuito abbastanza semplice. Le 2 immagini sopra spiegano la costruzione del circuito. Puoi utilizzare qualsiasi pin GPIO che desideri per l'input del pulsante, dovrai solo assicurarti di aggiornare il codice per riflettere ciò.
Spieghiamo rapidamente come funzionerà:
- il filo ROSSO sta portando i 3,3 V a un'estremità del pulsante.
- il cavo NERO sta collegando l'altra estremità del pulsante a un Pi GPIO che verrà utilizzato come input.
- per impostazione predefinita il pulsante è aperto, quindi non c'è tensione che lo attraversa. Quindi il cavo NERO è a 0V quando il pulsante non è premuto. Ciò significa che lo stato logico dell'ingresso Pi GPIO è 0.
- quando il pulsante verrà premuto, la tensione lo attraverserà e il cavo NERO sarà collegato al 3.3V. Il Raspberry Pi vedrà quindi una tensione di 3,3 V al suo ingresso, corrispondente a uno stato logico di 1.
Passaggio 2: codice Python
Ora che il circuito è pronto per essere utilizzato, dobbiamo scrivere il codice che lo eseguirà e qui sto usando Python in un ambiente PyCharm. Ho configurato il pulsante per spegnere il Raspberry Pi solo quando viene premuto per più di 3 secondi di conseguenza. Il motivo per cui lo sto facendo è che è molto facile averlo premuto accidentalmente e non vuoi spegnere il tuo Pi per sbaglio.
La schermata di stampa sopra proviene dal mio ambiente PyCharm e il codice è il seguente (con una piccola differenza sulla riga 26 che è collegata a un altro progetto ma non richiesta qui):
# Questo è un codice per spegnere il Raspberry Pi quando si tiene premuto un pulsante definito# Il modulo esterno importsimport RPi. GPIO as GPIOimport timeimport os# Pin Raspberry Pi e definizioni delle variabili &hold_time = 3 # Tempo di attesa in sec per poweroffbutton_poweroff = 1 # Pulsante per disattivare Raspberry PiGPIO.setwarnings(False)GPIO.setmode(GPIO. BCM) # Schema di numerazione dei pin BroadcomGPIO.setup(button_poweroff, GPIO. IN, pull_up_down=GPIO. PUD_DOWN) # Pulsante impostato come inputwhile True: GPIO.wait_for_edge(button_poweroff, GPIO. RISING) start = time.time() time.sleep(0.2) # Commuta l'antirimbalzo while GPIO.input(button_poweroff) == 1: time.sleep(0.01) length = time.time() - inizia se lunghezza > hold_time: os.system("sudo poweroff")
La prima cosa, se hai collegato il pulsante a un altro GPIO, è aggiornare la riga 11 sulla schermata di stampa sopra con il relativo input GPIO:
button_poweroff = GPIO_X # Aggiorna con il GPIO corretto utilizzato sul tuo circuito
Inoltre, la variabile hold_time consente di modificare il tempo di attesa che attiva lo spegnimento del Pi.
Passaggio 3: come avviare automaticamente lo script dopo la procedura di avvio
Ora che abbiamo il codice pronto, non ci resta che eseguirlo. Ma sarebbe conveniente se potessimo eseguire questo script ogni volta che il Pi si avvia, in modo automatico, in modo che il pulsante funzioni senza di noi per eseguire lo script ogni volta. Ci sono molti modi per farlo. Ho aggiunto qui una riga nel file rc.local che si trova nella cartella /etc/ del tuo Pi. Viene eseguito come parte della sequenza di avvio.
Devi aprire una riga di comando e digitare i seguenti comandi (prima schermata di stampa sopra):
cd /
cd ecc sudo nano rc.local
Il primo comando ti porterà dalla tua directory /home/pi a quella di root, che è /.
Il secondo comando ti porterà quindi alla directory /etc/.
Infine, il terzo aprirà il file rc.local come superutente, con diritti di modifica completi, necessari per modificare il file.
Una volta nel file, devi solo aggiungere una riga alla fine, ma prima dell'istruzione exit 0 (seconda schermata di stampa sopra):
# Aggiungi questa riga al file rc.local per avviare lo script
sudo python /home/pi/Documents/shutdown_with_hold.py &
Ci sono alcune cose a cui devi prestare attenzione, qui:
- il nome del tuo file: nella riga sopra, presumo che il file sia shutdown_with_hold.py. Ma potrebbe essere quello che vuoi, aggiorna il nome con il tuo.
- dove hai salvato il tuo file: nella riga sopra, presumo che sia salvato nella tua directory /home/pi/Documents. Ma ancora una volta, può essere ovunque. Devi solo assicurarti di inserire il percorso assoluto del tuo file qui.
- il carattere "&" alla fine: questo è importante e consente a questo comando di essere eseguito in background
E questo è tutto! Quindi ora, lo script verrà eseguito ogni volta che il tuo Pi sarà acceso e dovrai solo premere più di 3 secondi sul pulsante per spegnerlo.
Consigliato:
Alimentazione di backup per un corretto spegnimento: 5 passaggi
Alimentazione di backup per un corretto spegnimento: un alimentatore di backup è un circuito che fornisce alimentazione ai dispositivi nel caso in cui l'alimentazione principale si interrompa. In questo caso, questo alimentatore di backup ha lo scopo di fornire alimentazione solo per pochi secondi in modo che il dispositivo possa eseguire la procedura di spegnimento
Promemoria per lo spegnimento del ferro: 4 passaggi
Promemoria per spegnere il ferro: ciao a tutti i membri e hobbista.il personaggio principale di tutta questa storia è mia moglie.un giorno mattina ha stirato il suo vestito da ufficio e improvvisamente è uscita di casa per lavorare.io e mia figlia siamo andati a casa di mia madre al lo stesso giorno. la sera siamo tutti in webcam
Caricamento USB per interrompere lo spegnimento automatico dei Power Bank: 4 passaggi
Caricamento USB per interrompere lo spegnimento automatico dei power bank: ho diversi power bank, che funzionano alla grande, ma ho riscontrato problemi durante la ricarica degli auricolari wireless. Il power bank si spegne automaticamente, a causa della corrente di carica troppo piccola. piccolo carico per mantenere il potere ba
Timer spegnimento ritardato per bici: 5 passaggi
Timer spegnimento ritardato per bici: Problema: ho aggiunto diversi dispositivi sulla mia bici. Il problema è che o sono collegati direttamente alla batteria e assorbono una corrente di dispersione o dopo l'interruttore principale e non sono disponibili quando spengo la bici.Esempi: Devi ricaricare
Microcontrollore AVR. Attiva/disattiva i LED utilizzando un interruttore a pulsante. Pulsante antirimbalzo: 4 passaggi
Microcontrollore AVR. Attiva/disattiva i LED utilizzando un interruttore a pulsante. Push Button Debouncing.: In questa sezione, impareremo come creare un codice C del programma per ATMega328PU per alternare lo stato dei tre LED in base all'input da un interruttore a pulsante. Inoltre, abbiamo esplorato una soluzione al problema di "Switch Bounce". Come di consueto, vi