Satura rādītājs:

Raspberry Pi izslēgšanas poga: 3 soļi
Raspberry Pi izslēgšanas poga: 3 soļi

Video: Raspberry Pi izslēgšanas poga: 3 soļi

Video: Raspberry Pi izslēgšanas poga: 3 soļi
Video: Home Assistant. Урок 9.4 ADD-ON - Xiaomi Gateway 3, интеграция в zigbee2mqtt 2024, Jūlijs
Anonim
Raspberry Pi izslēgšanas poga
Raspberry Pi izslēgšanas poga

Raspberry Pi ir ļoti noderīga skaitļošanas platforma, kas ļauj izveidot dažādas IoT/robotikas/viedās mājas/… projektu lietojumprogrammas. Viena lieta, kas tai nav, salīdzinot ar parasto datoru, ir izslēgšanas poga. Tātad, kā mēs to varam izveidot paši? Labi, darīsim to kopā!

Šai apmācībai jums būs nepieciešams:

  • 1 Raspberry Pi jau ir konfigurēts un gatavs lietošanai
  • 1 maizes dēlis vai kaut kas, kas ļaus jums izveidot elektronisko shēmu
  • 1 spiedpoga
  • 2 džemperu vadi

Ja jūs nekad neesat izmantojis Raspberry Pi, varat apskatīt manu pamācību par to, kā un ko darīt, lai to konfigurētu:

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

1. darbība: elektroniskā shēma

Elektroniskā shēma
Elektroniskā shēma
Elektroniskā shēma
Elektroniskā shēma
Elektroniskā shēma
Elektroniskā shēma

Šeit nav nekas īpaši sarežģīts, tā ir diezgan vienkārša shēma. Iepriekš redzamie 2 attēli izskaidro ķēdes uzbūvi. Pogas ievadīšanai varat izmantot jebkuru GPIO tapu, kas jums jāreģistrē, jums vienkārši jāatjaunina kods.

Ātri paskaidrosim, kā tas darbosies:

  • SARKANAIS vads ved 3.3V uz vienu spiedpogas galu.
  • melnais kabelis savieno spiedpogas otru galu ar Pi GPIO, kas tiks izmantots kā ieeja.
  • pēc noklusējuma poga ir atvērta, tāpēc caur to nav sprieguma. Tātad, ja poga netiek nospiesta, melnais kabelis ir pie 0 V sprieguma. Tas nozīmē, ka Pi GPIO ieejas loģiskais stāvoklis ir 0.
  • kad poga tiks nospiesta, spriegums iet caur to un MELNAIS kabelis tiks savienots ar 3.3V. Pēc tam Raspberry Pi ieejā redzēs 3,3 V spriegumu, kas atbilst loģiskajam stāvoklim 1.

2. darbība: Python kods

Python kods
Python kods

Tagad, kad ķēde ir gatava lietošanai, mums ir jāraksta kods, kas to darbinās, un es šeit izmantoju Python PyCharm vidē. Es konfigurēju pogu, lai izslēgtu Raspberry Pi tikai tad, kad tas tiek nospiests vairāk nekā 3 sekundes. Iemesls, kāpēc es tā daru, ir tas, ka ir ļoti viegli to nejauši nospiest un jūs nevēlaties nejauši izslēgt savu Pi.

Iepriekš redzamais izdrukas ekrāns ir no manas PyCharm vides, un kods ir šāds (ar nelielu atšķirību 26. rindā, kas ir saistīta ar citu projektu, bet šeit nav nepieciešama):

# Šis ir kods, lai izslēgtu Raspberry Pi, nospiežot un turot noteiktu pogu. # Ārējais modulis importē RPi. GPIO kā GPIOimport laikaimportēšana os # Raspberry Pi pin & mainīgie lai izslēgtu Raspberry PiGPIO.setwarnings (nepatiess) GPIO.setmode (GPIO. BCM) # Broadcom pin-numerācijas shēmaGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Poga iestatīta kā ievades vērtība True: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Slēdzis debounce, kamēr GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - sākt, ja garums > hold_time: os.system ("sudo izslēgšana")

Pirmā lieta, ja spiedpogu esat pievienojis citam GPIO, ir atjaunināt 11. rindu iepriekš redzamajā ekrānā, izmantojot attiecīgo GPIO ieeju:

button_poweroff = GPIO_X # Atjauniniet, izmantojot jūsu ķēdē izmantoto pareizo GPIO

Arī mainīgais hold_time ļauj mainīt gaidīšanas laiku, kas izraisa Pi izslēgšanu.

3. darbība. Kā automātiski palaist skriptu pēc sāknēšanas procedūras

Kā automātiski palaist skriptu pēc sāknēšanas procedūras
Kā automātiski palaist skriptu pēc sāknēšanas procedūras
Kā automātiski palaist skriptu pēc sāknēšanas procedūras
Kā automātiski palaist skriptu pēc sāknēšanas procedūras

Tagad, kad kods ir gatavs, mums tas vienkārši jāizpilda. Bet būtu ērti, ja mēs varētu šo skriptu izpildīt katru reizi, kad Pi tiek startēts, automātiskā veidā, tāpēc poga darbotos bez mums, lai skriptu palaistu katru reizi. Ir daudz veidu, kā to izdarīt. Šeit esmu pievienojis vienu rindiņu rc.local failā, kas atrodas jūsu Pi mapē / etc /. Tas tiek izpildīts kā sāknēšanas secības daļa.

Jums ir jāatver komandrinda un jāievada šādas komandas (1. izdrukas ekrāns iepriekš):

cd /

cd utt sudo nano rc.local

Pirmā komanda aizvedīs jūs no jūsu /home /pi direktorijas uz saknes direktoriju, kas ir /.

Pēc tam otrā komanda aizvedīs uz direktoriju / etc /.

Visbeidzot, trešais atvērs rc.local failu kā superlietotāju ar pilnām rediģēšanas tiesībām, kas jums jāmaina.

Kad esat failā, jums vienkārši jāpievieno rinda tā beigās, bet pirms izejas 0 paziņojuma (2. izdrukas ekrāns iepriekš):

# Pievienojiet šo rindu rc.local failam, lai palaistu skriptu

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

Šeit ir dažas lietas, kurām jums jāpievērš uzmanība:

  1. faila nosaukums: augšējā rindā es pieņemu, ka fails ir shutdown_with_hold.py. Bet tas var būt viss, ko vēlaties, vienkārši atjauniniet nosaukumu ar savu.
  2. kur esat saglabājis savu failu: augšējā rindā es pieņemu, ka tas ir saglabāts jūsu/home/pi/Documents direktorijā. Bet atkal tas var būt jebkur. Jums vienkārši jāpārliecinās, ka šeit ir jānorāda sava faila absolūtais ceļš.
  3. rakstzīme "&" tās beigās: tas ir svarīgi, un tas ļauj šai komandai darboties fonā

Un tas arī viss! Tātad tagad skripts tiks izpildīts katru reizi, kad jūsu Pi būs ieslēgts, un jums vienkārši būs jānospiež poga vairāk nekā 3 sekundes, lai to izslēgtu.

Ieteicams: