Obsah:

Tlačítko vypnutí pro Raspberry Pi: 3 kroky
Tlačítko vypnutí pro Raspberry Pi: 3 kroky

Video: Tlačítko vypnutí pro Raspberry Pi: 3 kroky

Video: Tlačítko vypnutí pro Raspberry Pi: 3 kroky
Video: Arduino návody | Raspberry Pi: Tlačítko a LED dioda 2024, Listopad
Anonim
Vypínací tlačítko pro Raspberry Pi
Vypínací tlačítko pro Raspberry Pi

Raspberry Pi je velmi užitečná výpočetní platforma, která umožňuje vytvářet různé projektové aplikace IoT/robotics/smart-home/…. Jedna věc, kterou ve srovnání s běžným počítačem nemá, je tlačítko pro vypnutí. Jak si jej tedy můžeme vytvořit sami? Dobře, pojďme to udělat společně!

K tomuto kurzu budete potřebovat následující:

  • 1 Raspberry Pi je již nakonfigurován a připraven k použití
  • 1 prkénko nebo něco, co vám umožní vytvořit elektronický obvod
  • 1 tlačítko
  • 2 propojovací vodiče

Pokud jste Raspberry Pi nikdy nepoužili, můžete se podívat na můj návod, jak a co udělat pro jeho konfiguraci:

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

Krok 1: Elektronický obvod

Elektronický obvod
Elektronický obvod
Elektronický obvod
Elektronický obvod
Elektronický obvod
Elektronický obvod

Tady není nic super komplikovaného, je to docela přímočarý okruh. 2 obrázky nahoře vysvětlují stavbu obvodu. Pro vstup tlačítka můžete použít jakýkoli GPIO pin, který potřebujete, stačí se ujistit, že jste aktualizovali kód, aby to odrážel.

Pojďme rychle vysvětlit, jak to bude fungovat:

  • ČERVENÝ vodič přivádí 3,3 V na jeden konec tlačítka.
  • ČERNÝ kabel připojuje druhý konec tlačítka k Pi GPIO, který bude použit jako vstup.
  • ve výchozím nastavení je tlačítko otevřené, takže přes něj neprochází žádné napětí. Když není tlačítko stisknuto, ČERNÝ kabel je na 0V. To znamená, že logický stav vstupu Pi GPIO je 0.
  • při stisknutí tlačítka jím projde napětí a ČERNÝ kabel bude propojen s 3,3V. Raspberry Pi pak uvidí na svém vstupu napětí 3,3 V, což odpovídá logickému stavu 1.

Krok 2: Kód Pythonu

Python kód
Python kód

Nyní, když je obvod připraven k použití, musíme napsat kód, který ho spustí, a zde používám Python v prostředí PyCharm. Tlačítko jsem nakonfiguroval tak, aby vypínalo Raspberry Pi, pouze když je následně stisknuto déle než 3 sekundy. Důvod, proč to dělám, je ten, že je velmi snadné nechat si to omylem stisknout a nechcete nechtěně vypnout Pi.

Printscreen výše pochází z mého prostředí PyCharm a kód je následující (s malým rozdílem na řádku 26, který je propojen s jiným projektem, ale zde není vyžadován):

# Toto je kód pro vypnutí Raspberry Pi při stisknutí a podržení definovaného tlačítka # Externí modul importuje import RPi. GPIO jako GPIOimport timeimport os # Raspberry Pi pin & variables definons & hold_time = 3 # Hold time in sec to poweroffbutton_poweroff = 1 # Push button vypnout Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Schéma číslování pinů BroadcomGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Tlačítko nastaveno jako vstupní True: 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")

První věc, pokud jste připojili tlačítko k jinému GPIO, je aktualizovat řádek 11 na výše uvedené obrazovce tisku pomocí příslušného vstupu GPIO:

button_poweroff = GPIO_X # Aktualizujte pomocí správného GPIO použitého ve vašem okruhu

Proměnná hold_time vám také umožňuje upravit čekací dobu, která spouští vypnutí Pi.

Krok 3: Jak automaticky spustit skript po spuštění

Jak automaticky spustit skript po zaváděcí proceduře
Jak automaticky spustit skript po zaváděcí proceduře
Jak automaticky spustit skript po zaváděcí proceduře
Jak automaticky spustit skript po zaváděcí proceduře

Nyní, když máme kód hotový, stačí ho spustit. Ale bylo by vhodné, kdybychom mohli nechat tento skript spustit pokaždé, když se Pi spouští, automaticky, takže tlačítko by fungovalo bez nás, abychom skript spustili pokaždé. Existuje mnoho způsobů, jak to udělat. Přidal jsem sem jeden řádek do souboru rc.local, který se nachází ve složce / etc / vašeho Pi. Provádí se jako součást zaváděcí sekvence.

Je třeba otevřít příkazový řádek a zadat následující příkazy (1. printscreen výše):

cd /

cd atd. sudo nano rc.local

První příkaz vás přenese z adresáře /home /pi do kořenového adresáře, což je /.

Druhý příkaz vás poté přenese do adresáře / etc /.

Nakonec třetí otevře soubor rc.local jako superuživatel s úplnými právy k úpravám, které je třeba k úpravě souboru.

Jakmile jste v souboru, stačí přidat řádek na jeho konec, ale před příkazem exit 0 (2. printscreen výše):

# Přidejte tento řádek do souboru rc.local a spusťte skript

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

Zde je několik věcí, kterým byste měli věnovat pozornost:

  1. název vašeho souboru: v řádku výše předpokládám, že soubor je shutdown_with_hold.py. Ale může to být cokoli, stačí aktualizovat jméno svým.
  2. kam jste soubor uložili: v řádku výše předpokládám, že je uložen ve vašem adresáři/home/pi/Documents. Ale zase to může být kdekoli. Jen se musíte ujistit, že sem zadáte absolutní cestu k souboru.
  3. znak „&“na jeho konci: to je důležité a umožňuje, aby tento příkaz běžel na pozadí

A to je vše! Nyní se tedy skript spustí pokaždé, když bude váš Pi zapnutý, a na jeho vypnutí stačí stisknout tlačítko déle než 3 sekundy.

Doporučuje: