Kazalo:

Odpirač za garažna vrata Raspberry Pi 3: 15 korakov (s slikami)
Odpirač za garažna vrata Raspberry Pi 3: 15 korakov (s slikami)

Video: Odpirač za garažna vrata Raspberry Pi 3: 15 korakov (s slikami)

Video: Odpirač za garažna vrata Raspberry Pi 3: 15 korakov (s slikami)
Video: Высокая плотность 2022 2024, Julij
Anonim
Odpirač za garažna vrata Raspberry Pi 3
Odpirač za garažna vrata Raspberry Pi 3

To navodilo sem ustvaril leta 2014. Od takrat se je veliko spremenilo. Leta 2021 sem tukaj posodobil odpirač pametnih garažnih vrat.

Za odpiranje, zapiranje in spremljanje garažnih vrat uporabite Raspberry Pi in pametni telefon. Odpiranje in zapiranje vrat je zaščiteno s samopodpisanimi potrdili, nameščenimi na mobilnih telefonih družine. Če so garažna vrata odprta, ko ne bi smela, pošljite besedilno sporočilo (SMS) na mobilni telefon.

Garažna vrata so v stalni uporabi od konca leta 2014. Skozi leta sem poskušala posodobiti spremembe. Obstaja dodatek, ki opisuje spremembe navodil.

Cilji tega projekta so:

  • Naj bo moj prvi pouk - tega nisem nameraval objaviti, vendar sem prejel veliko prošenj
  • Odprite garažna vrata s standardnim daljinskim upravljalnikom
  • Odprite garažna vrata s stenskim odpiračem za vrata
  • Odprite garažna vrata s pametnim telefonom
  • Na daljavo spremljajte stanje garažnih vrat prek mobilnega telefona ali prenosnega računalnika (ali so odprta ali zaprta?)
  • Pošlji besedilno sporočilo na moj mobilni telefon, če so vrata odprta, ko jih je treba zapreti
  • Zagotovite, da so garažna vrata varna (npr. Ob izpadu električne energije se vrata ne smejo odpreti)
  • Ne dovolite, da bi kdo drug na internetu odprl vrata (dvosmerno samopodpisano potrdilo SSL)
  • Namesto žične povezave uporabite WiFi
  • Uporabite Raspberry Pi 3

Osnova za to izvedbo odpirača garažnih vrat je bila pridobljena iz instruktorja: Raspberry Pi za odpiranje garažnih vrat, ki ga je izdelal kvartar. Sprva sem uporabil model B+ Raspberry Pi, nato sem prešel na Raspberry Pi 2 model B, zdaj pa uporablja Raspberry Pi 3.

Za komunikacijo z Raspberry Pi sem uporabil MacBook, vendar je mogoče uporabiti kateri koli računalnik.

Za izdelavo te naprave ni prepričljivega razloga, vendar je bilo zabavno. Nakup je cenejši. Podobno napravo lahko kupite za približno 130 USD.

  • Dvižni mojster 828LM
  • Chamberlain MyQ 129 dolarjev
  • GoGo Gate 179 dolarjev
  • Obrtnik 100 dolarjev

Opombe:

  • Besedno besedilo, kot je ta ♣ zamenjaj-to ♣, je treba nadomestiti z dejansko vrednostjo
  • Arduino podčrtano modro besedilo je povezava. V tem primeru je to povezava do arduino različice odpirača garažnih vrat.
  • Poskušal sem kreditirati vse uporabljene vire. Se opravičujem za morebitne pomanjkljivosti. Večina tega dokumenta temelji na delu drugih ljudi.
  • $ označuje ukaz, ki se izvede v terminalskem oknu MacBook in se običajno izvaja na Raspberry Pi

Korak: Zberite dele

Kupite ali zberite dele in orodja (cene v USD).

  • Raspberry Pi 3 Model B Newark Element14 35 USD
  • 5.2V 2.5A USB napajalnik od Amazona 9,99 USD
  • Kabel Micro USB v USB 6ft pri Amazonu 7,99 USD
  • Etui iz Amazona 6,99 USD
  • SanDisk Ultra 16 GB microSDHC razred 10 z adapterjem (SDSQUAN-016G-G4A) od Amazona 8,99 USD
  • SunFounder 2 -kanalni 5V relejni ščitni modul za Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - 6,79 USD
  • 3x Žensko-ženska skakalna žica. Kupljeno pri Fry's za 4,95 USD.
  • Dinamični DNS 40 USD na leto za 30 imen (dyn.com)
  • 1-tolpa 18 cu. v. Old Work Heavy Wall Switch and Outlet Box, 3,12 USD
  • Bela stenska plošča Ultra Pro z eno krtačo, 7,88 USD
  • SECO-LARM SM 226L, senzor garažnih vrat, cena se zelo razlikuje, 9,99 USD na Amazon z brezplačno dostavo
  • 50ft trdne žice termostata, Home Depot ali Lowe's, ~ 20 USD

Moje skupaj: ~ 172,00 USD

Imel sem naslednje dele, orodja in storitve:

  • Ethernetni kabel CAT5
  • Žica majhnega profila, dolga 6 čevljev
  • Križni izvijač z glavo
  • Klešče za nos
  • Rezalniki za škatle
  • Izvijač s plosko glavo za draguljarje, potreben za odvijanje vijakov na releju
  • MacBook (lahko uporabite računalnik)
  • AT&T GigaPower (lahko uporabite katerega koli ponudnika internetnih storitev)

Korak: Namestite Raspberry Pi brez monitorja ali tipkovnice

Nastavite Raspberry Pi brez monitorja ali tipkovnice
Nastavite Raspberry Pi brez monitorja ali tipkovnice

Vsi projekti Raspberry Pi zahtevajo določeno vrsto nastavitve. Rad uporabljam isti nabor navodil in po potrebi imam eno mesto za posodobitev teh navodil.

Nastavite Raspberry Pi z naslednjimi navodili:

Nastavite Raspberry Pi brez monitorja ali tipkovnice

Zgornje navodilo vključuje neobvezne korake v dodatku. Naredite naslednji korak:

Spletnim strežnikom dodajte potrdila na strani odjemalca

Zaustavitev Raspberry Pi

$ sudo shutdown -h 0

Po zaustavitvi odstranite

  • ethernetni kabel
  • Serijski kabel USB

Te ne bodo več potrebne. Uporabite wifi, ssh in terminalsko okno v Mac Book za izvajanje ukazov na Raspberry Pi.

Odklopite napajanje in ga znova vklopite, malina pi pa se mora znova zagnati.

3. korak: Namestite Wiring Pi, Apache in PHP

Namestite Wiring Pi

Odprite terminalsko okno v knjigi Mac Book. Prijavite se v Raspberry Pi, nato prenesite, prevedite in namestite Wiring Pi. Ta programska oprema omogoča nadzor zatičev GPIO. Tukaj je vodnik po korakih:

wiringpi.com/download-and-install/

Tu je zgoščena različica navodil:

$ ssh pi@♣ malina-pi-ip ♣

geslo: ♣ geslo ♣ $ sudo apt-get install git-core $ git clone git: //git.drogon.net/wiringPi $ cd ožičenjePi $ git pull origin $./build

Zaženite ukaz gpio, da preverite namestitev:

$ gpio -v

gpio različica: 2.29 Avtorska pravica (c) 2012-2015 Gordon Henderson To je brezplačna programska oprema z ABSOLUTNO BREZ GARANCIJE. Za podrobnosti vnesite: gpio -garancija Podrobnosti o Raspberry Pi: Tip: Model 2, Revizija: 1.1, Pomnilnik: 1024 MB, Izdelovalec: Sony [OV] Drevo naprav je omogočeno. Ta Raspberry Pi podpira dostop GPIO na ravni uporabnika. -> Za več podrobnosti si oglejte stran s podatki $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Ime | Način | V | Fizično | V | Način | Ime | 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 | Ime | Način | V | Fizično | V | Način | Ime | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+

Zgornji ukazi bi morali dati nekaj zaupanja, da wiringPi deluje v redu.

Namestite Apache in PHP

Zaženite naslednje ukaze:

$ cd..

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

Če želite preveriti delovanje spletnega strežnika, odprite brskalnik in v polje URL vnesite:

♣ malina-pi-ip ♣

Privzeto spletno mesto Apache se odzove z "Deluje!"

4. korak: Spletno mesto

Odprite terminalsko okno v knjigi Mac. Prijavite se v Raspberry Pi, nato odstranite privzeto datoteko index.html, spremenite dovoljenja v imeniku spletnega mesta in uredite datoteko, imenovano index.php.

$ ssh pi@♣ malina-pi-ip ♣

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

In vnesite naslednjo kodo:

Garažni odpirač

Domača avtomatizacija

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

";} else {echo"

"; } ?>

Odpirač za garažna vrata Priročnik za odpiranje garažnih vrat zaprto 1 odpri 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} else {echo"

var13 ->

CTRL-o in ENTER za zapis datoteke in CTRL-x za izhod iz urejevalnika.

Spremenite dovoljenja za datoteko

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

5. korak: Podoba spletnega mesta

Slika spletnega mesta
Slika spletnega mesta
Slika spletnega mesta
Slika spletnega mesta

Z spleta vzemite daljinsko odpiranje garažnih vrat z visoko ločljivostjo. Prilagodite sliko tako, kot želite, s čopičem Mac. Na zgornji sliki je bil uporabljen odpirač za garažo Genie z visoko ločljivostjo, dodan je logotip maline pi in led je bil odstranjen.

Ena slika je ozadje (remote-background.jpg), druga pa aktivna slika (remote-press.jpg).

Načrt je bil, da bo ob pritisku na gumb namesto utripanja LED -ja malina utripala. Poenostavil sem spletno stran.

Kopirajte slike v malinovo pi:

$ scp *-j.webp

geslo: ♣ geslo ♣

Spletna stran ima en sam gumb. Za preverjanje odprite brskalnik in vnesite ♣ raspberry-pi-ip ♣. Namesto privzetega spletnega mesta Apache, na katerem piše "Deluje!", Bi se moral prikazati gumb. Pritisnite.

6. korak: Daljinski nadzor spletnega strežnika

Za lažji dostop do odpirača garažnih vrat z oddaljene lokacije uporabljam dinamično ime DNS. Ker se ne maram spominjati naslovov IP.

S to funkcijo v polje »URL« brskalnika vnesem »ime dinamičnega gostitelja«.getmyip.com. Opomba: IP na domačih usmerjevalnikih se lahko spremeni brez obvestila, vendar se to zgodi redko. Odločil sem se za uporabo DynDNS. Morali boste poznati javni naslov IP usmerjevalnika.

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

Ogledate si lahko imena svojih gostiteljev in podatke o računu DynDNS Pro. Tukaj je nekaj nasvetov za začetek:

  • Ustvarite ime gostitelja Dynamic DNS (1 od 30):

    • "Dinamično ime gostitelja"
    • Ključ za posodabljanje: ♣ ključ za dinamično ip-posodabljanje ♣
  • Namestite odjemalca za posodobitve, da zagotovite, da je ime gostitelja vedno usmerjeno na pravilen naslov IP.

    • Prenesite in namestite na MacBook
    • AT&T U-verse IP-ji se redko spreminjajo, zato je zgornji program za posodobitev mogoče zagnati, kadar koli se spremeni
    • Sledite navodilom:

      • Dodaj račun
      • Vnesite uporabniško ime in geslo: ♣ dynamic-ip-username ♣ ♣ dynamic-ip-password ♣
      • Izberite ime gostitelja
      • Kliknite Konfiguriraj izbrane gostitelje
      • Gostitelj bi moral postati aktiven
    • Konfigurirajte svoje omrežje tako, da dovoljuje dostop do vaše naprave iz interneta. Če želite nekaj splošnih navodil, kako to narediti, uporabite našega čarovnika Dyn, uporabite sredstva, kot je PortForward.com, ali se za pomoč obrnite na proizvajalca naprave.

      • AT&T U-verz
      • Posredovanje vrat za 2-žični 3801HGV-to je usmerjevalnik AT&T U-Verse, ki ga imam. Glejte Posodobitve v dodatku za informacije o prenašanju na usmerjevalniku AT&T U-verse 5268ac.
      • Odprite brskalnik in pojdite na ♣ raspberry-pi-ip ♣
      • Geslo: ♣ geslo ♣
      • Nastavitve
      • Požarni zid

        • Izberite ♣ ime maline-pi-gostitelja ♣
        • Strežniki

          • Vrata za spletni strežnik 80
          • Strežnik HTTPS - vrata 443
        • Dodaj
      • Shrani

Ko bo to storjeno, bo spletni strežnik deloval iz interneta. Če želite preveriti, vnesite »dinamično ime gostitelja« in prikazal se bo gumb za odpiranje garažnih vrat.

7. korak: Povežite vezje z Raspberry Pi

Ožičite vezje na Raspberry Pi
Ožičite vezje na Raspberry Pi

Za priloženo kodo (korak 4 in 6) sem uporabil pin GPIO 7. Naključje je, da je GPIO 7 enak ožičenju pin Pin 7. V kodi PHP se uporabljajo ožičenje Pi pin številke in NE številke pin GPIO. Uporabite lahko katero koli, vendar spremenite kodo.

Poskušal sem uporabiti zvito žico, vendar se rele ne drži dobro na zviti žici. Boljša je trdna žica.

V prvem poskusu sem ustvaril tri povezovalne kable (ženski-moški).

  • Uporabite tri mostične kable ženski do ženski
  • Odrežite tri kose trdne žice na približno 1 palca.

    Odstranite 1/4 palca na obeh koncih trdne žice

  • V en ženski mostični kabel vstavite eno trdno žico.

Tu je boljši način za ustvarjanje povezovalnih kablov (ženski-moški):

  • Uporabljajte samo trdno žico
  • Odrežite tri 4 -palčne kose trdne žice
  • Odstranite 1/4 palca na obeh koncih trdne žice
  • Uporabite ženske priključne zatiče

    • Potisnite en ženski povezovalni zatič na enem koncu trdne žice in ga stisnite

      Ženski zatič se ne sme popustiti, po potrebi ga spajkajte

    • Z električnim trakom potisnite razbremenitev napetosti po ženskem priključnem zatiču ali pokrovčku

Priključite rele na pi, kot je prikazano na diagramu:

  • Priključite ženski konec kabla na pin Raspberry Pi.
  • V rele vstavite trdno žico.

8. korak: Ustvarite zagonsko storitev

Večina relejev, vključno s kupljenim, deluje tako:

  • Ko je signal ON, vezje ostane izklopljeno.
  • Ko je signal izklopljen, je vezje vklopljeno.

Če Raspberry Pi izgubi moč, ima rele varnostni mehanizem, ki ohranja vezje OFF.

Težava bi se lahko pojavila, ko se Rapberry Pi in rele ponovno vzpostavi napajanje, vendar preden se Raspberry Pi konča s zagonom, vklopi signal, ki je potreben za izklop vezja. Zjutraj bi se lahko zbudili z odprto garažo in potencialno nekaj novimi prijatelji!

Vendar se rele dejansko ne inicializira, dokler ni nastavljen način pin GPIO s tem ukazom: gpio mode 7 out. Poleg tega, če je GPIO pin na ON (gpio write 7 1), preden nastavite način GPIO, bo rele po inicializaciji ostal izklopljen.

Če želite, da se ta inicializacija izvaja ob zagonu in se ne zbudi med novimi prijatelji, uporabite naslednji zagonski skript.

$ ssh pi@♣ malina-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Nato prilepite ta skript:

#! /bin/bash

# /etc/init.d/garagerelay # Izvedite posebne funkcije, ko to zahteva sistemski primer "$ 1" na začetku) odmev "Starting Relay" # Vklopite 7, ki ohranja rele izklopljen/usr/local/bin/gpio write 7 1 #Začni način Gpio/usr/local/bin/gpio 7 ven; stop) echo "Ustavljanje gpio";; *) odmev "Usage: /etc/init.d/garagerelay {start | stop}" exit 1;; esac izhod 0

Če želite shraniti: CTRL-o, ENTER

Za izhod iz nano, CTRL-x

Naj bo datoteka izvedljiva:

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

Zdaj povejte svojemu pi, naj pri zagonu zažene ta skript:

$ sudo update -rc.d -f garažni rele rele start 4

(Opomba: Opozorilo »manjkajoče oznake LSB« lahko varno prezrete.)

Prepričajte se, da se zagonski skript izvaja

$ sudo ponovni zagon

Odprite brskalnik in kliknite na odpirač. Rele mora klikniti.

9. korak: Pritrdite Raspberry Pi v garažo

Raspberry Pi pritrdite v garažo
Raspberry Pi pritrdite v garažo

Ko premikate Raspberry Pi, zaženite:

$ shutdown -h 0

Morda boste želeli izklopiti napajanje garaže. Torej, odpirač za vrata vas ne udari z elektriko:). Pravi razlog je, da vsakič, ko skrajšate žice, vrata gredo gor in dol.

Odvijte stenske vijake odpirača za vrata, ki pritrdi zvonec na steno.

V garaži za odpiralnikom vrat v notranjost hiše naredite luknjo. V Teksasu Raspberry Pi ne bi smel biti v garaži, temperaturna nihanja v garaži so zunaj delovnih specifikacij Raspberry Pi.

Prenesite žice releja skozi luknjo (uporabite obešalnik).

Odvijte oba vijaka na zadnji strani odpirača za vrata.

Odstranite oba konca relejnih žic: 1) približno 1/8 "palca na strani releja in približno ½" palca na strani zvonca. Stran žice pri vratih upognite v pol zanko, ki je dovolj velika, da se prilega okoli zadnjega vijaka.

Priključite eno relejsko žico na vsak vijak na zadnji strani zvonca in privijte vijak. Povezave so prikazane na sliki. Ker rele ločuje vezje, smer niti ni pomembna, kateri rele je pritrjen na kateri vijak.

10. korak: pritrdite Raspberry Pi na SECO-LARM

Pritrdite Raspberry Pi na SECO-LARM
Pritrdite Raspberry Pi na SECO-LARM
Pritrdite Raspberry Pi na SECO-LARM
Pritrdite Raspberry Pi na SECO-LARM

Preden sem dokončal kodo, sva bila z družino na počitnicah in odprla sem brskalnik. Zadnji pogled mojega brskalnika je bil odpiranje garažnih vrat - stran je bila osvežena in garažna vrata so se odprla. Nekaj dni kasneje je klical sosed in vprašal, ali naj bodo garažna vrata odprta? Na srečo bi ga lahko zaprl s 500 milj stran.

Ta snafu me je prisilil, da spremenim kodo, da se to ne bi zgodilo, in na spletno mesto dodam senzor in stanje garažnih vrat.

To je povezava do izvirnega navodila za dodajanje senzorja. Glede na vse, kar je že zaključeno, lahko namestitev senzorja močno poenostavimo in namesto pythona v index.php dodamo nekaj vrstic kode.

closed

Magnet je pritrjen na levo, zgornjo notranjo stran garažnih vrat, senzor pa je pritrjen na steno garaže. Zato sem moral napeljati trdno žico termostata od senzorja nazaj do maline pi. To je zahtevalo luknjo iz garaže na podstrešje in s podstrešja v steno, ki vsebuje odpirač garažnih vrat (stikalo za zvonec).

Med senzor SECO-LARM in trdne žice sem vstavil modro razdelilno omarico.

V moji hiši je 18 cm palice med stropom prvega nadstropja in dnom drugega nadstropja. Predvidevam, da tu potekajo ogrevalni in hladilni kanali. Potreboval sem podaljšek svedra, ki je dovolj dolg, da sem šel skozi drugo nadstropje in skozi zgornji 2x4 (zgornja plošča), ki vsebuje zvonec na vratih.

Najpomembnejši del je, da pri vrtanju s podstrešja na območje, kjer bodo vodile žice do odpirača garažnih vrat, NE vrtajte skozi elektriko. Popravljanje tega ni bilo zabavno. Videti iskre in ugasniti luči je bilo precej navdušujoče!

Senzor potrebuje dve trdni žici termostata ali nevidno žico za ograjo psov.

Raspberry Pi ima več opisov pinov (BCM, wPi, fizični). Koda uporablja številke pin pin ožičenja. Če si želite ogledati vse zatiče, preslikave pin in vrednosti pin, vnesite:

$ gpio readall

Za priročnik gpio vnesite:

$ gpio mož

V izvirnih navodilih je fizični zatič 9 ozemljen in povezan z enim od vodov SECO-LARM. Vendar mi to ne gre. Namesto tega priključite kable na fizične zatiče 15 in 17

Fizični pin 15 (wPi pin 3) preide na 3,3 V, ko je senzor SECO-LARM zaprt. Fizični pin 17 je 3.3v. Če ne deluje, preklopite povezave na SECO-LARM.

SECO-LARM pritrdite na garažna vrata in steno. Zaženite žice in se povežite z Raspberry Pi.

11. korak: Pošljite opozorilo, če so vrata odprta, ko jih je treba zapreti

Če so garažna vrata odprta, ko ne bi smela, pošljite besedilno sporočilo na mobilni telefon.

Namestite in konfigurirajte preprost SMTP.

Imam AT&T mobilno in za besedilna sporočila uporabljam ♣cell-phone-number♣@txt.att.net. Imam tudi račun za gmail, spodnji primer pa uporablja ♣gmail-account♣@gmail.com. Če uporabljate različne storitve, naredite ustrezne spremembe.

Za spodnje ukaze $ odprite terminalsko okno na MacBooku in se prijavite v svoj Raspberry Pi.

Poskrbite, da bodo skladišča posodobljena:

$ sudo apt-get posodobitev

Namestite preproste pripomočke SSMTP in pošto:

$ sudo apt-get install ssmtp

$ sudo apt-get namestite mailutils

Uredite konfiguracijsko datoteko SSMTP:

$ sudo nano /etc/ssmtp/ssmtp.conf

kot sledi:

mailhub = smtp.gmail.com: 587 ime gostitelja = ♣ ime vašega gostitelja ♣ AuthUser=♣gmail-account♣@gmail.com AuthPass = ♣ geslo-gmail ♣ UseSTARTTLS = DA

Uredite datoteko vzdevkov SSMTP:

$ sudo nano/etc/ssmtp/revaliases

Ustvarite eno vrstico za vsakega uporabnika, ki bo lahko pošiljal e -pošto. Na primer:

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

Nastavite dovoljenja konfiguracijske datoteke SSMTP:

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

Dovoljenja za datoteko /etc/ssmtp/ssmtp.conf določajo, kdo bo lahko pošiljal e -poštna sporočila iz Raspberry Pi. Ta datoteka je privzeto v lasti uporabniškega korena in tudi skupina datoteke je root.

Uredite datoteko vzdevkov SSMTP, ki vsebuje podatke o e -poštnih računih:

$ sudo nano /etc/ssmtp/ssmtp.conf

Ko je zgornji postopek nastavitve in konfiguracije končan, ga preizkusite tako, da pošljete e -poštno sporočilo iz ukazne vrstice.

$ echo "zaprite garažna vrata" | poštni -s "Garažna vrata odprta" ♣celična-telefonska-številka♣@txt.att.net

Ustvarite skript, da preverite, ali so garažna vrata odprta, ko ne bi smela, in nato pošljite besedilno sporočilo.

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

in dodaj naslednje:

#!/bin/bash

# preverite, ali so garažna vrata odprta. # Če je odprto, pošljite opozorilo in pišite v syslog up = 0; vrata = $ (/home/pi/wiringPi/gpio/gpio preberite 3) če ["$ door" -eq "$ up"] potem zapisovalnik ♣ your -hostname ♣: Garage Door Open echo "zaprite garažna vrata" | mail -s "Garažna vrata odprta" ♣celična-telefon-@♣txt.att.net fi izhod 0

Nato dodajte crontab za zagon v zahtevanih urah:

$ sudo crontab –e

in dodaj:

# Ponoči vsako uro preverjajte, ali so garažna vrata odprta

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

Če vse deluje, pojdite na naslednji korak.

Korak: Postavite Raspberry Pi v skrivno knjigo

Postavite Raspberry Pi v skrivno knjigo
Postavite Raspberry Pi v skrivno knjigo
Postavite Raspberry Pi v skrivno knjigo
Postavite Raspberry Pi v skrivno knjigo

Malinovo pi daj v skrivno knjigo. To sem dobil pri Michaelu za približno 7 dolarjev. Izrezal sem nekaj majhnih lukenj za žice in napajalni kabel.

13. korak: Dodatek: Reference

SunFounder 2 -kanalni 5V relejni ščitni modul za Arduino UNO 2560 1280 ARM PIC AVR STM32

  • 5V 2-kanalna relejna vmesniška plošča in vsaka potrebuje 15-20mA
  • Gonilni tok Opremljen z visokotokovnim relejem, AC250V 10A; DC30V 10A
  • Standardni vmesnik, ki ga je mogoče neposredno upravljati z mikrokrmilnikom (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL logika)
  • LED indikacije za stanje izhoda releja Povezava za prenos dokumenta:

14. korak: Dodatek: Posodobitve

21. FEB2016

  • V prvotnih navodilih je prišlo do težav s samodejnim popravljanjem, oblikovanjem in jasnostjo navodil.

    • Primer težave je, ko se dvojni narekovaji v kodi spremenijo v nekaj, kar je videti kot poševno narejeno. Če pa to izrežete in prilepite v skript, ne bo delovalo.
    • Urejevalnik, ki ga je mogoče poučiti, rad samodejno popravlja, zato se wlan obrne na načrt, samodejno odstranjevanje pa se samodejno odstrani. Te spremembe je težko opaziti.
    • Nekatera moja navodila morda niso bila dovolj jasna.
    • Običajno kotne oklepaje uporabljam kot indikator za nekaj, kar je treba zamenjati. Urejevalnik jih pretvori v html. Tako sem prešel na oglate oklepaje, vendar lahko to povzroči težave, ker izgledajo kot koda. Tako sem se končno odločil za ♣ kot indikator za zamenjavo z dejansko vrednostjo.
  • Sčasoma sem nekatere skripte tudi izboljšal.
  • Urejeno 21-26

03APR2016

  • Ustvaril dodatek z odpravljanjem težav, referencami in posodobitvami (koraki 27-29)
  • Odpravljanje težav je bilo premaknjeno v Dodatek iz prejšnjega koraka 2
  • Stran za odpravljanje težav je bila posodobljena in abecedna
  • Ime datoteke je spremenjeno iz test2wifi.sh v garage.sh - samo bolj opisno.
  • Posodobljen cron za uporabo garage.sh
  • Urejeno 1, 20-26 (Ustvarite zagonsko storitev, da stopite pred dodatek)

04APR2016

  • Korake 2-11 in 16-20 sem zamenjal z mojim standardom nastavitve Raspberry Pi
  • Posodobljen seznam delov, 1. korak
  • Dodane/združene fotografije

05APR2016

Poenostavljeno spletno mesto in slika (koraka 4 in 5)

01. MAJ 2016

Dodano odpravljanje težav za senzor Seco-larm/malina Pi

01. MAJ 2016

Predhodne spremembe niso bile pravilno shranjene?

11NOV2016

  • Posodobljeno na AT&T GigaPower in usmerjevalnik spremenjen v 5268ac
  • 5268ac ne podpira povratne zanke, zato strežnik Garage Opener ni dostopen iz računalnikov v LAN -u. Če želite MacBook dostopati do spletnega strežnika za odpiranje garaž, naredite naslednje:

$ sudo nano /etc /hosts

in dodaj vrstico

192.168.1.64 "ime strežnika-zunanje-domene"

Shrani in zapri, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • Vgrajena pravila za posredovanje vrat 5268ac, na primer strežnik HTTPS, strežnik HTTP in spletni strežnik, ne delujejo. Če želite posredovanje vrat delovati:

    • Odprite brskalnik in pojdite na 192.168.1.254
    • Vpiši se
    • Izberite Nastavitve, Požarni zid, Aplikacije, luknjice in DMZ.
    • Izberite spletni strežnik za odpiranje garaž
    • Izberite Uporabniško določeno
    • Kliknite novo uporabniško določeno aplikacijo

      • V Ime profila aplikacije vnesite: PortForwarding
      • V Ustvarjanje definicije aplikacije dodajte vsako od naslednjih možnosti in kliknite Dodaj na seznam:

        • TCP od 80 do 80, zemljevid do vrat gostitelja 443
        • TCP od 443 do 443 zemljevid do gostiteljskih vrat 443
        • UDP od 443 do 443, zemljevid do vrat gostitelja 443
        • UDP od 80 do 80, zemljevid do gostiteljskih vrat 443
    • Kliknite nazaj
    • Znova izberite svoj spletni strežnik
    • Izberite Uporabniško določeno
    • Dodajte PortForwarding
    • Kliknite Shrani

21. JAN2018

  • Posodobljeno na Raspberry Pi 3
  • Več sprememb korakov
  • Posodobljeni nekateri deli in cene

15. korak: Dodatek: Odpravljanje težav

Uporabljen prostor na disku

Zadnja vrstica prikazuje skupno porabo prostora na disku. SD kartica ima 8 GB.

$ cd../..

$ sudo du –hx –c

E-naslov

Če imate težave, poskusite to:

$ echo "test" | sendmail -v ♣vaš-gmail-račun♣@gmail.com

Če je e -pošta pravilno nastavljena, morate v svoj gmail račun prejeti e -pošto.

Če pride do napake pri preverjanju pristnosti:

Morda boste morali zmanjšati varnost svojega računa. Zmanjšanje varnosti pa NI priporočljivo. Google bo poslal e -poštno sporočilo s povezavo do nižje varnostne nastavitve.

Iz trenutnega bralnika e -pošte lahko preklopite na www.gmail.com za dostop do računa (priporočeno) ali spremenite nastavitve na naslovu https://www.google.com/settings/security/lesssecu…, tako da vaš račun ne bo več zaščiteni s sodobnimi varnostnimi standardi.

Ne priporočam zniževanja vaših varnostnih standardov.

Če pride do napake pri avtorizaciji:

Najverjetnejši vzrok za to je, da ste v datoteki /etc/ssmtp/ssmtp.conf podali napačno uporabniško ime ali geslo za svoj račun gmail. Dvakrat preverite vrednosti polj AuthUser in AuthPass.

Če med obdelavo izgubite povezavo:

Verjetno ste določili napačna vrata za Googlov smtp nekje v /etc/ssmtp/ssmtp.conf ali v/etc/ssmtp/revaliases.

Preverite zadnje vrstice dnevnikov. Tam bi moralo biti nekaj ustreznih sporočil o napakah:

$ tail /var/log/mail.log

$ tail/var/log/syslog

Garažna vrata se ne odprejo

Če je vse delovalo in se je ustavilo, poskusite znova zagnati. Če to ne deluje, izvlecite napajalni kabel iz Raspberry Pi in nato obnovite napajanje. Raspberry Pi bi se moral znova zagnati v manj kot 2 minutah in vse bi moralo delovati v redu. Običajno je to posledica izgube električne energije na stanovanjskem prehodu.

GPIO

Če gre kaj narobe, je najboljši način, da vidite, kaj se dogaja, z naslednjim ukazom:

$ gpio readall

Prijavite se v malinovo pi iz MacBook -a

terminal je pripomoček MacBook: disk/aplikacije/pripomočki/terminal. Aplikacijo terminala hranim na pomolu.

Na MacBook -u odprite terminal

$ ssh pi@♣ malina-pi-ip ♣

♣ geslo ♣

Prijavite se v stanovanjski prehod

V MacBooku odprite brskalnik

URL = ♣ malina-pi-ip ♣

Prijava: ♣ geslo za prehod ♣

Dnevniki

Če gre kaj narobe, v teh dnevnikih preverite napake, opozorila ali druge težave.

$ cat/var/log/messages

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

Imenik MAC

Imenik na MacBooku, kjer so shranjene datoteke spletnih mest

Imenik MAC =/Uporabniki/♣ moj macbook ♣/Namizje/Domača stran z možnostjo wi-fi/Odpirač garažnih vrat z wifi/Spletna stran

Geslo

Geslo = ♣ malina-pi-geslo ♣

Uporabljeni RAM in CPU

$ top

CTRL-c za izhod

Domači imenik Raspberry Pi

$ pwd

/home/pi

Ime gostitelja Raspberry Pi

$ ime gostitelja

ime gostitelja = ♣ ime gostitelja ♣

Raspberry Pi IP

♣ malina-pi-ip ♣ = 192.168.1.93

Imenik spletnih mest Raspberry Pi

/var/www

Seco-larm preneha delovati

1. MAJA 2016 je Seco-larm prenehal delovati. Senzor je že tretjič prenehal delovati. Če želite to pravilno povedati, je fizični pin 15 na Raspberry Pi prenehal zaznavati vhod 3.3V. Poskusil sem fizične zatiče 1 in 17 3.3v, oba pa sta še vedno oddajala 3.3v. Prešel sem s fizičnega pin 15 na drug GPIO, fizični pin 16 (GPIO 4) in spet je začel delovati. Torej s Seco-larmom ni nič narobe. Zdi se, da je težava v Raspberry Pi GPIO.

GPIO 3, fizični pin 15 je mrtev. To je zelo dobra objava o tem, kako preizkusiti zatiče GPIO.

Iz GPIO 3 sem prešel na GPIO 4 in ustrezno spremenil kodo. Nisem prepričan, zakaj je GPIO pin prenehal delovati. Tu sta možna dva razloga:

  • Senzor Seco-larm imam nameščen, tako da ko so vrata zaprta, oddaja napetost 3,3 V. Garažna vrata se pogosteje zapirajo, kot so odprta. Morda pin GPIO ne more sprejeti bolj ali manj konstantnega vhoda 3.3v.
  • Napaka je sovpadala z izpadom električne energije, morda je prišlo do povečanja moči.

U-verse Residential Gateway

Imam AT&T U-verse z Residential Gateway, vendar bi morala delovati vsaka storitev.

Če se U-verse Gateway znova zažene ali izgubi moč, bo morda treba znova zagnati Raspberry Pi.

U-verse stanovanjski prehod Public IP = ♣ router's-public-ip ♣

Javni IP stanovanjskega prehoda U-verse se lahko spremeni, vendar se to zgodi zelo redko

Domača stran U-verse Residential Gateway = 192.168.1.254

SSID brezžične dostopne točke usmerjevalnika U-verse = ♣ ssid ♣

Prenos WiFi je počasnejši od pričakovanega

Spremenite usmerjevalnik na manj uporabljan kanal. Privzeto vsi ponudniki tokokrogov prilagodijo wifi vsakogar na kanal 1. Preklopite na manj uporabljan kanal, na primer na 11. Poskusite uporabiti liho število.

Opomba: Nekaj sosedov sem povedal, kaj sem naredil za izboljšanje wi-fi-ja in zdaj so vsi na 9 ali 11, zato sem se vrnil na 1. Vedno morate uporabiti lih kanal.

Odprite brskalnik.

Za U-verse v polje URL vnesite 192.168.1.254.

Kliknite Brezžična povezava in izberite kanal 6 ali 11.

Obstaja aplikacija za pametni telefon, imenovana wifi analyser. Eden od zaslonov prikazuje vse bližnje dostopne točke wifi, ki oddajajo na določenem kanalu. V moji okolici so vsi nastavljeni na 1. kanal.

Odklopite Raspberry Pi in nato obnovite napajanje

Priporočena: