Innholdsfortegnelse:

Raspberry Pi 3 garasjeportåpner: 15 trinn (med bilder)
Raspberry Pi 3 garasjeportåpner: 15 trinn (med bilder)

Video: Raspberry Pi 3 garasjeportåpner: 15 trinn (med bilder)

Video: Raspberry Pi 3 garasjeportåpner: 15 trinn (med bilder)
Video: Siri controlled garage opener. Working model. 2024, Juli
Anonim
Raspberry Pi 3 garasjeportåpner
Raspberry Pi 3 garasjeportåpner

Jeg laget dette instruerbart i 2014. Mye har endret seg siden den gang. I 2021 oppdaterte jeg Smart Garage Door Opener her.

Bruk en Raspberry Pi og en smarttelefon til å åpne, lukke og overvåke en garasjeport. Åpne og lukke døren er sikret ved hjelp av selvsignerte sertifikater installert på familiens mobiltelefoner. Hvis garasjedøren er åpen når den ikke burde være det, send en tekstmelding (SMS) til en mobiltelefon.

Garasjeporten har vært i kontinuerlig bruk siden slutten av 2014. Gjennom årene har jeg prøvd å holde endringene oppdaterte. Det er et vedlegg som beskriver endringene i det instruerbare.

Målet med dette prosjektet er å:

  • Gjør min første instruerbare - jeg hadde ikke tenkt å legge ut dette, men jeg har mottatt mange forespørsler
  • Åpne en garasjeport med en standard fjernkontroll
  • Åpne en garasjeport med den veggmonterte garasjeåpneren
  • Åpne en garasjeport med en smarttelefon
  • Overvåk statusen til garasjeporten eksternt via en mobiltelefon eller bærbar datamaskin (er den åpen eller lukket?)
  • Send en tekstmelding til mobiltelefonen min hvis døren er åpen når den skal lukkes
  • Hold garasjeporten sikker (f.eks. Ved strømbrudd, skal døren ikke åpnes)
  • Ikke la noen andre på nettet åpne døren (toveis selvsignert SSL-sertifikat)
  • Bruk WiFi i stedet for en kablet tilkobling
  • Bruk en Raspberry Pi 3

Grunnlaget for denne Garage Door Opener -implementeringen ble hentet fra Instructable: Raspberry Pi Garage Door Opener av quartarian. Opprinnelig brukte jeg en modell B+ Raspberry Pi, deretter flyttet jeg til en Raspberry Pi 2 modell B, og nå bruker den en Raspberry Pi 3.

Jeg brukte en MacBook til å kommunisere med Raspberry Pi, men hvilken som helst datamaskin kan brukes.

Det er ingen overbevisende grunn til å bygge denne enheten, men det var morsomt. Det er mer kostnadseffektivt å kjøpe en. En lignende enhet kan kjøpes for omtrent $ 130 USD.

  • Liftmaster 828LM
  • Chamberlain MyQ $ 129
  • GoGo Gate $ 179
  • Håndverker $ 100

Merknader:

  • Tekst i spader, som denne ♣ erstatte-denne ♣ bør erstattes med en faktisk verdi
  • Arduino understreket blå tekst er en lenke. I dette tilfellet er det en lenke til en arduino -versjon av en garasjeportåpner.
  • Jeg har forsøkt å kreditere hver kilde som brukes. Jeg beklager alle mangler. Det meste av dette dokumentet er basert på andres arbeid.
  • $ angir en kommando som er utført i et terminalvindu på MacBook og vanligvis blir utført på Raspberry Pi

Trinn 1: Samle deler

Kjøp eller saml deler og verktøy (priser i USD).

  • Raspberry Pi 3 Model B Newark Element14 $ 35
  • 5.2V 2.5A USB -strømadapter fra Amazon $ 9,99
  • Micro USB til USB -kabel 6ft fra Amazon $ 7,99
  • Veske fra Amazon $ 6,99
  • SanDisk Ultra 16 GB microSDHC klasse 10 med adapter (SDSQUAN-016G-G4A) fra Amazon $ 8,99
  • SunFounder 2 -kanals 5V reléskjermmodul for Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $ 6,79
  • 3x hun-ledninger til kvinner. Kjøpt på Fry's for 4,95 dollar.
  • Dynamisk DNS $ 40 per år for 30 navn (dyn.com)
  • 1-Gang 18 cu. in. Old Work Heavy Wall Switch og Outlet Box, $ 3,12
  • Ultra Pro Single Brush White Wall Plate, $ 7,88
  • SECO-LARM SM 226L, garasjedørsensor, prisen varierer mye, $ 9,99 på Amazon med gratis frakt
  • 50 fot solid termostatledning, Home Depot eller Lowe's, ~ $ 20

Min sum: ~ $ 172,00

Jeg hadde følgende deler, verktøy og tjenester:

  • CAT5 Ethernet -kabel
  • Liten målewire, 6 fot lang
  • Phillips skrutrekker
  • Nåltang
  • Kasseskjærere
  • Juveler med flatskrutrekker, nødvendig for å løsne skruer på reléet
  • MacBook (en PC kan brukes)
  • AT&T GigaPower (hvilken som helst internettleverandør kan brukes)

Trinn 2: Sett opp Raspberry Pi uten skjerm eller tastatur

Sett opp Raspberry Pi uten skjerm eller tastatur
Sett opp Raspberry Pi uten skjerm eller tastatur

Alle Raspberry Pi -prosjekter krever en eller annen form for oppsett. Jeg liker å bruke det samme settet med instruksjoner, og når det er nødvendig, har jeg ett sted for å oppdatere instruksjonene.

Sett opp Raspberry Pi ved å bruke følgende instruksjoner:

Sett opp Raspberry Pi uten skjerm eller tastatur

Instruksjonene ovenfor inkluderer valgfrie trinn i vedlegget. Sørg for å gjøre trinnet:

Legg til sertifikater på klientsiden til webservere

Slå av Raspberry Pi

$ sudo shutdown -h 0

Når du har slått av, fjerner du den

  • ethernet -kabel
  • USB seriell kabel

Disse trengs ikke lenger. Bruk wifi, ssh og et terminalvindu på Mac Book for å kjøre kommandoer på Raspberry Pi.

Koble fra strømmen og koble den til igjen, og bringebær pi skal starte på nytt.

Trinn 3: Installer Wiring Pi, Apache og PHP

Installer ledningsnett Pi

Åpne et terminalvindu på Mac Book. Logg inn på Raspberry Pi, last ned, kompiler og installer Wiring Pi. Denne programvaren tillater kontroll av GPIO -pinnene. Her er en trinnvis veiledning:

wiringpi.com/download-and-install/

Her er en kondensert versjon av instruksjonene:

$ ssh pi@♣ bringebær-pi-ip ♣

passord: ♣ passord ♣ $ sudo apt-get install git-core $ git klon git: //git.drogon.net/wiringPi $ cd wiringPi $ git pull origin $./build

Kjør gpio -kommandoen for å kontrollere installasjonen:

$ gpio -v

gpio versjon: 2.29 Copyright (c) 2012-2015 Gordon Henderson Dette er gratis programvare med ABSOLUTT INGEN GARANTI. For detaljer type: gpio -garanti Raspberry Pi Detaljer: Type: Model 2, Revisjon: 1.1, Minne: 1024MB, Maker: Sony [OV] Enhetstreet er aktivert. Denne Raspberry Pi støtter GPIO-tilgang på brukernivå. -> Se mannssiden for flere detaljer $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Navn | Modus | V | Fysisk | V | Modus | Navn | 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 | UT | 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 | Navn | Modus | V | Fysisk | V | Modus | Navn | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+

Kommandoene ovenfor skal gi deg en viss tillit til at wiringPi fungerer som det skal.

Installer Apache og PHP

Kjør følgende kommandoer:

$ cd..

$ sudo apt-get oppdatering $ sudo apt-get install apache2 php5 libapache2-mod-php5

For å kontrollere at webserveren fungerer, åpner du en nettleser og skriver inn i URL -boksen:

♣ bringebær-pi-ip ♣

Apaches standardnettsted svarer med "Det fungerer!"

Trinn 4: Nettsted

Åpne et terminalvindu på Mac Book. Logg på Raspberry Pi, fjern deretter standard index.html -filen, endre tillatelsene i nettstedskatalogen og rediger en fil som heter index.php.

$ ssh pi@♣ bringebær-pi-ip ♣

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

Og skriv inn følgende kode:

Garasjeåpner

Hjemmeautomatisering

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

";} annet {ekko"

"; } ?>

Garasjeportåpner Garasjeportåpnerhåndbok stengt 1 åpne 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} annet {echo"

var13 ->

CTRL-o og ENTER for å skrive filen, og CTRL-x for å gå ut av editoren.

Endre tillatelser for filen

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

Trinn 5: Nettstedbilde

Nettstedbilde
Nettstedbilde
Nettstedbilde
Nettstedbilde

Ta en høyoppløselig fjernåpner for garasjeporter fra nettet. Endre bildet slik du vil bruke Mac pensel. På bildet ovenfor ble det brukt en høyoppløselig Genie Garage Opener, en bringebær pi -logo ble lagt til og lysdioden ble fjernet.

Det ene bildet er bakgrunnen (remote-background.jpg), og det andre er det aktive bildet (remote-press.jpg).

Planen var at ved å trykke på knappen, i stedet for å blinke med LED -en, skulle bringebæret blinke. Jeg forenklet nettstedet.

Kopier bildene til bringebær pi:

$ scp *-j.webp

passord: ♣ passord ♣

Nettstedet har en enkelt trykknapp. For å bekrefte, åpne en nettleser og skriv inn raspberry-pi-ip ♣. I stedet for Apaches standardnettsted, som sier "Det fungerer!", Skal knappen vises. Press den.

Trinn 6: Fjernstyrt webserver

For å gjøre det enkelt å få tilgang til garasjeportåpneren fra et eksternt sted, bruker jeg et dynamisk DNS -navn. Fordi jeg ikke liker å huske IP -adresser.

Med denne funksjonen skriver jeg inn ♣ dynamic-hostname get.getmyip.com i URL-feltet i en nettleser. Merk: IP -en på hjemmerutere kan endres uten varsel, men dette skjer sjelden. Jeg valgte å bruke DynDNS. Du må kjenne routerens offentlige IP -adresse.

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

Du kan se vertsnavn og DynDNS Pro -kontodetaljer. Her er noen tips for å komme i gang:

  • Lag ditt dynamiske DNS -vertsnavn (1 av 30):

    • ♣ dynamisk vertsnavn ♣
    • Oppdateringsnøkkel: ♣ dynamic-ip-updater-key ♣
  • Installer en oppdateringsklient for å sikre at vertsnavnet ditt alltid peker på riktig IP -adresse.

    • Last ned og installer på MacBook
    • AT & T U-vers-IP-er endres sjelden, så oppdateringen ovenfor kan kjøres når den endres
    • Følg instruksjonene:

      • Legg til konto
      • Skriv inn brukernavn og passord: ♣ dynamic-ip-brukernavn ♣ ♣ dynamic-ip-passord ♣
      • Velg vertsnavn
      • Klikk på Konfigurer utvalgte verter
      • Verten bør bli aktiv
    • Konfigurer nettverket ditt slik at du får tilgang til enheten din fra Internett. Du kan bruke Dyn Wizard for noen generelle instruksjoner om hvordan du gjør dette, bruke ressurser som PortForward.com eller kontakte enhetens produsent for å få hjelp.

      • AT&T U-vers
      • Port Forwarding for 2-Wire 3801HGV-dette er AT&T U-Verse-ruteren jeg har. Se Oppdateringer i et tillegg for hvordan du sender videre på AT&T U-vers 5268ac-ruteren.
      • Åpne nettleseren og gå til ♣ bringebær-pi-ip ♣
      • Passord: ♣ passord ♣
      • Innstillinger
      • Brannmur

        • Velg ♣ bringebær-pi-vertsnavn ♣
        • Servere

          • Webserverport 80
          • HTTPS -server - port 443
        • Legge til
      • Lagre

Når dette er gjort, vil webserveren fungere fra internett. For å bekrefte, skriv inn ♣ dynamisk vertsnavn ♣, og du bør se knappen for åpning av garasjeporter.

Trinn 7: Koble kretsen til Raspberry Pi

Koble kretsen til Raspberry Pi
Koble kretsen til Raspberry Pi

For koden som ble gitt (trinn 4 og 6), brukte jeg GPIO -pinne 7. Det er tilfeldig at GPIO 7 er det samme som wiringPi -pinne 7. I PHP -koden brukes ledninger til Pi -pinnummer og IKKE GPIO -pinnumre. Du kan bruke den du vil, men sørg for å endre koden.

Jeg prøvde å bruke vridd ledning, men reléet holder ikke godt på vridd ledning. Solid wire er bedre.

I mitt første forsøk skapte jeg tre tilkoblingskabler (hunn-mann).

  • Bruk tre hun -til -hun -jumperkabler
  • Klipp tre stykker solid tråd til omtrent 1 tommer.

    Strip 1/4in på begge ender av solid wire

  • Sett en solid ledning inn i en hunkabel.

Her er en bedre måte å lage tilkoblingskabler (hunn-til-mann):

  • Bruk bare solid ledning
  • Klipp tre 4in biter av solid tråd
  • Strip 1/4in på begge ender av solid wire
  • Bruk hunkoblinger

    • Skyv den ene hunnkoblingen på den ene enden av solid tråd og krymp

      Hunnål bør ikke løsne, lodde om nødvendig

    • Skyv strekkavlastning over hunkoblingen eller dekselpinnen med elektrikerens tape

Koble reléet til pi som vist i diagrammet:

  • Koble hunenden av kabelen til Raspberry Pi -pinnen.
  • Sett solid ledning inn i reléet.

Trinn 8: Opprett en oppstartstjeneste

De fleste reléer, inkludert den som er kjøpt, fungerer slik:

  • Når signalet er PÅ, forblir kretsen av.
  • Når signalet er AV, er kretsen på.

Hvis Raspberry Pi mister strøm, har reléet en sikkerhetsmekanisme som holder kretsen AV.

Et problem kan oppstå når Rapberry Pi og reléet får strøm tilbake, men før Raspberry Pi er ferdig med å starte opp for å slå på signalet som er nødvendig for å holde kretsen av. Du kan våkne om morgenen med garasjen åpen og potensielt noen nye venner!

Imidlertid initialiseres ikke reléet før GPIO -pin -modus er satt via denne kommandoen: gpio -modus 7 ut. Videre, hvis GPIO -pinnen til PÅ (gpio skrive 7 1) før du setter GPIO -modus, vil reléet forbli av når det er initialisert.

For å få denne initialiseringen til å kjøre ved oppstart og ikke våkne opp med nye venner, bruker du følgende oppstartsskript.

$ ssh pi@♣ bringebær-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Lim deretter inn dette skriptet:

#! /bin/bash

#/etc. 1 #Start Gpio/usr/local/bin/gpio -modus 7 ut;; stop) echo "Stoppe gpio";; *) ekko "Bruk: /etc/init.d/garagerelay {start | stop}" exit 1;; esac exit 0

For å lagre: CTRL-o, ENTER

For å gå ut av nano, CTRL-x

Gjør filen kjørbar:

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

Fortell nå pi -en din om å kjøre dette skriptet ved oppstart:

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

(Merk: Du kan trygt ignorere advarselen om "manglende LSB -koder".)

Sørg for at oppstartskriptet kjører

$ sudo omstart

Åpne en nettleser og klikk på åpneren. Reléet skal klikke.

Trinn 9: Fest Raspberry Pi til garasjen

Fest Raspberry Pi til garasjen
Fest Raspberry Pi til garasjen

Når du flytter Raspberry Pi, må du kjøre:

$ nedleggelse -h 0

Det kan være lurt å slå av strømmen til garasjen. Så dørklokkeåpneren gir deg ikke elektro.:) Den virkelige årsaken er hver gang du kortere ledningene, vil døren gå opp og ned.

Løsne veggskruene fra døråpnertypeåpneren, som fester dørklokken til veggen.

Stikk hull gjennom garasjen bak dørklokkeåpneren til inne i huset. I Texas skal Raspberry Pi ikke være i garasjen, temperaturvariasjonen i garasjen er utenfor Raspberry Pi's driftsspesifikasjoner.

Før reléledningene gjennom hullet (bruk en kleshenger).

Løsne begge skruene på baksiden av døråpneren.

Fjern begge ender av relétrådene: 1) omtrent 1/8 "tommer på stafetsiden, og omtrent ½" tommer på dørklokkesiden. Bøy dørklokkesiden av ledningen til en halv sløyfe som er stor nok til å passe rundt bakskruen.

Koble en reléledning til hver skrue på baksiden av dørklokken, og stram skruen. Tilkoblingene er som vist på bildet. Siden reléet isolerer kretsen, spiller retningen ingen rolle hvilket relé som er festet til hvilken skrue.

Trinn 10: Fest Raspberry Pi til SECO-LARM

Fest Raspberry Pi til SECO-LARM
Fest Raspberry Pi til SECO-LARM
Fest Raspberry Pi til SECO-LARM
Fest Raspberry Pi til SECO-LARM

Før jeg hadde koden ferdig, var jeg og familien på ferie, og jeg åpnet nettleseren min. Min nettlesers siste visning var av garasjeportåpneren - siden oppdateres og garasjeporten åpnes. Noen dager senere ringte en nabo og spurte om garasjeporten skulle være åpen? Heldigvis kunne jeg lukke den fra 500 miles unna.

Denne snafuen tvang meg til å endre koden slik at dette ikke skulle skje, og legge til en sensor og tilstanden til garasjeporten til nettstedet.

Dette er en lenke til originalen som kan instrueres for å legge til en sensor. Gitt alt som allerede er fullført, kan installeringen av sensoren imidlertid forenkles sterkt, og i stedet for å bruke python kan du legge til et par linjer med kode til index.php.

closed

Magneten er festet til venstre, øverste innendørs side av garasjeporten, og sensoren er festet til garasjveggen. Så jeg måtte kjøre solid termostatledning fra sensoren tilbake til bringebær -pi. Dette krevde et hull fra garasjen inn på loftet og fra loftet inn i veggen som inneholdt garasjeportåpneren (dørklokkebryter).

Jeg satte inn en blå koblingsboks mellom SECO-LARM-sensoren og solide ledninger.

I huset mitt er det et 18 tommers gap mellom taket i første etasje og bunnen av andre etasje. Jeg antar at det er her varme- og kjølekanalene går. Jeg trengte en borekronforlengelse lenge nok til å gå gjennom andre etasje og gjennom den øverste 2x4 (topplaten) som inneholder dørklokken.

Den viktigste delen er når du borer fra loftet og inn i området hvor ledningene skal gå til garasjeportåpneren, er å IKKE bore gjennom strømmen. Å fikse dette var ikke morsomt. Å se gnistene og la lysene slukke var ganske spennende!

Sensoren krever to solide termostatledninger eller usynlig hundegjerde.

Raspberry Pi har flere pin -beskrivelser (BCM, wPi, fysisk). Koden bruker ledninger pi pin tall. For å se alle pins og pin -mappings og pin -verdier, skriv inn:

$ gpio readall

For en gpio -manual, skriv inn:

$ gpio mann

I de originale instruksjonene er Physical pin 9 malt og koblet til en av SECO-LARM-lederne. Dette fungerer imidlertid ikke for meg. Koble i stedet ledningene til de fysiske pinnene 15 og 17

Fysisk pinne 15 (wPi-pinne 3) går til 3,3V når SECO-LARM-sensoren er lukket. Fysisk pinne 17 er 3,3v. Hvis det ikke fungerer, bytt tilkoblingene på SECO-LARM.

Fest SECO-LARM til garasjeport og vegg. Kjør ledninger og koble til Raspberry Pi.

Trinn 11: Send varsel hvis døren er åpen når den skal lukkes

Hvis garasjeporten er åpen når den ikke burde være det, send en tekstmelding til en mobiltelefon.

Installer og konfigurer enkel SMTP.

Jeg har AT&T mobil og bruker ♣cell-phone-number♣@txt.att.net for tekstmeldinger. Jeg har også en gmail-konto, og eksemplet nedenfor bruker ♣gmail-account♣@gmail.com. Hvis du bruker forskjellige tjenester, må du gjøre de riktige endringene.

For $ -kommandoene nedenfor, åpner du et terminalvindu på MacBook og logger på Raspberry Pi.

Sørg for at depotene er oppdaterte:

$ sudo apt-get oppdatering

Installer enkle SSMTP- og postverktøy:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

Rediger SSMTP -konfigurasjonsfilen:

$ sudo nano /etc/ssmtp/ssmtp.conf

følgende:

mailhub = smtp.gmail.com: 587 hostname = ♣ ditt vertsnavn ♣ AuthUser=♣gmail-account♣@gmail.com AuthPass = ♣ gmail-passord ♣ UseSTARTTLS = YES

Rediger SSMTP -aliasfilen:

$ sudo nano/etc/ssmtp/revaliases

Lag en linje for hver bruker som kan sende e -post. For eksempel:

root: ♣gmail-account♣@gmail.com: smtp.gmail.com: 587

Angi tillatelsene til SSMTP -konfigurasjonsfilen:

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

Tillatelsene til filen /etc/ssmtp/ssmtp.conf bestemmer hvem som vil kunne sende e -post fra Raspberry Pi. Denne filen eies som standard av brukerroten, og gruppen av filen er også root.

Rediger SSMTP -aliasfilen, som inneholder data om e -postkontoene:

$ sudo nano /etc/ssmtp/ssmtp.conf

Når installasjons- og konfigurasjonsprosessen ovenfor er fullført, kan du teste den ved å sende en e -post fra kommandolinjen.

$ echo "lukk garasjeporten" | mail -s "Garage Door Open" ♣cell-phone-number♣@txt.att.net

Lag et skript for å sjekke om garasjeporten er åpen når den ikke burde være det, og send deretter en tekstmelding.

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

og legg til følgende:

#!/bin/bash

# sjekk om garasjeporten er åpen. # Hvis åpen send varsel og skriv til syslog up = 0; door = $ (/home/pi/wiringPi/gpio/gpio read 3) if ["$ door" -eq "$ up"] then logger ♣ your -hostname ♣: Garage Door Open echo "lukk garasjeporten" | mail -s "Garage Door Open" ♣cell-phone-number♣@txt.att.net fi exit 0

Legg deretter til en crontab for å kjøre i løpet av de nødvendige timene:

$ sudo crontab –e

og legg til:

# Om natten, sjekk hver time om garasjeporten er åpen

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

Hvis alt fungerer, går du til neste trinn.

Trinn 12: Legg Raspberry Pi i Secret Book

Sett Raspberry Pi i Secret Book
Sett Raspberry Pi i Secret Book
Sett Raspberry Pi i Secret Book
Sett Raspberry Pi i Secret Book

Legg bringebærpi i en hemmelig bok. Jeg fikk denne hos Michael for omtrent $ 7. Jeg kuttet noen små hull for ledningene og strømledningen.

Trinn 13: Vedlegg: Referanser

SunFounder 2 -kanals 5V reléskjermmodul for Arduino UNO 2560 1280 ARM PIC AVR STM32

  • 5V 2-kanals relégrensesnittkort, og hver trenger 15-20mA
  • Driverstrøm Utstyrt med høystrømrelé, AC250V 10A; DC30V 10A
  • Standard grensesnitt som kan styres direkte av mikrokontroller (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL logic)
  • Indikasjonslysdioder for reléutgangsstatus Lenke for å laste ned dokumentet:

Trinn 14: Vedlegg: Oppdateringer

21 FEB2016

  • I de originale instruksjonene var det problemer med automatisk korrigering, formatering og klarhet i retninger.

    • Et eksempelproblem er når doble anførselstegn i koden blir endret til noe som ser ut som et kursivert dobbelt sitat. Men hvis du klipper og limer dette inn i et skript, fungerer det ikke.
    • Den instruerbare redaktøren liker å autokorrekturere, så wlan går over til å planlegge, og autoremove svinger til automatisk fjerning. Disse endringene er vanskelige å få øye på.
    • Noen av retningene mine var kanskje ikke klare nok.
    • Normalt bruker jeg vinkelbeslag som indikator på noe som må byttes ut. Redaktøren konverterer disse til html. Så jeg byttet til firkantede parenteser, men disse kan forårsake problemer fordi de ser ut som kode. Så endelig bestemte jeg meg for as s som indikator for erstatning med en faktisk verdi.
  • Over tid har jeg også forbedret noen av skriptene.
  • Redigerte trinn 21-26

03APR2016

  • Opprettet et vedlegg med feilsøking, referanser og oppdateringer (trinn 27-29)
  • Flyttet feilsøking til vedlegg fra tidligere trinn 2
  • Oppdatert og alfabetisert feilsøkingssiden
  • Endret filnavn fra test2wifi.sh til garage.sh - bare mer beskrivende.
  • Oppdatert cron for å bruke garage.sh
  • Redigert 1, 20-26 (Opprett en oppstartstjeneste for å gå før vedlegg)

04APR2016

  • Byttet ut trinn 2-11 og 16-20 med min standard var å sette opp en Raspberry Pi
  • Oppdatert deleliste, trinn 1
  • Lagt til/flettet bilder

05 APR2016

Forenklet nettsted og bilde (trinn 4 og 5)

01. MAI 2016

Lagt til feilsøking for Seco-larm/bringebær Pi-sensor

01. MAI 2016

Har tidligere redigeringer ikke blitt lagret skikkelig?

11 NOV 2016

  • Oppdatert til AT&T GigaPower og endret ruteren til 5268ac
  • 5268ac støtter ikke loop back, så Garage Opener -serveren er ikke tilgjengelig fra datamaskiner på LAN. Gjør følgende for at en MacBook skal få tilgang til garasjåpnerens webserver:

$ sudo nano /etc /hosts

og legg til linjen

192.168.1.64 ♣ server-eksternt-domenenavn ♣

Lagre og avslutt, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • 5268acs innebygde portvideresendingsregler, for eksempel HTTPS-server, HTTP-server og webserver fungerer ikke. Slik får du portvideresending til å fungere:

    • Åpne en nettleser, og gå til 192.168.1.254
    • Logg Inn
    • Velg Innstillinger, Brannmur, Programmer, pinhull og DMZ.
    • Velg garasjeåpnerens webserver
    • Velg Brukerdefinert
    • Klikk på et nytt brukerdefinert program

      • Skriv inn: PortForwarding i programprofilnavn
      • I Opprett programdefinisjon legger du til hvert av følgende og klikker Legg til i liste:

        • TCP fra 80 til 80, kart til vertsport 443
        • TCP fra 443 til 443 kart til vertsport 443
        • UDP fra 443 til 443, kart til vertsport 443
        • UDP fra 80 til 80, kart til vertsport 443
    • Klikk tilbake
    • Velg webserveren din på nytt
    • Velg Brukerdefinert
    • Legg til PortForwarding
    • Klikk på Lagre

21JAN2018

  • Oppdatert til Raspberry Pi 3
  • Flere endringer i trinn
  • Oppdatert noen deler og priser

Trinn 15: Vedlegg: Feilsøking

Diskplass brukt

Siste linje viser total diskplass som er brukt. SD -kortet har 8 GB.

$ cd../..

$ sudo du –hx –c

e -post

Hvis du har problemer, kan du prøve dette:

$ echo "test" | sendmail -v ♣your-gmail-account♣@gmail.com

Hvis e -posten er riktig konfigurert, bør du få en e -post på gmail -kontoen din.

Hvis du får en autentiseringsfeil:

Du må kanskje senke sikkerheten på kontoen din. Det anbefales imidlertid ikke å redusere sikkerheten. Google sender en e -post med en lenke til lavere sikkerhetsinnstilling.

Du kan bytte fra din nåværende e -postleser til å bruke www.gmail.com for å få tilgang til kontoen din (anbefalt) eller endre innstillingene dine på https://www.google.com/settings/security/lesssecu… slik at kontoen din ikke lenger er beskyttet av moderne sikkerhetsstandarder.

Jeg anbefaler ikke å senke sikkerhetsstandardene dine.

Hvis du får en autorisasjonsfeil:

Den mest sannsynlige årsaken til dette er at du har angitt feil brukernavn eller passord for gmail -kontoen din i /etc/ssmtp/ssmtp.conf -filen. Dobbeltsjekk verdiene for AuthUser og AuthPass -feltene.

Hvis du mister tilkoblingen midt under behandlingen:

Sannsynligvis har du angitt feil port for Google smtp et sted i /etc/ssmtp/ssmtp.conf eller i/etc/ssmtp/revaliases.

Kontroller de siste linjene i loggene dine. Det bør være noen relevante feilmeldinger der inne:

$ tail /var/log/mail.log

$ tail/var/log/syslog

Garasjeporten åpnes ikke

Hvis alt fungerte og det bare stoppet, kan du prøve å starte på nytt. Hvis det ikke fungerer, trekker du strømledningen fra Raspberry Pi og gjenoppretter strømmen. Raspberry Pi skal starte på nytt på mindre enn 2 minutter, og alt skal fungere fint. Dette er vanligvis forårsaket av tap av strøm til Residential Gateway.

GPIO

Hvis noe går galt, er den beste måten å se hva som skjer med følgende kommando:

$ gpio readall

Logg på raspberry pi fra MacBook

terminal er et MacBook -verktøy: disk/applikasjoner/verktøy/terminal. Jeg beholder terminalappen i dokken.

Åpne terminalen på MacBook

$ ssh pi@♣ bringebær-pi-ip ♣

♣ passord ♣

Logg inn på boliggateway

Åpne nettleseren på MacBook

URL = ♣ bringebær-pi-ip ♣

Logg inn: ♣ gateway-passord ♣

Tømmerstokker

Hvis noe går galt, sjekk disse loggene for feil, advarsler eller andre problemer.

$ cat/var/log/messages

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

MAC -katalog

Katalog på MacBook der nettstedfiler er lagret

MAC-katalog =/Brukere/♣ min macbook ♣/skrivebord/wi-fi-aktivert hjem/wifi-aktivert garasjeportåpner/nettsted

Passord

Passord = ♣ bringebær-pi-passord ♣

RAM og CPU brukt

$ topp

CTRL-c for å gå ut

Hjemmekatalog for Raspberry Pi

$ pwd

/hjem/pi

Raspberry Pi vertsnavn

$ vertsnavn

vertsnavn = ♣ vertsnavn ♣

Bringebær Pi IP

♣ bringebær-pi-ip ♣ = 192.168.1.93

Raspberry Pi nettstedskatalog

/var/www

Seco-larm slutter å fungere

1. mai 2016 sluttet Seco-larm å fungere. Dette er tredje gangen sensoren sluttet å fungere. For å si dette riktig, stoppet den fysiske pinnen 15 på Raspberry Pi med å oppdage 3.3v -inngangen. Jeg prøvde 3.3v fysiske pinner 1 og 17, og begge sendte fremdeles 3.3v. Jeg byttet fra fysisk pin 15 til en annen GPIO, fysisk pin 16 (GPIO 4), og den begynte å fungere igjen. Så det er ingenting galt med Seco-larm. Problemet ser ut til å være med Raspberry Pi GPIO.

GPIO 3, fysisk pin 15 er død. Dette er et veldig godt innlegg om hvordan du tester GPIO -pinner.

Jeg byttet fra GPIO 3 til GPIO 4, og endret koden deretter. Jeg er ikke sikker på hvorfor GPIO -pinnen sluttet å fungere. Her er to mulige årsaker:

  • Jeg har Seco-larm-sensoren montert, så når døren er lukket, sender den ut 3.3v. Garasjeporten lukkes oftere enn den er åpen. Kanskje GPIO-pinnen ikke kan ta en mer eller mindre konstant inngang på 3,3v.
  • Feilen falt sammen med et effekttap, kanskje det var en kraftig økning.

U-vers Residential Gateway

Jeg har AT & T U-vers med en Residential Gateway, men enhver tjeneste bør fungere.

Hvis U-vers Gateway startes på nytt eller mister strøm, kan det hende at Raspberry Pi må startes på nytt.

U-vers boliggateway Offentlig IP = ♣ router-public-ip ♣

En U-vers boliggateways offentlige IP kan endres, men gjør det veldig sjelden

U-vers Residential Gateway Home Page = 192.168.1.254

U-vers Router wireless access point's SSID = ♣ ssid ♣

WiFi -gjennomstrømning er langsommere enn forventet

Bytt ruter til en mindre brukt kanal. Som standard stiller alle kretsleverandører alles wifi til kanal 1. Bytt til en mindre brukt kanal, for eksempel 11. Prøv å bruke et oddetall.

Merk: Jeg fortalte et par naboer hva jeg gjorde for å forbedre wi-fi, og nå er alle på 9 eller 11, så jeg flyttet tilbake til 1. Du bør alltid bruke en merkelig kanal.

Åpne en nettleser.

For U-vers, skriv inn 192.168.1.254 i URL-boksen.

Klikk på Trådløs lenke, og velg kanal 6 eller 11.

Det er en app for smarttelefon kalt wifi -analysator. En av skjermene viser alle wifi -tilgangspunktene i nærheten som sender på en bestemt kanal. I nabolaget mitt er alle satt til kanal 1.

Koble fra Raspberry Pi, og gjenopprett deretter strømmen

Anbefalt: