Spisu treści:

Otwieranie drzwi garażowych za pomocą Raspberry Pi: 5 kroków (ze zdjęciami)
Otwieranie drzwi garażowych za pomocą Raspberry Pi: 5 kroków (ze zdjęciami)

Wideo: Otwieranie drzwi garażowych za pomocą Raspberry Pi: 5 kroków (ze zdjęciami)

Wideo: Otwieranie drzwi garażowych za pomocą Raspberry Pi: 5 kroków (ze zdjęciami)
Wideo: Donald Tusk: Majonez? Lepiej łączyć niż dzielić. 2024, Listopad
Anonim
Otwieranie drzwi garażowych za pomocą Raspberry Pi
Otwieranie drzwi garażowych za pomocą Raspberry Pi

Steruj silnikiem garażu ze smartfona lub dowolnego urządzenia, które może przeglądać strony internetowe (z AJAX!). Projekt rozpoczął się, ponieważ miałem tylko jeden pilot do garażu. Jak fajnie było kupić drugi? Niewystarczająco. Moim celem była możliwość kontrolowania i monitorowania bramy garażowej ze smartfona za pomocą jednej strony. Nie nałożyłem na to żadnego wymyślnego zabezpieczenia, ponieważ RPi nie jest widoczne poza moją siecią LAN. W związku z tym polegam na VPN, aby uzyskać dostęp do strony internetowej. Korzystając ze smartfona z Androidem, bardzo łatwo jest zarówno skonfigurować VPN, jak i dodać stronę internetową do mojego ekranu głównego. Wszystko, czego potrzebowałem, to oprogramowanie do tego.

Jeśli chcesz wesprzeć mnie w pisaniu innych instrukcji, kup sprzęt z linków sponsorowanych Amazon.

Ponadto ta instrukcja jest teraz również dostępna na mojej osobistej stronie:

Krok 1: Trochę tła

Co znalazłem w Internecie

Jako programista lubię ponownie wykorzystywać samouczki lub kod już „na poziomie produkcyjnym”. W tym przypadku nie byłem zadowolony z tego, co znalazłem:

  • Otwieracz do drzwi garażowych Raspberry Pi firmy quartarian. Tam, gdzie zacząłem, prosty przycisk do sterowania przekaźnikiem. Brak przycisków otwierania/zamykania, brak sprzężenia zwrotnego. W każdym razie bardzo pomocne było zrozumienie koncepcji wokół dedykowanego RPi do sterowania silnikiem z przekaźnika. Okablowanie, którego teraz używam, jest nadal takie samo dla części sterującej.
  • Otwieracz do drzwi garażowych Raspberry Pi z GaragePi firmy Chase Chou. Taka sama konfiguracja, ale przy użyciu dodatkowego pilota bezprzewodowego. Nie chciałem zabić mojego jedynego pilota. W każdym razie okazało się, że używa tego samego rodzaju układu elektrycznego dla części dowodzenia. Po drodze dowiedziałem się o WebIOPi, aby sprawdzić moje GPIO przez stronę internetową. Tam też dowiedziałem się o umieszczeniu skrótu na ekranie głównym Androida. Zaczęło też rzucać światło na pomysł polegania na usługach, w końcu chcę, żeby był niezawodny.
  • Tworzenie wiadomości e-mail, tweeta lub SMS-ów z drzwi garażowych: Część 1 Autor: Richard L. Lynch. Ten dodał pomysł, aby użyć czujnika magnetycznego do kontrolowania stanu drzwi. Jednak nie używałem zbyt wiele, ponieważ nie budowałem systemu alarmowego, ale system dowodzenia/monitorowania.
  • Całkowicie bezprzewodowy mechanizm otwierania drzwi garażowych / kamera bezpieczeństwa firmy DeckerEgo. Dzięki temu lepiej wiedziałem o przesyłaniu strumieniowym z kamery internetowej w celu monitorowania drzwi. Nadal muszę w to włożyć trochę wysiłku. Może będę musiał oddać koncentrator USB do recyklingu lub pobrać inną kamerę internetową.
  • Sterowanie Raspberry Pi z urządzenia mobilnego lub przeglądarki internetowej na komputerze przez Frédérick Blais. To jest teraz moja podstawa dla stosu oprogramowania. Używa Flask do uruchomienia bardzo prostej strony internetowej wraz z AJAX. Jest to dla mnie premium, ponieważ zapewnia monitorowanie w czasie rzeczywistym i opcje poleceń. Czytaj poniżej.

O moim RPi

Ponieważ wciąż uczę się ogólnie o RPi i elektronice, kupiłem kilka rzeczy do mojego świeżo nabytego Raspberry Pi: kilka kabli, T-cobbler, kilka diod led, moduł z jednym przekaźnikiem, osiem przekaźników moduł, wyświetlacz LCD i tak dalej. W żadnym wypadku nie jestem elektronikiem i okazało się to bardzo pouczające. Aby kupić dodatkowy sprzęt, Amazon i Ebay są twoimi najlepszymi przyjaciółmi.

Obecny stan projektu obejmuje następujący sprzęt:

  • Raspberry Pi (FR/DE) z systemem Raspbian Wheezy 2014-09-09 z najnowszymi aktualizacjami
  • Karta microSD klasy 10 o pojemności 8 GB (FR/DE) lub 16 GB (FR/DE) lub 32 GB (FR/DE) do przechowywania systemu operacyjnego, plików itp.
  • Dwa kontaktrony garażowe ze stopu cynku (FR/DE) do wykrywania stanu otwarcia/zamknięcia
  • Jeden moduł przekaźnika 3V (FR/DE) do wysyłania poleceń do silnika drzwi (mój ma wbudowaną diodę LED do monitorowania stanu przekaźnika, bardzo przydatne!)
  • Płytka stykowa bez lutowania (FR/DE) i 2 przełączniki chwilowe (FR/DE) do symulacji drzwi na moim biurku (lub zestaw startowy (FR/DE))
  • Klucz sprzętowy Wi-Fi (FR/DE) do usuwania dodatkowego okablowania, gdy będzie zwisał z sufitu garażu

Ograniczeniem, które nadal mam, jest to, że nie wiem, kiedy drzwi są w połowie drogi, zatrzymane lub nadal się poruszają. Dlatego też chciałbym później dodać starą kamerkę do streamowania z garażu. Chyba faktycznie dodam jakiś czujnik do monitorowania samego silnika.

Krok 2: Stos oprogramowania

Pakiet oprogramowania
Pakiet oprogramowania

Ogólne rzeczy

Oprogramowanie opiera się na module Python, Flask i WiringPi GPIO Python. Jak wyjaśniono w tle, zacząłem od samouczka sterowania Raspberry Pi z urządzenia mobilnego lub przeglądarki internetowej na komputerze, opublikowanego przez Frédéricka Blaisa. Obecne oprogramowanie składa się z:

  • Plik szablonu HTML zawierający kod i elementy sterujące jQuery Mobile
  • Moduł Python Pins umożliwiający dostęp do GPIO Raspberry Pi
  • Moduł Pythona go do uruchamiania Flask i obsługi zapytań AJAX

To, co jest obecne w repozytorium, to surowe oprogramowanie. To w żaden sposób nie jest wyszukane ani przytłaczające. Właśnie to udało mi się osiągnąć dzięki temu, czego się nauczyłem.

Aktualny interfejs

Obecnie stan drzwi jest odczytywany co 0,5s. Dwa przełączniki są używane zarówno do stanu otwartego, jak i zamkniętego. Przekaźnik służy do sterowania silnikiem. Obecny kod nadal wyświetla jakiś debug. Poniższy zrzut ekranu pochodzi z Nexusa 5.

Krok 3: Sprzęt - Alpha

Sprzęt - Alpha
Sprzęt - Alpha
Sprzęt - Alpha
Sprzęt - Alpha

Stanowisko testowe

Moje stanowisko testowe jest dość proste, RPi, przekaźnik i dwa przełączniki. Aby trzymać rzeczy mocno, wystarczy kilka wiązań (FR/DE). Oto jego zdjęcie. Kabel RJ45 LAN (FR/DE) służy do debugowania pulpitu i klucza WIFI do użytku w garażu.

System na żywo

Na razie RPi jest podłączone do silnika drzwi, przełączniki pójdą. Muszę trochę poczekać, aby dostać rurkę termokurczliwą (FR/DE). Powinienem też być bardziej opanowany. Przepraszam za rozmycie.

Kable niebieski, żółty i zielony po lewej stronie służą do przełączników magnetycznych.

  • Niebieski to GND
  • Żółty i zielony to piny 18 (stan otwarty) i 27 (stan zamknięty).

Krok 4: Sprzęt - wersja beta

Sprzęt - wersja beta
Sprzęt - wersja beta
Sprzęt - wersja beta
Sprzęt - wersja beta
Sprzęt - wersja beta
Sprzęt - wersja beta

Stanowisko testowe

To jest teraz bezpośredni karton z wiązaniami na suwak. W zestawie znajduje się również wyświetlacz LCD i przekaźnik. Wyświetlacz LCD ma wymiary 20x4 (20 znaków dla wierszy, 4 linie) (FR/DE) na I²C.

Pierwsze 2 wiersze wyświetlają powitanie i datę/godzinę. Ostatnie 2 linie przełączają się między stanami pinów a stanem sieci (adresy IP eth0/wan0). Linia stanu drzwi to fajny GFX do powiedzenia:

  • | | jest otwarte
  • |-| działa
  • |.| zamknięte

Schematy frytek

Schemat Fritzing z wyświetlaczem LCD 20x4 I2C, przełącznikami otwórz/zamknij i przekaźnikiem. Jedynym dodatkiem jest ekran LCD I2C. Wolałem to od 18x2, które miałem.

System na żywo

Beta HW jest teraz „poziomem produkcyjnym”, ponieważ ładnie mieści się w starym pudełku na śruby. Zachowałem jeden separator do hostowania kabli przekaźnikowych i dodatkowych, podczas gdy RPi stoi na niższym poziomie. Po prawej stronie możesz zauważyć serwer Synology NAS (FR/DE), który służy do bezpośredniego zasilania RPi. W nocy z modemem, switchem i NAS.

Zamknij widok skrzynki na śruby, wyświetlacz LCD pokazuje stan drzwi i pinout otwierania/zamykania/przekaźnika.

W nocy widok na wnętrze z góry.

Krok 5: Kod źródłowy i zasoby

Wszystkie zasoby można znaleźć w tym repozytorium GitHub:

github.com/amayii0/GarageOpenerR1

Zalecana: