Spisu treści:

Otwieracz do drzwi garażowych Raspberry Pi 3: 15 kroków (ze zdjęciami)
Otwieracz do drzwi garażowych Raspberry Pi 3: 15 kroków (ze zdjęciami)

Wideo: Otwieracz do drzwi garażowych Raspberry Pi 3: 15 kroków (ze zdjęciami)

Wideo: Otwieracz do drzwi garażowych Raspberry Pi 3: 15 kroków (ze zdjęciami)
Wideo: Working prototype of my garage door state sensor 2024, Lipiec
Anonim
Otwieracz do drzwi garażowych Raspberry Pi 3
Otwieracz do drzwi garażowych Raspberry Pi 3

Stworzyłem tę instrukcję w 2014 roku. Od tego czasu wiele się zmieniło. W 2021 zaktualizowałem tutaj Smart Garage Door Opener.

Użyj Raspberry Pi i smartfona, aby otwierać, zamykać i monitorować bramę garażową. Otwieranie i zamykanie drzwi zabezpieczają samopodpisane certyfikaty instalowane na telefonach komórkowych rodziny. Jeśli brama garażowa jest otwarta, a nie powinna, wyślij wiadomość tekstową (SMS) na telefon komórkowy.

Brama garażowa jest w ciągłym użytkowaniu od końca 2014 roku. Przez lata starałem się na bieżąco wprowadzać zmiany. Istnieje dodatek opisujący zmiany w instrukcji.

Cele tego projektu to:

  • Zrób mój pierwszy instruktaż - nie planowałem tego publikować, ale otrzymałem wiele próśb
  • Otwórz bramę garażową za pomocą standardowego pilota
  • Otwórz bramę garażową za pomocą naściennego dzwonka do otwierania garażu
  • Otwórz bramę garażową za pomocą smartfona
  • Monitoruj zdalnie stan bramy garażowej za pomocą telefonu komórkowego lub laptopa (czy jest otwarta czy zamknięta?)
  • Wyślij wiadomość tekstową na mój telefon komórkowy, jeśli drzwi są otwarte, a powinny być zamknięte
  • Zabezpiecz bramę garażową (np. w przypadku utraty zasilania drzwi nie powinny się otwierać)
  • Nie zezwalaj nikomu innemu w sieci na otwieranie drzwi (dwukierunkowy certyfikat SSL z podpisem własnym)
  • Użyj Wi-Fi zamiast połączenia przewodowego
  • Użyj Raspberry Pi 3

Podstawa tego wdrożenia Garage Door Opener pochodzi z Instructable: Raspberry Pi Garage Door Opener firmy quartarian. Pierwotnie używałem modelu B+ Raspberry Pi, następnie przeniosłem się na Raspberry Pi 2 model B, a teraz używa Raspberry Pi 3.

Do komunikacji z Raspberry Pi używałem MacBooka, ale można użyć dowolnego komputera.

Nie ma przekonującego powodu, aby zbudować to urządzenie, ale było fajnie. Bardziej opłacalne jest kupowanie jednego. Podobne urządzenie można kupić za około 130 USD.

  • Podnośnik główny 828LM
  • Szambelan MyQ 129
  • Brama GoGo 179
  • Rzemieślnik $100

Uwagi:

  • Tekst ujęty w pik, taki jak „zamień to” należy zastąpić rzeczywistą wartością
  • Podkreślony niebieski tekst Arduino jest linkiem. W tym przypadku jest to link do wersji arduino automatu do otwierania drzwi garażowych.
  • Próbowałem wymienić każde użyte źródło. Przepraszam za wszelkie przeoczenia. Większość tego dokumentu opiera się na pracy innych osób.
  • $ wskazuje polecenie wykonywane w oknie terminala na MacBooku i zwykle jest wykonywane na Raspberry Pi

Krok 1: Zbierz części

Kupuj lub zbieraj części i narzędzia (ceny w USD).

  • Raspberry Pi 3 Model B Newark Element14 134 zł
  • Zasilacz USB 5,2 V 2,5 A od Amazon 9,99 USD
  • Kabel Micro USB na USB 6 stóp od Amazon 7,99 USD
  • Etui z Amazon $6,99
  • SanDisk Ultra 16 GB microSDHC klasy 10 z adapterem (SDSQUAN-016G-G4A) od Amazon $ 8,99
  • SunFounder 2-kanałowy moduł 5V przekaźnika osłony dla Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - 6,79 USD
  • 3x żeńskie przewody połączeniowe. Kupiony w Fry's za 4,95 USD.
  • Dynamiczny DNS 40 USD rocznie dla 30 nazw (dyn.com)
  • 1-zespół 18 cu. w. Stary ciężki przełącznik ścienny i skrzynka wyjściowa, 3,12 USD
  • Ultra Pro Single Brush Biała płyta ścienna, 7,88 USD
  • SECO-LARM SM 226L, czujnik drzwi garażowych, cena bardzo się różni, 9,99 USD na Amazon z bezpłatną wysyłką
  • 50 stóp stałego przewodu termostatu, Home Depot lub Lowe's, ~ 20 USD

Moja suma: ~172,00 USD

Miałem następujące części, narzędzia i usługi:

  • Kabel Ethernet CAT5
  • Przewód o małym przekroju, 6 stóp długości
  • Śrubokręt krzyżakowy
  • Szczypce półokrągłe
  • Noże do pudeł
  • Płaski śrubokręt jubilerski, potrzebny do poluzowania śrub na przekaźniku
  • MacBook (można użyć komputera PC)
  • AT&T GigaPower (można użyć dowolnego dostawcy usług internetowych)

Krok 2: Skonfiguruj Raspberry Pi bez monitora lub klawiatury

Skonfiguruj Raspberry Pi bez monitora lub klawiatury
Skonfiguruj Raspberry Pi bez monitora lub klawiatury

Wszystkie projekty Raspberry Pi wymagają pewnego rodzaju konfiguracji. Lubię korzystać z tego samego zestawu instrukcji i w razie potrzeby mam jedno miejsce, w którym można je aktualizować.

Skonfiguruj Raspberry Pi, korzystając z następujących instrukcji:

Skonfiguruj Raspberry Pi bez monitora lub klawiatury

Powyższa instrukcja zawiera opcjonalne kroki w załączniku. Pamiętaj, aby wykonać krok:

Dodaj certyfikaty po stronie klienta do serwerów internetowych

Wyłącz Raspberry Pi

$ wyłączenie sudo -h 0

Po wyłączeniu usuń

  • kabel Ethernet
  • Kabel szeregowy USB

Nie będą już potrzebne. Użyj Wi-Fi, ssh i okna terminala na Mac Booku, aby uruchamiać polecenia na Raspberry Pi.

Odłącz zasilanie i podłącz ponownie, a raspberry pi powinien się zrestartować.

Krok 3: Zainstaluj Wiring Pi, Apache i PHP

Zainstaluj okablowanie Pi

Otwórz okno terminala na Mac Booku. Zaloguj się do Raspberry Pi, a następnie pobierz, skompiluj i zainstaluj Wiring Pi. To oprogramowanie umożliwia sterowanie pinami GPIO. Oto przewodnik krok po kroku:

wiringpi.com/download-and-install/

Oto skrócona wersja instrukcji:

$ ssh pi@♣raspberry-pi-ip♣

hasło: ♣hasło♣ $ sudo apt-get install git-core $ git clone git://git.drogon.net/wiringPi $ cd wirePi $ git pull origin $./build

Uruchom polecenie gpio, aby sprawdzić instalację:

$ gpio -v

gpio wersja: 2.29 Copyright (c) 2012-2015 Gordon Henderson Jest to darmowe oprogramowanie bez ŻADNEJ GWARANCJI. Aby uzyskać szczegółowe informacje wpisz: gpio -warranty Raspberry Pi Szczegóły: Typ: Model 2, Wersja: 1.1, Pamięć: 1024MB, Producent: Sony [OV] Drzewo urządzeń jest włączone. To Raspberry Pi obsługuje dostęp do GPIO na poziomie użytkownika. -> Więcej szczegółów można znaleźć na stronie podręcznika $ gpio readall +-----+-----+---------+------+---+--- Pi 2---+---+------+---------+-----+-----+ | BCM | wPi | Nazwa | Tryb | V | Fizyczne | V | Tryb | Nazwa | wPi | BCM | +-----+-----+---------+------+---+----++----+---+- -----+---------+-----+-----+ | | | 3,3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | W | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | W | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | WYJAZD | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | W | 0 | 11 || 12 | 0 | W | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | W | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | W | 0 | 15 || 16 | 1 | W | GPIO. 4 | 4 | 23 | | | | 3,3v | | | 17 || 18 | 0 | W | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | W | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | W | 0 | 21 || 22 | 0 | W | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | W | 0 | 23 || 24 | 1 | W | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | W | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | W | 1 | 27 || 28 | 1 | W | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | W | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | W | 1 | 31 || 32 | 0 | W | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | W | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | W | 0 | 35 || 36 | 0 | W | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | W | 0 | 37 || 38 | 0 | W | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | W | GPIO.29 | 29 | 21 | +-----+-----+---------+------+---+----++----+---+- -----+---------+-----+-----+ | BCM | wPi | Nazwa | Tryb | V | Fizyczne | V | Tryb | Nazwa | wPi | BCM | +-----+-----+---------+------+---+---Pi 2---+---+--- ---+---------+-----+-----+

Powyższe polecenia powinny dać ci pewność, że okablowaniePi działa poprawnie.

Zainstaluj Apache i PHP

Uruchom następujące polecenia:

$ cd..

$ sudo apt-get aktualizacja $ sudo apt-get zainstaluj apache2 php5 libapache2-mod-php5

Aby sprawdzić, czy serwer WWW działa, otwórz przeglądarkę i w polu URL wpisz:

♣malina-pi-ip♣

Domyślna witryna Apache odpowiada komunikatem „To działa!”

Krok 4: Strona internetowa

Otwórz okno terminala na Mac Booku. Zaloguj się do Raspberry Pi, a następnie usuń domyślny plik index.html, zmień uprawnienia w katalogu witryny i edytuj plik o nazwie index.php.

$ ssh pi@♣raspberry-pi-ip♣

hasło: ♣hasło♣ $ sudo rm /var/www/index.html $ sudo chown pi:root /var/www $ sudo nano /var/www/index.php

I wprowadź następujący kod:

Otwieracz garażu

Automatyka domowa

<?php if ($switch == 1) { echo"

"; } jeszcze { echo"

"; } ?>

Otwieracz drzwi garażowych Instrukcja otwierania drzwi garażowych zamknięte 1 otwarte 0
<?php if ($trigger == 0) { echo " <td colspan=\"4\" } else { echo"

var13 -->

CTRL-o i ENTER, aby zapisać plik, i CTRL-x, aby wyjść z edytora.

Zmień uprawnienia do pliku

$ sudo chmod 664 /var/www/index.php

Krok 5: Obraz strony internetowej

Obraz strony internetowej
Obraz strony internetowej
Obraz strony internetowej
Obraz strony internetowej

Pobierz z sieci zdalny mechanizm otwierania drzwi garażowych w wysokiej rozdzielczości. Zmodyfikuj obraz tak, jak chcesz, używając pędzla Mac. Na powyższym obrazku użyto wysokiej rozdzielczości Genie Garage Opener, dodano logo raspberry pi i usunięto diodę led.

Jeden obraz to tło (remote-background.jpg), a drugi to aktywny obraz (remote-press.jpg).

Plan był taki, że po naciśnięciu przycisku, zamiast migać diodę, malina mruga. Uprościłem stronę.

Skopiuj obrazy do Raspberry Pi:

$ scp *-j.webp

hasło: ♣hasło♣

Strona internetowa ma jeden przycisk. Aby zweryfikować, otwórz przeglądarkę i wpisz „raspberry-pi-ip”. Zamiast domyślnej witryny Apache, która mówi „To działa!”, powinien pojawić się przycisk. Naciśnij.

Krok 6: Zdalne sterowanie serwerem internetowym

Aby ułatwić zdalny dostęp do narzędzia do otwierania drzwi garażowych, używam dynamicznej nazwy DNS. Bo nie lubię zapamiętywać adresów IP.

Dzięki tej funkcji wpisuję ♣dynamic-hostname♣.getmyip.com w polu adresu URL przeglądarki. Uwaga: adres IP routerów domowych może się zmienić bez powiadomienia, ale rzadko się to zdarza. Wybrałem DynDNS. Musisz znać publiczny adres IP routera.

IP routera U-Verse: uverse-public-ip♣

Możesz wyświetlić swoje nazwy hostów i szczegóły konta DynDNS Pro. Oto kilka wskazówek na początek:

  • Utwórz nazwę hosta Dynamic DNS (1 z 30):

    • ♣dynamic-hostname♣
    • Klucz aktualizacji: ♣dynamic-ip-updater-key♣
  • Zainstaluj klienta aktualizacji, aby upewnić się, że nazwa hosta zawsze wskazuje poprawny adres IP.

    • Pobierz i zainstaluj na MacBooku
    • Adresy IP AT&T U-verse rzadko się zmieniają, więc powyższy aktualizator można uruchomić, gdy tylko się zmieni
    • Podążaj za wskazówkami:

      • Dodaj konto
      • Wpisz nazwę użytkownika i hasło: ♣dynamic-ip-username♣ ♣dynamic-ip-password♣
      • Wybierz nazwę hosta
      • Kliknij Konfiguruj wybrane hosty
      • Host powinien stać się aktywny
    • Skonfiguruj swoją sieć, aby umożliwić dostęp do urządzenia z Internetu. Możesz skorzystać z naszego Kreatora Dyn, aby uzyskać ogólne instrukcje, jak to zrobić, skorzystać z zasobów takich jak PortForward.com lub skontaktować się z producentem urządzenia w celu uzyskania pomocy.

      • AT&T U-verse
      • Przekierowanie portów dla 2-Wire 3801HGV - to jest router AT&T U-Verse, który posiadam. Zobacz aktualizacje w dodatku, aby dowiedzieć się, jak przekierować porty na routerze AT&T U-verse 5268ac.
      • Otwórz przeglądarkę i przejdź do ♣raspberry-pi-ip♣
      • Hasło: ♣hasło♣
      • Ustawienia
      • Zapora
        • Wybierz ♣raspberry-pi-hostname♣
        • Serwery

          • Port serwera WWW 80
          • Serwer HTTPS – port 443
        • Dodać
      • Zapisać

Po wykonaniu tej czynności serwer WWW będzie działał z Internetu. Aby zweryfikować, wpisz „dynamic-hostname” i powinieneś zobaczyć przycisk otwierania drzwi garażowych.

Krok 7: Podłącz obwód do Raspberry Pi

Podłącz obwód do Raspberry Pi
Podłącz obwód do Raspberry Pi

Dla dostarczonego kodu (krok 4 i 6) użyłem pinu 7 GPIO. To zbieg okoliczności, że GPIO 7 jest tym samym, co pin 7 okablowaniaPi. W kodzie PHP używane są numery pinów okablowania Pi, a NIE numery pinów GPIO. Możesz użyć dowolnego, ale pamiętaj, aby zmienić kod.

Próbowałem użyć skręconego drutu, ale przekaźnik nie trzyma się dobrze na skręconym przewodzie. Drut lity jest lepszy.

W mojej pierwszej próbie stworzyłem trzy kable połączeniowe (żeński-męski).

  • Użyj trzech żeńskich do żeńskich kabli rozruchowych
  • Wytnij trzy kawałki litego drutu na około 1 cal.

    Zdejmij 1/4 cala na obu końcach pełnego drutu

  • Włóż jeden pełny przewód do jednego żeńskiego kabla połączeniowego.

Oto lepszy sposób na tworzenie kabli połączeniowych (żeński-męski):

  • Używaj tylko solidnego drutu
  • Wytnij trzy 4-calowe kawałki litego drutu
  • Zdejmij 1/4 cala na obu końcach stałego drutu
  • Użyj żeńskich szpilek łączących

    • Wsuń jeden żeński sworzeń łączący na jeden koniec pełnego drutu i zagnij

      Kołek żeński nie powinien się poluzować, w razie potrzeby przylutować

    • Nasuń odciążenie na żeński kołek łączący lub kołek osłonowy za pomocą taśmy dla elektryka

Podłącz przekaźnik do pi, jak pokazano na schemacie:

  • Podłącz żeńską końcówkę kabla do pinu Raspberry Pi.
  • Włóż stały przewód do przekaźnika.

Krok 8: Utwórz usługę startową

Większość przekaźników, w tym zakupiony, działa w następujący sposób:

  • Gdy sygnał jest włączony, obwód pozostaje wyłączony.
  • Gdy sygnał jest wyłączony, obwód jest włączony.

Jeśli Raspberry Pi straci zasilanie, przekaźnik ma mechanizm zabezpieczający, który utrzymuje obwód w stanie OFF.

Problem może wystąpić, gdy Rapberry Pi i przekaźnik zostaną przywrócone, ale zanim Raspberry Pi zakończy uruchamianie, aby włączyć sygnał, co jest konieczne, aby obwód był wyłączony. Możesz obudzić się rano z otwartym garażem i potencjalnie kilkoma nowymi przyjaciółmi!

Jednak przekaźnik nie jest inicjalizowany, dopóki tryb pinów GPIO nie zostanie ustawiony za pomocą tego polecenia: tryb gpio 7 out. Ponadto, jeśli pin GPIO jest w pozycji ON (gpio write 7 1) przed ustawieniem trybu GPIO, przekaźnik pozostanie wyłączony po zainicjowaniu.

Aby uruchomić tę inicjalizację podczas rozruchu i nie budzić się z nowymi przyjaciółmi, użyj następującego skryptu startowego.

$ ssh pi@♣raspberry-pi-ip♣

$ sudo nano /etc/init.d/garagerelay

Następnie wklej ten skrypt:

#! /bin/bash

# /etc/init.d/garagerelay # Wykonywanie określonych funkcji na żądanie systemowe "$1" w starcie) echo "Starting Relay" # Włącz 7, co powoduje wyłączenie przekaźnika /usr/local/bin/gpio write 7 1 #Uruchom tryb Gpio /usr/local/bin/gpio 7 out;; stop) echo "Zatrzymywanie gpio";; *) echo "Stosowanie: /etc/init.d/garagerelay {start|stop}" exit 1;; esac wyjście 0

Aby zapisać: CTRL-o, ENTER

Aby wyjść z nano, CTRL-x

Ustaw plik wykonywalny:

$ sudo chmod +x /etc/init.d/garagerelay

Teraz powiedz swojemu pi, aby uruchomił ten skrypt podczas rozruchu:

$ sudo update-rc.d -f garagerelay start 4

(Uwaga: możesz bezpiecznie zignorować ostrzeżenie „brakujące tagi LSB”).

Upewnij się, że skrypt startowy jest uruchomiony

$ sudo restart

Otwórz przeglądarkę i kliknij otwieracz. Przekaźnik powinien kliknąć.

Krok 9: Podłącz Raspberry Pi do garażu

Podłącz Raspberry Pi do garażu
Podłącz Raspberry Pi do garażu

Przenosząc Raspberry Pi, upewnij się, że uruchomiłeś:

$ wyłączenie -h 0

Możesz wyłączyć zasilanie garażu. Więc otwieracz do drzwi nie porazi cię prądem:). Prawdziwym powodem jest to, że za każdym razem, gdy zwierasz przewody, drzwi będą się podnosiły i opadały.

Odkręć śruby ścienne z otwieracza typu dzwonek, który mocuje dzwonek do ściany.

Przebij dziurę z garażu za dzwonkiem do drzwi do domu. W Teksasie Raspberry Pi nie powinno znajdować się w garażu, zmiany temperatury w garażu wykraczają poza specyfikacje operacyjne Raspberry Pi.

Przeprowadź przewody przekaźnika przez otwór (użyj wieszaka na ubrania).

Poluzuj obie śruby z tyłu dzwonka do otwierania drzwi.

Zdejmij izolację z obu końców przewodów przekaźnika: 1) około 1/8 cala po stronie przekaźnika i około 1/2 cala po stronie dzwonka. Zegnij stronę dzwonka do drzwi w pół pętli wystarczająco dużą, aby zmieściła się wokół śruby z tyłu.

Podłącz jeden przewód przekaźnika do każdej śruby z tyłu dzwonka i dokręć śrubę. Połączenia są pokazane na obrazku. Ponieważ przekaźnik izoluje obwód, kierunek nie ma nawet znaczenia, który przekaźnik jest przymocowany do której śruby.

Krok 10: Podłącz Raspberry Pi do SECO-LARMU

Podłącz Raspberry Pi do SECO-LARMU
Podłącz Raspberry Pi do SECO-LARMU
Podłącz Raspberry Pi do SECO-LARMU
Podłącz Raspberry Pi do SECO-LARMU

Zanim skończyłem kod, moja rodzina i ja byliśmy na wakacjach i otworzyłem przeglądarkę. Ostatnim widokiem mojej przeglądarki był otwieracz bramy garażowej – strona odświeżona i otwarta brama garażowa. Kilka dni później zadzwonił sąsiad i zapytał, czy brama garażowa powinna być otwarta? Na szczęście mogłem go zamknąć z odległości 500 mil.

Ten snafu zmusił mnie do zmiany kodu, żeby tak się nie stało, i dodania do serwisu czujnika i stanu bramy garażowej.

To jest link do oryginalnej instrukcji dodawania czujnika. Jednak biorąc pod uwagę wszystko, co już zostało wykonane, instalację czujnika można znacznie uprościć i zamiast używać pythona dodać kilka linijek kodu do index.php.

closed

Magnes jest przymocowany do lewej, górnej wewnętrznej strony bramy garażowej, a czujnik jest przymocowany do ściany garażu. Musiałem więc poprowadzić solidny przewód termostatu z czujnika z powrotem do raspberry pi. Wymagało to wywiercenia dziury z garażu na strych i ze strychu do ściany, w której znajdował się otwieracz drzwi garażowych (przełącznik dzwonkowy).

Włożyłem niebieską skrzynkę przyłączeniową między czujnik SECO-LARM a stałe przewody.

W moim domu jest 18-calowa przerwa między sufitem pierwszego piętra a dołem drugiego piętra. Zakładam, że tam biegną kanały ogrzewania i chłodzenia. Potrzebowałem przedłużenia wiertła wystarczająco długiego, aby przejść przez drugie piętro i przez górną płytę 2x4 (górną płytę) zawierającą dzwonek do drzwi.

Najważniejszą rzeczą podczas wiercenia ze strychu w miejscu, w którym będą biegły przewody do otwierania drzwi garażowych, jest NIE przewiercanie prądu elektrycznego. Naprawianie tego nie było zabawne. Widok iskier i zgaszenie świateł było całkiem ekscytujące!

Czujnik wymaga dwóch solidnych przewodów termostatu lub niewidocznego przewodu ogrodzenia dla psów.

Raspberry Pi ma wiele opisów pinów (BCM, wPi, fizyczne). Kod wykorzystuje numery pinów okablowania pi. Aby zobaczyć wszystkie szpilki oraz ich mapowania i wartości pinezek, wprowadź:

$ gpio przeczytaj wszystko

W przypadku instrukcji gpio wpisz:

$ gpio człowiek

W oryginalnej instrukcji fizyczny pin 9 jest uziemiony i łączy się z jednym z przewodów SECO-LARM. Jednak to nie działa dla mnie. Zamiast tego podłącz przewody do fizycznych styków 15 i 17

Fizyczny pin 15 (wPi pin 3) przechodzi do 3,3 V, gdy czujnik SECO-LARM jest zamknięty. Fizyczny pin 17 to 3,3v. Jeśli to nie działa, przełącz połączenia na SECO-LARM.

Przymocuj SECO-LARM do bramy garażowej i ściany. Uruchom przewody i połącz się z Raspberry Pi.

Krok 11: Wyślij ostrzeżenie, jeśli drzwi są otwarte, a powinny być zamknięte

Jeśli brama garażowa jest otwarta, a nie powinna, wyślij sms na telefon komórkowy.

Zainstaluj i skonfiguruj prosty SMTP.

Mam sieć komórkową AT&T i używam ♣cell-phone-number♣@txt.att.net do wysyłania wiadomości tekstowych. Mam też konto gmail, a poniższy przykład używa ♣gmail-account♣@gmail.com. Jeśli korzystasz z różnych usług, wprowadź odpowiednie zmiany.

W przypadku poniższych poleceń $ otwórz okno terminala na MacBooku i zaloguj się do swojego Raspberry Pi.

Upewnij się, że repozytoria są aktualne:

$ sudo apt-get update

Zainstaluj proste narzędzia SSMTP i poczty:

$ sudo apt-get zainstaluj ssmtp

$ sudo apt-get install mailutils

Edytuj plik konfiguracyjny SSMTP:

$ sudo nano /etc/ssmtp/ssmtp.conf

następująco:

mailhub=smtp.gmail.com:587 hostname=♣nazwa-hosta♣ AuthUser=♣konto-gmail♣@gmail.com AuthPass=♣hasło-gmail♣ UżyjSTARTTLS=TAK

Edytuj plik aliasów SSMTP:

$ sudo nano /etc/ssmtp/revaliases

Utwórz jedną linię dla każdego użytkownika, który będzie mógł wysyłać e-maile. Na przykład:

Ustaw uprawnienia pliku konfiguracyjnego SSMTP:

$ sudo chmod 664 /etc/ssmtp/ssmtp.conf

Uprawnienia pliku /etc/ssmtp/ssmtp.conf określają, kto będzie mógł wysyłać e-maile z Raspberry Pi. Domyślnie właścicielem tego pliku jest użytkownik root, a grupa pliku również jest rootem.

Edytuj plik aliasów SSMTP, który zawiera dane o kontach e-mail:

$ sudo nano /etc/ssmtp/ssmtp.conf

Po zakończeniu powyższego procesu instalacji i konfiguracji przetestuj go, wysyłając wiadomość e-mail z wiersza poleceń.

$ echo "zamknij drzwi garażowe" | mail -s "Otwarte drzwi garażowe" ♣numer telefonu komórkowego♣@txt.att.net

Utwórz skrypt sprawdzający, czy brama garażowa jest otwarta, a nie powinna, a następnie wyślij SMS-a.

$ sudo nano /usr/local/bin/garage.sh

i dodaj następujące:

#!/kosz/bash

# sprawdź, czy brama garażowa jest otwarta. # Jeśli otwarte wyślij alert i zapisz do syslog up=0; door=$(/home/pi/wiringPi/gpio/gpio read 3) if ["$door" -eq "$up"] then logger ♣nazwa-hosta♣: Garage Door Open echo "zamknij drzwi garażowe" | mail -s "Otwarte drzwi garażowe" ♣numer telefonu komórkowego♣@txt.att.net fi wyjście 0

Następnie dodaj crontab, aby działał w wymaganych godzinach:

$ sudo crontab –e

i dodaj:

# W nocy sprawdzaj co godzinę, czy brama garażowa jest otwarta

0 22-23/1 * * * sudo /usr/local/bin/garage.sh 0 0-5/1 * * * sudo /usr/local/bin/garage.sh

Jeśli wszystko działa, przejdź do następnego kroku.

Krok 12: Umieść Raspberry Pi w Secret Book

Umieść Raspberry Pi w Secret Book
Umieść Raspberry Pi w Secret Book
Umieść Raspberry Pi w Secret Book
Umieść Raspberry Pi w Secret Book

Umieść Raspberry Pi w sekretnej księdze. Kupiłem ten u Michaela za około 7 USD. Wyciąłem kilka małych otworów na przewody i przewód zasilający.

Krok 13: Dodatek: Referencje

Moduł osłony przekaźnika SunFounder 2 kanałowy 5 V dla Arduino UNO 2560 1280 ARM PIC AVR STM32

  • 5-kanałowa płyta interfejsu przekaźnika 5 V, a każda z nich potrzebuje 15-20 mA;
  • Prąd sterownika Wyposażony w przekaźnik wysokoprądowy, AC250V 10A; DC30V 10A
  • Standardowy interfejs, który może być sterowany bezpośrednio przez mikrokontroler (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, logika TTL)
  • Diody wskazujące stan wyjścia przekaźnikowego Link do pobrania dokumentu:

Krok 14: Dodatek: Aktualizacje

21LUTY2016

  • W oryginalnych instrukcjach występowały problemy z autokorektą, formatowaniem i przejrzystością wskazówek.

    • Przykładowym problemem jest zmiana podwójnych cudzysłowów w kodzie na coś, co wygląda jak podwójny cudzysłów pisany kursywą. Jeśli jednak wytniesz i wkleisz to do skryptu, to nie zadziała.
    • Instruktażowy edytor lubi autokorektę, więc wlan zwraca się do planu, a autoremove włącza się do automatycznego usuwania. Te zmiany są trudne do zauważenia.
    • Niektóre z moich wskazówek mogły nie być wystarczająco jasne.
    • Zwykle używam nawiasów kątowych jako wskaźnika czegoś, co wymaga wymiany. Edytor konwertuje je do formatu html. Przełączyłem się więc na nawiasy kwadratowe, ale mogą one powodować problemy, ponieważ wyglądają jak kod. Tak więc ostatecznie zdecydowałem się na ♣s jako wskaźnik zastąpienia wartością rzeczywistą.
  • Z czasem poprawiłem też niektóre skrypty.
  • Edytowane kroki 21-26

03kwietnia 2016

  • Utworzono dodatek z rozwiązywaniem problemów, odniesieniami i aktualizacjami (kroki 27-29)
  • Przeniesiono rozwiązywanie problemów do dodatku z poprzedniego kroku 2
  • Zaktualizowano i uporządkowano alfabetycznie stronę rozwiązywania problemów
  • Zmieniono nazwę pliku z test2wifi.sh na garage.sh - tylko bardziej opisowa.
  • Zaktualizowano crona, aby używał garage.sh
  • Edytowane 1, 20-26 (Utwórz usługę startową, aby krok przed załącznikiem)

04kwi 2016

  • Zastąpienie kroków 2-11 i 16-20 moim standardem polegało na skonfigurowaniu Raspberry Pi
  • Zaktualizowana lista części, krok 1
  • Dodane/scalone zdjęcia

05kwietnia 2016

Uproszczona strona internetowa i obraz (kroki 4 i 5)

01MAJ2016

Dodano rozwiązywanie problemów dla czujnika Seco-larm/raspberry Pi

01MAJ2016

Wcześniejsze zmiany nie zostały poprawnie zapisane?

11 LISTOPADA 2016

  • Zaktualizowano do AT&T GigaPower i zmieniono router na 5268ac
  • 5268ac nie obsługuje pętli zwrotnej, więc serwer Garage Opener nie jest dostępny z komputerów w sieci LAN. Aby MacBook mógł uzyskać dostęp do serwera internetowego otwierania garażu, wykonaj następujące czynności:

$ sudo nano /etc/hosts

i dodaj linię

192.168.1.64 ♣Zewnętrzna-nazwa-domeny serwera♣

Zapisz i wyjdź, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • Wbudowane reguły przekierowania portów 5268ac, takie jak serwer HTTPS, serwer HTTP i serwer WWW, nie działają. Aby przekierowanie portów działało:

    • Otwórz przeglądarkę i przejdź do 192.168.1.254
    • Zaloguj sie
    • Wybierz Ustawienia, Zapora, Aplikacje, otworki i DMZ.
    • Wybierz serwer WWW do otwierania garażu
    • Wybierz Zdefiniowane przez użytkownika
    • Kliknij nową aplikację zdefiniowaną przez użytkownika
      • W polu Nazwa profilu aplikacji wprowadź: Przekazywanie portów
      • W polu Utwórz definicję aplikacji dodaj każdy z poniższych elementów i kliknij Dodaj do listy:

        • TCP od 80 do 80, mapowanie na port hosta 443
        • TCP od 443 do 443 mapuje na port hosta 443
        • UDP od 443 do 443, mapowanie na port hosta 443
        • UDP od 80 do 80, mapowanie na port hosta 443
    • Kliknij wstecz
    • Wybierz ponownie serwer WWW
    • Wybierz Zdefiniowane przez użytkownika
    • Dodaj przekierowanie portów
    • Kliknij Zapisz

21.01.2018

  • Zaktualizowano do Raspberry Pi 3
  • Kilka zmian w krokach
  • Zaktualizowano niektóre części i ceny

Krok 15: Dodatek: Rozwiązywanie problemów

Wykorzystane miejsce na dysku

Ostatni wiersz pokazuje całkowitą ilość wykorzystanego miejsca na dysku. Karta SD ma 8 GB.

$ cd../..

$ sudo du –hx –c

e-mail

Jeśli masz problemy, spróbuj tego:

$ echo "test" | sendmail -v ♣twoje-konto-gmail♣@gmail.com

Jeśli poczta e-mail jest poprawnie skonfigurowana, powinieneś otrzymać wiadomość e-mail na swoje konto Gmail.

Jeśli otrzymasz błąd uwierzytelniania:

Może być konieczne obniżenie poziomu bezpieczeństwa na swoim koncie. Jednak obniżanie zabezpieczeń NIE jest zalecane. Google wyśle e-maila z linkiem do niższego ustawienia zabezpieczeń.

Możesz przełączyć się z obecnego czytnika poczty e-mail, aby używać www.gmail.com w celu uzyskania dostępu do swojego konta (zalecane) lub zmienić ustawienia na https://www.google.com/settings/security/lesssecu…, aby Twoje konto nie było już chronione nowoczesnymi standardami bezpieczeństwa.

Nie polecam obniżania standardów bezpieczeństwa.

W przypadku niepowodzenia autoryzacji:

Najbardziej prawdopodobną przyczyną jest to, że w pliku /etc/ssmtp/ssmtp.conf podałeś nieprawidłową nazwę użytkownika lub hasło dla swojego konta Gmail. Dokładnie sprawdź wartości pól AuthUser i AuthPass.

Jeśli stracisz połączenie w trakcie przetwarzania:

Możliwe, że określiłeś niewłaściwy port dla Google SMTP gdzieś w /etc/ssmtp/ssmtp.conf lub w /etc/ssmtp/revaliases.

Sprawdź ostatnie wiersze swoich dzienników. Powinno tam być kilka istotnych komunikatów o błędach:

$ ogon /var/log/mail.log

$ ogon /var/log/syslog

Drzwi garażowe się nie otwierają

Jeśli wszystko działało i po prostu się zatrzymuje, spróbuj ponownie uruchomić. Jeśli to nie zadziała, wyciągnij przewód zasilający z Raspberry Pi, a następnie przywróć zasilanie. Raspberry Pi powinno zrestartować się w mniej niż 2 minuty i wszystko powinno działać poprawnie. Jest to zazwyczaj spowodowane utratą zasilania bramy mieszkaniowej.

GPIO

Jeśli coś pójdzie nie tak, najlepszym sposobem sprawdzenia, co się dzieje, jest następujące polecenie:

$ gpio przeczytaj wszystko

Zaloguj się do raspberry pi z MacBooka

terminal to narzędzie MacBooka: dysk/aplikacje/narzędzia/terminal. Trzymam aplikację terminala w doku.

Na MacBooku otwórz terminal

$ ssh pi@♣raspberry-pi-ip♣

♣hasło♣

Zaloguj się do bramki mieszkalnej

Na MacBooku otwórz przeglądarkę

URL = ♣malina-pi-ip♣

Login: ♣brama-hasło♣

Dzienniki

Jeśli coś pójdzie nie tak, sprawdź te dzienniki pod kątem błędów, ostrzeżeń lub innych problemów.

$ kot /var/log/wiadomości

$ cat /var/log/syslog $ cat /var/log/dmesg

Katalog MAC

Katalog na MacBooku, w którym przechowywane są pliki stron internetowych

Katalog MAC = /Użytkownicy/♣mój macbook♣/Pulpit/dom z obsługą Wi-Fi/otwieranie drzwi garażowych z obsługą Wi-Fi/strona internetowa

Hasło

Hasło = ♣raspberry-pi-password♣

Używana pamięć RAM i procesor

$ góra

CTRL-c, aby wyjść

Katalog domowy Raspberry Pi

$ pwd

/dom/pi

Nazwa hosta Raspberry Pi

$nazwa hosta

nazwa hosta = ♣nazwa hosta♣

IP Raspberry Pi

♣malina-pi-ip♣ = 192.168.1.93

Katalog stron internetowych Raspberry Pi

/var/www

Seco-larm przestaje działać

01.05.2016 Seco-larm przestał działać. To już trzeci raz, kiedy czujnik przestał działać. Aby powiedzieć to poprawnie, fizyczny pin 15 na Raspberry Pi przestał wykrywać wejście 3.3v. Wypróbowałem fizyczne piny 1 i 17 3,3 V i oba nadal wyprowadzały 3,3 V. Zmieniłem fizyczny pin 15 na inny GPIO, fizyczny pin 16 (GPIO 4) i znów zaczął działać. Więc nie ma nic złego w Seco-larmie. Problem wydaje się dotyczyć GPIO Raspberry Pi.

GPIO 3, fizyczny pin 15 jest martwy. To bardzo dobry post na temat testowania pinów GPIO.

Zmieniłem GPIO 3 na GPIO 4 i odpowiednio zmieniłem kod. Nie jestem pewien, dlaczego pin GPIO przestał działać. Oto dwa możliwe powody:

  • Mam zamontowany czujnik Seco-larm, więc gdy drzwi są zamknięte, wychodzi 3,3V. Brama garażowa jest częściej zamykana niż otwarta. Być może pin GPIO nie może przyjąć mniej więcej stałego sygnału wejściowego 3,3 V.
  • Awaria zbiegła się z utratą mocy, być może nastąpił skok mocy.

Bramka mieszkalna U-verse

Mam AT&T U-verse z bramą mieszkaniową, ale każda usługa powinna działać.

Jeśli bramka U-verse zostanie ponownie uruchomiona lub utraci zasilanie, może być konieczne ponowne uruchomienie Raspberry Pi.

Brama domowa U-verse Publiczny adres IP = ♣publiczny-ip routera♣

Publiczny adres IP bramy domowej U-verse może się zmienić, ale dzieje się to bardzo rzadko

Strona główna bramy mieszkalnej U-verse = 192.168.1.254

Identyfikator SSID bezprzewodowego punktu dostępowego routera U-verse = ♣ssid♣

Przepustowość Wi-Fi jest wolniejsza niż oczekiwano

Zmień router na mniej używany kanał. Domyślnie wszyscy dostawcy obwodów dostrajają Wi-Fi wszystkich użytkowników do kanału 1. Zmień na mniej używany kanał, na przykład 11. Spróbuj użyć nieparzystej liczby.

Uwaga: Powiedziałem kilku sąsiadom, co zrobiłem, aby poprawić wi-fi, a teraz wszyscy są na 9 lub 11, więc wróciłem do 1. Zawsze powinieneś używać nieparzystego kanału.

Otwórz przeglądarkę.

W przypadku U-verse wpisz 192.168.1.254 w polu URL.

Kliknij łącze bezprzewodowe i wybierz kanał 6 lub 11.

Istnieje aplikacja na smartfona o nazwie analizator wifi. Jeden z wyświetlaczy pokazuje wszystkie pobliskie punkty dostępu Wi-Fi nadające na określonym kanale. W mojej okolicy wszyscy są nastawieni na kanał 1.

Odłącz Raspberry Pi, a następnie przywróć zasilanie

Zalecana: