Cuprins:

Deschizător de ușă pentru garaj Raspberry Pi 3: 15 pași (cu imagini)
Deschizător de ușă pentru garaj Raspberry Pi 3: 15 pași (cu imagini)

Video: Deschizător de ușă pentru garaj Raspberry Pi 3: 15 pași (cu imagini)

Video: Deschizător de ușă pentru garaj Raspberry Pi 3: 15 pași (cu imagini)
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Iulie
Anonim
Deschizător de uși pentru garaj Raspberry Pi 3
Deschizător de uși pentru garaj Raspberry Pi 3

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ă

Configurați Raspberry Pi fără monitor sau tastatură
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ă

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

";} else {echo"

"; } ?>

Deschizător ușă garaj Manual de deschidere a ușii de garaj închis 1 deschideți 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} else {echo"

var13 ->

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

Imagine a site-ului web
Imagine a site-ului web
Imagine a site-ului web
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

Conectați circuitul la Raspberry Pi
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

Atașați Raspberry Pi la garaj
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

Atașați Raspberry Pi la SECO-LARM
Atașați Raspberry Pi la SECO-LARM
Atașați Raspberry Pi la SECO-LARM
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.

closed

Magnetul 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ți Raspberry Pi în Cartea secretă
Puneți Raspberry Pi în Cartea secretă
Puneți Raspberry Pi în Cartea secretă
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

e-mail

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: