Innehållsförteckning:

Raspberry Pi 3 garageportöppnare: 15 steg (med bilder)
Raspberry Pi 3 garageportöppnare: 15 steg (med bilder)

Video: Raspberry Pi 3 garageportöppnare: 15 steg (med bilder)

Video: Raspberry Pi 3 garageportöppnare: 15 steg (med bilder)
Video: ESIM251 styra och övervaka via SMS 2024, Juli
Anonim
Raspberry Pi 3 Garage Door Opener
Raspberry Pi 3 Garage Door Opener

Jag skapade detta instruerbart 2014. Mycket har förändrats sedan dess. År 2021 uppdaterade jag Smart Garage Door Opener här.

Använd en Raspberry Pi och en smartphone för att öppna, stänga och övervaka en garageport. Öppning och stängning av dörren säkras med hjälp av självsignerade certifikat installerade på familjens mobiltelefoner. Om garageporten är öppen när den inte borde vara det, skicka ett textmeddelande (SMS) till en mobiltelefon.

Garageporten har varit i kontinuerlig användning sedan slutet av 2014. Under åren har jag försökt hålla uppdateringarna uppdaterade. Det finns en bilaga som beskriver ändringarna av det instruerbara.

Målen för detta projekt är att:

  • Gör min första instruerbara - jag hade inte tänkt lägga upp detta, men jag har fått många förfrågningar
  • Öppna en garageport med en vanlig fjärrkontroll
  • Öppna en garageport med den väggmonterade dörrklockans garageöppnare
  • Öppna en garageport med en smartphone
  • Övervaka garageportens status på distans via en mobiltelefon eller bärbar dator (är den öppen eller stängd?)
  • Skicka ett sms till min mobiltelefon om dörren är öppen när den ska stängas
  • Håll garageporten säker (t.ex. vid strömavbrott ska dörren inte öppnas)
  • Låt inte någon annan på nätet öppna dörren (tvåvägs självsignerat SSL-certifikat)
  • Använd WiFi istället för en kabelanslutning
  • Använd en Raspberry Pi 3

Grunden för denna Garage Door Opener -implementering härleddes från Instructable: Raspberry Pi Garage Door Opener av kvartär. Ursprungligen använde jag en modell B+ Raspberry Pi, flyttade sedan till en Raspberry Pi 2 modell B, och nu använder den en Raspberry Pi 3.

Jag använde en MacBook för att kommunicera med Raspberry Pi, men vilken dator som helst kan användas.

Det finns ingen övertygande anledning att bygga den här enheten, men det var kul. Det är mer kostnadseffektivt att köpa en. En liknande enhet kan köpas för cirka $ 130 USD.

  • Lift master 828LM
  • Chamberlain MyQ $ 129
  • GoGo Gate $ 179
  • Hantverkare $ 100

Anmärkningar:

  • Text i spader, så här ♣ ersätt-detta ♣ bör ersättas med ett verkligt värde
  • Arduino understruken blå text är en länk. I det här fallet är det en länk till en arduino -version av en garageportöppnare.
  • Jag har försökt kreditera alla källor som används. Jag ber om ursäkt för alla utelämnanden. Det mesta av detta dokument är baserat på andras arbete.
  • $ indikerar ett kommando som körs i ett terminalfönster på MacBook och vanligtvis körs på Raspberry Pi

Steg 1: Samla delar

Köp eller samla delar och verktyg (priser i USD).

  • Raspberry Pi 3 Model B Newark Element14 $ 35
  • 5.2V 2.5A USB -strömadapter från Amazon $ 9,99
  • Micro USB till USB -kabel 6ft från Amazon $ 7,99
  • Fodral från Amazon $ 6,99
  • SanDisk Ultra 16 GB microSDHC klass 10 med adapter (SDSQUAN-016G-G4A) från Amazon $ 8,99
  • SunFounder 2 Channel 5V Relay Shield Module för Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $ 6,79
  • 3x kvinnliga-kvinnliga bygeltrådar. Köpt på Fry's för 4,95 dollar.
  • Dynamisk DNS $ 40 per år för 30 namn (dyn.com)
  • 1-Gang 18 cu. in. Old Work Heavy Wall Switch och Outlet Box, $ 3,12
  • Ultra Pro Single Brush White Wall Plate, $ 7,88
  • SECO-LARM SM 226L, Garage Door Sensor, priset varierar mycket, $ 9,99 på Amazon med gratis frakt
  • 50ft fast termostatledning, Home Depot eller Lowe's, ~ $ 20

Min summa: ~ $ 172,00

Jag hade följande delar, verktyg och tjänster:

  • CAT5 Ethernet -kabel
  • Liten mättråd, 6 fot lång
  • Phillips skruvmejsel
  • Nåltång
  • Boxfräsar
  • Juvelerare med skruvmejsel med platt huvud, behövs för att lossa skruvarna på reläet
  • MacBook (en dator kan användas)
  • AT&T GigaPower (vilken internetleverantör som helst kan användas)

Steg 2: Konfigurera Raspberry Pi utan bildskärm eller tangentbord

Konfigurera Raspberry Pi utan bildskärm eller tangentbord
Konfigurera Raspberry Pi utan bildskärm eller tangentbord

Alla Raspberry Pi -projekt kräver någon form av installation. Jag gillar att använda samma uppsättning instruktioner och har vid behov ett ställe för att uppdatera dessa instruktioner.

Konfigurera Raspberry Pi med följande instruktioner:

Konfigurera Raspberry Pi utan bildskärm eller tangentbord

Den instruerbara ovan innehåller valfria steg i bilagan. Var noga med att göra steget:

Lägg till certifikat på klientsidan till webbservrar

Stäng Raspberry Pi

$ sudo avstängning -h 0

När du har stängt av, ta bort

  • ethernetkabel
  • USB -seriell kabel

Dessa behövs inte längre. Använd wifi, ssh och ett terminalfönster på Mac Book för att köra kommandon på Raspberry Pi.

Koppla ur strömmen och sätt i strömmen igen, så ska hallon pi starta om.

Steg 3: Installera Wiring Pi, Apache och PHP

Installera Wiring Pi

Öppna ett terminalfönster på Mac Book. Logga in på Raspberry Pi, ladda ner, kompilera och installera Wiring Pi. Denna programvara möjliggör kontroll av GPIO -stiften. Här är en steg-för-steg-guide:

wiringpi.com/download-and-install/

Här är en sammanfattad version av instruktionerna:

$ ssh pi@♣ hallon-pi-ip ♣

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

Kör kommandot gpio för att kontrollera installationen:

$ gpio -v

gpio-version: 2.29 Copyright (c) 2012-2015 Gordon Henderson Detta är gratis programvara med ABSOLUT INGEN GARANTI. För detaljer typ: gpio -garanti Raspberry Pi Detaljer: Typ: Modell 2, Revision: 1.1, Minne: 1024MB, Maker: Sony [OV] Enhetsträd är aktiverat. Denna Raspberry Pi stöder GPIO-åtkomst på användarnivå. -> Se man-sidan för mer information $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Namn | Läge | V | Fysisk | V | Läge | Namn | 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 | Namn | Läge | V | Fysisk | V | Läge | Namn | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+

Kommandona ovan bör ge dig ett visst förtroende för att wiringPi fungerar OK.

Installera Apache och PHP

Kör följande kommandon:

$ cd..

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

För att verifiera att webbservern fungerar, öppna en webbläsare och ange i rutan URL:

♣ hallon-pi-ip ♣

Apaches standardwebbplats svarar med "Det fungerar!"

Steg 4: Webbplats

Öppna ett terminalfönster på Mac Book. Logga in på Raspberry Pi, ta bort standardindex.html -filen, ändra behörigheterna i webbplatskatalogen och redigera en fil som heter index.php.

$ ssh pi@♣ hallon-pi-ip ♣

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

Och ange följande kod:

Garageöppnare

Hemautomation

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

";} annat {echo"

"; } ?>

Garageportöppnare Garageportöppnare Manual stängt 1 öppna 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} annat {echo"

var13 ->

CTRL-o och ENTER för att skriva filen och CTRL-x för att lämna redigeraren.

Ändra behörigheter för filen

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

Steg 5: Webbplatsbild

Webbplatsbild
Webbplatsbild
Webbplatsbild
Webbplatsbild

Ta en högupplöst fjärrdörröppnare från nätet. Ändra bilden som du vill med Mac pensel. På bilden ovan användes en högupplöst Genie Garage Opener, en hallon pi -logotyp tillsattes och lysdioden togs bort.

En bild är bakgrunden (remote-background.jpg), och den andra är den aktiva bilden (remote-press.jpg).

Planen var att vid knapptryckning, i stället för att blinka lysdioden, skulle hallon blinka. Jag förenklade webbplatsen.

Kopiera bilderna till hallon pi:

$ scp *-j.webp

lösenord: ♣ lösenord ♣

Webbplatsen har en enda tryckknapp. För att verifiera, öppna en webbläsare och ange ♣ raspberry-pi-ip ♣. Istället för Apaches standardwebbplats, där det står "Det fungerar!", Ska knappen visas. Tryck på den.

Steg 6: Fjärrstyr webbservern

För att göra det enkelt att komma åt garageportöppnaren från en avlägsen plats använder jag ett dynamiskt DNS -namn. För jag gillar inte att komma ihåg IP -adresser.

Med den här funktionen anger jag ♣ dynamic-hostname get.getmyip.com i URL-fältet i en webbläsare. Obs: IP -adressen på hemrouter kan ändras utan föregående meddelande, men detta händer sällan. Jag valde att använda DynDNS. Du måste känna till din routers offentliga IP -adress.

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

Du kan se dina värdnamn och DynDNS Pro -kontouppgifter. Här är några tips för att komma igång:

  • Skapa ditt dynamiska DNS -värdnamn (1 av 30):

    • ♣ dynamiskt värdnamn ♣
    • Uppdateringsnyckel: ♣ dynamic-ip-updater-key ♣
  • Installera en uppdateringsklient för att säkerställa att ditt värdnamn alltid riktas till rätt IP -adress.

    • Ladda ner och installera på MacBook
    • AT & T U-vers IP-adresser ändras sällan, så uppdateraren ovan kan köras när den ändras
    • Följ anvisningarna:

      • Lägg till konto
      • Ange användarnamn och lösenord: ♣ dynamic-ip-användarnamn ♣ ♣ dynamic-ip-lösenord ♣
      • Välj värdnamn
      • Klicka på Konfigurera utvalda värdar
      • Värd bör bli aktiv
    • Konfigurera ditt nätverk för att ge åtkomst till din enhet från Internet. Du kan använda vår Dyn Wizard för några allmänna instruktioner om hur du gör detta, använda resurser som PortForward.com eller kontakta enhetens tillverkare för att få hjälp.

      • AT&T U-vers
      • Port Forwarding för 2-Wire 3801HGV-det här är AT&T U-Verse-routern jag har. Se Uppdateringar i en bilaga för hur du vidarebefordrar porten till AT&T U-vers 5268ac-routern.
      • Öppna webbläsaren och gå till ♣ raspberry-pi-ip ♣
      • Lösenord: ♣ lösenord ♣
      • inställningar
      • Brandvägg

        • Välj "hallon-pi-värdnamn"
        • Servrar

          • Webbserverport 80
          • HTTPS -server - port 443
        • Lägg till
      • Spara

När detta är gjort fungerar webbservern från internet. För att verifiera, ange ♣ dynamiskt-värdnamn ♣ och du bör se garageportöppnarknappen.

Steg 7: Koppla kretsen till Raspberry Pi

Koppla kretsen till Raspberry Pi
Koppla kretsen till Raspberry Pi

För koden (steg 4 och 6) använde jag GPIO -stift 7. Det är en slump att GPIO 7 är detsamma som wiringPi -stift 7. I PHP -koden används ledningar för Pi -stift och INTE GPIO -stiftnummer. Du kan använda vilken du vill, men var noga med att ändra koden.

Jag försökte använda vriden tråd, men reläet håller inte bra på vriden tråd. Fast tråd är bättre.

Vid mitt första försök skapade jag tre anslutningskablar (hona-till-hane).

  • Använd tre kvinnliga till kvinnliga bygelkablar
  • Skär tre bitar fast tråd till ca 1 tum.

    Strip 1/4in på båda ändarna av massiv tråd

  • Sätt i en solid tråd i en honkabel.

Här är ett bättre sätt att skapa anslutningskablar (hona-till-hane):

  • Använd endast fast tråd
  • Skär tre bitar av fast tråd
  • Strip 1/4in på båda ändarna av massiv tråd
  • Använd honanslutningsstift

    • Skjut en honkontaktstift på ena änden av massiv tråd och krympa

      Honstiftet ska inte lossna, löd vid behov

    • Skjut dragavlastningen över honanslutningsstiftet eller täckstiftet med elektrikerstejp

Koppla reläet till pi enligt diagrammet:

  • Anslut honänden av kabeln till Raspberry Pi -stiftet.
  • Sätt in massiv tråd i reläet.

Steg 8: Skapa en starttjänst

De flesta reläer inklusive den köpta fungerar så här:

  • När signalen är PÅ stannar kretsen av.
  • När signalen är AV är kretsen på.

Om Raspberry Pi tappar ström har reläet en säkerhetsmekanism som håller kretsen AV.

Ett problem kan uppstå när Rapberry Pi och reläet får strömmen återställd, men innan Raspberry Pi har startat upp för att slå på signalen som är nödvändig för att hålla kretsen avstängd. Du kan vakna på morgonen med ditt garage öppet och eventuellt några nya vänner!

Reläet initieras dock inte förrän GPIO -stiftläget är inställt via det här kommandot: gpio -läge 7 ut. Om GPIO -stiftet till PÅ (gpio skriv 7 1) dessutom ställs in innan du ställer in GPIO -läget, kommer reläet att vara av när det initierats.

För att få denna initialisering att köra vid start och inte vakna till nya vänner, använd följande startskript.

$ ssh pi@♣ hallon-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Klistra sedan in det här skriptet:

#! /bin/bash

# /etc/init.d/garagerelay # Utför specifika funktioner när systemfrågan "$ 1" uppmanas till det) echo "Startrelä" # Slå på 7 som håller reläet av/usr/local/bin/gpio write 7 1 #Start Gpio/usr/local/bin/gpio mode 7 out;; stopp) eko "Stoppa gpio";; *) eko "Användning: /etc/init.d/garagerelay {start | stop}" avsluta 1;; esac exit 0

För att spara: CTRL-o, ENTER

För att avsluta nano, CTRL-x

Gör filen körbar:

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

Berätta nu för din pi att köra detta skript vid start:

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

(Obs! Du kan säkert ignorera varningen "saknade LSB -taggar".)

Se till att startskriptet körs

$ sudo starta om

Öppna en webbläsare och klicka på öppnaren. Reläet ska klicka.

Steg 9: Fäst Raspberry Pi i garaget

Fäst Raspberry Pi i garaget
Fäst Raspberry Pi i garaget

När du flyttar Raspberry Pi ska du köra:

$ avstängning -h 0

Du kanske vill stänga av strömmen till garaget. Så dörren öppnar dig inte:). Den verkliga orsaken är att varje gång du kortar trådarna går dörren upp och ner.

Lossa väggskruvarna från dörrklockans öppnare, som fäster dörrklockan på väggen.

Stick ett hål igenom från garaget bakom dörrklocköppnaren till inne i huset. I Texas ska Raspberry Pi inte vara i garaget, temperaturvariationen i garaget är utanför Raspberry Pi: s driftsspecifikationer.

Dra relätrådarna genom hålet (använd en klädhängare).

Lossa båda skruvarna på baksidan av dörrklocköppnaren.

Ta bort relätrådarnas båda ändar: 1) cirka 1/8 tum av reläsidan och cirka ½ tum på dörrklockans sida. Böj dörrklockans sida av tråden till en halv slinga som är tillräckligt stor för att passa runt skruven på baksidan.

Anslut en relätråd till varje skruv på baksidan av dörrklockan och dra åt skruven. Anslutningarna är som visas på bilden. Eftersom reläet isolerar kretsen spelar riktningen inte ens någon roll vilket relä som är fäst vid vilken skruv.

Steg 10: Fäst Raspberry Pi på SECO-LARM

Anslut Raspberry Pi till SECO-LARM
Anslut Raspberry Pi till SECO-LARM
Anslut Raspberry Pi till SECO-LARM
Anslut Raspberry Pi till SECO-LARM

Innan jag hade koden klar var jag och min familj på semester och jag öppnade min webbläsare. Min webbläsares sista vy var av garageportöppnaren - sidan uppdaterades och garageporten öppnades. Några dagar senare ringde en granne och frågade om garageporten skulle vara öppen? Lyckligtvis kunde jag stänga den från 500 mil bort.

Denna snafu tvingade mig att ändra koden så att detta inte skulle hända och lägga till en sensor och garageportens tillstånd till webbplatsen.

Detta är en länk till den ursprungliga instruerbara för att lägga till en sensor. Men med tanke på allt som redan har slutförts kan installationen av sensorn förenklas mycket och istället för att använda python lägger du till ett par rader kod till index.php.

closed

Magneten är fäst på den vänstra, övre inomhussidan av garageporten, och sensorn är fäst vid garageväggen. Så jag var tvungen att köra en solid termostatkabel från sensorn tillbaka till hallon pi. Detta krävde ett hål från garaget till vinden och från vinden in i väggen som innehöll garageportöppnaren (dörrklockströmställare).

Jag satte in en blå kopplingsdosa mellan SECO-LARM-sensorn och solida trådar.

I mitt hus är det en 18 tums mellanrum mellan taket på första våningen och botten på andra våningen. Jag antar att det är här värme- och kylkanalerna går. Jag behövde en borrförlängning tillräckligt länge för att gå igenom andra våningen och genom den övre 2x4 (topplattan) som innehåller dörrklockan.

Den viktigaste delen är när man borrar från vinden till området där ledningarna kommer att gå till garageportöppnaren är att INTE borra igenom elen. Att fixa detta var inte kul. Att se gnistor och få lamporna att släcka var ganska spännande!

Sensorn kräver två massiva termostatkablar eller osynlig hundstaketstråd.

Raspberry Pi har flera pin -beskrivningar (BCM, wPi, fysisk). Koden använder ledningarna pi pin -nummer. För att se alla stift, och stiftmappningar och stiftvärden anger du:

$ gpio readall

Ange en gpio -manual:

$ gpio man

I de ursprungliga instruktionerna är Physical pin 9 slipad och ansluts till en av SECO-LARM-avledningarna. Detta fungerar dock inte för mig. Anslut istället ledningarna till de fysiska stiften 15 och 17

Fysisk stift 15 (wPi-stift 3) går till 3,3V när SECO-LARM-sensorn är stängd. Fysisk stift 17 är 3,3v. Om det inte fungerar, byt anslutningar på SECO-LARM.

Fäst SECO-LARM på garageporten och väggen. Kör kablar och anslut till Raspberry Pi.

Steg 11: Skicka varning om dörren är öppen när den ska stängas

Om garageporten är öppen när den inte borde vara det, skicka ett textmeddelande till en mobiltelefon.

Installera och konfigurera enkel SMTP.

Jag har AT&T mobil och använder ♣cell-phone-number♣@txt.att.net för textmeddelanden. Jag har också ett gmail-konto, och exemplet nedan använder ♣gmail-account♣@gmail.com. Om du använder olika tjänster gör du lämpliga ändringar.

För $ -kommandona nedan, öppna ett terminalfönster på MacBook och logga in på din Raspberry Pi.

Se till att förvaren är uppdaterade:

$ sudo apt-get uppdatering

Installera enkla SSMTP- och e -postverktyg:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

Redigera SSMTP -konfigurationsfilen:

$ sudo nano /etc/ssmtp/ssmtp.conf

som följer:

mailhub = smtp.gmail.com: 587 hostname = ♣ ditt värdnamn ♣ AuthUser=♣gmail-account♣@gmail.com AuthPass = ♣ gmail-lösenord ♣ UseSTARTTLS = YES

Redigera SSMTP -aliasfilen:

$ sudo nano/etc/ssmtp/revaliases

Skapa en rad för varje användare som kommer att kunna skicka e -post. Till exempel:

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

Ange behörigheterna för SSMTP -konfigurationsfilen:

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

Behörigheterna för filen /etc/ssmtp/ssmtp.conf avgör vem som kommer att kunna skicka e -post från Raspberry Pi. Som standard ägs denna fil av användarroten och gruppens fil är också rot.

Redigera SSMTP -aliasfilen, som innehåller data om e -postkonton:

$ sudo nano /etc/ssmtp/ssmtp.conf

När installationen och konfigurationen ovan är klar testar du den genom att skicka ett mejl från kommandoraden.

$ echo "stäng garageporten" | mail -s "Garage Door Open" ♣cell-phone-number♣@txt.att.net

Skapa ett manus för att kontrollera om garageporten är öppen när den inte borde vara det och skicka sedan ett textmeddelande.

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

och lägg till följande:

#!/bin/bash

# kontrollera om garageporten är öppen. # Om öppen skicka varning och skriv till syslog up = 0; dörr = $ (/home/pi/wiringPi/gpio/gpio läs 3) om ["$ dörr" -eq "$ upp"] loggar sedan ♣ ditt -värdnamn ♣: Garageport Öppna eko "stäng garageporten" | mail -s "Garage Door Open" ♣cell-phone-number♣@txt.att.net fi exit 0

Lägg sedan till en crontab för att köra under de önskade timmarna:

$ sudo crontab –e

och lägg till:

# På natten, kontrollera varje timme om garageporten är öppen

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

Om allt fungerar, gå till nästa steg.

Steg 12: Lägg Raspberry Pi i hemlig bok

Lägg Raspberry Pi i hemlig bok
Lägg Raspberry Pi i hemlig bok
Lägg Raspberry Pi i hemlig bok
Lägg Raspberry Pi i hemlig bok

Lägg hallon pi i en hemlig bok. Jag fick den här hos Michael för cirka $ 7. Jag skar några små hål för trådarna och nätsladden.

Steg 13: Bilaga: Referenser

SunFounder 2 Channel 5V Relay Shield Module för Arduino UNO 2560 1280 ARM PIC AVR STM32

  • 5V 2-kanals relägränssnittskort, och var och en behöver 15-20mA
  • Driverström Utrustad med högströmrelä, AC250V 10A; DC30V 10A
  • Standardgränssnitt som kan styras direkt av mikrokontroller (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL logic)
  • Indikatorlampor för reläutgångsstatus Länk för att ladda ner dokumentet:

Steg 14: Bilaga: Uppdateringar

21 FEB2016

  • I de ursprungliga instruktionerna fanns det problem med automatisk korrigering, formatering och tydlighet i riktningar.

    • Ett exempelproblem är när dubbla citattecken i koden ändras till något som ser ut som ett kursiverat dubbelcitat. Men om du klipper och klistrar in det i ett skript fungerar det inte.
    • Den instruerbara redaktören gillar att autokorrigera, så wlan vänder sig till plan och automatiskt tar bort till automatisk borttagning. Dessa förändringar är svåra att upptäcka.
    • Några av mina riktningar kanske inte var tillräckligt tydliga.
    • Normalt använder jag vinkelparenteser som indikator för något som behöver bytas ut. Redaktören konverterar dessa till html. Så jag bytte till hakparenteser, men dessa kan orsaka problem eftersom de ser ut som kod. Så jag bestämde mig äntligen på as s som indikator för ersättning med ett verkligt värde.
  • Med tiden har jag också förbättrat några av skripten.
  • Redigerade steg 21-26

03APR2016

  • Skapade en bilaga med felsökning, referenser och uppdateringar (steg 27-29)
  • Flyttade felsökning till bilaga från tidigare steg 2
  • Uppdaterade och alfabetiserade felsökningssidan
  • Ändrade filnamn från test2wifi.sh till garage.sh - bara mer beskrivande.
  • Uppdaterad cron för att använda garage.sh
  • Redigerad 1, 20-26 (Skapa en starttjänst för att gå före bilagan)

04APR2016

  • Ersatte steg 2-11 och 16-20 med min standard var att installera en Raspberry Pi
  • Uppdaterad reservdelslista, steg 1
  • Tillagda/sammanfogade foton

05 APR 2016

Förenklad webbplats och bild (steg 4 och 5)

01 maj 2016

Lade till felsökning för Seco-larm/hallon Pi-sensor

01 maj 2016

Har tidigare redigeringar inte sparats korrekt?

11 NOV 2016

  • Uppdaterad till AT&T GigaPower och bytte router till 5268ac
  • 5268ac stöder inte loop back, så Garage Opener -servern är inte tillgänglig från datorer på LAN. Gör en av följande för att en MacBook ska kunna komma åt webbservern för garageöppnaren:

$ sudo nano /etc /hosts

och lägg till raden

192.168.1.64 ♣ server-externt-domännamn ♣

Spara och avsluta, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • 5268acs inbyggda regler för portvidarebefordran, till exempel HTTPS-server, HTTP-server och webbserver fungerar inte. För att få portvidarebefordran att fungera:

    • Öppna en webbläsare och gå till 192.168.1.254
    • Logga in
    • Välj Inställningar, Brandvägg, Program, hål och DMZ.
    • Välj webbservern för garageöppnaren
    • Välj Användardefinierad
    • Klicka på ett nytt användardefinierat program

      • I programprofilnamn anger du: PortForwarding
      • Lägg till var och en av följande i Skapa programdefinition och klicka på Lägg till i listan:

        • TCP från 80 till 80, karta till värdport 443
        • TCP från 443 till 443 karta till värdport 443
        • UDP från 443 till 443, karta till värdport 443
        • UDP från 80 till 80, karta till värdport 443
    • Klicka tillbaka
    • Välj om din webbserver
    • Välj Användardefinierad
    • Lägg till PortForwarding
    • Klicka på Spara

21JAN2018

  • Uppdaterad till Raspberry Pi 3
  • Flera ändringar i steg
  • Uppdaterade några delar och priser

Steg 15: Bilaga: Felsökning

Diskutrymme används

Sista raden visar totalt använt diskutrymme. SD -kortet har 8 GB.

$ cd../..

$ sudo du –hx –c

e-post

Om du har problem, prova så här:

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

Om e -post är korrekt konfigurerad bör du få ett e -postmeddelande till ditt gmail -konto.

Om du får ett autentiseringsfel:

Du kan behöva sänka säkerheten på ditt konto. Det rekommenderas dock inte att sänka säkerheten. Google skickar ett e -postmeddelande med en länk till lägre säkerhetsinställning.

Du kan byta från din nuvarande e -postläsare för att använda www.gmail.com för att komma åt ditt konto (rekommenderas) eller ändra dina inställningar på https://www.google.com/settings/security/lesssecu… så att ditt konto inte längre är skyddas av moderna säkerhetsstandarder.

Jag rekommenderar inte att sänka dina säkerhetsstandarder.

Om du får ett auktoriseringsfel:

Den mest troliga orsaken till detta är att du har angett fel användarnamn eller lösenord för ditt gmail -konto i filen /etc/ssmtp/ssmtp.conf. Dubbelkolla värdena för fälten AuthUser och AuthPass.

Om du tappar anslutningen mitt under bearbetningen:

Chansen är stor att du har angett fel port för Googles smtp någonstans i /etc/ssmtp/ssmtp.conf eller i/etc/ssmtp/revaliases.

Kontrollera de sista raderna i dina loggar. Det borde finnas några relevanta felmeddelanden där:

$ tail /var/log/mail.log

$ tail/var/log/syslog

Garageporten öppnas inte

Om allt fungerade och det bara stannar, försök starta om. Om det inte fungerar, dra ut nätsladden från Raspberry Pi och återställ sedan strömmen. Raspberry Pi ska starta om på mindre än 2 minuter och allt ska fungera bra. Detta orsakas i allmänhet av strömavbrott till Residential Gateway.

GPIO

Om något går fel är det bästa sättet att se vad som händer med följande kommando:

$ gpio readall

Logga in på hallon pi från MacBook

terminal är ett MacBook -verktyg: disk/applikationer/verktyg/terminal. Jag behåller terminalappen i dockan.

Öppna terminalen på MacBook

$ ssh pi@♣ hallon-pi-ip ♣

♣ lösenord ♣

Logga in på bostadsporten

Öppna webbläsaren på MacBook

URL = ♣ hallon-pi-ip ♣

Logga in: ♣ gateway-lösenord ♣

Loggar

Om något går fel, kontrollera dessa loggar för fel, varningar eller andra problem.

$ cat/var/log/meddelanden

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

MAC -katalog

Katalog på MacBook där webbplatsfiler lagras

MAC-katalog =/Användare/♣ min macbook ♣/Desktop/wi-fi-aktiverat hem/wifi-aktiverat garageportöppnare/webbplats

Lösenord

Lösenord = ♣ hallon-pi-lösenord ♣

RAM och CPU används

$ topp

CTRL-c för att avsluta

Raspberry Pi hemkatalog

$ pwd

/hem/pi

Raspberry Pi värdnamn

$ värdnamn

värdnamn = ♣ värdnamn ♣

Raspberry Pi IP

♣ hallon-pi-ip ♣ = 192.168.1.93

Raspberry Pi webbplats katalog

/var/www

Seco-larm slutar fungera

Den 1 maj 2016 slutade Seco-larm fungera. Detta är tredje gången sensorn slutade fungera. För att säga detta korrekt slutade den fysiska stiftet 15 på Raspberry Pi att upptäcka 3.3v -ingången. Jag försökte 3.3v fysiska stift 1 och 17, och båda levererade fortfarande 3.3v. Jag bytte från fysisk pin 15 till en annan GPIO, fysisk pin 16 (GPIO 4) och det började fungera igen. Så det är inget fel med Seco-larm. Problemet verkar vara med Raspberry Pi GPIO.

GPIO 3, fysisk stift 15 är död. Det är ett mycket bra inlägg om hur man testar GPIO -stift.

Jag bytte från GPIO 3 till GPIO 4 och ändrade koden därefter. Jag är inte säker på varför GPIO -stiftet slutade fungera. Här är två möjliga skäl:

  • Jag har Seco-larm-sensorn monterad så när dörren stängs matar den ut 3,3v. Garageporten stängs oftare än den är öppen. Kanske kan GPIO-stiftet inte ta en mer eller mindre konstant ingång på 3,3v.
  • Misslyckandet sammanföll med en strömförlust, kanske fanns det en kraftig spike.

U-vers Residential Gateway

Jag har AT & T U-vers med en Residential Gateway, men alla tjänster borde fungera.

Om U-versens gateway startas om eller tappar ström kan Raspberry Pi behöva startas om.

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

En U-vers bostad gateway offentliga IP kan förändras, men gör det mycket sällan

U-vers Residential Gateway startsida = 192.168.1.254

U-vers Router trådlös åtkomstpunkts SSID = ♣ ssid ♣

WiFi -genomströmning är långsammare än förväntat

Byt router till en mindre använd kanal. Som standard ställer alla kretsleverantörer in allas wifi på kanal 1. Byt till en mindre använd kanal, till exempel, 11. Försök att använda ett udda tal.

Obs: Jag berättade för ett par grannar vad jag gjorde för att förbättra wi-fi och nu är alla på 9 eller 11, så jag flyttade tillbaka till 1. Du bör alltid använda en udda kanal.

Öppna en webbläsare.

För U-vers, skriv 192.168.1.254 i URL-rutan.

Klicka på länken Trådlös och välj kanal 6 eller 11.

Det finns en app för smarttelefon som heter wifi -analysator. En av displayerna visar alla wifi -åtkomstpunkter i närheten som sänder på en viss kanal. I mitt grannskap är alla inställda på kanal 1.

Koppla ur Raspberry Pi och återställ sedan strömmen

Rekommenderad: