Innehållsförteckning:
- Steg 1: Elektronisk krets
- Steg 2: Python -kod
- Steg 3: Så här startar du skriptet automatiskt efter startproceduren
Video: Avstängningsknapp för Raspberry Pi: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:36
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
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
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
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:
- 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.
- 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.
- "&" -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:
Microsoft Teams avstängningsknapp: 4 steg
Microsoft Teams Mute-knapp: Skapa en lättåtkomlig tryckknapp för att stänga av/stänga av ljudet själv när du är i ett Microsoft Teams-samtal! Eftersom 2020.Detta projekt använder en Adafruit Circuit Playground Express (CPX) och en stor tryckknapp för att skapa en ljudknapp för Microsoft Teams via snabbtangenten
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
Övertyga dig själv om att bara använda en 12V-till-AC-omriktare för LED-ljussträngar istället för att koppla om dem för 12V: 3 steg
Övertyga dig själv om att bara använda en 12V-till-AC-linjeomvandlare för LED-ljussträngar istället för att koppla om dem för 12V: Min plan var enkel. Jag ville klippa upp en väggdriven LED-ljussträng i bitar och sedan dra om den för att gå av 12 volt. Alternativet var att använda en kraftomvandlare, men vi vet alla att de är fruktansvärt ineffektiva, eller hur? Höger? Eller är de det?
1.5A linjär regulator för konstant ström för lysdioder för: 6 steg
1.5A linjär regulator för konstant ström för lysdioder för: Så det finns massor av instruktioner som täcker användning av LED -lampor med hög ljusstyrka. Många av dem använder den kommersiellt tillgängliga Buckpuck från Luxdrive. Många av dem använder också linjära regleringskretsar som toppar vid 350 mA eftersom de är mycket ineffektiva