Raspberry Pi 3 garázskapu nyitó: 15 lépés (képekkel)
Raspberry Pi 3 garázskapu nyitó: 15 lépés (képekkel)
Anonim
Raspberry Pi 3 garázskapu nyitó
Raspberry Pi 3 garázskapu nyitó

Ezt az oktathatót 2014 -ben hoztam létre. Azóta sok minden megváltozott. 2021 -ben itt frissítettem az intelligens garázskapu -nyitót.

Használjon Raspberry Pi -t és okostelefont egy garázskapu kinyitásához, bezárásához és megfigyeléséhez. Az ajtó kinyitását és bezárását a család mobiltelefonjaira telepített saját aláírású tanúsítványok biztosítják. Ha a garázsajtó nyitva van, amikor nem kellene, akkor küldjön szöveges üzenetet (SMS) egy mobiltelefonra.

A garázskapu 2014 vége óta folyamatosan használatban van. Az évek során igyekeztem folyamatosan frissíteni a módosításokat. Van egy melléklet, amely leírja az utasítások változásait.

Ennek a projektnek a céljai a következők:

  • Legyen tanulságos az első - nem terveztem ezt közzétenni, de sok kérés érkezett hozzám
  • Nyisson garázskaput egy szabványos távirányítóval
  • Nyisson ki egy garázskaput a falra szerelt ajtócsengő -garázsnyitóval
  • Nyisson ki egy garázskaput egy okostelefonnal
  • A garázskapu állapotát távolról figyelemmel kísérheti mobiltelefonon vagy laptopon keresztül (nyitva vagy zárva?)
  • Küldj szöveges üzenetet a mobilomra, ha az ajtó nyitva van, amikor be kell csukni
  • Tartsa biztonságban a garázskaput (pl. Áramkimaradás esetén az ajtó ne nyíljon ki)
  • Ne engedje, hogy a neten bárki más kinyissa az ajtót (kétirányú, önaláírt SSL-tanúsítvány)
  • Vezetékes kapcsolat helyett használjon WiFi -t
  • Használjon Raspberry Pi 3 -at

Ennek a garázskapu -nyitó megvalósításnak az alapja az Instructable: Raspberry Pi garázskapu -nyitóból származik. Eredetileg a B+ Raspberry Pi modellt használtam, majd a Raspberry Pi 2 B modellre költöztem, most pedig a Raspberry Pi 3 -at használja.

MacBook -ot használtam a Raspberry Pi -vel való kommunikációhoz, de bármilyen számítógép használható.

Nincs kényszerítő ok az eszköz építésére, de szórakoztató volt. Költséghatékonyabb vásárolni egyet. Hasonló eszköz körülbelül 130 dollárért vásárolható meg.

  • Emelő mester 828LM
  • Chamberlain MyQ $ 129
  • GoGo Gate 179 dollár
  • Iparos 100 dollár

Megjegyzések:

  • Az ásóba zárt szöveget, például ezt: „cserélje ki ezt”, egy tényleges értékkel kell helyettesíteni
  • Az Arduino aláhúzott kék szövege egy link. Ebben az esetben ez egy link a garázskapu nyitó arduino verziójához.
  • Megpróbáltam minden felhasznált forrást jóváírni. Elnézést kérek az esetleges mulasztásokért. A dokumentum nagy része mások munkáján alapul.
  • A $ azt a parancsot jelzi, amelyet a MacBook terminálablakában hajtanak végre, és általában a Raspberry Pi -n hajtják végre

1. lépés: Gyűjtse össze az alkatrészeket

Vásároljon vagy gyűjtsön össze alkatrészeket és szerszámokat (árak USD -ban).

  • Raspberry Pi 3 B modell Newark elem 14 $ 35
  • 5.2V 2.5A USB hálózati adapter az Amazon -tól 9,99 USD
  • Micro USB - USB kábel 6ft az Amazon -tól 7,99 USD
  • Tok az Amazon -tól 6,99 USD
  • SanDisk Ultra 16 GB-os microSDHC Class 10, adapterrel (SDSQUAN-016G-G4A) az Amazon-tól 8,99 USD
  • SunFounder 2 csatornás 5V relépajzs modul Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi számára - 6,79 $
  • 3x női-női jumper vezetékek. Fry's -ben vásárolt 4,95 dollárért.
  • Dinamikus DNS 40 USD évente 30 névért (dyn.com)
  • 1-Gang 18 cu. in Old Work Heavy Wall Switch és Outlet Box, 3,12 dollár
  • Ultra Pro Single Brush White Wall Plate, $ 7.88
  • SECO-LARM SM 226L, garázskapu-érzékelő, az ár széles körben változik, 9,99 USD az Amazon-on ingyenes szállítással
  • 50 láb szilárd termosztát vezeték, Home Depot vagy Lowe's, ~ 20 USD

Összesen: ~ 172,00 USD

A következő alkatrészeket, eszközöket és szolgáltatásokat kaptam:

  • CAT5 Ethernet kábel
  • Kis méretű vezeték, 6 láb hosszú
  • Phillips fejű csavarhúzó
  • Tű orrfogó
  • Dobozvágók
  • Ékszerész laposfejű csavarhúzó, a relé csavarjainak meglazításához szükséges
  • MacBook (PC is használható)
  • AT&T GigaPower (bármely internetszolgáltató használható)

2. lépés: A Raspberry Pi beállítása monitor vagy billentyűzet nélkül

A Raspberry Pi beállítása monitor vagy billentyűzet nélkül
A Raspberry Pi beállítása monitor vagy billentyűzet nélkül

Minden Raspberry Pi projekt valamilyen beállítást igényel. Szeretem ugyanazt az utasításkészletet használni, és ha szükséges, van egy hely az utasítások frissítésére.

Állítsa be a Raspberry Pi -t az alábbi utasításokkal:

A Raspberry Pi beállítása monitor vagy billentyűzet nélkül

A fenti utasítások a függelékben opcionális lépéseket tartalmaznak. Feltétlenül hajtsa végre a következő lépést:

Adjon hozzá ügyféloldali tanúsítványokat a webszerverekhez

Állítsa le a Raspberry Pi -t

$ sudo leállítás -h 0

Leállítás után távolítsa el

  • hálózati kábel
  • USB soros kábel

Ezekre már nem lesz szükség. Használja a wifit, az ssh -t és a Mac Book terminálablakát a parancsok futtatásához a Raspberry Pi -n.

Húzza ki a tápfeszültséget, majd dugja vissza a tápellátást, és a Raspberry pi újraindul.

3. lépés: Telepítse a Wiring Pi, az Apache és a PHP programokat

Telepítse a Wiring Pi -t

Nyisson meg egy terminál ablakot a Mac Bookban. Jelentkezzen be a Raspberry Pi -be, majd töltse le, fordítsa le és telepítse a Wiring Pi -t. Ez a szoftver lehetővé teszi a GPIO csapok vezérlését. Íme egy lépésről lépésre szóló útmutató:

wiringpi.com/download-and-install/

Íme az utasítások tömörített változata:

$ ssh pi@♣ málna-pi-ip ♣

jelszó: ♣ jelszó ♣ $ sudo apt-get install git-core $ git clone git: //git.drogon.net/wiringPi $ cd wiringPi $ git pull origin $./build

Futtassa a gpio parancsot a telepítés ellenőrzéséhez:

$ gpio -v

gpio verzió: 2.29 Copyright (c) 2012-2015 Gordon Henderson Ez egy ingyenes szoftver, abszolút NEM GARANCIA. Részletek típusa: gpio -garancia Raspberry Pi Részletek: Típus: Modell 2, Felülvizsgálat: 1.1, Memória: 1024 MB, Készítő: Sony [OV] Az eszközfa engedélyezve van. Ez a Raspberry Pi támogatja a felhasználói szintű GPIO hozzáférést. -> További részletekért lásd a kézikönyvet $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Név | Mód | V | Fizikai | V | Mód | Név | 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. cikk || 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 | Név | Mód | V | Fizikai | V | Mód | Név | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+

A fenti parancsok némi bizalmat adhatnak Önnek arról, hogy a wiringPi rendben működik.

Telepítse az Apache -t és a PHP -t

Futtassa a következő parancsokat:

$ cd..

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

A webszerver működésének ellenőrzéséhez nyisson meg egy böngészőt, és írja be az URL mezőbe:

♣ málna-pi-ip ♣

Az Apache alapértelmezett webhelye ezt válaszolja: "Működik!"

4. lépés: Weboldal

Nyisson meg egy terminál ablakot a Mac Bookban. Jelentkezzen be a Raspberry Pi szolgáltatásba, majd távolítsa el az alapértelmezett index.html fájlt, módosítsa a webhelykönyvtár engedélyeit, és szerkessze az index.php nevű fájlt.

$ ssh pi@♣ málna-pi-ip ♣

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

És írja be a következő kódot:

Garázsnyitó

Otthoni automatizálás

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

";} else {echo"

"; } ?>

Garázskapu nyitó Garázskapu nyitó kézikönyv zárva 1 nyitva 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} else {echo"

var13 ->

CTRL-o és ENTER a fájl írásához, és CTRL-x a szerkesztőből való kilépéshez.

Módosítsa a fájl engedélyeit

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

5. lépés: Webhelykép

Weboldal képe
Weboldal képe
Weboldal képe
Weboldal képe

Ragadjon meg egy nagy felbontású távoli garázskapu-nyitót az internetről. Módosítsa a képet a kívánt módon a Mac ecset segítségével. A fenti képen nagy felbontású Genie garázsnyitót használtak, málna pi logót adtak hozzá, és eltávolították a ledet.

Az egyik kép a háttér (remote-background.jpg), a másik pedig az aktív kép (remote-press.jpg).

A terv az volt, hogy gombnyomásra a led villogása helyett a málna villog. Egyszerűsítettem a honlapot.

Másolja a képeket a málna pi -be:

$ scp *-j.webp

jelszó: ♣ jelszó ♣

A webhelyen egyetlen nyomógomb található. Az ellenőrzéshez nyisson meg egy böngészőt, és írja be a ♣ málna-pi-ip ♣ parancsot. Az Apache alapértelmezett webhelye helyett, amely azt mondja: "Működik!", A gombnak kell megjelennie. Nyomd meg.

6. lépés: A webszerver távoli vezérlése

Annak érdekében, hogy a garázskapu -nyitó távoli helyről könnyen elérhető legyen, dinamikus DNS -nevet használok. Mert nem szeretek emlékezni az IP -címekre.

Ezzel a funkcióval beírom a ♣ dynamic-hostname ♣.getmyip.com címet a böngésző URL mezőjébe. Megjegyzés: Az otthoni útválasztók IP -címe előzetes értesítés nélkül megváltozhat, de ez ritkán fordul elő. A DynDNS használatát választottam. Tudnia kell az útválasztó nyilvános IP -címét.

U-Verse Router IP: Uvers-public-ip

Megtekintheti a gazdagépneveket és a DynDNS Pro -fiók adatait. Íme néhány tipp a kezdéshez:

  • Hozza létre dinamikus DNS -gazdagépnevét (1 /30):

    • ♣ dinamikus gazdagépnév ♣
    • Frissítő kulcs: ♣ dinamikus ip-frissítő kulcs ♣
  • Telepítsen egy frissítő klienst annak biztosítására, hogy a gazdagépneve mindig a helyes IP -címre mutasson.

    • Töltse le és telepítse a MacBook -ra
    • Az AT&T U-verses IP-címe ritkán változik, ezért a fenti frissítő bármikor futtatható, ha változik
    • Kövesse az utasításokat:

      • Fiók hozzáadása
      • Adja meg a felhasználónevet és a jelszót: ♣ dinamikus-ip-felhasználónév ♣ ♣ dinamikus-ip-jelszó ♣
      • Válassza ki a gazdagép nevét
      • Kattintson a Kijelölt gazdagépek konfigurálása elemre
      • A házigazdának aktívnak kell lennie
    • Állítsa be a hálózatot, hogy engedélyezze a hozzáférést a készülékhez az internetről. A Dyn varázsló segítségével néhány általános útmutatást találhat erre vonatkozóan, használhat erőforrásokat, például a PortForward.com webhelyet, vagy segítséget kérhet az eszköz gyártójától.

      • AT&T U-vers
      • Port továbbítás 2 vezetékes 3801HGV-hez-ez az AT&T U-Verse router. Az AT&T U-verse 5268ac útválasztón történő továbbítás módjáról lásd a Függelék frissítéseit.
      • Nyissa meg a böngészőt, és menjen a ♣ málna-pi-ip to oldalra
      • Jelszó: ♣ jelszó ♣
      • Beállítások
      • Tűzfal

        • Válassza a ♣ málna-pi-gazdagépnév ♣ lehetőséget
        • Kiszolgálók

          • Webszerver 80 -as portja
          • HTTPS szerver - 443 -as port
        • Hozzáadás
      • Megment

Ha ez megtörtént, a webszerver az internetről fog működni. Az ellenőrzéshez írja be a ♣ dynamic-hostname ♣ parancsot, és megjelenik a garázskapu-nyitó gomb.

7. lépés: Csatlakoztassa az áramkört a Raspberry Pi -hez

Csatlakoztassa az áramkört a Raspberry Pi -hez
Csatlakoztassa az áramkört a Raspberry Pi -hez

A megadott kódhoz (4. és 6. lépés) a GPIO 7 -es pin -t használtam. Véletlen, hogy a GPIO 7 ugyanaz, mint a wiringPi 7. pin. A PHP -kódban a huzalozási Pi pin -számokat használják, NEM a GPIO pin -számokat. Bármelyiket használhatja, de feltétlenül módosítsa a kódot.

Próbáltam csavart huzalt használni, de a relé nem tartja jól a csavart huzalt. Jobb a tömör huzal.

Első próbálkozásomkor létrehoztam három összekötő kábelt (nő-férfi).

  • Használjon három női -női áthidaló kábelt
  • Vágjon három darab szilárd huzalt kb.

    Csík 1/4 hüvelyk tömör huzal mindkét végén

  • Csatlakoztasson egy tömör vezetéket egy hüvelykábelbe.

Itt van egy jobb módja a csatlakozókábelek (nő-férfi) létrehozásának:

  • Csak tömör huzalt használjon
  • Vágjon le három 4 hüvelykes tömör huzalt
  • Csík 1/4 hüvelyk tömör huzal mindkét végén
  • Használjon női csatlakozócsapokat

    • Csúsztasson egy anyacsatlakozótűt a tömör huzal egyik végére és préselje be

      A hüvelycsap ne lazuljon el, forrasztás, ha szükséges

    • Csúsztassa a feszültségmentesítőt a csatlakozó csapra vagy a villanyszerelő szalaggal ellátott fedőtüskére

Csatlakoztassa a relét a pi -hez az ábra szerint:

  • Csatlakoztassa a kábel női végét a Raspberry Pi csaphoz.
  • Helyezze a tömör vezetéket a relébe.

8. lépés: Hozzon létre egy indítási szolgáltatást

A legtöbb relé, beleértve a megvásárolt relét is, a következőképpen működik:

  • Ha a jel be van kapcsolva, az áramkör kikapcsol.
  • Ha a jel ki van kapcsolva, az áramkör be van kapcsolva.

Ha a Raspberry Pi elveszíti az áramot, a relé rendelkezik egy biztonsági mechanizmussal, amely kikapcsolja az áramkört.

Probléma merülhet fel, amikor a Rapberry Pi és a relé visszaállítják az áramellátást, de mielőtt a Raspberry Pi befejezte a rendszerindítást, kapcsolja be a jelet, amely szükséges az áramkör kikapcsolásához. Reggel felébredhet nyitott garázsával és potenciálisan néhány új baráttal!

A relé azonban valójában nem inicializálódik, amíg a GPIO pin mód nincs beállítva ezzel a paranccsal: gpio mode 7 out. Továbbá, ha a GPIO pin bekapcsolt állapotba (gpio write 7 1), mielőtt beállítja a GPIO módot, a relé kikapcsolt állapotban marad.

Ha szeretné, hogy ez az inicializálás a rendszerindításkor fusson, és ne ébredjen fel új barátokra, használja a következő indítási parancsfájlt.

$ ssh pi@♣ málna-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Ezután illessze be ezt a szkriptet:

#! /bin/bash

# /etc/init.d/garagerelay # Hajtson végre bizonyos funkciókat, ha a rendszer "$ 1" indításkor kéri) echo "Indító relé" # Kapcsolja be a 7 kapcsolót, amely kikapcsolja a relét/usr/local/bin/gpio write 7 1 #Indítsa el a Gpio/usr/local/bin/gpio mód 7 kimenetét;; stop) echo "A gpio leállítása";; *) echo "Használat: /etc/init.d/garagerelay {start | stop}" exit 1;; esac kilépés 0

Mentéshez: CTRL-o, ENTER

A nano kilépéséhez nyomja meg a CTRL-x billentyűt

Fájl végrehajthatóvá tétele:

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

Most mondd meg a pi -nek, hogy futtassa ezt a szkriptet a rendszerindításkor:

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

(Megjegyzés: nyugodtan figyelmen kívül hagyhatja a "hiányzó LSB -címkék" figyelmeztetést.)

Győződjön meg arról, hogy az indítási szkript fut

$ sudo újraindítás

Nyisson meg egy böngészőt, és kattintson a megnyitóra. A relének kattannia kell.

9. lépés: Csatlakoztassa a Raspberry Pi -t a garázshoz

Csatlakoztassa a Raspberry Pi -t a garázshoz
Csatlakoztassa a Raspberry Pi -t a garázshoz

A Raspberry Pi mozgatásakor feltétlenül futtassa:

$ leállítás -h 0

Érdemes kikapcsolni a garázs áramellátását. Tehát a csengőnyitó nem áramütést okoz:). A valódi ok minden alkalommal, amikor rövidre zárja a vezetékeket, az ajtó felfelé és lefelé fog menni.

Csavarja ki a csavarokat a csengő típusú nyitóból, amely a csengőt a falhoz rögzíti.

Fúrjon lyukat a garázsból a csengőnyitó mögött a ház belsejébe. Texasban a Raspberry Pi -nek nem szabad a garázsban lennie, a garázs hőmérséklet -ingadozása a Raspberry Pi működési előírásain kívül esik.

Vezesse át a relé vezetékeit a lyukon (használjon kabáttartót).

Lazítsa meg mindkét csavart a csengőnyitó hátoldalán.

Csíkozza le a relé vezetékeinek mindkét végét: 1) kb. 1/8 "hüvelyk a relé oldaláról, és körülbelül ½" hüvelyk a csengő oldalán. Hajlítsa a huzal csengőoldalát egy fél hurokba, amely elég nagy ahhoz, hogy elférjen a hátsó csavar körül.

Csatlakoztasson egy relé vezetéket az ajtócsengő hátoldalán lévő minden csavarhoz, és húzza meg a csavart. A csatlakozók a képen láthatóak. Mivel a relé elszigeteli az áramkört, az irány nem is számít, melyik relé melyik csavarhoz van rögzítve.

10. lépés: Csatlakoztassa a Raspberry Pi-t a SECO-LARM-hoz

Csatlakoztassa a Raspberry Pi-t a SECO-LARM-hoz
Csatlakoztassa a Raspberry Pi-t a SECO-LARM-hoz
Csatlakoztassa a Raspberry Pi-t a SECO-LARM-hoz
Csatlakoztassa a Raspberry Pi-t a SECO-LARM-hoz

Mielőtt befejeztem volna a kódot, a családommal nyaraltunk, és megnyitottam a böngészőt. A böngészőm utolsó nézete a garázskapu -nyitó volt - az oldal frissült és a garázskapu kinyílt. Néhány nappal később felhívott a szomszéd, és megkérdezte, hogy a garázsajtó nyitva kell -e lennie? Szerencsére 500 kilométerről le tudtam zárni.

Ez a snafu kényszerített arra, hogy megváltoztassam a kódot, hogy ez ne történjen meg, és adjunk hozzá egy érzékelőt és a garázskapu állapotát a webhelyhez.

Ez egy link az eredeti utasításhoz az érzékelő hozzáadásához. Mindazonáltal, figyelembe véve mindent, ami már befejeződött, az érzékelő telepítése jelentősen leegyszerűsíthető, és a python használata helyett adjon hozzá néhány sornyi kódot az index.php fájlhoz.


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\hu.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