Spisu treści:

Otwieracz do drzwi garażowych Raspberry Pi: 5 kroków
Otwieracz do drzwi garażowych Raspberry Pi: 5 kroków

Wideo: Otwieracz do drzwi garażowych Raspberry Pi: 5 kroków

Wideo: Otwieracz do drzwi garażowych Raspberry Pi: 5 kroków
Wideo: Raspberry pi opens garage door 2024, Lipiec
Anonim
Otwieracz do drzwi garażowych Raspberry Pi
Otwieracz do drzwi garażowych Raspberry Pi

Nasza piętnastoletnia klawiatura, która pozwala nam otworzyć bramę garażową, powoli umiera, z kilkoma przyciskami, które ledwo się rejestrują, co utrudnia naszym nastolatkom (lub opiekunom) dostanie się do domu, gdy zapomną klucz.

Zamiast go wymieniać i przeskakiwać przez pętle przeprogramowania, zdecydowałem się na nieco bardziej zaawansowaną technologię i zastąpić go czymś, co wymagało jedynie dostępu do naszego Wi-Fi i telefonu.

Użyłem bezprzewodowego Pi Zero i 2-kanałowego przekaźnika, który pozostawiłem z innego projektu, który pozwala mi sterować zarówno drzwiami, jak i światłami wbudowanymi w otwieracz bramy garażowej. Ponieważ miałem starą / zapasową kamerę USB leżącą wokół zbierającą kurz, użyłem jej zamiast PiCam, ale to tylko z wygody. To działałoby dobrze z każdą obsługiwaną kamerą - nie ma nic specjalnego w moim, tylko to, że Raspbian to obsługuje.

W przeciwieństwie do innych podobnych projektów, starałem się, aby było to tak proste, jak to tylko możliwe, używając "standardowych" pakietów oprogramowania, które są dość łatwe do uruchomienia, jeśli postępujesz zgodnie z instrukcjami. To zdjęcie pokazuje moją ostateczną (wcale nie ładną, ale to mój garaż) instalację, w tym Pi, moduł przekaźnika i kamerę USB skierowaną na drzwi. Nie ma konkretnego powodu, aby używać Pi Zero – wystarczyłoby każde Pi, o ile można je podłączyć do sieci wewnętrznej, a Wi-Fi to ułatwia.

Krok 1: Łączenie z istniejącym panelem sterowania

Podłączanie do istniejącego panelu sterowania
Podłączanie do istniejącego panelu sterowania

Po pierwsze, TWÓJ MOŻE BYĆ INNY! Mój ma pojedynczą parę przewodów biegnących od otwierania drzwi garażowych do panelu sterowania na ścianie. Ponieważ są tylko dwa przewody, które podczas testowania wydawały się mieć około 18 woltów, początkowo byłem trochę zdezorientowany, jak dokładnie ta rzecz może sterować wieloma funkcjami. MYŚLĘ, że każdy chwilowy przycisk po prostu uzupełnia obwód, ale z różnymi poziomami oporu. Następnie jednostka główna może odczytać tę rezystancję poprzez różne spadki napięcia i wykonać prawidłowe działanie. Nic z tego nie ma jednak znaczenia, chyba że próbujesz całkowicie zastąpić jednostkę sterującą Pi. Nie wiem, dlaczego chcesz to zrobić, ponieważ fajnie jest nadal mieć jednostkę fizyczną na swoim miejscu.

AAAAAannyway, wszystko, co musisz zrobić, to powielić różne naciśnięcia przycisków, podłączając chwilowe przełączniki na płytce drukowanej do modułu przekaźnika. To było jedyne lutowanie, które musiałem wykonać, a pady na płytce drukowanej były dość duże, więc było to całkiem proste. Na razie zostaw te przewody trochę za długie, ponieważ o wiele łatwiej jest skrócić przewód niż go później wydłużyć, chyba że masz na sobie napinacz do drutu ACME, ale są to dość rzadkie.

Krok 2: Okablowanie płytki przekaźnikowej

Okablowanie płytki przekaźnikowej
Okablowanie płytki przekaźnikowej
Okablowanie płytki przekaźnikowej
Okablowanie płytki przekaźnikowej

Nie ma tu za dużo do powiedzenia, po prostu połącz wszystko jak na zdjęciach. W module 2-przekaźnikowym Sainsmart styki JC-VCC i VCC muszą być połączone razem, chyba że chcesz użyć dla nich całkowicie oddzielnego zasilacza, ale do tego celu jest to przesada. Podłącz GND do pinu Pi GND, VCC do pinu 5 V, a IN1 i IN2 do dowolnych pinów GPIO, których chcesz użyć. Ponieważ zamierzasz używać ich jako przełączników HIGH / LOW, naprawdę nie ma znaczenia, które z nich.

Krok 3: Instalacja oprogramowania

Instalacja oprogramowania
Instalacja oprogramowania

Jest to prawdopodobnie najbardziej czasochłonny krok, ponieważ przez jakiś czas będziesz oglądać rzeczy pobierane i instalowane. Oglądaj youtube czy coś, gdy niektóre z tych rzeczy są zainstalowane.

Nie będę wyjaśniał, jak zainstalować Raspbian. Jeśli jeszcze nie wiesz, jak to zrobić, może najpierw przejdź do google kilka samouczków typu „hello world”. W każdym razie prawdopodobnie najlepiej będzie użyć nowej instalacji Raspbian Lite. Nie ma potrzeby posiadania interfejsu użytkownika w tym projekcie, a to tylko dodatkowe obciążenie. raspberrypi.org może przeprowadzić Cię przez ten proces.

Włącz SSH i (jeśli chcesz) albo skonfiguruj statyczny adres IP dla swojego Pi (po raz kolejny istnieje wiele samouczków, jak to zrobić, napisane przez lepszych autorów niż ja) lub jeszcze lepiej, skonfiguruj swój router / serwer DHCP aby przypisać statyczny adres IP do twojego Pi.

Jeśli chcesz mieć ładną, łatwą w instalacji i obsłudze usługę wideo, zainstaluj MotionEye. To prawdopodobnie przesada, ale jest to jedna z instalacji, która „po prostu działa” za każdym razem i ma ładny, łatwy w użyciu interfejs sieciowy. Sprawdź to tutaj:

github.com/ccrisan/motioneye/wiki/Install-… Postępuj zgodnie z tymi instrukcjami, używając sudo przed każdym poleceniem, a będziesz mieć fajną konfigurację streamera wideo. Nie jest dokładnie wymagane posiadanie strumienia wideo, jeśli zależy ci tylko na otwarciu drzwi, gdy możesz to zobaczyć, ale miło jest mieć informację zwrotną.

Po zainstalowaniu Motioneye wejdź na stronę https://TwójAdresIP:8765 i zaloguj się przy użyciu nazwy użytkownika „admin” i pustego hasła. Prawdopodobnie będziesz musiał dodać kamerę, która ponownie powinna „po prostu działać” i wykraczać poza zakres tych instrukcji.

Gdy jesteś zalogowany jako administrator, kliknij przełącznik "Ustawienia zaawansowane", a następnie ustaw opcje wideo - użyłem 320x240 do mojego wideo, ponieważ bardziej zależy mi na szybszych aktualizacjach niż na jakości, ponieważ naprawdę chciałem tylko zobaczyć to drzwi były otwarte lub nie, i nie trzeba czytać numerów skrzynek pocztowych po drugiej stronie ulicy.

W obszarze ustawień „Video Streaming” kliknij link „Streaming URL” i zanotuj adres, który Ci przedstawia. Będziesz go potrzebować później, jeśli planujesz skonfigurować interfejs w taki sam sposób, jak ja.

Istnieje wiele sposobów kontrolowania pinów GPIO. Do tego projektu użyłem WiringPi, aby go zainstalować, skorzystaj z instrukcji na stronie:

wiringpi.com/download-and-install/

Lub po prostu wydaj następujące polecenia na swoim Pi:

wget https://lion.drogon.net/wiringpi-2.50-1.debsudo dpkg -i wirepi-2.50-1.deb gpio -v gpio readall

To powinno dać ci listę tego, co dzieje się z twoimi pinami GPIO.

Jeśli używasz pinów 4 i 17 (w schemacie numeracji BCM), możesz przetestować swoje połączenia za pomocą następujących poleceń. Należy pamiętać, że ustawienie pinu LOW spowoduje aktywację przekaźników w przypadku korzystania z tego modułu Sainsmart. Twoje może być inne i musisz się do tego dostosować. Podczas wykonywania tych poleceń powinieneś usłyszeć, jak przekaźniki klikają na swoje miejsce, a diody LED powinny się zaświecić.

gpio -g tryb 17 out

gpio -g zapisz 17 0 gpio -g zapisz 1 1 gpio -g tryb 4 wyj gpio -g zapisz 4 0 gpio -g zapisz 4 1

OK, teraz możemy przejść do tworzenia interfejsu użytkownika.

Krok 4: Tworzenie interfejsu

Tworzenie interfejsu
Tworzenie interfejsu

Użyłem apache i PHP. Ładne i proste, nic nadzwyczajnego. Po raz kolejny zostało to lepiej wyjaśnione w innym miejscu, więc po prostu postępuj zgodnie z instrukcjami znajdującymi się tutaj:

www.raspberrypi.org/documentation/remote-a…

"Root" twojego serwera WWW domyślnie znajduje się w /var/www/html/ z domyślnym index.html, który zawiera informacje o twoim serwerze WWW. Zastąpisz ten index.html, więc możesz go usunąć lub zmienić jego nazwę na coś innego, na przykład index.copy. Uczyniłem również użytkownika "pi" właścicielem katalogu html, żeby być leniwym co do uprawnień. Wreszcie stworzyłem katalog do przechowywania moich obrazów, z których są dwa. Jeden, który jest po prostu głupią informacją, że został naciśnięty przycisk, a drugi, którego można użyć jako ikony na ekranie głównym telefonu.

pi@drzwi garażowe:~ $ cd /var/www/html/

pi@garagedoor:/var/www/html $ sudo chown pi.pi@garagedoor:/var/www/html $ mv index.html index.copy pi@garagedoor:/var/www/html $ mkdir images

Istnieje nieskończona liczba sposobów na stworzenie strony internetowej, ale zdecydowałem się zachować ją tak prostą i łatwą, jak to tylko możliwe w oparciu o MOJE umiejętności. Stąd PHP, odkąd go znam. Jeśli jesteś guru Pythona lub innym językiem skryptowym, możesz go użyć.

Stworzyłem stronę index.html „kontener”, która w rzeczywistości ma dwie ramki iframe, które wykonują całą pracę. Jedna z ramek iframe zawiera przyciski/łącza, które faktycznie wyzwalają przekaźniki przez GPIO, a druga ramka iframe wyświetlająca wideo. Zawiera również łącza do obrazu.png, którego można użyć jako ikony na ekranie głównym telefonu.

Element iframe index.html zawierający przyciski ma jako swoją zawartość plik buttons.html. (zabawne, jak to działa, co?) Oba linki w button.html prowadzą do action.php z unikalną wartością zmiennej GET. Na podstawie przekazanej wartości action.php albo wywoła drzwi, albo przycisk światła. Możesz pobrać kod HTML i PHP z mojego github:

Umieść cały kod HTML i PHP w katalogu głównym (/var/www/html/), w razie potrzeby zaktualizuj kod o nazwę obrazu, którego możesz użyć do potwierdzenia naciśnięcia przycisku, oraz adres strumienia wideo. Pamiętasz, kiedy powiedziałem ci, że będziesz tego potrzebować, w poprzednim kroku?

Krok 5: Wypróbuj

OK, teraz, gdy masz już wszystko okablowane i zainstalowane, wszystko działa idealnie za pierwszym razem, prawda? Słodki!

Zalecana: