Tartalomjegyzék:
- 1. lépés: Elektronikus áramkör
- 2. lépés: Python -kód
- 3. lépés: A szkript automatikus indítása a rendszerindítási eljárás után
Videó: Kikapcsoló gomb a Raspberry Pi számára: 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
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
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
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
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:
- 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.
- 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.
- 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:
Microsoft Teams némítás gomb: 4 lépés
Microsoft Teams némító gomb: Készítsen egy könnyen elérhető nyomógombot a némításhoz/némítás feloldásához Microsoft Teams hívás közben! Mivel 2020. Ez a projekt egy Adafruit Circuit Playground Express (CPX) és egy nagy nyomógombot használ a gyorsbillentyűvel a Microsoft Teams némító gombjának létrehozásához
$ 5 otthoni automatizálás gomb: 4 lépés
5 dolláros otthoni automatizálás gomb: 5 dolláros otthoni automatizálás gomb Néha a legegyszerűbb megoldás egyetlen gomb. Szerettünk volna egy egyszerű módot arra, hogy elindítsunk egy „lefekvés előtti” rutint az otthoni automatizálási központunkban (a Hubitat Elevation), amely kikapcsolja a legtöbb fényt, másokat meghatározott szintekre állít, és
Forgó kódoló gomb: 6 lépés
Rotációs kódoló gomb: Ez egy forgó távirányító, amely forgó kódolón alapul. A következő tulajdonságokkal rendelkezik. Az akkumulátor nagyon alacsony áramfogyasztással működik, amikor aktiválva van. Automatikus aktiválás, amikor a vezérlő el van forgatva
Lábvezérelt push -talk gomb: 5 lépés
Lábvezérelt push -talk gomb: Így készítettem egy push -talk gombot, amelyet a lábával is használhat
Az univerzális kikapcsoló modellje: 10 lépés
Univerzális kikapcsoló modellje: Eleged van abból, hogy lefekvés előtt ellenőrizze, hogy a házban lévő összes lámpa ki van kapcsolva? Szeretné, ha minden fényt egyszerre, minden felhajtás nélkül lekapcsolna? Az energia és az idő megtakarítása érdekében úgy döntöttünk, hogy létrehozunk egy rendszert, amely elméletileg képes