Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Raspberry Pi on erittäin hyödyllinen tietokonealusta, jonka avulla voidaan luoda erilaisia IoT/robotiikka/älykoti/… -projektisovelluksia. Yksi asia, jota sillä ei ole, verrattuna normaaliin tietokoneeseen, on sammutuspainike. Joten miten voimme luoda sellaisen itse? Selvä, tehdään se yhdessä!
Tätä opetusohjelmaa varten tarvitset seuraavat:
- 1 Raspberry Pi on jo määritetty ja käyttövalmis
- 1 leipälauta tai jotain, jonka avulla voit luoda elektronisen piirin
- 1 painike
- 2 hyppyjohtoa
Jos et ole koskaan käyttänyt Raspberry Pi: tä, voit tarkistaa opetusohjelmani siitä, miten ja mitä tehdä sen määrittämiseksi:
www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/
Vaihe 1: Elektroninen piiri
Tässä ei ole mitään monimutkaista, se on melko yksinkertainen piiri. Yllä olevat kaksi kuvaa selittävät piirin rakenteen. Voit käyttää mitä tahansa GPIO -pin -näppäintä painikkeiden syöttämiseen, sinun on vain päivitettävä koodi vastaamaan sitä.
Selitämme nopeasti, miten tämä toimii:
- PUNAINEN johdin vie 3.3V: n painikkeen toiseen päähän.
- MUSTA kaapeli yhdistää painikkeen toisen pään Pi GPIO -laitteeseen, jota käytetään tulona.
- oletusarvoisesti painike on auki, joten sen läpi ei tule jännitettä. MUSTA kaapeli on siis 0V jännitteellä, kun painiketta ei paineta. Tämä tarkoittaa, että Pi GPIO -tulon looginen tila on 0.
- kun painiketta painetaan, jännite kulkee sen läpi ja MUSTA kaapeli kytketään 3.3V: iin. Raspberry Pi näkee sitten tulossaan 3,3 V: n jännitteen, joka vastaa loogista tilaa 1.
Vaihe 2: Python -koodi
Nyt kun piiri on käyttövalmis, meidän on kirjoitettava koodi, joka käyttää sitä, ja käytän Pythonia PyCharm -ympäristössä. Määritin painikkeen sammuttamaan Raspberry Pi vain, kun sitä painetaan yli 3 sekuntia. Syy miksi teen niin, on se, että se on erittäin helppo painaa vahingossa, etkä halua sulkea P: täsi vahingossa.
Yllä oleva tulostusnäyttö on PyCharm -ympäristöstäni, ja koodi on seuraava (pienellä erolla rivillä 26, joka on linkitetty toiseen projektiin, mutta jota ei vaadita tässä):
# Tämä on aa -koodi Raspberry Pi -laitteen sammuttamiseksi, kun määritettyä painiketta painetaan ja pidetään painettuna # Ulkoinen moduuli tuo RPi. GPIO: n GPIO -tuontiajan tuontiosiksi # Raspberry Pi -tappi ja muuttujat definitons & hold_time = 3 # Pitoaika sekunnissa poweroffbutton_poweroff = 1 # Painike sammuttaa Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Broadcom-pin-numerointijärjestelmä GPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Painike asetettu syötteeksi True: GPIO.wait_for_edge (button_poweroff, GPIO. > hold_time: os.system ("sudo poweroff")
Ensimmäinen asia, jos olet liittänyt painikkeen toiseen GPIO -laitteeseen, on päivittää yllä olevan tulostusnäytön rivi 11 asiaankuuluvalla GPIO -tulolla:
button_poweroff = GPIO_X # Päivitä oikealla piirilläsi käytetyllä GPIO: lla
Myös hold_time -muuttujan avulla voit muuttaa odotusaikaa, joka käynnistää Pi: n sammumisen.
Vaihe 3: Skriptin käynnistäminen automaattisesti käynnistysmenettelyn jälkeen
Nyt kun meillä on koodi valmiina, meidän on vain suoritettava se. Mutta olisi kätevää, jos saisimme tämän komentosarjan suoritettavaksi aina, kun Pi käynnistyy, automaattisella tavalla, joten painike toimisi ilman meitä suorittamaan komentosarjan joka kerta. On monia tapoja tehdä niin. Olen lisännyt tähän yhden rivin rc.local -tiedostoon, joka sijaitsee Pi -laitteesi / etc / -kansiossa. Se suoritetaan osana käynnistysjärjestystä.
Sinun on avattava komentorivi ja kirjoitettava seuraavat komennot (ensimmäinen tulostusnäyttö yllä):
cd /
cd jne sudo nano rc.local
Ensimmäinen komento vie sinut hakemistosta /home /pi juurikansioon, joka on /.
Toinen komento vie sinut hakemistoon / etc /.
Lopuksi kolmas avaa rc.local -tiedoston pääkäyttäjänä, jolla on täydet muokkausoikeudet ja jota sinun on muokattava.
Kun olet tiedostossa, sinun tarvitsee vain lisätä rivi sen loppuun, mutta ennen exit 0 -lauseketta (toinen tulostusnäyttö yllä):
# Lisää tämä rivi rc.local -tiedostoon käynnistääksesi komentosarjan
sudo python /home/pi/Documents/shutdown_with_hold.py &
Tässä on muutamia asioita, joihin sinun on kiinnitettävä huomiota:
- tiedostosi nimi: yllä olevalla rivillä oletan, että tiedosto on shutdown_with_hold.py. Mutta se voi olla mitä haluat, päivitä vain nimi omallesi.
- minne olet tallentanut tiedostosi: yllä olevalla rivillä oletan, että se on tallennettu hakemistoosi/home/pi/Documents. Mutta jälleen kerran, se voi olla missä tahansa. Sinun on vain varmistettava, että kirjoitat tiedoston absoluuttisen polun tähän.
- "&" -merkki sen lopussa: tämä on tärkeää, ja se sallii tämän komennon suorittaa taustalla
Ja siinä se! Joten nyt skripti suoritetaan joka kerta, kun Pi on päällä, ja sinun on vain painettava yli 3 sekuntia painiketta sammuttaaksesi sen.