Innholdsfortegnelse:

Slå av-knapp for Raspberry Pi: 3 trinn
Slå av-knapp for Raspberry Pi: 3 trinn

Video: Slå av-knapp for Raspberry Pi: 3 trinn

Video: Slå av-knapp for Raspberry Pi: 3 trinn
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Slå av-knapp for Raspberry Pi
Slå av-knapp for Raspberry Pi

Raspberry Pi er en veldig nyttig databehandlingsplattform som gjør det mulig å lage forskjellige IoT/robotics/smart-home/… prosjektapplikasjoner. Den eneste tingen den ikke har, sammenlignet med en vanlig datamaskin, er en avstengningsknapp. Så hvordan kan vi lage en selv? Ok, la oss gjøre det sammen!

For denne opplæringen trenger du følgende:

  • 1 Raspberry Pi allerede konfigurert og klar til bruk
  • 1 brødbrett eller noe som lar deg lage den elektroniske kretsen
  • 1 trykknapp
  • 2 hoppetråder

Hvis du aldri har brukt en Raspberry Pi, kan du sjekke ut veiledningen min om hvordan og hva du skal gjøre for å konfigurere den:

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

Trinn 1: Elektronisk krets

Elektronisk krets
Elektronisk krets
Elektronisk krets
Elektronisk krets
Elektronisk krets
Elektronisk krets

Ingenting super komplisert her, det er ganske grei krets. De to bildene ovenfor forklarer kretsbygget. Du kan bruke hvilken GPIO -pin du vil ha for knappinndata. Du må bare sørge for å oppdatere koden for å gjenspeile det.

La oss raskt forklare hvordan dette kommer til å fungere:

  • den RØDE ledningen tar 3.3V til den ene enden av trykknappen.
  • den SVARTE kabelen kobler den andre enden av trykknappen til en Pi GPIO som skal brukes som inngang.
  • Som standard er knappen åpen, så det er ingen spenning som går gjennom den. Så den SVARTE kabelen er på 0V når knappen ikke trykkes. Dette betyr at den logiske tilstanden til Pi GPIO -inngangen er 0.
  • Når knappen trykkes, vil spenningen gå gjennom den og den SVARTE kabelen vil bli koblet til 3,3V. Raspberry Pi vil da se en spenning på 3,3V ved inngangen, som tilsvarer en logisk tilstand på 1.

Trinn 2: Python -kode

Python -kode
Python -kode

Nå som kretsen er klar til bruk, må vi skrive koden som skal kjøre den, og jeg bruker Python i et PyCharm -miljø her. Jeg konfigurerte knappen til å slå av Raspberry Pi bare når den er trykket på mer enn 3 sekunder. Grunnen til at jeg gjør det er at det er veldig lett å trykke den ved et uhell, og du ikke vil slå av Pi -en din ved et uhell.

Utskriftsskjermen ovenfor er fra PyCharm -miljøet mitt, og koden er følgende (med en liten forskjell på linje 26 som er knyttet til et annet prosjekt, men ikke nødvendig her):

# Dette er en kode for å slå av Raspberry Pi når du trykker på og holder inne en definert knapp for å slå av Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Broadcom pin-nummering schemeGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Knapp satt som input mens True: GPIO.wait_for_edge ((button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Switch debounce while GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - start hvis lengde > hold_time: os.system ("sudo poweroff")

Det første, hvis du har koblet trykknappen til en annen GPIO, er å oppdatere linje 11 på utskriftsskjermen ovenfor med den aktuelle GPIO -inngangen:

button_poweroff = GPIO_X # Oppdater med riktig GPIO brukt på kretsen din

Hold_time -variabelen lar deg også endre ventetiden som får Pi til å stenge.

Trinn 3: Slik starter du manuset automatisk etter oppstartsprosedyren

Slik starter manuset automatisk etter oppstartsprosedyren
Slik starter manuset automatisk etter oppstartsprosedyren
Slik starter manuset automatisk etter oppstartsprosedyren
Slik starter manuset automatisk etter oppstartsprosedyren

Nå som vi har koden klar, trenger vi bare å utføre den. Men det ville være praktisk hvis vi kan få dette skriptet utført hver gang Pi starter opp på en automatisk måte, så knappen ville fungere uten at vi kjørte skriptet hver gang. Det er mange måter å gjøre det på. Jeg har lagt til en linje her i rc.local -filen som ligger i / etc / -mappen til Pi -en. Den kjøres som en del av oppstartsekvensen.

Du må åpne en kommandolinje og skrive inn følgende kommandoer (første utskriftsskjerm ovenfor):

cd /

cd etc sudo nano rc.local

Den første kommandoen tar deg fra /home /pi -katalogen til roten, som er /.

Den andre kommandoen tar deg deretter til / etc / katalogen.

Til slutt vil den tredje åpne rc.local -filen som en superbruker, med full redigeringsrettighet, som du trenger for å endre filen.

Når du er i filen, trenger du bare å legge til en linje på slutten av den, men før exit 0 -setningen (2. utskriftsskjerm ovenfor):

# Legg denne linjen til rc.local -filen for å starte skriptet

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

Det er noen ting du må ta hensyn til her:

  1. navnet på filen din: I linjen ovenfor antar jeg at filen er shutdown_with_hold.py. Men det kan være hva du vil, bare oppdater navnet med ditt.
  2. der du har lagret filen din: I linjen ovenfor antar jeg at den er lagret i katalogen/home/pi/Documents. Men igjen, det kan være hvor som helst. Du trenger bare å sørge for å sette den absolutte banen til filen din her.
  3. "&" -tegnet på slutten av det: dette er viktig, og det lar denne kommandoen kjøre i bakgrunnen

Og det er det! Så nå blir skriptet utført hver gang Pi vil være PÅ, og du må bare trykke mer enn 3 sekunder på knappen for å slå den av.

Anbefalt: