Vaarika Pi 3 garaažiukse avaja: 15 sammu (piltidega)
Vaarika Pi 3 garaažiukse avaja: 15 sammu (piltidega)
Anonim
Vaarika Pi 3 Garaažiukse avaja
Vaarika Pi 3 Garaažiukse avaja

Selle juhendi lõin 2014. aastal. Pärast seda on palju muutunud. Aastal 2021 uuendasin siin Smart Garage Door Openi.

Garaažiukse avamiseks, sulgemiseks ja jälgimiseks kasutage Raspberry Pi ja nutitelefoni. Ukse avamine ja sulgemine on kaitstud pere mobiiltelefonidesse installitud iseseisevate allkirjadega. Kui garaažiuks on lahti, kui see ei peaks olema, saatke mobiiltelefonile tekstisõnum (SMS).

Garaažiuks on olnud pidevas kasutuses alates 2014. aasta lõpust. Aastate jooksul olen püüdnud muudatusi ajakohastada. Juhendis on muudatusi kirjeldav lisa.

Selle projekti eesmärgid on järgmised:

  • Tehke oma esimene juhendatav - ma ei plaaninud seda postitada, kuid olen saanud palju taotlusi
  • Avage garaažiuks tavalise kaugjuhtimispuldiga
  • Avage garaažiuks seinale paigaldatud uksekellaga garaažiavajaga
  • Avage nutitelefoniga garaažiuks
  • Jälgige garaažiukse olekut eemalt mobiiltelefoni või sülearvuti kaudu (kas see on avatud või suletud?)
  • Saada tekstisõnum minu mobiiltelefonile, kui uks on avatud, kui see peaks olema suletud
  • Hoidke garaažiuks turvaliselt (nt toite kadumisel ei tohiks uks avaneda)
  • Ärge lubage kellelgi teisel võrgus olevat ust avada (kahesuunaline ise allkirjastatud SSL-sertifikaat)
  • Kasutage traadiga ühenduse asemel WiFi -ühendust
  • Kasutage Raspberry Pi 3

Selle garaažiukseavaja rakenduse alus tuletati kvartali poolt juhisest Instructable: Raspberry Pi Garage Door Opener. Algselt kasutasin mudelit B+ Raspberry Pi, seejärel kolisin Raspberry Pi 2 mudelile B ja nüüd kasutab see Raspberry Pi 3.

Kasutasin Raspberry Pi -ga suhtlemiseks MacBooki, kuid kasutada saab iga arvutit.

Selle seadme ehitamiseks pole kaalukaid põhjuseid, kuid see oli lõbus. Selle ostmine on tasuvam. Sarnast seadet saab osta umbes 130 USD eest.

  • Lift master 828LM
  • Chamberlain MyQ 129 dollarit
  • GoGo värav 179 dollarit
  • Käsitööline 100 dollarit

Märkused:

  • Tekst, mis on ümbritsetud labidaga, nagu see ♣ asenda-see ♣, tuleks asendada tegeliku väärtusega
  • Arduino allajoonitud sinine tekst on link. Sel juhul on see link garaažiukse avaja arduino versioonile.
  • Olen püüdnud krediteerida kõiki kasutatud allikaid. Vabandan võimalike tegematajätmiste pärast. Enamik sellest dokumendist põhineb teiste inimeste töödel.
  • $ tähistab käsku, mis täidetakse MacBooki terminaliaknas ja mida tavaliselt täidetakse Raspberry Pi -l

Samm: koguge osi

Ostke või koguge osi ja tööriistu (hinnad USA dollarites).

  • Vaarika Pi 3 mudel B Newarki element 14 $ 35
  • 5,2 V 2,5A USB toiteadapter Amazonist 9,99 dollarit
  • Micro USB -USB -kaabel 6 jalga Amazonist 7,99 dollarit
  • Korpus Amazonist 6,99 dollarit
  • SanDisk Ultra 16 GB microSDHC klass 10 koos adapteriga (SDSQUAN-016G-G4A) Amazonist 8,99 dollarit
  • SunFounder 2 kanaliga 5 V releekilbi moodul Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi jaoks - 6,79 dollarit
  • 3x naissoost-džemprijuhtmed. Ostetud Fry's 4,95 dollari eest.
  • Dünaamiline DNS 40 dollarit aastas 30 nime jaoks (dyn.com)
  • 1-jõuk 18 kuup. in. Vana töö raske seina lüliti ja väljalaskeava, 3,12 dollarit
  • Ultra Pro üheharja valge seinaplaat, 7,88 dollarit
  • SECO-LARM SM 226L, garaažiukseandur, hind varieerub suuresti, Amazonil 9,99 dollarit tasuta kohaletoimetamisega
  • 50 jalga tahke termostaadi juhe, Home Depot või Lowe's, ~ 20 dollarit

Minu kogusumma: ~ 172,00 dollarit

Mul olid järgmised osad, tööriistad ja teenused:

  • CAT5 Etherneti kaabel
  • Väike gabariit, 6 jalga pikk
  • Phillipsi kruvikeeraja
  • Nõela nina tangid
  • Karbilõikurid
  • Juveliiride lameda peaga kruvikeeraja, mis on vajalik relee kruvide vabastamiseks
  • MacBook (saab kasutada arvutit)
  • AT&T GigaPower (saab kasutada mis tahes Interneti -teenuse pakkujat)

Samm: seadistage Raspberry Pi ilma monitori või klaviatuurita

Seadistage Raspberry Pi ilma monitori või klaviatuurita
Seadistage Raspberry Pi ilma monitori või klaviatuurita

Kõik Raspberry Pi projektid nõuavad teatud tüüpi seadistamist. Mulle meeldib kasutada samu juhiseid ja vajadusel on mul üks koht nende juhiste värskendamiseks.

Seadistage Raspberry Pi, kasutades järgmisi juhiseid:

Seadistage Raspberry Pi ilma monitori või klaviatuurita

Ülaltoodud juhised sisaldavad lisas valikulisi samme. Tehke kindlasti järgmine samm:

Lisage veebiserveritele kliendipoolsed sertifikaadid

Lülita Raspberry Pi välja

$ sudo sulgemine -h 0

Pärast väljalülitamist eemaldage

  • Etherneti kaabel
  • USB jadakaabel

Neid pole enam vaja. Kasutage Mac Bookis wifi, ssh ja terminaliakent, et käsklusi Raspberry Pi peal käivitada.

Eemaldage toitejuhe ja ühendage toide uuesti sisse ning vaarika pi peaks taaskäivituma.

Samm: installige juhtmestik Pi, Apache ja PHP

Installige Wiring Pi

Avage Mac Bookis terminaliaken. Logige sisse Raspberry Pi, seejärel laadige alla, kompileerige ja installige Wiring Pi. See tarkvara võimaldab juhtida GPIO kontakte. Siin on samm-sammuline juhend:

wiringpi.com/download-and-install/

Siin on juhiste lühendatud versioon:

$ ssh pi@♣ vaarika-pi-ip ♣

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

Installi kontrollimiseks käivitage käsk gpio:

$ gpio -v

gpio versioon: 2.29 Autoriõigus (c) 2012-2015 Gordon Henderson See on tasuta tarkvara, millel pole absoluutselt mingit garantiid. Üksikasjade jaoks: gpio -garantii Raspberry Pi Üksikasjad: Tüüp: Mudel 2, Versioon: 1.1, Mälu: 1024 MB, Maker: Sony [OV] Seadmepuu on lubatud. See Raspberry Pi toetab kasutaja tasemel GPIO juurdepääsu. -> Vaadake lisateavet man-lehelt $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Nimi | Režiim | V | Füüsiline | V | Režiim | Nimi | 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 | VÄLJAS | 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 | Nimi | Režiim | V | Füüsiline | V | Režiim | Nimi | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+

Ülaltoodud käsud peaksid andma teile kindluse, et wiringPi töötab hästi.

Installige Apache ja PHP

Käivitage järgmised käsud:

$ cd..

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

Veebiserveri töö kontrollimiseks avage brauser ja sisestage URL -i kasti:

"Vaarika-pi-ip"

Apache vaikimisi veebisait vastab "See töötab!"

4. samm: veebisait

Avage Mac Bookis terminaliaken. Logige sisse Raspberry Pi, seejärel eemaldage vaikimisi fail index.html, muutke veebisaidi kataloogi õigusi ja muutke faili nimega index.php.

$ ssh pi@♣ vaarika-pi-ip ♣

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

Ja sisestage järgmine kood:

Garaaži avaja

Koduautomaatika

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

";} muu {kaja"

"; } ?>

Garaažiukse avaja Garaažiukse avamise käsiraamat suletud 1 avatud 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} else {echo"

var13 ->

Faili kirjutamiseks vajutage CTRL-o ja ENTER ning redaktorist väljumiseks CTRL-x.

Muutke faili õigusi

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

Samm: veebisaidi pilt

Veebisaidi pilt
Veebisaidi pilt
Veebisaidi pilt
Veebisaidi pilt

Haarake veebist kõrge eraldusvõimega garaažiukse kaugavaja. Muutke pilti nii, nagu soovite, kasutades Maci pintslit. Ülaltoodud pildil kasutati kõrge eraldusvõimega Genie Garage Openerit, lisati vaarika pi logo ja eemaldati LED.

Üks pilt on taust (remote-background.jpg) ja teine on aktiivne pilt (remote-press.jpg).

Plaan oli, et nupuvajutusel LED -i vilkumise asemel vilgub vaarikas. Lihtsustasin veebisaiti.

Kopeerige pildid vaarika pi:

$ scp *-j.webp

parool: ♣ parool ♣

Veebisaidil on üks nupp. Kontrollimiseks avage brauser ja sisestage ♣ vaarika-pi-ip ♣. Apache vaikimisi veebisaidi asemel, mis ütleb "See töötab!", Peaks nupp ilmuma. Vajutage seda.

Samm: kontrollige veebiserverit kaugjuhtimisega

Garaažiukseavaja juurde pääsemise hõlbustamiseks kaugest asukohast kasutan dünaamilist DNS -i nime. Sest mulle ei meeldi IP -aadresse meenutada.

Selle funktsiooni abil sisestan brauseri URL-i väljale ♣ dynamic-hostname ♣.getmyip.com. Märkus. Koduste ruuterite IP võib ilma ette teatamata muutuda, kuid seda juhtub harva. Valisin DynDNS -i kasutamise. Peate teadma oma ruuteri avalikku IP -aadressi.

U-Verse ruuteri IP: uvers-public-ip

Saate vaadata oma hostinimesid ja DynDNS Pro konto üksikasju. Siin on mõned näpunäited alustamiseks:

  • Looge oma dünaamilise DNS -i hostinimi (1 /30):

    • ♣ dünaamiline hostinimi ♣
    • Värskendusvõti: ♣ dünaamiline ip-värskendaja võti ♣
  • Installige värskendusklient, et teie hosti nimi oleks alati suunatud õigele IP -aadressile.

    • Laadige alla ja installige MacBookile
    • AT&T U-verse IP-d muutuvad harva, nii et ülaltoodud värskendajat saab käivitada alati, kui see muutub
    • Järgige juhiseid:

      • Lisada konto
      • Sisestage kasutajanimi ja parool: ♣ dynamic-ip-kasutajanimi ♣ ♣ dynamic-ip-password ♣
      • Valige hosti nimi
      • Klõpsake nuppu Konfigureeri valitud hoste
      • Peremees peaks olema aktiivne
    • Konfigureerige oma võrk nii, et see lubaks Internetist juurdepääsu teie seadmele. Võite kasutada meie Dyn Wizardit, et saada üldisi juhiseid selle kohta, kasutada ressursse, näiteks PortForward.com, või pöörduda abi saamiseks seadme tootja poole.

      • AT&T U-salm
      • Portide edastamine 2-juhtmelise 3801HGV jaoks-see on minu AT&T U-Verse ruuter. Vaadake lisa värskendusi, kuidas AT&T U-verse 5268ac ruuteril edasi edastada.
      • Avage brauser ja minge lehele ♣ vaarika-pi-ip ♣
      • Parool: ♣ parool ♣
      • Seaded
      • Tulemüür

        • Valige ♣ vaarika-pi-hostinimi ♣
        • Serverid

          • Veebiserveri port 80
          • HTTPS -server - port 443
        • Lisama
      • Salvesta

Kui see on tehtud, töötab veebiserver Internetist. Kinnitamiseks sisestage ♣ dynamic-hostname ♣ ja peaksite nägema garaažiukse avamise nuppu.

Samm: ühendage ahel Raspberry Pi -ga

Ühendage ahel Raspberry Pi -ga
Ühendage ahel Raspberry Pi -ga

Esitatud koodi jaoks (sammud 4 ja 6) kasutasin GPIO pin 7. See on juhus, et GPIO 7 on sama mis wiringPi pin 7. PHP -koodis kasutatakse juhtmestiku Pi pin -numbreid, MITTE GPIO PIN -numbreid. Võite kasutada ükskõik millist, kuid muutke kindlasti koodi.

Proovisin kasutada keerdtraati, kuid relee ei hoia keerdtraadil hästi. Tahke traat on parem.

Esimesel katsel lõin kolm ühenduskaablit (nais-mees).

  • Kasutage kolme naissoost naissoost hüppajakaablit
  • Lõika kolm tahket traati umbes 1 -tolliseks.

    Riba 1/4 tolli täisjuhtme mõlemast otsast

  • Sisestage üks täisjuhe ühte naissoost kaablisse.

Siin on parem viis ühenduskaablite (naissoost meestele) loomiseks:

  • Kasutage ainult täisjuhet
  • Lõigake kolm 4 -tollist tahket traati
  • Riba 1/4 tolli täisjuhtme mõlemast otsast
  • Kasutage naissoost ühendusnõelu

    • Lükake üks naissoost ühendusotsik täisjuhtme ühele otsale ja suruge kinni

      Emaste tihvt ei tohiks lahti tulla, vajadusel jootma

    • Lükake pinge leevendaja üle naist ühendava tihvti või kattepoldi elektrikuteibiga

Ühendage relee pi külge, nagu on näidatud diagrammil:

  • Ühendage kaabli naissoost otsik Raspberry Pi tihvtiga.
  • Sisestage pidev traat releesse.

8. toiming: looge käivitusteenus

Enamik releed, sealhulgas ostetud, töötavad järgmiselt:

  • Kui signaal on sisse lülitatud, jääb vooluring välja.
  • Kui signaal on välja lülitatud, on ahel sisse lülitatud.

Kui Raspberry Pi kaotab toite, on releel turvamehhanism, mis hoiab vooluringi VÄLJA.

Probleem võib ilmneda siis, kui Rapberry Pi ja relee taastavad toite, kuid enne kui Raspberry Pi on käivitamise lõpetanud, et lülitada signaal sisse, mis peab ahela välja lülitama. Võiksite hommikul ärgata avatud garaaži ja mõne uue sõbraga!

Kuid relee ei initsialiseeru enne, kui GPIO pin -režiim on seatud selle käsuga: gpio mode 7 out. Lisaks, kui GPIO pin enne GPIO režiimi seadistamist on sisse lülitatud (gpio write 7 1), jääb relee pärast lähtestamist välja.

Selle käivitamise käivitamiseks ja uute sõprade peale ärkamiseks kasutage järgmist käivitusskripti.

$ ssh pi@♣ vaarika-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Seejärel kleepige see skript:

#! /bin/bash

# /etc/init.d/garagerelay # Tehke spetsiifilisi funktsioone, kui süsteemijuhtum "$ 1" seda nõuab) echo "Käivitusrelee" # Lülitage 7 sisse, mis hoiab relee välja lülitatud/usr/local/bin/gpio write 7 1 #Käivitage Gpio/usr/local/bin/gpio mode 7 out;; stop) kaja "Stopp gpio";; *) kaja "Kasutus: /etc/init.d/garagerelay {start | stop}" väljumine 1;; esac väljumine 0

Salvestamiseks: CTRL-o, ENTER

Nanost väljumiseks vajutage klahvikombinatsiooni CTRL-x

Muutke fail käivitatavaks:

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

Nüüd öelge oma pi -le käivitada see skript käivitamisel:

$ sudo update -rc.d -f garaažirelee käivitamine 4

(Märkus: hoiatust "puuduvad LSB -sildid" võite ohutult ignoreerida.)

Veenduge, et käivitamisskript töötab

$ sudo taaskäivitamine

Avage brauser ja klõpsake avajal. Relee peaks klõpsama.

Samm: kinnitage Raspberry Pi garaaži

Kinnitage Raspberry Pi garaaži külge
Kinnitage Raspberry Pi garaaži külge

Raspberry Pi liigutamisel jookse kindlasti:

$ sulgemine -h 0

Võib -olla soovite garaaži toite välja lülitada. Niisiis, uksekella avaja ei löö teid elektrilöögiga:). Tegelik põhjus on see, et iga kord, kui juhtmeid lühistate, läheb uks üles ja alla.

Keerake seinakruvid lahti uksekella tüüpi avajast, mis kinnitab uksekella seina külge.

Torkage garaažist uksekella avamise tagant auk maja sisse. Texases ei tohiks Raspberry Pi garaažis olla, garaaži temperatuuri kõikumine on väljaspool Raspberry Pi tööpõhimõtteid.

Viige relee juhtmed läbi augu (kasutage riidepuu).

Keerake lahti mõlemad uksekella avamise tagaküljel olevad kruvid.

Eemaldage relee juhtmete mõlemad otsad: 1) umbes 1/8 tolli relee küljest ja umbes ½ tolli uksekella küljelt. Painutage traadi uksekella pool pooleks aasaks, mis on piisavalt suur, et mahuks ümber tagakülje kruvi.

Ühendage üks releetraat iga uksekella tagaküljel asuva kruviga ja keerake kruvi kinni. Ühendused on sellised nagu pildil. Kuna relee isoleerib vooluringi, pole suunal isegi vahet, milline relee millise kruvi külge on kinnitatud.

Samm: kinnitage Raspberry Pi SECO-LARM-i külge

Kinnitage Raspberry Pi SECO-LARM-i külge
Kinnitage Raspberry Pi SECO-LARM-i külge
Kinnitage Raspberry Pi SECO-LARM-i külge
Kinnitage Raspberry Pi SECO-LARM-i külge

Enne koodi lõpetamist olime perega puhkusel ja avasin brauseri. Minu brauseri viimane vaade oli garaažiukseavaja - leht värskendati ja garaažiuks avati. Mõni päev hiljem helistas naaber ja küsis, kas garaažiuks peaks olema lahti? Õnneks suutsin selle 500 miili kauguselt sulgeda.

See snafu sundis mind koodi muutma, et seda ei juhtuks, ning lisama veebisaidile anduri ja garaažiukse oleku.

See on link anduri lisamise originaaljuhendile. Arvestades aga kõike, mis on juba lõpetatud, saab anduri paigaldamist oluliselt lihtsustada ja pythoni kasutamise asemel lisada paar rida koodi saidile index.php.


Fatal error: Uncaught Error: Call to undefined function exec() in W:\www\langs\.php-gen-lang\v3-core\macros.php(127) : eval()'d code:518 Stack trace: #0 W:\www\langs\.php-gen-lang\v3-core\macros.php(127): eval() #1 W:\www\langs\.php-gen-lang\v3-core\index-global.php(231): Macros->macros_parse('<!DOCTYPE html>...') #2 W:\www\langs\howwhatproduce.com\et.howwhatproduce.com\index.php(9): require_once('W:\\www\\langs\\.p...') #3 {main} thrown in W:\www\langs\.php-gen-lang\v3-core\macros.php(127) : eval()'d code on line 518