Sadržaj:

Gumb za isključivanje za Raspberry Pi: 3 koraka
Gumb za isključivanje za Raspberry Pi: 3 koraka

Video: Gumb za isključivanje za Raspberry Pi: 3 koraka

Video: Gumb za isključivanje za Raspberry Pi: 3 koraka
Video: BlitzWolf BW-IS22 - Сигнализация, wi-fi + GSM, Tuya Smart, интеграция и управление в Home Assistant 2024, Srpanj
Anonim
Gumb za isključivanje za Raspberry Pi
Gumb za isključivanje za Raspberry Pi

Raspberry Pi je vrlo korisna računalna platforma koja omogućuje stvaranje različitih IoT/robotika/pametnih kuća/… projektnih aplikacija. Jedina stvar koju nema, u usporedbi s normalnim računalom, je gumb za isključivanje. Pa kako ga možemo sami stvoriti? U redu, učinimo to zajedno!

Za ovaj vodič trebat će vam sljedeće:

  • 1 Raspberry Pi je već konfiguriran i spreman za upotrebu
  • 1 ploča ili nešto što će vam omogućiti stvaranje elektroničkog kruga
  • 1 gumb
  • 2 kratkospojne žice

Ako nikada niste koristili Raspberry Pi, možete pogledati moj vodič o tome kako i što učiniti kako biste ga konfigurirali:

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

Korak 1: Elektronički krug

Elektronički krug
Elektronički krug
Elektronički krug
Elektronički krug
Elektronički krug
Elektronički krug

Ovdje nema ništa komplicirano, to je prilično jednostavan krug. Gornje 2 slike objašnjavaju konstrukciju sklopa. Za unos pomoću gumba možete koristiti bilo koji GPIO pin, samo trebate ažurirati kôd kako bi to odražavao.

Objasnimo brzo kako će ovo funkcionirati:

  • CRVENA žica vodi 3.3V na jedan kraj tipke.
  • CRNI kabel povezuje drugi kraj tipke s Pi GPIO -om koji će se koristiti kao ulaz.
  • prema zadanim postavkama gumb je otvoren pa napon ne prolazi kroz njega. Dakle, CRNI kabel je na 0V kad gumb nije pritisnut. To znači da je logičko stanje ulaza Pi GPIO 0.
  • kada se gumb pritisne, napon će proći kroz njega, a CRNI kabel će biti spojen na 3,3 V. Raspberry Pi će tada na svom ulazu vidjeti napon od 3,3 V, što odgovara logičkom stanju 1.

Korak 2: Python kod

Python kod
Python kod

Sada kada je sklop spreman za upotrebu, moramo napisati kôd koji će ga pokrenuti, a ja ovdje koristim Python u PyCharm okruženju. Konfigurirao sam gumb za isključivanje Raspberry Pi-a samo nakon pritiska na više od 3 sekunde. Razlog zašto to činim je taj što je vrlo lako slučajno pritisnuti i ne želite slučajno isključiti svoj Pi.

Gornji zaslon za ispis dolazi iz mog okruženja PyCharm, a kôd je sljedeći (s manjom razlikom na retku 26 koji je povezan s drugim projektom, ali ovdje nije potreban):

# Ovo je kôd za isključivanje Raspberry Pi -a pri pritisku i držanju definiranog gumba # Vanjski modul importsimport RPi. GPIO kao GPIOimport timeimport os # Raspberry Pi pin i varijable definitons & hold_time = 3 # Vrijeme zadržavanja u sekundama za poweroffbutton_poweroff = 1 # Pritisnite gumb za isključivanje Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Broadcom shema numeriranja PIN-ovaGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Gumb postavljen kao ulazni dok je True: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Prebaci debounce dok je GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - start if length > hold_time: os.system ("sudo poweroff")

Prva stvar, ako ste pritisnuli gumb na drugi GPIO, je ažuriranje retka 11 na gornjem ekranu za ispis odgovarajućim GPIO ulazom:

button_poweroff = GPIO_X # Ažurirajte ispravnim GPIO -om koji se koristi u vašem krugu

Također, varijabla hold_time omogućuje vam mijenjanje vremena čekanja koje pokreće isključivanje Pi.

Korak 3: Kako automatski pokrenuti skriptu nakon postupka pokretanja

Kako automatski pokrenuti skriptu nakon postupka pokretanja
Kako automatski pokrenuti skriptu nakon postupka pokretanja
Kako automatski pokrenuti skriptu nakon postupka pokretanja
Kako automatski pokrenuti skriptu nakon postupka pokretanja

Sada kada imamo kod spreman, samo ga moramo izvršiti. No, bilo bi zgodno ako ovu skriptu možemo izvršiti svaki put pri pokretanju Pi -a, na automatski način, tako da bi gumb radio bez nas da svaki put pokrenemo skriptu. Postoji mnogo načina za to. Ovdje sam dodao jedan redak u datoteku rc.local koja se nalazi u / etc / mapi vašeg Pi. Izvodi se kao dio niza pokretanja.

Morate otvoriti naredbeni redak i upisati sljedeće naredbe (prvi zaslon za ispis gore):

cd /

cd itd. sudo nano rc.lokalno

Prva naredba odvest će vas iz direktorija /home /pi u glavni, a to je /.

Druga naredba će vas odvesti u direktorij / etc /.

Konačno, treći će otvoriti datoteku rc.local kao superkorisnik, s punim pravima uređivanja, koja vam je potrebna za izmjenu datoteke.

Jednom u datoteci, samo trebate dodati redak na kraju, ali prije naredbe exit 0 (drugi gornji zaslon za ispis):

# Dodajte ovaj redak u datoteku rc.local za pokretanje skripte

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

Ovdje morate obratiti pažnju na nekoliko stvari:

  1. naziv vaše datoteke: u gornjem retku pretpostavljam da je datoteka shutdown_with_hold.py. Ali moglo bi biti što god želite, samo ažurirajte ime sa svojim.
  2. gdje ste spremili svoju datoteku: u gornjem retku pretpostavljam da je spremljena u vaš/home/pi/Documents direktorij. Ali opet, može biti bilo gdje. Ovdje samo trebate staviti apsolutni put do datoteke.
  3. znak "&" na njegovom kraju: ovo je važno i dopušta ovoj naredbi da se izvodi u pozadini

I to je to! Dakle, sada će se skripta izvršavati svaki put kada vaš Pi bude UKLJUČEN, a vi ćete samo morati pritisnuti gumb više od 3 sekunde da biste ga isključili.

Preporučeni: