Spisu treści:
- Krok 1: Konfiguracja serwera i zależności na Raspberry Pi
- Krok 2: Zainstaluj Web Framework i konfigurację dla NGiNX
- Krok 3: Konfigurowanie skryptów Pythona, które będą współdziałać z GPIO
- Krok 4: Dokończenie po stronie PHP
- Krok 5: Tworzenie obwodu
- Krok 6: Testy końcowe
- Krok 7: Część dodatkowa: Oldschoolowy spust klapy
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
W tym projekcie zilustruję, jak stworzyć całkowicie bezprzewodowy system sterowania oświetleniem z dodatkowym bonusem na końcu. Śledź dalej, aby uzyskać pełny samouczek.
Wymagania:
- Raspberry Pi (każdy smak jest w porządku, ale użyłem modelu 3B+)
- Dwa tranzystory 2n2222 (polecam zakup co najmniej pięciu, ponieważ istnieje duże prawdopodobieństwo, że przez pomyłkę skrócisz kilka)
- Kable połączeniowe męskie-męskie i męskie-żeńskie
- Deska do krojenia chleba
- (opcjonalne, ale zalecane) Zasilanie płytki chlebowej 5V
- Dwa z każdego rezystora 1k i 10k
- Moduł podwójnego przekaźnika
- Dwie stare lampy domowe lub inne urządzenia oświetleniowe (użyj żarówek ledowych, ponieważ te żarowe mają tendencję do spalania się podczas testowania)
- Taśma klejąca i przecinak do kabli do łączenia
Krok 1: Konfiguracja serwera i zależności na Raspberry Pi
Do mojego projektu użyłem NGiNX, chociaż możesz użyć dowolnego serwera (Apache2, itp.). Waniliowa instalacja z menedżerem pakietów jest w porządku, nie ma potrzeby kompilowania własnego źródła ani niczego w tym rodzaju. Będziemy też potrzebować PHP, Python3 i Composera.
- SSH do swojego PI i wpisz $ sudo nano /etc/dhcpcd.conf
- Skonfiguruj statyczne parametry IP
- Zrestartuj swoje PI
- Sprawdź, czy wszystko działa, wpisując {the_ip_you_chose} w pasku adresu przeglądarki (powinieneś zobaczyć stronę powitalną nginx)
Krok 2: Zainstaluj Web Framework i konfigurację dla NGiNX
Chcemy mieć stronę internetową, do której będziemy mogli uzyskać dostęp z naszej przeglądarki mobilnej lub stacjonarnej, a żeby pozbyć się pisania zwykłego kodu php/html, który nie jest zakresem tego samouczka, zamiast tego użyjemy frameworka PHP o nazwie Yii2 do obsługi podstawowych trasowanie i stylizacja dla nas.
- Przejdź do strony instalacyjnej Yii2 i użyj kompozytora, aby zainstalować go w /var/www/html/light-switch
- Jeszcze nic nie zobaczymy, ponieważ nadal nie umieściliśmy naszego pliku konfiguracyjnego dla serwera
- Załączyłem plik (domyślnie) do tego kroku
- Użyj go tak, jak w przypadku tego frameworka lub wyszukaj inny w Internecie, jeśli wolisz inny backend
- Musisz umieścić ten plik w /etc/nginx/sites-available/
- Przeładuj NGiNX za pomocą $sudo systemctl przeładuj nginx
- Jeśli coś nie działa, możesz uruchomić $sudo nginx -t, aby debugować pliki konfiguracyjne
Krok 3: Konfigurowanie skryptów Pythona, które będą współdziałać z GPIO
Ponieważ PHP nie lubi tak dobrze bawić się skryptami typu runtime, takimi jak API GPIO, a python nie jest zbyt przyjazny dla aplikacji internetowych, użyjemy każdego z nich w ich korzystnych kontekstach. Do tego kroku dołączone są 4 niezbędne skrypty Pythona, które wchodzą w interakcję z pinami i uruchamiają światła. Umieść skrypty w dowolnym miejscu, ale zanotuj ich lokalizację, ponieważ będziemy ich potrzebować w następnym kroku, gdy skonfigurujemy stronę php.
Krok 4: Dokończenie po stronie PHP
Wszystko, co musimy zrobić, to usunąć niektóre domyślne ścieżki i strony z głównego układu i dodać kilka wierszy kodu w SiteController oraz nową metodę o nazwie actionLightswitch(). Następnie wykona skrypty Pythona z poprzedniego kroku, które z kolei będą sterować pinami GPIO.
Krok 5: Tworzenie obwodu
Ze względu na specyfikę tego konkretnego modułu przekaźnikowego (przełącza się po podłączeniu do GND) musimy zbudować układ z tranzystorów. PI otworzy tylko tranzystor, który pozwoli prądowi przepływać z pinów danych przekaźnika do GND, wyzwalając w ten sposób cewkę i zamykając obwód dla lamp. Postępuj zgodnie ze schematami na załączonych obrazkach, a będziesz gotowy.
W tej następnej części musisz być bardzo ostrożny, bo czas podłączyć przekaźnik. Najpierw odłącz wszystko! Przekaźnik ma 3 porty na połączenie. Do środkowego i tego z napisem „otwarty” podłączymy kable naszych urządzeń. Ostrożnie splataj kabel, aby odsłonić miedziane przewodniki i włóż je do wyżej wymienionych portów przekaźników. Kolejność nie ma znaczenia, ponieważ pracujemy teraz z prądem alternatywnym.
Krok 6: Testy końcowe
Sprawdź swój obwód i przypisane piny co najmniej dwa razy, a następnie podłącz PI do zasilania i wpisz {the_chosen_ip} w pasku adresu przeglądarki. Pierwsza strona będzie miała nasze dwa przełączniki. Kliknij na nie i obserwuj, jak światła włączają się/wyłączają.
Krok 7: Część dodatkowa: Oldschoolowy spust klapy
Wymagania:
- dowolny mikrofon USB (nie musi być wysokiej jakości)
- Pakiet ALSA (metoda instalacji będzie się różnić w zależności od twojej dystrybucji)
- Moduł PyAudio
Skopiuj załączony skrypt Pythona i podłącz mikrofon. Uruchom ponownie PI. Wykonaj skrypt i postępuj zgodnie z monitami konsoli. Zbliż się do mikrofonu i dwukrotnie klasnij w dłonie. Powinieneś zobaczyć rejestrowanie klaśnięć w wyjściu konsoli, a jeśli się powiedzie, oba światła zaświecą się po 2 sekundach.