Cuprins:

Buton de oprire pentru Raspberry Pi: 3 pași
Buton de oprire pentru Raspberry Pi: 3 pași

Video: Buton de oprire pentru Raspberry Pi: 3 pași

Video: Buton de oprire pentru Raspberry Pi: 3 pași
Video: Aceasta sa fie caderea lui Raspberry Pi? 2024, Noiembrie
Anonim
Buton de oprire pentru Raspberry Pi
Buton de oprire pentru Raspberry Pi

Raspberry Pi este o platformă de calcul foarte utilă care permite crearea diverselor aplicații de proiect IoT / robotică / smart-home / … Singurul lucru pe care nu îl are, comparativ cu un computer normal, este un buton de oprire. Deci, cum putem crea unul singur? Bine, să o facem împreună!

Pentru acest tutorial, veți avea nevoie de următoarele:

  • 1 Raspberry Pi deja configurat și gata de utilizare
  • 1 panou sau ceva care vă va permite să creați circuitul electronic
  • 1 buton
  • 2 fire jumper

Dacă nu ați folosit niciodată un Raspberry Pi, puteți consulta tutorialul meu despre cum și ce să faceți pentru a-l configura:

www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/

Pasul 1: Circuit electronic

Circuit electronic
Circuit electronic
Circuit electronic
Circuit electronic
Circuit electronic
Circuit electronic

Nimic super complicat aici, este un circuit destul de simplu. Cele 2 imagini de mai sus explică construcția circuitului. Puteți utiliza oricare pin GPIO doriți pentru introducerea butonului, va trebui doar să vă asigurați că actualizați codul pentru a reflecta acest lucru.

Să explicăm rapid cum va funcționa acest lucru:

  • firul roșu duce 3,3V la un capăt al butonului.
  • cablul BLACK conectează celălalt capăt al butonului la un GPIO Pi care va fi folosit ca intrare.
  • În mod implicit, butonul este deschis, deci nu există tensiune prin el. Deci cablul NEGRU este la 0V când butonul nu este apăsat. Aceasta înseamnă că starea logică a intrării GPIO Pi este 0.
  • când butonul va fi apăsat, tensiunea va trece prin el și cablul NEGRU va fi conectat la 3.3V. Raspberry Pi va vedea apoi o tensiune de 3,3V la intrare, corespunzând unei stări logice de 1.

Pasul 2: Cod Python

Cod Python
Cod Python

Acum, când circuitul este gata de utilizare, trebuie să scriem codul care îl va rula și folosesc Python într-un mediu PyCharm aici. Am configurat butonul pentru a opri Raspberry Pi numai atunci când este apăsat mai mult de 3 secunde în consecință. Motivul pentru care fac acest lucru este că este foarte ușor să-l apăsați accidental și nu doriți să închideți Pi-ul din întâmplare.

Ecranul de imprimare de mai sus provine din mediul meu PyCharm, iar codul este următorul (cu o diferență minoră pe linia 26, care este legată de un alt proiect, dar nu este necesară aici):

# Acesta este un cod pentru oprirea Raspberry Pi atunci când apăsați și țineți apăsat un buton definit # Modul extern importsimport RPi. GPIO ca GPIO import timp import # Raspberry Pi pin & variables definons & hold_time = 3 # Hold time in sec to poweroffbutton_poweroff = 1 # Buton pentru a dezactiva Raspberry PiGPIO.setwarnings (Fals) GPIO.setmode (GPIO. BCM) # Schema de numerotare a pinului BroadcomGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Buton setat ca input în timp ce True: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Comutați debounce în timp ce GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - începeți dacă lungimea > hold_time: os.system ("sudo poweroff")

Primul lucru, dacă ați conectat butonul la un alt GPIO, este să actualizați linia 11 de pe ecranul de imprimare de mai sus cu intrarea GPIO relevantă:

button_poweroff = GPIO_X # Actualizați cu GPIO corect utilizat pe circuitul dvs.

De asemenea, variabila hold_time vă permite să modificați timpul de așteptare care declanșează oprirea Pi.

Pasul 3: Cum se lansează automat scriptul după procedura de pornire

Cum se lansează automat scriptul după procedura de pornire
Cum se lansează automat scriptul după procedura de pornire
Cum se lansează automat scriptul după procedura de pornire
Cum se lansează automat scriptul după procedura de pornire

Acum că avem codul gata, trebuie doar să-l executăm. Dar, ar fi convenabil dacă putem executa acest script de fiecare dată când Pi pornește, într-un mod automat, astfel încât butonul ar funcționa fără ca noi să rulăm scriptul de fiecare dată. Există multe modalități de a face acest lucru. Am adăugat aici o linie în fișierul rc.local care se află în folderul / etc / al Pi. Este executat ca parte a secvenței de boot.

Trebuie să deschideți o linie de comandă și să tastați următoarele comenzi (primul ecran de imprimare de mai sus):

cd /

cd etc sudo nano rc.local

Prima comandă vă va duce din directorul / home / pi în cel rădăcină, care este /.

A doua comandă vă va duce apoi în directorul / etc /.

În cele din urmă, al treilea va deschide fișierul rc.local ca superutilizator, cu drepturi complete de editare, de care trebuie să modificați fișierul.

Odată ajuns în fișier, trebuie doar să adăugați o linie la sfârșitul acestuia, dar înainte de declarația exit 0 (al doilea ecran de imprimare de mai sus):

# Adăugați această linie în fișierul rc.local pentru a lansa scriptul

sudo python /home/pi/Documents/shutdown_with_hold.py &

Există câteva lucruri pe care trebuie să le acordați atenție, aici:

  1. numele fișierului dvs.: în linia de mai sus, presupun că fișierul este shutdown_with_hold.py. Dar ar putea fi orice vrei, doar actualizează numele cu al tău.
  2. unde ați salvat fișierul: în linia de mai sus, presupun că este salvat în directorul / home / pi / Documents. Dar, din nou, poate fi oriunde. Trebuie doar să vă asigurați că puneți calea absolută către fișierul dvs. aici.
  3. caracterul „&” de la sfârșitul acestuia: acest lucru este important și permite ca această comandă să ruleze în fundal

Si asta e! Deci, acum, scriptul va fi executat de fiecare dată când Pi-ul dvs. va fi PORNIT și va trebui doar să apăsați mai mult de 3 secunde pe buton pentru al opri.

Recomandat: