Indholdsfortegnelse:

Sluk-knap til Raspberry Pi: 3 trin
Sluk-knap til Raspberry Pi: 3 trin

Video: Sluk-knap til Raspberry Pi: 3 trin

Video: Sluk-knap til Raspberry Pi: 3 trin
Video: Как собрать ПЛК Raspberry Pi Pico || Редактор OpenPLC 2024, Juli
Anonim
Sluk-knap til Raspberry Pi
Sluk-knap til Raspberry Pi

Raspberry Pi er en meget nyttig computerplatform, der gør det muligt at oprette forskellige IoT/robotics/smart-home/… projekt applikationer. Den eneste ting, den dog ikke har, sammenlignet med en normal computer, er en slukningsknap til nedlukning. Så hvordan kan vi selv oprette en? Okay, lad os gøre det sammen!

Til denne vejledning har du brug for følgende:

  • 1 Raspberry Pi allerede konfigureret og klar til brug
  • 1 brødbræt eller noget, der giver dig mulighed for at oprette det elektroniske kredsløb
  • 1 trykknap
  • 2 springtråde

Hvis du aldrig har brugt en Raspberry Pi, kan du tjekke min tutorial om, hvordan og hvad du skal gøre for at konfigurere den:

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

Trin 1: Elektronisk kredsløb

Elektronisk kredsløb
Elektronisk kredsløb
Elektronisk kredsløb
Elektronisk kredsløb
Elektronisk kredsløb
Elektronisk kredsløb

Intet super kompliceret her, det er et ganske ligetil kredsløb. De 2 billeder ovenfor forklarer kredsløbets opbygning. Du kan bruge den GPIO -pin, du ønsker til knapindgangen, du skal bare sørge for at opdatere koden, så den afspejler det.

Lad os hurtigt forklare, hvordan dette kommer til at fungere:

  • den RØDE ledning tager 3.3V til den ene ende af trykknappen.
  • det SORT kabel forbinder den anden ende af trykknappen til en Pi GPIO, som vil blive brugt som input.
  • Som standard er knappen åben, så der går ingen spænding igennem den. Så det SORT kabel er på 0V, når der ikke trykkes på knappen. Det betyder, at den logiske tilstand for Pi GPIO -input er 0.
  • når der trykkes på knappen, vil spændingen gå igennem den, og det SORT kabel vil blive forbundet til 3,3V. Raspberry Pi vil derefter se en spænding på 3,3V ved indgangen, svarende til en logisk tilstand på 1.

Trin 2: Python -kode

Python -kode
Python -kode

Nu hvor kredsløbet er klar til brug, skal vi skrive koden, der vil køre det, og jeg bruger Python i et PyCharm -miljø her. Jeg konfigurerede knappen til kun at slukke Raspberry Pi, når den blev trykket på mere end 3 sekunder. Grunden til, at jeg gør det, er, at det er meget let at få det trykket ved et uheld, og du ikke vil lukke din Pi ved et uheld.

Udskrivningsskærmen ovenfor er fra mit PyCharm -miljø, og koden er følgende (med en mindre forskel på linje 26, der er knyttet til et andet projekt, men ikke påkrævet her):

# Dette er en kode for at slukke for Raspberry Pi, når du trykker på en defineret knap og holder den inde for at deaktivere Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Broadcom pin-nummering schemeGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Knap indstillet som input True: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Switch debounce mens GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - start hvis længde > hold_time: os.system ("sudo poweroff")

Den første ting, hvis du har tilsluttet trykknappen til en anden GPIO, er at opdatere linje 11 på ovenstående printskærm med den relevante GPIO -indgang:

button_poweroff = GPIO_X # Opdater med den korrekte GPIO, der bruges på dit kredsløb

Hold_time -variablen giver dig også mulighed for at ændre ventetiden, der får Pi til at lukke ned.

Trin 3: Sådan startes scriptet automatisk efter opstartsproceduren

Sådan startes scriptet automatisk efter opstartsproceduren
Sådan startes scriptet automatisk efter opstartsproceduren
Sådan starter manuskriptet automatisk efter opstartsproceduren
Sådan starter manuskriptet automatisk efter opstartsproceduren

Nu hvor vi har koden klar, skal vi bare udføre den. Men det ville være praktisk, hvis vi kan få dette script udført hver gang Pi starter, på en automatisk måde, så knappen ville fungere uden at vi kørte scriptet hver gang. Der er mange måder at gøre det på. Jeg har tilføjet en linje her til rc.local -filen, som er placeret i mappen / etc / på din Pi. Det udføres som en del af startsekvensen.

Du skal åbne en kommandolinje og skrive følgende kommandoer (1. printscreen ovenfor):

cd /

cd osv. sudo nano rc.local

Den første kommando tager dig fra dit /home /pi -bibliotek til den rod, som er /.

Den anden kommando fører dig derefter til / etc / biblioteket.

Endelig åbner den tredje rc.local -fil som en superbruger med fulde redigeringsrettigheder, som du skal ændre filen.

Når du er i filen, skal du bare tilføje en linje i slutningen af den, men før exit 0 -sætningen (2. printscreen ovenfor):

# Tilføj denne linje til rc.local -filen for at starte scriptet

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

Der er et par ting, du skal være opmærksom på her:

  1. navnet på din fil: i linjen ovenfor antager jeg, at filen er shutdown_with_hold.py. Men det kan være hvad du vil, bare opdater navnet med dit.
  2. hvor du har gemt din fil: i linjen ovenfor antager jeg, at den er gemt i mappen/home/pi/Documents. Men igen, det kan være hvor som helst. Du skal bare sørge for at sætte den absolutte sti til din fil her.
  3. "&" -tegnet i slutningen af det: dette er vigtigt, og det giver denne kommando mulighed for at køre i baggrunden

Og det er det! Så nu vil scriptet blive udført hver gang din Pi er tændt, og du skal bare trykke mere end 3 sekunder på knappen for at slukke for den.

Anbefalede: