Cuprins:
- Pasul 1: Adunați părți
- Pasul 2: Configurați Raspberry Pi fără monitor sau tastatură
- Pasul 3: Instalați Wiring Pi, Apache și PHP
- Pasul 4: site-ul web
- Pasul 5: Imagine a site-ului web
- Pasul 6: Control de la distanță Webserver
- Pasul 7: Conectați circuitul la Raspberry Pi
- Pasul 8: Creați un serviciu de pornire
- Pasul 9: Atașați Raspberry Pi la garaj
- Pasul 10: Atașați Raspberry Pi la SECO-LARM
- Pasul 11: Trimiteți o alertă dacă ușa este deschisă când ar trebui închisă
- Pasul 12: Puneți Raspberry Pi în Cartea secretă
- Pasul 13: Anexă: Referințe
- Pasul 14: Anexă: Actualizări
- Pasul 15: Anexă: Depanare
Video: Deschizător de ușă pentru garaj Raspberry Pi 3: 15 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Am creat acest instructabil în 2014. De atunci s-au schimbat multe. În 2021, am actualizat dispozitivul de deschidere a ușii de garaj inteligent aici.
Folosiți un Raspberry Pi și un smartphone pentru a deschide, închide și monitoriza o ușă de garaj. Deschiderea și închiderea ușii sunt asigurate prin utilizarea certificatelor autosemnate instalate pe telefoanele mobile ale familiei. Dacă ușa garajului este deschisă atunci când nu ar trebui să fie, trimiteți un mesaj text (SMS) la un telefon mobil.
Ușa garajului este în uz continuu de la sfârșitul anului 2014. De-a lungul anilor, am încercat să mențin modificările actualizate. Există un apendice care descrie modificările la instructable.
Obiectivele acestui proiect sunt:
- Faceți primul meu instructable - nu am planificat să postez acest lucru, dar am primit multe cereri
- Deschideți o ușă de garaj cu o telecomandă standard
- Deschideți o ușă de garaj cu deschizătorul de garaj montat pe perete
- Deschideți o ușă de garaj cu un SmartPhone
- Monitorizați starea ușii garajului de la distanță prin intermediul unui telefon mobil sau laptop (este deschisă sau închisă?)
- Trimiteți un mesaj text pe telefonul meu mobil dacă ușa este deschisă când ar trebui închisă
- Păstrați ușa garajului sigură (de exemplu, la pierderea de energie electrică, ușa nu trebuie să se deschidă)
- Nu permiteți nimănui de pe net să deschidă ușa (certificat SSL autosemnat cu două sensuri)
- Utilizați WiFi în loc de o conexiune prin cablu
- Folosiți un Raspberry Pi 3
Baza pentru această punere în aplicare a deschiderii ușii de garaj a fost derivată din Instructable: Raspberry Pi Deschidere ușă de garaj de către quartarian. Inițial, am folosit un model B + Raspberry Pi, apoi am trecut la un Raspberry Pi 2 model B, iar acum folosește un Raspberry Pi 3.
Am folosit un MacBook pentru a comunica cu Raspberry Pi, dar poate fi folosit orice computer.
Nu există niciun motiv convingător pentru a construi acest dispozitiv, dar a fost distractiv. Este mai rentabil să cumpărați unul. Un dispozitiv similar poate fi achiziționat pentru aproximativ 130 USD.
- Lift master 828LM
- Chamberlain MyQ 129 $
- GoGo Gate 179 USD
- Artizan 100 $
Note:
- Textul închis în pică, ca acesta ♣ înlocuiți-acesta ♣ ar trebui înlocuit cu o valoare reală
- Arduino subliniat textul albastru este un link. În acest caz, este un link către o versiune arduino a unui deschizător de uși de garaj.
- Am încercat să creditez fiecare sursă utilizată. Îmi cer scuze pentru orice omisiune. Majoritatea acestui document se bazează pe munca altor persoane.
- $ indică o comandă executată într-o fereastră de terminal de pe MacBook și de obicei se execută pe Raspberry Pi
Pasul 1: Adunați părți
Cumpărați sau strângeți piese și instrumente (prețuri în USD).
- Raspberry Pi 3 Model B Newark Element14 $ 35
- Adaptor de alimentare USB de 5,2 V 2,5 A de la Amazon 9,99 USD
- Cablu Micro USB la USB 6ft de la Amazon 7,99 USD
- Caz de la Amazon 6,99 USD
- SanDisk Ultra 16 GB microSDHC Clasa 10 cu adaptor (SDSQUAN-016G-G4A) de la Amazon 8,99 USD
- SunFounder 2 canale 5V releu Shield Module pentru Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - 6,79 USD
- 3x fire jumper feminin-feminin. Cumpărat la Fry’s pentru 4,95 USD.
- DNS dinamic de 40 USD pe an pentru 30 de nume (dyn.com)
- 1-Gang 18 cu. în. Întrerupător de perete greu și cutie de ieșire, 3,12 USD
- Placă de perete albă Ultra Pro Single Brush, 7,88 USD
- SECO-LARM SM 226L, senzor ușă de garaj, prețul variază foarte mult, 9,99 USD pe Amazon, cu transport gratuit
- 50ft de fir termostat solid, Home Depot sau Lowe's, ~ 20 USD
Totalul meu: ~ 172,00 USD
Am avut următoarele părți, instrumente și servicii:
- Cablu Ethernet CAT5
- Sârmă de dimensiuni mici, lungime de 6 ft
- Șurubelniță cu cap Phillips
- Cleste pentru nas
- Freze cutii
- Șurubelnițe cu cap plat, bijuterii, necesare pentru a slăbi șuruburile de pe releu
- MacBook (se poate utiliza un computer)
- AT&T GigaPower (poate fi utilizat orice furnizor de servicii de internet)
Pasul 2: Configurați Raspberry Pi fără monitor sau tastatură
Toate proiectele Raspberry Pi necesită un anumit tip de configurare. Îmi place să folosesc același set de instrucțiuni și, atunci când este necesar, am un singur loc pentru actualizarea acestor instrucțiuni.
Configurați Raspberry Pi utilizând următoarele instrucțiuni:
Configurați Raspberry Pi fără monitor sau tastatură
Instrucțiunile de mai sus includ pași opționali în anexă. Asigurați-vă că faceți pasul:
Adăugați certificate de partea clientului pe serverele web
Închideți Raspberry Pi
$ sudo shutdown -h 0
După închidere, eliminați
- cablu Ethernet
- Cablu serial USB
Acestea nu vor mai fi necesare. Utilizați wifi, ssh și o fereastră de terminal pe Mac Book pentru a rula comenzi pe Raspberry Pi.
Deconectați alimentarea și reconectați-o, iar raspberry pi ar trebui să repornească.
Pasul 3: Instalați Wiring Pi, Apache și PHP
Instalați Wiring Pi
Deschideți o fereastră de terminal pe Mac Book. Conectați-vă la Raspberry Pi, apoi descărcați, compilați și instalați Wiring Pi. Acest software permite controlul pinilor GPIO. Iată un ghid pas cu pas:
wiringpi.com/download-and-install/
Iată o versiune condensată a instrucțiunilor:
$ ssh pi @ ♣ zmeură-pi-ip ♣
parola: ♣ parola ♣ $ sudo apt-get install git-core $ git clone git: //git.drogon.net/wiringPi $ cd wiringPi $ git pull origin $./build
Rulați comanda gpio pentru a verifica instalarea:
$ gpio -v
versiunea gpio: 2.29 Copyright (c) 2012-2015 Gordon Henderson Acesta este un software gratuit cu ABSOLUT FĂRĂ GARANȚIE. Pentru detalii tip: gpio -warranty Raspberry Pi Detalii: Tip: Model 2, Revizie: 1.1, Memorie: 1024MB, Producător: Sony [OV] Arborele dispozitivului este activat. Acest Raspberry Pi acceptă acces GPIO la nivel de utilizator. -> Consultați pagina de manual pentru mai multe detalii $ gpio readall + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + ------ + --------- + ----- + ----- + | BCM | wPi | Nume | Mod | V | Fizic | V | Mod | Nume | wPi | BCM | + ----- + ----- + --------- + ------ + --- + ---- ++ ---- + --- + - ----- + --------- + ----- + ----- + | | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | OUT | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 1 | IN | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 | + ----- + ----- + --------- + ------ + --- + ---- ++ ---- + --- + - ----- + --------- + ----- + ----- + | BCM | wPi | Nume | Mod | V | Fizic | V | Mod | Nume | wPi | BCM | + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + --- --- + --------- + ----- + ----- +
Comenzile de mai sus ar trebui să vă ofere o anumită încredere că wiringPi funcționează OK.
Instalați Apache și PHP
Rulați următoarele comenzi:
$ cd..
$ sudo apt-get update $ sudo apt-get install apache2 php5 libapache2-mod-php5
Pentru a verifica funcționarea serverului web, deschideți un browser și introduceți în caseta URL:
♣ zmeură-pi-ip ♣
Site-ul implicit al lui Apache răspunde cu „Funcționează!”
Pasul 4: site-ul web
Deschideți o fereastră de terminal pe Mac Book. Conectați-vă la Raspberry Pi, apoi eliminați fișierul index.html implicit, modificați permisiunile din directorul site-ului web și editați un fișier numit index.php.
$ ssh pi @ ♣ zmeură-pi-ip ♣
parola: ♣ parola ♣ $ sudo rm /var/www/index.html $ sudo chown pi: root / var / www $ sudo nano /var/www/index.php
Și introduceți următorul cod:
Deschizător de garaj
Domotică |
---|
Deschizător ușă garaj | Manual de deschidere a ușii de garaj | închis 1 | deschideți 0 |
CTRL-o și ENTER pentru a scrie fișierul și CTRL-x pentru a ieși din editor.
Modificați permisiunile pentru fișier
$ sudo chmod 664 /var/www/index.php
Pasul 5: Imagine a site-ului web
Luați de pe web un deschizător de uși de garaj la distanță, de înaltă rezoluție. Modificați imaginea așa cum doriți folosind pensula Mac. În imaginea de mai sus, a fost utilizat un deschizător de garaj Genie de înaltă rezoluție, s-a adăugat un logo zmeură pi și ledul a fost îndepărtat.
O imagine este fundalul (remote-background.jpg), iar cealaltă este imaginea activă (remote-press.jpg).
Planul era ca la apăsarea butonului, în loc să clipească ledul, zmeura să clipească. Am simplificat site-ul web.
Copiați imaginile în raspberry pi:
$ scp *-j.webp
parola: ♣ parola ♣
Site-ul web are un singur buton. Pentru verificare, deschideți un browser și introduceți ♣ raspberry-pi-ip ♣. În loc de site-ul implicit al lui Apache, care spune „Funcționează!”, Butonul ar trebui să apară. Apasa-l.
Pasul 6: Control de la distanță Webserver
Pentru a facilita accesarea deschizătorului de uși de garaj dintr-o locație la distanță, folosesc un nume DNS dinamic. Pentru că nu-mi place să-mi amintesc adresele IP.
Cu această caracteristică, introduc ♣ nume-gazdă dinamică ♣.getmyip.com în câmpul URL al unui browser. Notă: IP-ul routerelor de acasă se poate modifica fără notificare prealabilă, dar acest lucru se întâmplă rar. Am ales să folosesc DynDNS. Va trebui să cunoașteți adresa IP publică a routerului.
U-Verse Router IP: vers uverse-public-ip ♣
Puteți vizualiza numele dvs. de gazdă și detaliile contului DynDNS Pro. Iată câteva sfaturi pentru a începe:
-
Creați numele de gazdă DNS dinamic (1 din 30):
- ♣ nume-gazdă dinamică ♣
- Actualizator cheie: ♣ dinamic-ip-actualizator-cheie ♣
-
Instalați un client de actualizare pentru a vă asigura că numele gazdei dvs. este întotdeauna îndreptat către adresa IP corectă.
- Descărcați și instalați pe MacBook
- IP-urile U-verse AT&T rareori se schimbă, astfel încât actualizatorul de mai sus poate fi rulat ori de câte ori se schimbă
-
Urmeaza direcțiile:
- Adaugă cont
- Introduceți numele de utilizator și parola: ♣ dynamic-ip-username ♣ ♣ dynamic-ip-password ♣
- Selectați numele gazdei
- Faceți clic pe Configurare gazde selectate
- Gazda ar trebui să devină activă
-
Configurați-vă rețeaua pentru a permite accesul la dispozitivul dvs. de pe Internet. Puteți utiliza expertul Dyn pentru câteva instrucțiuni generale despre cum să faceți acest lucru, puteți utiliza resurse precum PortForward.com sau contactați producătorul dispozitivului pentru asistență.
- AT-T U-vers
- Redirecționare port pentru 2 fire Wire 3801HGV - acesta este routerul AT-T U-Verse pe care îl am. Consultați Actualizări într-un apendice pentru cum să transferați portul pe routerul AT&T U-verse 5268ac.
- Deschideți browserul și accesați ♣ raspberry-pi-ip ♣
- Parolă: ♣ parolă ♣
- Setări
-
Paravan de protecție
- Alegeți ♣ raspberry-pi-hostname ♣
-
Servere
- Portul Web Server 80
- Server HTTPS - portul 443
- Adăuga
- Salvați
Odată ce acest lucru este făcut, serverul web va funcționa de pe internet. Pentru verificare, introduceți ♣ nume-gazdă dinamică ♣ și ar trebui să vedeți butonul de deschidere a ușii de garaj.
Pasul 7: Conectați circuitul la Raspberry Pi
Pentru codul furnizat (pașii 4 și 6), am folosit pinul GPIO 7. Este o coincidență faptul că GPIO 7 este același cu pinul wiringPi 7. În codul PHP, se utilizează numerele pin pin de cablare și NU numerele pin PIN GPIO. Puteți utiliza oricare dintre acestea doriți, dar asigurați-vă că modificați codul.
Am încercat să folosesc sârmă răsucită, dar releul nu ține bine firul răsucit. Sârmă solidă este mai bună.
La prima mea încercare, am creat trei cabluri de conectare (de la mamă la mamă).
- Folosiți trei cabluri jumper la femelă
-
Tăiați trei bucăți de sârmă solidă la aproximativ 1 inch.
Îndepărtați 1/4 inch pe ambele capete ale firului solid
- Introduceți un fir solid într-un cablu jumper feminin.
Iată o modalitate mai bună de a crea cabluri de conectare (de la mamă la mamă):
- Folosiți numai sârmă solidă
- Tăiați trei bucăți de sârmă solidă de 4 inci
- Îndepărtați 1/4 inch pe ambele capete ale firului solid
-
Utilizați pini de conectare de sex feminin
-
Glisați un știft de conectare mamă pe un capăt al firului solid și sertizați
Știftul feminin nu trebuie să se desprindă, lipiți dacă este necesar
- Glisați dispozitivul de eliberare a tensiunii peste știftul de conectare feminin sau știftul de acoperire cu banda electriciană
-
Conectați releul la pi așa cum se arată în diagramă:
- Conectați capătul feminin al cablului la pinul Raspberry Pi.
- Introduceți firul solid în releu.
Pasul 8: Creați un serviciu de pornire
Cele mai multe relee, inclusiv cea achiziționată, funcționează astfel:
- Când semnalul este PORNIT circuitul rămâne oprit.
- Când semnalul este OPRIT, atunci circuitul este pornit.
Dacă Raspberry Pi își pierde puterea, releul are un mecanism de siguranță care menține circuitul oprit.
O problemă ar putea apărea atunci când Rapberry Pi și releul vor fi restabiliți, dar înainte ca Raspberry Pi să termine pornirea pentru a porni semnalul care este necesar pentru a menține circuitul oprit. Te-ai putea trezi dimineața cu garajul tău deschis și potențial câțiva prieteni noi!
Cu toate acestea, releul nu se inițializează până când modul PIN GPIO nu este setat prin această comandă: gpio mode 7 out. Mai mult, dacă pinul GPIO este activat (scriere gpio 7 1) înainte de a seta modul GPIO, releul va rămâne oprit odată inițializat.
Pentru ca această inițializare să ruleze la pornire și să nu vă treziți cu noi prieteni, utilizați următorul script de pornire.
$ ssh pi @ ♣ zmeură-pi-ip ♣
$ sudo nano /etc/init.d/garagerelay
Apoi lipiți acest script:
#! / bin / bash
# /etc/init.d/garagerelay # Efectuați funcții specifice atunci când vi se solicită cazul de sistem „$ 1” în start) ecou „Pornire releu” # Turn 7 pe care menține releu dezactivat / usr / local / bin / gpio write 7 1 #Start Gpio / usr / local / bin / gpio mode 7 out;; stop) ecou „Oprirea gpio”;; *) ecou „Utilizare: /etc/init.d/garagerelay {start | stop}” ieșirea 1;; esac ieșire 0
Pentru a salva: CTRL-o, ENTER
Pentru a ieși din nano, CTRL-x
Faceți fișierul executabil:
$ sudo chmod + x /etc/init.d/garagerelay
Acum spuneți-i pi-ului dvs. să ruleze acest script la boot:
$ sudo update-rc.d -f garagerelay start 4
(Notă: puteți ignora în siguranță avertismentul „etichete LSB lipsă”.)
Asigurați-vă că scriptul de pornire rulează
$ sudo reporniți
Deschideți un browser și faceți clic pe deschizător. Releul ar trebui să facă clic.
Pasul 9: Atașați Raspberry Pi la garaj
Când mutați Raspberry Pi, asigurați-vă că rulați:
$ închidere -h 0
Poate doriți să opriți curentul din garaj. Deci, deschizătorul soneriei nu te electrocutează:). Adevăratul motiv este că de fiecare dată când scurtcircuitați firele, ușa va urca și coborî.
Desfaceți șuruburile de perete de la deschizătorul de tip sonerie, care atașează soneria de perete.
Faceți o gaură din garaj, în spatele deschizătorului soneriei, în interiorul casei. În Texas, Raspberry Pi nu ar trebui să fie în garaj, variația temperaturii în garaj fiind în afara specificațiilor de funcționare ale Raspberry Pi.
Treceți firele releului prin orificiu (utilizați un cuier).
Slăbiți ambele șuruburi de pe partea din spate a deschizătorului soneriei.
Îndepărtați ambele capete ale firelor releului: 1) aproximativ 1/8 "inch din partea releului și aproximativ ½" inch pe partea soneriei. Îndoiți partea soneriei ușii a firului într-o jumătate de buclă suficient de mare pentru a se potrivi în jurul șurubului din spate.
Conectați un fir de releu la fiecare șurub de pe partea din spate a soneriei și strângeți șurubul. Conexiunile sunt așa cum se arată în imagine. Deoarece releul izolează circuitul, direcția nu contează nici măcar ce releu este atașat la care șurub.
Pasul 10: Atașați Raspberry Pi la SECO-LARM
Înainte să termin codul, eu și familia mea eram în vacanță și mi-am deschis browserul. Ultima vizualizare a browserului meu a fost deschizătorul ușii garajului - pagina s-a reîmprospătat și ușa garajului s-a deschis. Câteva zile mai târziu, un vecin a sunat și a întrebat dacă ușa garajului ar trebui să fie deschisă? Din fericire, aș putea să-l închid de la 500 de mile distanță.
Acest snafu m-a forțat să schimb codul pentru ca acest lucru să nu se întâmple și să adaug un senzor și starea ușii garajului pe site.
Acesta este un link către instrucțiunile originale pentru adăugarea unui senzor. Cu toate acestea, având în vedere tot ce a fost deja finalizat, instalarea senzorului poate fi mult simplificată și în loc să folosiți python adăugați câteva linii de cod la index.php.
closedMagnetul este atașat la partea interioară superioară din partea stângă a ușii garajului, iar senzorul este atașat la peretele garajului. Așadar, a trebuit să rulez firul termostatului solid de la senzor înapoi la pi zmeură. Pentru aceasta era nevoie de o gaură din garaj în mansardă și de la mansardă în perete, care să conțină deschizătorul ușii garajului (comutatorul soneriei).
Am introdus o cutie de joncțiune albastră între senzorul SECO-LARM și firele solide.
În casa mea, există un decalaj de 18 inch între tavanul de la primul etaj și partea inferioară a celui de-al doilea etaj. Presupun că aici se execută conductele de încălzire și răcire. Aveam nevoie de o prelungire a burghiului suficient de lungă pentru a trece prin etajul al doilea și prin partea superioară 2x4 (placa superioară) care conține soneria.
Cea mai importantă parte este când găurirea de la mansardă în zona în care firele vor rula către deschizătorul ușii garajului este să NU găuriți prin electricitate. Remedierea acestui lucru nu a fost distractiv. Vederea scânteilor și stingerea luminilor a fost destul de palpitant!
Senzorul necesită două fire solide ale termostatului sau un fir invizibil de gard pentru câini.
Raspberry Pi are mai multe descrieri de pini (BCM, wPi, fizice). Codul folosește numerele pin pin de cablare. Pentru a vedea toți pinii, mapările de pin și valorile pinilor, introduceți:
$ gpio readall
Pentru un manual gpio, introduceți:
$ gpio man
În instrucțiunile originale, pinul fizic 9 este împământat și se conectează la unul dintre cablurile SECO-LARM. Cu toate acestea, acest lucru nu funcționează pentru mine. În schimb, conectați cablurile la pinii fizici 15 și 17
Pinul fizic 15 (pinul wPi 3) merge la 3,3V când senzorul SECO-LARM este închis. Pinul fizic 17 este de 3,3v. Dacă nu funcționează, comutați conexiunile pe SECO-LARM.
Atașați SECO-LARM la ușa și peretele garajului. Rulați fire și conectați-vă la Raspberry Pi.
Pasul 11: Trimiteți o alertă dacă ușa este deschisă când ar trebui închisă
Dacă ușa garajului este deschisă atunci când nu ar trebui să fie, trimiteți un mesaj text la un telefon mobil.
Instalați și configurați SMTP simplu.
Am celule AT&T și folosesc ♣cell-phone-number♣@txt.att.net pentru mesaje text. Am și un cont Gmail, iar exemplul de mai jos folosește ♣gmail-account♣@gmail.com. Dacă utilizați diferite servicii, atunci efectuați modificările corespunzătoare.
Pentru comenzile $ de mai jos, deschideți o fereastră de terminal pe MacBook și conectați-vă la Raspberry Pi.
Asigurați-vă că depozitele sunt actualizate:
$ sudo apt-get update
Instalați utilitare SSMTP și mail simple:
$ sudo apt-get install ssmtp
$ sudo apt-get install mailutils
Editați fișierul de configurare SSMTP:
$ sudo nano /etc/ssmtp/ssmtp.conf
după cum urmează:
mailhub = smtp.gmail.com: 587 hostname = ♣ your-hostname ♣ AuthUser=♣gmail-account♣@gmail.com AuthPass = ♣ gmail-password ♣ UseSTARTTLS = YES
Editați fișierul aliasurilor SSMTP:
$ sudo nano / etc / ssmtp / revaliases
Creați o linie pentru fiecare utilizator care va putea trimite e-mailuri. De exemplu:
rădăcină: ♣gmail-account♣@gmail.com: smtp.gmail.com: 587
Setați permisiunile fișierului de configurare SSMTP:
$ sudo chmod 664 /etc/ssmtp/ssmtp.conf
Permisiunile fișierului /etc/ssmtp/ssmtp.conf determină cine va putea trimite e-mailuri de la Raspberry Pi. În mod implicit, acest fișier este deținut de rădăcina utilizatorului și grupul fișierului este de asemenea rădăcină.
Editați fișierul aliasurilor SSMTP, care conține date despre conturile de e-mail:
$ sudo nano /etc/ssmtp/ssmtp.conf
Odată ce procesul de configurare și configurare de mai sus este finalizat, testați-l trimițând un e-mail din linia de comandă.
$ echo "închide ușa garajului" | e-mail „Ușă de garaj deschisă” ♣cell-phone-number♣@txt.att.net
Creați un script pentru a verifica dacă ușa garajului este deschisă atunci când nu ar trebui să fie, apoi trimiteți un mesaj text.
$ sudo nano /usr/local/bin/garage.sh
și adăugați următoarele:
#! / bin / bash
# verificați dacă ușa garajului este deschisă. # Dacă este deschis, trimiteți o alertă și scrieți la syslog up = 0; ușă = $ (/ home / pi / wiringPi / gpio / gpio citit 3) dacă ["$ ușă" -eq "$ sus"] atunci logger ♣ numele-gazdei ♣: Ușă de garaj Deschis ecou "închide ușa de garaj" | e-mail „Garage Door Open” ♣cell-phone-number♣@txt.att.net fi exit 0
Apoi adăugați un crontab pentru a rula în timpul orelor necesare:
$ sudo crontab –e
si adauga:
# Noaptea, verificați la fiecare oră dacă ușa garajului este deschisă
0 22-23 / 1 * * * sudo /usr/local/bin/garage.sh 0 0-5 / 1 * * * sudo /usr/local/bin/garage.sh
Dacă totul funcționează, atunci treceți la pasul următor.
Pasul 12: Puneți Raspberry Pi în Cartea secretă
Pune zmeura pi într-o carte secretă. L-am luat la Michael’s pentru aproximativ 7 USD. Am tăiat câteva găuri mici pentru fire și cablul de alimentare.
Pasul 13: Anexă: Referințe
SunFounder 2 canale 5V releu Shield Module pentru Arduino UNO 2560 1280 ARM PIC AVR STM32
- Placă de interfață releu 5V 2 canale și fiecare are nevoie de 15-20mA
- Curent driver Echipat cu releu de curent mare, AC250V 10A; DC30V 10A
- Interfață standard care poate fi controlată direct de microcontroler (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, logică TTL)
- Indicatoare LED pentru starea ieșirii releu Link pentru a descărca documentul:
Pasul 14: Anexă: Actualizări
21FEB2016
-
În instrucțiunile originale, au apărut probleme cu corectarea automată, formatarea și claritatea direcțiilor.
- Un exemplu de problemă este atunci când ghilimelele duble din cod se schimbă în ceva care arată ca un ghilimel dublu cursiv. Cu toate acestea, dacă tăiați și lipiți acest lucru într-un script, nu va funcționa.
- Editorului instructiv îi place să se corecteze automat, așa că wlan se transformă în plan și autoremove se întoarce în eliminarea automată. Aceste schimbări sunt greu de observat.
- Este posibil ca unele dintre indicațiile mele să nu fi fost suficient de clare.
- În mod normal, folosesc paranteze unghiulare ca indicator pentru ceva care trebuie înlocuit. Editorul le convertește în html. Deci, am trecut la paranteze pătrate, dar acestea pot cauza probleme, deoarece arată ca un cod. Deci, în cele din urmă m-am stabilit pe ♣s ca indicator pentru înlocuirea cu o valoare reală.
- De-a lungul timpului am îmbunătățit și unele dintre scripturi.
- Etapele editate 21-26
03APR2016
- A creat un apendice cu depanare, referințe și actualizări (pașii 27-29)
- S-a mutat Depanarea la Anexă de la pasul anterior 2
- Actualizat și alfabetizat pagina de depanare
- Numele fișierului a fost schimbat din test2wifi.sh în garage.sh - doar mai descriptiv.
- Cron actualizat pentru a utiliza garage.sh
- Editat 1, 20-26 (Creați un serviciu de pornire pentru a trece înainte de apendice)
04APR2016
- Pașii 2-11 și 16-20 au fost înlocuiți cu standardul meu de configurare a unui Raspberry Pi
- Lista pieselor actualizate, pasul 1
- Fotografii adăugate / îmbinate
05APR2016
Site și imagine simplificate (pașii 4 și 5)
01 MAI 2016
S-a adăugat depanarea pentru senzorul Pi Seco-larm / zmeură
01 MAI 2016
Modificările anterioare nu sunt salvate corect?
11NOV2016
- Actualizat la AT&T GigaPower și schimbat routerul la 5268ac
- 5268ac nu acceptă bucla înapoi, astfel încât serverul Garage Opener nu este accesibil de pe computerele de pe LAN. Pentru ca un MacBook să acceseze serverul web de deschidere a garajului, procedați în felul următor:
$ sudo nano / etc / hosts
și adăugați linia
192.168.1.64 name nume-domeniu-extern-server ♣
Salvați și ieșiți, CTRL-o, CTRL-x
$ sudo killall -HUP mDNSResponder
-
Regulile de redirecționare a porturilor încorporate ale 5268ac, cum ar fi serverul HTTPS, serverul HTTP și serverul web, nu funcționează. Pentru ca redirecționarea porturilor să funcționeze:
- Deschideți un browser și accesați 192.168.1.254
- Autentificare
- Selectați Setări, Firewall, Aplicații, orificii și DMZ.
- Selectați serverul web de deschidere a garajului
- Selectați Definit de utilizator
-
Faceți clic pe o nouă aplicație definită de utilizator
- În Nume profil aplicație introduceți: PortForwarding
-
În Creare definiție aplicație adăugați fiecare dintre următoarele și faceți clic pe Adăugare la listă:
- TCP de la 80 la 80, mapează la portul gazdă 443
- TCP de la 443 la 443 mapează la portul gazdă 443
- UDP de la 443 la 443, mapează la portul gazdă 443
- UDP de la 80 la 80, mapează la portul gazdă 443
- Faceți clic înapoi
- Reselectați serverul web
- Selectați Definit de utilizator
- Adăugați PortForwarding
- Faceți clic pe Salvare
21 IAN2018
- Actualizat la Raspberry Pi 3
- Mai multe modificări la pași
- S-au actualizat câteva părți și prețuri
Pasul 15: Anexă: Depanare
Spațiul pe disc utilizat
Ultima linie arată spațiul total pe disc utilizat. Cardul SD are 8 GB.
$ cd../..
$ sudo du –hx –c
Dacă aveți probleme, încercați acest lucru:
$ echo "test" | sendmail -v ♣dvs.gmail-account♣@gmail.com
Dacă e-mailul este configurat corect, atunci ar trebui să primiți un e-mail în contul dvs. Gmail.
Dacă primiți un eșec de autentificare:
Este posibil să fie nevoie să reduceți securitatea contului dvs. Cu toate acestea, scăderea securității NU este recomandată. Google va trimite un e-mail cu un link pentru a reduce setările de securitate.
Puteți trece de la cititorul de e-mail curent pentru a utiliza www.gmail.com pentru a vă accesa contul (recomandat) sau puteți modifica setările la https://www.google.com/settings/security/lesssecu…, astfel încât contul dvs. să nu mai fie protejat de standardele moderne de securitate.
Nu recomand scăderea standardelor de securitate.
Dacă primiți un eșec de autorizare:
Cea mai probabilă cauză a acestui fapt este că ați specificat un nume de utilizator sau o parolă greșită pentru contul dvs. Gmail în fișierul /etc/ssmtp/ssmtp.conf. Verificați de două ori valorile câmpurilor AuthUser și AuthPass.
Dacă vă pierdeți conexiunea în mijlocul procesării:
Este posibil să specificați portul greșit pentru Google smtp undeva în /etc/ssmtp/ssmtp.conf sau în / etc / ssmtp / revaliases.
Verificați ultimele linii ale jurnalelor dvs. Ar trebui să existe câteva mesaje de eroare relevante acolo:
$ tail /var/log/mail.log
$ tail / var / log / syslog
Ușa garajului nu se va deschide
Dacă totul funcționa și se oprește, încercați să reporniți. Dacă acest lucru nu funcționează, trageți cablul de alimentare de la Raspberry Pi și apoi restabiliți alimentarea. Raspberry Pi ar trebui să repornească în mai puțin de 2 minute și totul ar trebui să funcționeze bine. Acest lucru este cauzat în general de o pierdere de energie către Gateway-ul rezidențial.
GPIO
Dacă ceva nu merge bine, atunci cel mai bun mod de a vedea ce se întâmplă este cu următoarea comandă:
$ gpio readall
Conectați-vă la raspberry pi de pe MacBook
terminal este un utilitar MacBook: disc / aplicații / utilități / terminal. Păstrez aplicația terminală în doc.
Pe MacBook, deschideți terminalul
$ ssh pi @ ♣ zmeură-pi-ip ♣
♣ parolă ♣
Conectați-vă la gateway-ul rezidențial
Pe MacBook, deschideți browserul
URL = ♣ zmeură-pi-ip ♣
Autentificare: ♣ gateway-parolă ♣
Jurnale
Dacă ceva nu merge bine, verificați aceste jurnale pentru erori, avertismente sau alte probleme.
$ cat / var / log / messages
$ cat / var / log / syslog $ cat / var / log / dmesg
Director MAC
Director pe MacBook unde sunt stocate fișierele site-ului web
Director MAC = / Utilizatori / ♣ macbook-ul meu ♣ / Desktop / Wi-Fi activat acasă / WiFi activat deschizător ușă garaj / site web
Parola
Parolă = ♣ raspberry-pi-password ♣
RAM și CPU utilizate
$ top
CTRL-c pentru a ieși
Directorul de acasă Raspberry Pi
$ pwd
/ acasă / pi
Numele de gazdă Raspberry Pi
$ hostname
hostname = ♣ hostname ♣
Raspberry Pi IP
♣ zmeură-pi-ip ♣ = 192.168.1.93
Director Web site Raspberry Pi
/ var / www
Seco-larm nu mai funcționează
Pe 01MAY2016, Seco-larm a încetat să funcționeze. Este pentru a treia oară când senzorul nu mai funcționează. Pentru a spune acest lucru corect, pinul fizic 15 de pe Raspberry Pi a încetat să detecteze intrarea de 3.3v. Am încercat pinii fizici de 3.3v 1 și 17, iar ambii au fost în continuare de ieșire de 3.3v. Am trecut de la pinul fizic 15 la un alt GPIO, pinul fizic 16 (GPIO 4) și a început să funcționeze din nou. Deci, nu este nimic în neregulă cu Seco-larm. Problema pare să fie cu Raspberry Pi GPIO.
GPIO 3, pinul fizic 15 este mort. Este un post foarte bun despre cum să testați pinii GPIO.
Am trecut de la GPIO 3 la GPIO 4 și am schimbat codul în consecință. Nu sunt sigur de ce pinul GPIO nu mai funcționează. Iată două motive posibile:
- Am senzorul Seco-larm montat, astfel încât atunci când ușa este închisă, iese 3.3v. Ușa garajului este închisă mai des, apoi este deschisă. Poate că pinul GPIO nu poate lua o intrare mai mult sau mai puțin constantă de 3,3v.
- Eșecul a coincis cu o pierdere de energie, poate că a existat o creștere a puterii.
U-verse Residential Gateway
Am versuri U în AT&T cu un Gateway rezidențial, dar orice serviciu ar trebui să funcționeze.
Dacă gateway-ul U-verse este repornit sau își pierde puterea, este posibil ca Raspberry Pi să fie necesar să repornească.
U-verse gateway rezidențial Public IP = ♣ router-public-ip ♣
IP-ul public al unui gateway rezidențial U-verse se poate schimba, dar o face foarte rar
U-verse Residential Gateway Home Page = 192.168.1.254
SSID al punctului de acces fără fir al routerului U-verse = ♣ ssid ♣
Debitul WiFi este mai lent decât se aștepta
Schimbați routerul pe un canal mai puțin utilizat. În mod implicit, toți furnizorii de circuite acordă conexiunea wifi a tuturor canalului 1. Treceți la un canal mai puțin utilizat, cum ar fi, 11. Încercați să utilizați un număr impar.
Notă: I-am spus câtorva vecini ce am făcut pentru a îmbunătăți wi-fi-ul și acum toată lumea are 9 sau 11, așa că m-am mutat înapoi la 1. Ar trebui să folosiți întotdeauna un canal ciudat.
Deschideți un browser.
Pentru versuri în U, introduceți 192.168.1.254 în caseta URL.
Faceți clic pe linkul Wireless și alegeți canalul 6 sau 11.
Există o aplicație pentru telefon inteligent numită analizor wifi. Unul dintre afișaje arată toate punctele de acces wifi din apropiere care difuzează pe un anumit canal. În cartierul meu, toată lumea este setată să canalizeze 1.
Deconectați Raspberry Pi, apoi restabiliți alimentarea
Recomandat:
Deschizător ușor de ușă pentru garaj ieftin: 6 pași (cu imagini)
Deschizător ușor de ușă pentru garaj ieftin: Credit Am copiat destul de mult implementarea lui Savjee, dar în loc să folosesc un Shelly, am folosit un Sonoff Basic. Consultați site-ul său web și canalul YouTube! Https: //www.savjee.be/2020/06/make-garage-door-ope…https: //www.youtube.com/c/Savjee/AssumptionsYou h
Deschizător ușă garaj cu feedback folosind Esp8266 ca server web .: 6 pași
Deschizător de uși de garaj cu feedback folosind Esp8266 ca server web. feedback, veți ști că ușa este deschisă sau închisă în timp real - Simplu, doar o singură comandă rapidă pentru a face
Deschizător ușă de garaj Raspberry Pi: 5 pași
Deschiderea ușii de garaj Raspberry Pi: Tastatura noastră de 15 ani, care ne permite să deschidem ușa garajului, a murit încet, cu mai multe butoane care abia se înregistrează, ceea ce face dificilă accesarea adolescenților (sau a câinelui) în casă atunci când uită cheie. În loc de replică
Deschizător ușă garaj folosind un Raspberry Pi: 5 pași (cu imagini)
Deschizător de ușă de garaj folosind un Raspberry Pi: Controlați motorul de garaj de pe un smartphone sau orice dispozitiv capabil să navigheze pe o pagină web (cu AJAX!). Proiectul a fost început, deoarece aveam o singură telecomandă pentru garajul meu. Cât de distractiv a fost să cumperi un al doilea? Insuficient. Ținta mea era să pot controla și monitoriza
Deschizător de ușă pentru garaj iPhone și Arduino: 8 pași
Deschizător de uși pentru garaje pentru iPhone și Arduino: Urmez adesea o mulțime de instrumente tehnice și sunt întotdeauna uimit de lucrurile pe care oamenii le vin. Cu ceva timp în urmă, am găsit un instructabil pe un deschizător de uși de garaj wifi, care mi s-a părut foarte tare și l-am adăugat la lista mea de sarcini nesfârșite de distracție