Tartalomjegyzék:

Kikapcsoló gomb a Raspberry Pi számára: 3 lépés
Kikapcsoló gomb a Raspberry Pi számára: 3 lépés

Videó: Kikapcsoló gomb a Raspberry Pi számára: 3 lépés

Videó: Kikapcsoló gomb a Raspberry Pi számára: 3 lépés
Videó: Windows Event and Logging Demystified: IT Admin Edition 2024, Július
Anonim
Kikapcsoló gomb a Raspberry Pi számára
Kikapcsoló gomb a Raspberry Pi számára

A Raspberry Pi egy nagyon hasznos számítási platform, amely lehetővé teszi különféle IoT/robotika/intelligens otthon/… projektalkalmazások létrehozását. Az egyetlen dolog azonban nincs benne, összehasonlítva egy normál számítógéppel, a kikapcsolás gomb. Tehát hogyan hozhatunk létre magunk? Rendben, csináljuk együtt!

Ehhez az oktatóanyaghoz a következőkre lesz szüksége:

  • 1 A Raspberry Pi már konfigurálva van és használatra kész
  • 1 kenyérlap vagy valami, ami lehetővé teszi az elektronikus áramkör létrehozását
  • 1 nyomógomb
  • 2 jumper vezeték

Ha még soha nem használt Raspberry Pi -t, nézze meg az oktatóanyagomat arról, hogyan és mit kell tennie a konfigurálásához:

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

1. lépés: Elektronikus áramkör

Elektronikus áramkör
Elektronikus áramkör
Elektronikus áramkör
Elektronikus áramkör
Elektronikus áramkör
Elektronikus áramkör

Nincs itt semmi bonyolult, ez egy nagyon egyszerű kör. A fenti 2 kép az áramkör felépítését magyarázza. Bármelyik GPIO tűt használhatja a gomb beviteléhez, csak győződjön meg arról, hogy frissíti a kódot, hogy tükrözze ezt.

Magyarázzuk el gyorsan, hogyan fog ez működni:

  • a PIROS vezeték a 3.3V -ot a nyomógomb egyik végére viszi.
  • a FEKETE kábel a nyomógomb másik végét a Pi GPIO -hoz csatlakoztatja, amelyet bemenetként használnak.
  • alapértelmezés szerint a gomb nyitva van, tehát nincs feszültség rajta. Tehát a FEKETE kábel 0V -on van, ha nem nyomja meg a gombot. Ez azt jelenti, hogy a Pi GPIO bemenet logikai állapota 0.
  • amikor megnyomja a gombot, a feszültség átmegy rajta, és a FEKETE kábel a 3.3V -hoz kapcsolódik. A Raspberry Pi ekkor 3,3 V feszültséget lát a bemenetén, ami 1 logikai állapotnak felel meg.

2. lépés: Python -kód

Python kód
Python kód

Most, hogy az áramkör használatra kész, meg kell írnunk azt a kódot, amely futtatni fogja, és itt Python -t használok PyCharm környezetben. A gombot úgy konfiguráltam, hogy csak akkor kapcsolja ki a Raspberry Pi-t, ha 3 másodpercnél hosszabb ideig nyomja le. Ennek az az oka, hogy nagyon könnyű véletlenül lenyomni, és nem akarja véletlenül leállítani a Pi -t.

A fenti nyomtatási képernyő a PyCharm környezetemből származik, és a kód a következő (kisebb eltéréssel a 26. sorban, amely egy másik projekthez kapcsolódik, de itt nem kötelező):

# Ez egy kód, amellyel a Raspberry Pi kikapcsolható egy meghatározott gomb megnyomásakor. # Külső modul importálja az RPi -t. A GPIO GPIO -kéntimportálja az időimportot # Raspberry Pi pin & változók a Raspberry PiGPIO.setwarnings (hamis) GPIO.setmode (GPIO. BCM) kikapcsolása # Broadcom pin-számozási sémaGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Gomb beállítása bemenetként Igaz: 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")

Az első dolog, ha a nyomógombot egy másik GPIO -hoz csatlakoztatta, frissítse a fenti nyomtatási képernyő 11. sorát a megfelelő GPIO bemenettel:

button_poweroff = GPIO_X # Frissítsen az áramkörén használt megfelelő GPIO -val

Ezenkívül a hold_time változó lehetővé teszi a Pi leállítását kiváltó várakozási idő módosítását.

3. lépés: A szkript automatikus indítása a rendszerindítási eljárás után

A szkript automatikus indítása a rendszerindítási eljárás után
A szkript automatikus indítása a rendszerindítási eljárás után
A szkript automatikus indítása a rendszerindítási eljárás után
A szkript automatikus indítása a rendszerindítási eljárás után

Most, hogy készen állunk a kódra, csak végre kell hajtanunk. Kényelmes lenne azonban, ha ezt a szkriptet a Pi minden indításakor automatikusan végrehajthatjuk, így a gomb anélkül működne, hogy minden alkalommal futtatnánk a szkriptet. Ennek számos módja van. Hozzáadtam egy sort az rc.local fájlhoz, amely a Pi / etc / mappájában található. A rendszerindítási sorozat részeként kerül végrehajtásra.

Meg kell nyitnia a parancssort, és be kell írnia a következő parancsokat (1. nyomtatási képernyő fent):

CD /

cd stb sudo nano rc.local

Az első parancs a /home /pi könyvtárból a gyökérkönyvtárba visz, ami a /.

A második parancs ekkor az / etc / könyvtárba visz.

Végül a harmadik megnyitja az rc.local fájlt szuperfelhasználóként, teljes szerkesztési joggal, amelyet módosítania kell.

Miután belépett a fájlba, csak egy sort kell hozzáadnia a végéhez, de az exit 0 utasítás előtt (a 2. nyomtatási képernyő fent):

# Adja hozzá ezt a sort az rc.local fájlhoz a szkript elindításához

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

Itt van néhány dolog, amire figyelni kell:

  1. a fájl neve: a fenti sorban feltételezem, hogy a fájl shutdown_with_hold.py. De ez bármi lehet, csak frissítse a nevet a sajátjával.
  2. ahová a fájlt mentette: a fenti sorban feltételezem, hogy a/home/pi/Documents könyvtárba van mentve. De megint bárhol lehet. Csak meg kell győződnie arról, hogy ide írja a fájl abszolút elérési útját.
  3. a "&" karakter a végén: ez fontos, és lehetővé teszi, hogy ez a parancs a háttérben fusson

És ez az! Tehát most a szkript minden alkalommal végrehajtásra kerül, amikor a Pi be lesz kapcsolva, és csak 3 másodpercnél hosszabb ideig kell megnyomnia a gombot a kikapcsoláshoz.

Ajánlott: