Innehållsförteckning:

Avstängningsknapp för Raspberry Pi: 3 steg
Avstängningsknapp för Raspberry Pi: 3 steg

Video: Avstängningsknapp för Raspberry Pi: 3 steg

Video: Avstängningsknapp för Raspberry Pi: 3 steg
Video: Livet i husbil. Display och uttag i husbilen 2024, Juli
Anonim
Avstängningsknapp för Raspberry Pi
Avstängningsknapp för Raspberry Pi

Raspberry Pi är en mycket användbar datorplattform som gör det möjligt att skapa olika IoT/robotics/smart-home/… projektapplikationer. Det enda den inte har, jämfört med en vanlig dator, är en avstängningsknapp. Så hur kan vi skapa en själv? Okej, låt oss göra det tillsammans!

För den här självstudien behöver du följande:

  • 1 Raspberry Pi är redan konfigurerad och klar att användas
  • 1 brödbräda eller något som gör att du kan skapa den elektroniska kretsen
  • 1 tryckknapp
  • 2 bygelkablar

Om du aldrig har använt en Raspberry Pi kan du kolla in min handledning om hur och vad du ska göra för att konfigurera den:

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

Steg 1: Elektronisk krets

Elektrisk krets
Elektrisk krets
Elektrisk krets
Elektrisk krets
Elektrisk krets
Elektrisk krets

Inget superkomplicerat här, det är en ganska enkel krets. De 2 bilderna ovan förklarar kretsuppbyggnaden. Du kan använda vilken GPIO -pin du vill ha för knappinmatningen, du måste bara se till att uppdatera koden för att återspegla det.

Låt oss snabbt förklara hur detta kommer att fungera:

  • den RÖDA ledningen tar 3.3V till ena änden av tryckknappen.
  • den SVARTA kabeln ansluter den andra änden av tryckknappen till en Pi GPIO som kommer att användas som ingång.
  • som standard är knappen öppen, så det går ingen spänning genom den. Så den SVARTA kabeln är på 0V när knappen inte trycks in. Detta betyder att det logiska tillståndet för Pi GPIO -ingången är 0.
  • när knappen trycks in kommer spänningen att gå igenom den och den SVARTA kabeln kopplas till 3,3V. Raspberry Pi kommer då att se en spänning på 3,3V vid sin ingång, motsvarande ett logiskt tillstånd på 1.

Steg 2: Python -kod

Python -kod
Python -kod

Nu när kretsen är klar att användas måste vi skriva koden som ska köra den, och jag använder Python i en PyCharm -miljö här. Jag konfigurerade knappen för att stänga av Raspberry Pi bara när den trycks in mer än 3 sekunder. Anledningen till att jag gör det är att det är väldigt lätt att trycka på det av misstag och du inte vill stänga av din Pi av misstag.

Utskriftsskärmen ovan är från min PyCharm -miljö och koden är följande (med en liten skillnad på rad 26 som är länkad till ett annat projekt men inte krävs här):

# Detta är en kod för att stänga av Raspberry Pi när du håller in en definierad knapp för att stänga av Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Broadcom pin-nummering schemaGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Knapp inställd som ingång medan 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 if length > hold_time: os.system ("sudo poweroff")

Det första, om du har anslutit tryckknappen till en annan GPIO, är att uppdatera rad 11 på ovanstående skärm med relevant GPIO -ingång:

button_poweroff = GPIO_X # Uppdatera med rätt GPIO som används i din krets

Med variabeln hold_time kan du också ändra väntetiden som får Pi att stängas av.

Steg 3: Så här startar du skriptet automatiskt efter startproceduren

Så här startar du skriptet automatiskt efter startproceduren
Så här startar du skriptet automatiskt efter startproceduren
Så här startar du skriptet automatiskt efter startproceduren
Så här startar du skriptet automatiskt efter startproceduren

Nu när vi har koden klar behöver vi bara köra den. Men det skulle vara bekvämt om vi kan få detta skript att köras varje gång Pi startar, på ett automatiskt sätt, så att knappen skulle fungera utan att vi skulle köra skriptet varje gång. Det finns många sätt att göra det. Jag har lagt till en rad här i rc.local -filen som finns i mappen / etc / på din Pi. Det körs som en del av startsekvensen.

Du måste öppna en kommandorad och skriva följande kommandon (första utskriftsskärmen ovan):

CD /

cd etc sudo nano rc.local

Det första kommandot tar dig från din /home /pi -katalog till roten, som är /.

Det andra kommandot tar dig sedan till / etc / katalogen.

Slutligen öppnar den tredje filen rc.local som en superanvändare, med fullständiga redigeringsrättigheter, som du behöver för att ändra filen.

Väl i filen behöver du bara lägga till en rad i slutet av den, men innan utgången 0 (andra utskriftsskärmen ovan):

# Lägg till den här raden i rc.local -filen för att starta skriptet

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

Det finns några saker du måste uppmärksamma här:

  1. namnet på din fil: i raden ovan antar jag att filen är shutdown_with_hold.py. Men det kan vara vad du vill, uppdatera bara namnet med ditt.
  2. där du har sparat din fil: i raden ovan antar jag att den är sparad i katalogen/home/pi/Documents. Men igen, det kan vara var som helst. Du behöver bara se till att ange den absoluta sökvägen till din fil här.
  3. "&" -tecknet i slutet av det: detta är viktigt, och det tillåter detta kommando att köras i bakgrunden

Och det är allt! Så nu kommer scriptet att köras varje gång din Pi kommer att vara PÅ, och du måste bara trycka på mer än 3 sekunder på knappen för att stänga av den.

Rekommenderad: