Spisu treści:
- Krok 1: Zbierz części
- Krok 2: Skonfiguruj Raspberry Pi bez monitora lub klawiatury
- Krok 3: Zainstaluj Wiring Pi, Apache i PHP
- Krok 4: Strona internetowa
- Krok 5: Obraz strony internetowej
- Krok 6: Zdalne sterowanie serwerem internetowym
- Krok 7: Podłącz obwód do Raspberry Pi
- Krok 8: Utwórz usługę startową
- Krok 9: Podłącz Raspberry Pi do garażu
- Krok 10: Podłącz Raspberry Pi do SECO-LARMU
- Krok 11: Wyślij ostrzeżenie, jeśli drzwi są otwarte, a powinny być zamknięte
- Krok 12: Umieść Raspberry Pi w Secret Book
- Krok 13: Dodatek: Referencje
- Krok 14: Dodatek: Aktualizacje
- Krok 15: Dodatek: Rozwiązywanie problemów
Wideo: Otwieracz do drzwi garażowych Raspberry Pi 3: 15 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
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
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 |
---|
Otwieracz drzwi garażowych | Instrukcja otwierania drzwi garażowych | zamknięte 1 | otwarte 0 |
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
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
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
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
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.
closedMagnes 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 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
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:
Otwieracz drzwi garażowych z informacją zwrotną za pomocą Esp8266 jako serwera internetowego.: 6 kroków
Otwieracz do drzwi garażowych z informacją zwrotną za pomocą Esp8266 jako serwera internetowego.: Cześć, pokażę ci, jak w prosty sposób zrobić otwieracz do drzwi garażowych. informacje zwrotne, będziesz wiedzieć, czy drzwi są otwierane lub zamykane w czasie rzeczywistym - Prosty, tylko jeden skrót, aby
Micro:Bit Otwieracz do drzwi dla psa: 8 kroków (ze zdjęciami)
Micro:Bit Dog Door Opener: Czy Twoje zwierzaki same się zamykają w pokojach? Czy chciałbyś, aby twój dom był bardziej dostępny dla twoich futrzanych* przyjaciół? Teraz możesz, hura! Ten projekt używa mikrokontrolera micro:bit do otwierania drzwi po naciśnięciu przełącznika (przyjaznego dla zwierząt). będziemy
Otwieracz do drzwi garażowych Raspberry Pi: 5 kroków
Otwieracz do drzwi garażowych Raspberry Pi: Nasza piętnastoletnia klawiatura, która pozwala nam otworzyć drzwi garażowe, powoli umiera, z kilkoma przyciskami, które ledwo się rejestrują, co utrudnia naszym nastolatkom (lub opiekunom psów) wejście do domu, gdy zapomną ich klucz. Zamiast zastępować
Otwieranie drzwi garażowych za pomocą Raspberry Pi: 5 kroków (ze zdjęciami)
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
Otwieracz drzwi garażowych iPhone i Arduino: 8 kroków
IPhone i Arduino Garage Door Opener: Często podążam za wieloma technicznymi instrukcjami i zawsze jestem zdumiony rzeczami, które ludzie wymyślają. Jakiś czas temu znalazłem instrukcję na otwieraczu drzwi garażowych Wi-Fi, który uważałem za naprawdę fajny i dodałem go do mojej niekończącej się listy rzeczy do zrobienia