Talaan ng mga Nilalaman:
- Hakbang 1: Electronic Circuit
- Hakbang 2: Python Code
- Hakbang 3: Paano Ilunsad ang Awtomatikong Script Pagkatapos ng Pamamaraan ng Boot
Video: Button na Power-off para sa Raspberry Pi: 3 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Ang Raspberry Pi ay isang lubhang kapaki-pakinabang na platform ng computing na nagbibigay-daan sa paglikha ng iba't ibang mga IoT / robotics / smart-home /… application ng proyekto. Ang isang bagay na wala dito, ihambing sa isang normal na computer, ay isang shutdown na power-off button. Kaya paano natin malilikha ang isa sa ating sarili? Sige, sama-sama nating gawin!
Para sa tutorial na ito, kakailanganin mo ang sumusunod:
- Naka-configure na ang 1 Raspberry Pi at handa nang gamitin
- 1 breadboard o isang bagay na magbibigay-daan sa iyo upang lumikha ng electronic circuit
- 1 push-button
- 2 mga jumper wires
Kung hindi ka pa nakakagamit ng isang Raspberry Pi, maaari mong suriin ang aking tutorial sa kung paano at kung ano ang gagawin upang mai-configure ito:
www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/
Hakbang 1: Electronic Circuit
Walang sobrang kumplikado dito, ito ay isang prangka na circuit. Ang 2 larawan sa itaas ay nagpapaliwanag ng circuit build. Maaari mong gamitin ang alinmang GPIO pin na gusto mo para sa pag-input ng pindutan, kakailanganin mong tiyakin na i-update ang code upang maipakita iyon.
Mabilis nating ipaliwanag kung paano ito gagana:
- ang RED wire ay kumukuha ng 3.3V sa isang dulo ng push button.
- ang BLACK cable ay kumukonekta sa kabilang dulo ng pindutan ng push sa isang Pi GPIO na gagamitin bilang input.
- bilang default ang pindutan ay bukas, kaya walang boltahe na dumadaan dito. Kaya't ang BLACK cable ay nasa 0V kapag ang pindutan ay hindi pinindot. Nangangahulugan ito na ang lohikal na estado ng input ng Pi GPIO ay 0.
- kapag ang pindutan ay pinindot, ang boltahe ay dumaan dito at ang BLACK cable ay maiugnay sa 3.3V. Makikita ng Raspberry Pi ang boltahe na 3.3V sa input nito, na naaayon sa isang lohikal na estado ng 1.
Hakbang 2: Python Code
Ngayon na ang circuit ay handa nang magamit, kailangan naming isulat ang code na tatakbo nito, at gumagamit ako ng Python sa isang kapaligiran sa PyCharm dito. Na-configure ko ang pindutan upang i-power-off lamang ang Raspberry Pi kapag pinindot ito nang higit sa 3 segundo dahil dito. Ang dahilan kung bakit ko ginagawa ito ay napakadali na mapilitan ito nang hindi sinasadya, at hindi mo nais na isara ang iyong Pi nang hindi sinasadya.
Ang printscreen sa itaas ay mula sa aking kapaligiran sa PyCharm, at ang code ay ang sumusunod (na may isang maliit na pagkakaiba sa linya 26 na naka-link sa isa pang proyekto ngunit hindi kinakailangan dito):
# Ito ay isang code upang i-poweroff ang Raspberry Pi kapag pinipindot at hinahawakan ang isang tinukoy na pindutan # External module import importport RPi. GPIO bilang GPIOimport timeimport os # Raspberry Pi pin & variable variable & hold_time = 3 # Hold time in sec to poweroffbutton_poweroff = 1 # Push button upang patayin ang Raspberry PiGPIO.setwarnings (Maling) GPIO.setmode (GPIO. BCM) # Broadcom pin-numbering schemeGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Button set as input Sementara Totoo: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.s Sleep (0.2) # Lumipat ng debounce habang GPIO.input (button_poweroff) == 1: time.s Sleep (0.01) haba = time.time () - magsimula kung haba > hold_time: os.system ("sudo poweroff")
Ang unang bagay, kung nakakonekta mo ang pindutan ng itulak sa ibang GPIO, ay i-update ang linya 11 sa itaas na printscreen na may kaugnay na input ng GPIO:
button_poweroff = GPIO_X # I-update gamit ang tamang GPIO na ginamit sa iyong circuit
Gayundin, pinapayagan ka ng variable ng hold_time na baguhin ang oras ng paghihintay na nagpapalitaw upang ma-shut down ang Pi.
Hakbang 3: Paano Ilunsad ang Awtomatikong Script Pagkatapos ng Pamamaraan ng Boot
Ngayon na handa na namin ang code, kailangan lang namin itong isagawa. Ngunit, magiging maginhawa kung maaari naming ipatupad ang script na ito sa tuwing mag-boot ang Pi, sa isang awtomatikong paraan, kaya gagana ang pindutan nang hindi namin pinapatakbo ang script sa bawat oras. Maraming paraan upang magawa ito. Naidagdag ko dito ang isang linya sa rc.local file na matatagpuan sa / etc / folder ng iyong Pi. Isinasagawa ito bilang bahagi ng pagkakasunud-sunod ng boot.
Kailangan mong buksan ang isang linya ng utos at i-type ang mga sumusunod na utos (1st printscreen sa itaas):
cd /
cd atbp sudo nano rc.local
Dadalhin ka ng unang utos mula sa iyong direktoryo / bahay / pi patungo sa root one, na kung saan ay /.
Dadalhin ka ng pangalawang utos sa direktoryo / etc /.
Sa wakas, bubuksan ng pangatlo ang rc.local file bilang isang superuser, na may ganap na mga karapatan sa pag-edit, na kailangan mong baguhin ang file.
Sa sandaling nasa file, kailangan mo lamang magdagdag ng isang linya sa dulo nito, ngunit bago ang pahayag ng exit 0 (ika-2 printscreen sa itaas):
# Idagdag ang linyang ito sa rc.local file upang ilunsad ang script
sudo python /home/pi/Documents/shutdown_with_hold.py &
Mayroong ilang mga bagay na kailangan mong bigyang pansin, dito:
- ang pangalan ng iyong file: sa linya sa itaas, ipinapalagay ko na ang file ay shutdown_with_hold.py. Ngunit maaaring maging kahit anong gusto mo, i-update mo lang ang pangalan sa iyo.
- kung saan mo nai-save ang iyong file: sa linya sa itaas, ipinapalagay kong nai-save ito sa iyong direktoryo / tahanan / pi / Mga dokumento. Ngunit muli, maaari itong maging kahit saan. Kailangan mo lamang tiyakin na ilagay ang ganap na landas sa iyong file dito.
- ang character na "&" sa dulo nito: mahalaga ito, at pinapayagan nitong tumakbo sa background ang utos na ito
At yun lang! Kaya ngayon, ang script ay papatayin sa tuwing magiging ON ang iyong Pi, at pipindutin mo lamang ang higit sa 3 segundo sa pindutan upang mapatay ito.
Inirerekumendang:
Magdagdag ng isang Power Button sa Iyong Pag-install ng LibreELEC sa isang Raspberry Pi: 6 na Hakbang
Magdagdag ng isang Power Button sa Iyong Pag-install ng LibreELEC sa isang Raspberry Pi: Sa sumusunod ay matututunan namin kung paano magdagdag ng isang power button sa LibreELEC na tumatakbo sa isang Raspberry Pi. Gumagamit kami ng isang PowerBlock upang hindi lamang magdagdag ng isang pindutan ng kuryente, ngunit isang LED status din na nagpapahiwatig ng katayuan ng kuryente ng iyong pag-install ng LibreELEC. Para sa mga ito
AVR Microcontroller. I-toggle ang LED's Gamit ang isang Push Button Switch. Push Button Debouncing .: 4 Mga Hakbang
AVR Microcontroller. I-toggle ang LED's Gamit ang isang Push Button Switch. Push Button Debouncing .: Sa seksyong ito, matututunan natin Paano gumawa ng program C code para sa ATMega328PU upang i-toggle ang katayuan ng tatlong LED ayon sa pag-input mula sa isang switch ng pindutan. Gayundin, nag-explore kami ng mga solusyon sa problema ng 'Switch Bounce'. Tulad ng dati, wi kami
Disenyo ng isang High Power PDB (Power Distribution Board) para sa isang Pixhawk: 5 Hakbang
Disenyo ng isang High Power PDB (Power Distribution Board) para sa isang Pixhawk: Isang PCB upang mapagana silang lahat! Sa kasalukuyan ang karamihan sa mga materyales na kailangan mong bumuo ng isang drone ay murang magagamit sa internet kaya't ang ideya ng paggawa ng isang self-binuo PCB ay hindi sulit sa lahat maliban sa ilang mga kaso kung saan mo nais na gumawa ng isang kakatwa at
Pindutin ang Button ng Lakas para sa Raspberry Pi: 3 Hakbang
Pindutin ang Button ng Power para sa Raspberry Pi: Dahil nai-print ko at sinimulang gamitin ang kasong ito para sa aking Retropie palagi kong naisip kung paano gumawa ng isang power button. Ang ideya ay binago ang disenyo upang gawin ang pindutan ng paglipat at pagkatapos ay ilipat ang isang switch. Sa huli nagkaroon ako ng isa pang ideya, kung saan hindi ko na kailangang palitan ang cas
Super Ghetto Power Button sa Aking Oneplus One (Dapat Magtrabaho sa Anumang bagay): 3 Hakbang
Super Ghetto Power Button sa My Oneplus One (Dapat Magtrabaho sa Anumang bagay): Ang problema: Lahat ng mga pindutan sa aking telepono ay nasira. Ang pagpapalit sa kanila ay isang pansamantalang solusyon lamang dahil ang aking takip sa likod ay nasira at hindi ako makahanap kahit saan isang kapalit na hindi lalampas sa presyo ng isang ginamit na OPO, ngunit naisip ko kung bakit hindi mag-upgrade kung