Spisu treści:

Przycisk wyłączania dla Raspberry Pi: 3 kroki
Przycisk wyłączania dla Raspberry Pi: 3 kroki

Wideo: Przycisk wyłączania dla Raspberry Pi: 3 kroki

Wideo: Przycisk wyłączania dla Raspberry Pi: 3 kroki
Wideo: [#1] Raspberry Pi - Wstęp, instalacja systemu, zdalne połączenie, pierwsze kroki 2024, Listopad
Anonim
Przycisk wyłączania dla Raspberry Pi
Przycisk wyłączania dla Raspberry Pi

Raspberry Pi to bardzo przydatna platforma obliczeniowa, która umożliwia tworzenie różnych aplikacji projektowych IoT/robotyki/inteligentnego domu/…. Jedyną rzeczą, której nie ma, w porównaniu z normalnym komputerem, jest przycisk wyłączania zasilania. Jak więc sami możemy go stworzyć? W porządku, zróbmy to razem!

W tym samouczku będziesz potrzebować:

  • 1 Raspberry Pi już skonfigurowane i gotowe do użycia
  • 1 płytka stykowa lub coś, co pozwoli stworzyć układ elektroniczny
  • 1 przycisk
  • 2 przewody połączeniowe

Jeśli nigdy nie korzystałeś z Raspberry Pi, możesz zapoznać się z moim tutorialem, jak i co zrobić, aby go skonfigurować:

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

Krok 1: obwód elektroniczny

Obwód elektryczny
Obwód elektryczny
Obwód elektryczny
Obwód elektryczny
Obwód elektryczny
Obwód elektryczny

Nie ma tu nic bardzo skomplikowanego, to dość prosty tor. 2 powyższe zdjęcia wyjaśniają budowę obwodu. Możesz użyć dowolnego pinu GPIO, który chcesz wprowadzić do przycisku, musisz tylko zaktualizować kod, aby to odzwierciedlić.

Wyjaśnijmy szybko, jak to będzie działać:

  • CZERWONY przewód przenosi napięcie 3,3 V do jednego końca przycisku.
  • CZARNY kabel łączy drugi koniec przycisku z GPIO Pi, które będzie używane jako wejście.
  • domyślnie przycisk jest otwarty, więc nie płynie przez niego napięcie. Czyli kabel CZARNY jest pod napięciem 0V, gdy przycisk nie jest wciśnięty. Oznacza to, że stan logiczny wejścia Pi GPIO wynosi 0.
  • gdy przycisk zostanie wciśnięty, napięcie przejdzie przez niego i CZARNY kabel zostanie podłączony do 3,3V. Raspberry Pi zobaczy wtedy napięcie 3,3 V na swoim wejściu, co odpowiada logicznemu stanowi 1.

Krok 2: Kod Pythona

Kod Pythona
Kod Pythona

Teraz, gdy obwód jest gotowy do użycia, musimy napisać kod, który go uruchomi, a ja tutaj używam Pythona w środowisku PyCharm. Skonfigurowałem przycisk do wyłączania Raspberry Pi tylko wtedy, gdy jest on konsekwentnie wciśnięty dłużej niż 3 sekundy. Powodem, dla którego to robię, jest to, że bardzo łatwo jest go przypadkowo nacisnąć i nie chcesz przypadkowo wyłączyć Pi.

Powyższy zrzut ekranu pochodzi z mojego środowiska PyCharm, a kod jest następujący (z niewielką różnicą w wierszu 26, który jest powiązany z innym projektem, ale nie jest tutaj wymagany):

# To jest kod do wyłączania Raspberry Pi po naciśnięciu i przytrzymaniu zdefiniowanego przycisku# Moduł zewnętrzny importsimport RPi. GPIO jako GPIOimport timeimport os# Definicje pinów i zmiennych Raspberry Pi &hold_time = 3 # Przytrzymaj czas w sekundach do poweroffbutton_poweroff = 1 # Przycisk aby wyłączyć Raspberry PiGPIO.setwarnings(False)GPIO.setmode(GPIO. BCM) # Schemat numerowania pinów BroadcomGPIO.setup(button_poweroff, GPIO. IN, pull_up_down=GPIO. PUD_DOWN) # Przycisk ustawiony jako input while True: GPIO.wait_for_edge(button_poweroff, GPIO. RISING) start = time.time() time.sleep(0.2) # Przełącz debounce podczas GPIO.input(button_poweroff) == 1: time.sleep(0.01) length = time.time() - start, jeśli length > hold_time: os.system("sudo poweroff")

Pierwszą rzeczą, jeśli podłączyłeś przycisk do innego GPIO, jest aktualizacja linii 11 na powyższym wydruku z odpowiednim wejściem GPIO:

button_poweroff = GPIO_X # Zaktualizuj z prawidłowym GPIO używanym w twoim obwodzie

Ponadto zmienna hold_time pozwala modyfikować czas oczekiwania, który powoduje wyłączenie Pi.

Krok 3: Jak automatycznie uruchomić skrypt po procedurze rozruchu

Jak automatycznie uruchomić skrypt po procedurze rozruchu?
Jak automatycznie uruchomić skrypt po procedurze rozruchu?
Jak automatycznie uruchomić skrypt po procedurze rozruchu?
Jak automatycznie uruchomić skrypt po procedurze rozruchu?

Teraz, gdy mamy gotowy kod, wystarczy go wykonać. Ale byłoby wygodnie, gdybyśmy mogli uruchamiać ten skrypt za każdym razem, gdy Pi jest uruchamiany, w sposób automatyczny, aby przycisk działał bez nas, aby za każdym razem uruchamiać skrypt. Jest na to wiele sposobów. Dodałem tutaj jedną linię do pliku rc.local, który znajduje się w folderze /etc/ twojego Pi. Jest wykonywany jako część sekwencji rozruchowej.

Musisz otworzyć wiersz poleceń i wpisać następujące polecenia (pierwszy printscreen powyżej):

Płyta CD /

cd itp sudo nano rc.local

Pierwsze polecenie przeniesie Cię z katalogu /home/pi do katalogu głównego, którym jest /.

Drugie polecenie przeniesie Cię do katalogu /etc/.

Wreszcie trzeci otworzy plik rc.local jako superużytkownik z pełnymi prawami edycji, które musisz zmodyfikować.

Będąc w pliku, wystarczy dodać linię na jego końcu, ale przed instrukcją exit 0 (drugi printscreen powyżej):

# Dodaj tę linię do pliku rc.local, aby uruchomić skrypt

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

Jest kilka rzeczy, na które musisz zwrócić uwagę, tutaj:

  1. nazwa twojego pliku: w wierszu powyżej zakładam, że plik to shutdown_with_hold.py. Ale może to być cokolwiek chcesz, po prostu zaktualizuj nazwę swoim.
  2. gdzie zapisałeś swój plik: w wierszu powyżej zakładam, że jest on zapisany w twoim katalogu /home/pi/Documents. Ale znowu może być wszędzie. Musisz tylko upewnić się, że umieściłeś tutaj bezwzględną ścieżkę do swojego pliku.
  3. znak „&” na końcu: jest to ważne i pozwala temu poleceniu działać w tle

I to wszystko! Więc teraz skrypt będzie wykonywany za każdym razem, gdy Twoje Pi będzie WŁĄCZONE, a wystarczy nacisnąć przycisk dłużej niż 3 sekundy, aby go wyłączyć.

Zalecana: