
Satura rādītājs:
- 1. darbība: apkopojiet detaļas
- 2. darbība: iestatiet Raspberry Pi bez monitora vai tastatūras
- 3. darbība: instalējiet Wiring Pi, Apache un PHP
- 4. solis: vietne
- 5. darbība: vietnes attēls
- 6. darbība: attālināti kontrolējiet tīmekļa serveri
- 7. solis: savienojiet ķēdi ar Raspberry Pi
- 8. darbība: izveidojiet startēšanas pakalpojumu
- 9. darbība. Piestipriniet Raspberry Pi garāžai
- 10. darbība: pievienojiet Raspberry Pi SECO-LARM
- 11. darbība: nosūtiet brīdinājumu, ja durvis ir atvērtas, kad tās ir jāaizver
- 12. solis: ievietojiet Raspberry Pi slepenā grāmatā
- 13. solis: Pielikums: Atsauces
- 14. darbība. Pielikums: Atjauninājumi
- 15. solis: Pielikums: Traucējummeklēšana
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-06-01 06:09

Es izveidoju šo pamācību 2014. gadā. Kopš tā laika daudz kas ir mainījies. 2021. gadā šeit atjaunināju viedās garāžas durvju atvērēju.
Izmantojiet Raspberry Pi un viedtālruni, lai atvērtu, aizvērtu un uzraudzītu garāžas durvis. Durvju atvēršana un aizvēršana tiek nodrošināta, izmantojot pašparakstītus sertifikātus, kas instalēti ģimenes mobilajos tālruņos. Ja garāžas durvis ir atvērtas, kad tam nevajadzētu būt, nosūtiet īsziņu (SMS) uz mobilo tālruni.
Garāžas durvis ir nepārtraukti izmantotas kopš 2014. gada beigām. Gadu gaitā esmu centies atjaunināt izmaiņas. Ir pielikums, kurā aprakstītas pamācības izmaiņas.
Šī projekta mērķi ir:
- Padariet savu pirmo pamācāmo - es neplānoju to publicēt, bet esmu saņēmis daudz pieprasījumu
- Atveriet garāžas durvis ar standarta tālvadības pulti
- Atveriet garāžas durvis ar pie sienas piestiprinātu durvju zvana garāžas atvērēju
- Atveriet garāžas durvis, izmantojot viedtālruni
- Uzraugiet garāžas durvju statusu attālināti, izmantojot mobilo tālruni vai klēpjdatoru (vai tās ir atvērtas vai aizvērtas?)
- Nosūtiet īsziņu uz manu mobilo tālruni, ja durvis ir atvērtas, kad tās ir jāaizver
- Glabājiet garāžas durvis drošas (piemēram, ja strāvas zudums ir, durvis nedrīkst atvērties)
- Neļaujiet nevienam citam tīklā atvērt durvis (divvirzienu pašparakstīts SSL sertifikāts)
- Vadu savienojuma vietā izmantojiet WiFi
- Izmantojiet Raspberry Pi 3
Šīs garāžas durvju atvēršanas ieviešanas pamats tika iegūts no Instructable: Raspberry Pi garāžas durvju atvērēja. Sākotnēji es izmantoju modeli B+ Raspberry Pi, pēc tam pārcēlos uz Raspberry Pi 2 modeli B, un tagad tas izmanto Raspberry Pi 3.
Es izmantoju MacBook, lai sazinātos ar Raspberry Pi, taču var izmantot jebkuru datoru.
Nav pārliecinoša iemesla veidot šo ierīci, bet tas bija jautri. Ir izdevīgāk to iegādāties. Līdzīgu ierīci var iegādāties par aptuveni 130 USD.
- Pacelšanas meistars 828LM
- Chamberlain MyQ 129 ASV dolāri
- GoGo vārti 179 ASV dolāri
- Amatnieks 100 ASV dolāri
Piezīmes:
- Teksts, kas ievietots lāpstās, piemēram, šis “aizstāt-šis”, jāaizstāj ar faktisko vērtību
- Arduino pasvītrots zils teksts ir saite. Šajā gadījumā tā ir saite uz garāžas durvju atvērēja arduino versiju.
- Esmu mēģinājis ieskaitīt katru izmantoto avotu. Atvainojos par izlaidumu. Lielākā daļa šī dokumenta ir balstīta uz citu cilvēku darbu.
- $ norāda komandu, kas izpildīta MacBook termināļa logā un parasti tiek izpildīta Raspberry Pi
1. darbība: apkopojiet detaļas
Pērciet vai savāciet detaļas un instrumentus (cenas USD).
- Raspberry Pi 3 modelis B Newark elements 14 $ 35
- 5.2V 2.5A USB strāvas adapteris no Amazon 9,99 ASV dolāri
- Mikro USB uz USB kabeli 6 pēdas no Amazon 7,99 ASV dolāri
- Korpuss no Amazon 6,99 USD
- SanDisk Ultra 16 GB microSDHC 10. klase ar adapteri (SDSQUAN-016G-G4A) no Amazon $ 8,99
- SunFounder 2 kanālu 5V releja vairoga modulis Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - 6,79 ASV dolāri
- 3x sieviešu un sieviešu džemperu vadi. Pirkts Fry's par 4,95 USD.
- Dinamiskais DNS 40 USD gadā 30 vārdiem (dyn.com)
- 1-banda 18 kub. collas Old Work Heavy Wall Switch un Outlet Box, 3,12 ASV dolāri
- Ultra Pro viena suka balta sienas plāksne, 7,88 ASV dolāri
- SECO-LARM SM 226L, garāžas durvju sensors, cena ļoti atšķiras, 9,99 ASV dolāri Amazon ar bezmaksas piegādi
- 50 pēdu cietā termostata stieples, Home Depot vai Lowe's, ~ 20 USD
Mana kopējā summa: ~ 172,00 USD
Man bija šādas detaļas, rīki un pakalpojumi:
- CAT5 Ethernet kabelis
- Maza izmēra vads, 6 pēdas garš
- Phillips galvas skrūvgriezis
- Adatu deguna knaibles
- Kastes griezēji
- Juvelieru plakangalvas skrūvgriezis, nepieciešams atskrūvēt releja skrūves
- MacBook (var izmantot datoru)
- AT&T GigaPower (var izmantot jebkuru interneta pakalpojumu sniedzēju)
2. darbība: iestatiet Raspberry Pi bez monitora vai tastatūras

Visiem Raspberry Pi projektiem ir nepieciešama noteikta veida iestatīšana. Man patīk izmantot to pašu instrukciju kopu, un, ja nepieciešams, ir viena vieta, kur šīs instrukcijas atjaunināt.
Iestatiet Raspberry Pi, izmantojot tālāk norādītās instrukcijas.
Iestatiet Raspberry Pi bez monitora vai tastatūras
Iepriekš minētie norādījumi papildinājumā ietver izvēles darbības. Noteikti veiciet šo darbību:
Pievienojiet klienta puses sertifikātus tīmekļa serveriem
Izslēdziet Raspberry Pi
$ sudo izslēgšana -h 0
Pēc izslēgšanas noņemiet
- Ethernet kabelis
- USB seriālais kabelis
Tie vairs nebūs vajadzīgi. Izmantojiet wifi, ssh un termināļa logu Mac Book, lai palaistu komandas Raspberry Pi.
Atvienojiet strāvu un atkal pievienojiet strāvu, un aveņu pi vajadzētu atsāknēt.
3. darbība: instalējiet Wiring Pi, Apache un PHP
Instalējiet Wiring Pi
Atveriet Mac Book termināļa logu. Piesakieties Raspberry Pi, pēc tam lejupielādējiet, apkopojiet un instalējiet Wiring Pi. Šī programmatūra ļauj kontrolēt GPIO tapas. Šeit ir soli pa solim sniegts ceļvedis:
wiringpi.com/download-and-install/
Šeit ir saīsināta instrukciju versija:
$ ssh pi@♣ aveņu-pi-ip ♣
parole: ♣ parole ♣ $ sudo apt-get install git-core $ git clone git: //git.drogon.net/wiringPi $ cd wiringPi $ git pull origin $./build
Palaidiet komandu gpio, lai pārbaudītu instalāciju:
$ gpio -v
gpio versija: 2.29 Autortiesības (c) 2012-2015 Gordons Hendersons Šī ir bezmaksas programmatūra, kurai PILNĪGI NAV GARANTIJAS. Sīkākai informācijai par tipu: gpio -garantija Raspberry Pi Sīkāka informācija: Tips: 2. modelis, Pārskatīšana: 1.1, Atmiņa: 1024 MB, Izgatavotājs: Sony [OV] Ierīču koks ir iespējots. Šis Raspberry Pi atbalsta lietotāja līmeņa GPIO piekļuvi. -> Sīkāku informāciju skatiet man-page $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Nosaukums | Režīms | V | Fiziskā | V | Režīms | Nosaukums | 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 | ĀRĀ | 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 | Nosaukums | Režīms | V | Fiziskā | V | Režīms | Nosaukums | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+
Iepriekš minētajām komandām vajadzētu dot zināmu pārliecību, ka wiringPi darbojas labi.
Instalējiet Apache un PHP
Palaidiet šādas komandas:
$ cd..
$ sudo apt-get update $ sudo apt-get install apache2 php5 libapache2-mod-php5
Lai pārbaudītu tīmekļa servera darbību, atveriet pārlūkprogrammu un URL lodziņā ievadiet:
"Aveņu-pi-ip"
Apache noklusējuma vietne atbild ar "Tas darbojas!"
4. solis: vietne
Atveriet Mac Book termināļa logu. Piesakieties Raspberry Pi, pēc tam noņemiet noklusējuma failu index.html, mainiet atļaujas vietnes direktorijā un rediģējiet failu ar nosaukumu index.php.
$ ssh pi@♣ aveņu-pi-ip ♣
parole: ♣ parole ♣ $ sudo rm /var/www/index.html $ sudo chown pi: root/var/www $ sudo nano /var/www/index.php
Un ievadiet šādu kodu:
Garāžas atvērējs
Mājas automatizācija |
---|
Garāžas durvju atvērējs | Garāžas durvju atvēršanas rokasgrāmata | slēgts 1 | atvērt 0 |
CTRL-o un ENTER, lai rakstītu failu, un CTRL-x, lai izietu no redaktora.
Mainīt faila atļaujas
$ sudo chmod 664 /var/www/index.php
5. darbība: vietnes attēls


Paņemiet no tīmekļa augstas izšķirtspējas tālvadības garāžas durvju atvērēju. Mainiet attēlu, kā vēlaties, izmantojot Mac otu. Iepriekš redzamajā attēlā tika izmantots augstas izšķirtspējas džinsu garāžas atvērējs, tika pievienots aveņu pi logotips un noņemts LED.
Viens attēls ir fons (remote-background.jpg), bet otrs ir aktīvais attēls (remote-press.jpg).
Plāns bija tāds, ka, nospiežot pogu, tā vietā, lai mirgotu gaismas diode, aveņu mirgot. Vienkāršoju vietni.
Kopējiet attēlus aveņu pi:
$ scp *-j.webp
parole: ♣ parole ♣
Tīmekļa vietnei ir viena poga. Lai pārbaudītu, atveriet pārlūkprogrammu un ievadiet ♣ aveņu-pi-ip ♣. Apache noklusējuma vietnes vietā, kurā teikts "Tas darbojas!", Pogai vajadzētu parādīties. Nospiediet to.
6. darbība: attālināti kontrolējiet tīmekļa serveri
Lai atvieglotu piekļuvi garāžas durvju atvērējam no attāluma, es izmantoju dinamisku DNS nosaukumu. Jo man nepatīk atcerēties IP adreses.
Izmantojot šo funkciju, pārlūkprogrammas URL laukā ievadu ♣ dynamic-hostname ♣.getmyip.com. Piezīme. IP mājas maršrutētājos var mainīties bez iepriekšēja brīdinājuma, taču tas notiek reti. Es izvēlējos izmantot DynDNS. Jums būs jāzina maršrutētāja publiskā IP adrese.
U-Verse Router IP: Uvers-public-ip
Jūs varat apskatīt savus resursdatora nosaukumus un DynDNS Pro konta informāciju. Šeit ir daži padomi, kā sākt:
-
Izveidojiet savu dinamiskā DNS resursdatora nosaukumu (1 no 30):
- ♣ dinamiskais saimniekdatora nosaukums ♣
- Atjauninātāja atslēga: ♣ dinamiskā ip-atjauninātāja atslēga ♣
-
Instalējiet atjaunināšanas klientu, lai nodrošinātu, ka jūsu saimniekdatora nosaukums vienmēr tiek norādīts uz pareizo IP adresi.
- Lejupielādējiet un instalējiet MacBook
- AT&T U verses IP reti mainās, tāpēc iepriekš minēto atjauninātāju var palaist ikreiz, kad tas mainās
-
Izpildiet norādījumus:
- Pievienot kontu
- Ievadiet lietotājvārdu un paroli: ♣ dynamic-ip-username ♣ ♣ dynamic-ip-password ♣
- Izvēlieties saimniekdatora nosaukumu
- Noklikšķiniet uz Konfigurēt atlasītos saimniekdatorus
- Saimniekam jākļūst aktīvam
-
Konfigurējiet tīklu, lai tas ļautu piekļūt jūsu ierīcei no interneta. Varat izmantot mūsu Dyn vedni, lai iegūtu dažus vispārīgus norādījumus, kā to izdarīt, izmantot tādus resursus kā PortForward.com vai sazināties ar ierīces ražotāju.
- AT&T U-dzejolis
- Portu pāradresācija 2 vadu 3801HGV-tas ir mans AT&T U-Verse maršrutētājs. Skatiet atjauninājumus pielikumā, lai uzzinātu, kā pārsūtīt uz AT&T U-verse 5268ac maršrutētāju.
- Atveriet pārlūkprogrammu un dodieties uz ♣ aveņu-pi-ip ♣
- Parole: ♣ parole ♣
- Iestatījumi
-
Ugunsmūris
- Izvēlieties ♣ aveņu-pi-saimniekdatora nosaukums ♣
-
Serveri
- Tīmekļa servera ports 80
- HTTPS serveris - 443. ports
- Pievienot
- Saglabāt
Kad tas ir izdarīts, tīmekļa serveris strādās no interneta. Lai pārbaudītu, ievadiet ♣ dynamic-hostname ♣, un jums vajadzētu redzēt garāžas durvju atvēršanas pogu.
7. solis: savienojiet ķēdi ar Raspberry Pi

Sniegtajam kodam (4. un 6. darbība) es izmantoju GPIO pin 7. Tā ir nejaušība, ka GPIO 7 ir tas pats, kas wiringPi pin 7. PHP kodā tiek izmantoti elektroinstalācijas Pi tapas, nevis GPIO pin numuri. Jūs varat izmantot jebkuru, kuru vēlaties, taču noteikti nomainiet kodu.
Es mēģināju izmantot savītu stiepli, bet relejs slikti turas pie savītas stieples. Labāka ir cieta stieple.
Pirmajā mēģinājumā es izveidoju trīs savienojošos kabeļus (no sievietes līdz vīrietim).
- Izmantojiet trīs džemperus no sievietēm līdz sievietēm
-
Izgrieziet trīs cietās stieples gabalus līdz apmēram 1 collai.
Noņemiet 1/4 collas abos cietā stieples galos
- Ievietojiet vienu cietu vadu vienā sieviešu džemperī.
Šeit ir labāks veids, kā izveidot savienojošos kabeļus (no sievietes līdz vīrietim):
- Izmantojiet tikai cietu vadu
- Izgrieziet trīs 4 collu cietas stieples gabalus
- Noņemiet 1/4 collas cietā stieples abos galos
-
Izmantojiet sieviešu savienojošās tapas
-
Iebīdiet vienu savienojošo tapu vienā cietā stieples galā un gofrējiet
Sieviešu tapa nedrīkst atbrīvoties, ja nepieciešams, pielodējiet
- Ar elektriķa lenti pārbīdiet sasprindzinājuma sliedi pāri savienojošajai tapai vai vāka tapai
-
Pievienojiet releju pie pi, kā parādīts diagrammā:
- Savienojiet kabeļa galu ar Raspberry Pi tapu.
- Ievietojiet relejā cieto vadu.
8. darbība: izveidojiet startēšanas pakalpojumu
Lielākā daļa releju, ieskaitot iegādāto, darbojas šādi:
- Kad signāls ir ieslēgts, ķēde paliek izslēgta.
- Kad signāls ir izslēgts, ķēde ir ieslēgta.
Ja Raspberry Pi zaudē enerģiju, relejam ir drošības mehānisms, kas izslēdz ķēdi.
Problēma var rasties, kad tiek atjaunota Rapberry Pi un releja jauda, bet pirms Raspberry Pi ir pabeidzis sāknēšanu, lai ieslēgtu signālu, kas ir nepieciešams, lai ķēde tiktu izslēgta. Jūs varētu pamosties no rīta ar atvērtu garāžu un, iespējams, dažiem jauniem draugiem!
Tomēr relejs faktiski netiek inicializēts, kamēr GPIO pin režīms nav iestatīts, izmantojot šo komandu: gpio mode 7 out. Turklāt, ja pirms GPIO režīma iestatīšanas GPIO spraudnis ir ieslēgts (gpio write 7 1), relejs paliks izslēgts.
Lai šī inicializācija darbotos sāknēšanas laikā un nepamostos no jauniem draugiem, izmantojiet šādu starta skriptu.
$ ssh pi@♣ aveņu-pi-ip ♣
$ sudo nano /etc/init.d/garagerelay
Pēc tam ielīmējiet šo skriptu:
#! /bin/bash
$ 1 #Start Gpio/usr/local/bin/gpio mode 7 out;; stop) echo "Stopping gpio";; *) echo "Lietošana: /etc/init.d/garagerelay {start | stop}" izeja 1;; esac izeja 0
Lai saglabātu: CTRL-o, ENTER
Lai izietu no nano, nospiediet taustiņu kombināciju CTRL-x
Padariet failu izpildāmu:
$ sudo chmod +x /etc/init.d/garagerelay
Tagad pasakiet savam pi, lai palaistu šo skriptu sāknēšanas laikā:
$ sudo update -rc.d -f garagerelay start 4
(Piezīme. Jūs varat droši ignorēt brīdinājumu "trūkstošie LSB tagi".)
Pārliecinieties, vai startēšanas skripts darbojas
$ sudo atsāknēšana
Atveriet pārlūkprogrammu un noklikšķiniet uz atvērēja. Relejam vajadzētu noklikšķināt.
9. darbība. Piestipriniet Raspberry Pi garāžai

Pārvietojot Raspberry Pi, noteikti palaidiet:
$ slēgšana -h 0
Iespējams, vēlēsities izslēgt garāžas barošanu. Tātad, durvju zvana atvērējs nerada elektriskās strāvas triecienu:). Patiesais iemesls ir tas, ka katru reizi, kad saīsināt vadus, durvis iet uz augšu un uz leju.
Atskrūvējiet sienas skrūves no durvju zvana tipa atvērēja, kas piestiprina durvju zvanu pie sienas.
Ieduriet caurumu no garāžas aiz durvju zvana atvērēja līdz mājas iekšpusē. Teksasā Raspberry Pi nedrīkst atrasties garāžā, garāžas temperatūras atšķirības ir ārpus Raspberry Pi darbības specifikācijām.
Izlaidiet releja vadus caur caurumu (izmantojiet mēteļa pakaramo).
Atskrūvējiet abas skrūves durvju zvana atvērēja aizmugurē.
Noņemiet abus releja vadu galus: 1) apmēram 1/8 collas no releja puses un apmēram ½ collas durvju zvana pusē. Salieciet stieples durvju zvana pusi puscilpā, kas ir pietiekami liela, lai ietilptu ap aizmugurējo skrūvi.
Pievienojiet vienu releja vadu katrai skrūvei durvju zvana aizmugurē un pievelciet skrūvi. Savienojumi ir tādi, kā parādīts attēlā. Tā kā relejs izolē ķēdi, virzienam pat nav nozīmes, kurš relejs ir piestiprināts pie kādas skrūves.
10. darbība: pievienojiet Raspberry Pi SECO-LARM


Pirms es pabeidzu kodu, mēs ar ģimeni bijām atvaļinājumā, un es atvēru pārlūkprogrammu. Mans pārlūkprogrammas pēdējais skats bija uz garāžas durvju atvērēju - lapa tika atsvaidzināta un garāžas durvis tika atvērtas. Pēc dažām dienām piezvanīja kaimiņš un jautāja, vai garāžas durvīm jābūt atvērtām? Par laimi, es to varēju aizvērt no 500 jūdžu attāluma.
Šis snafu piespieda mani mainīt kodu, lai tas nenotiktu, un pievienot vietnei sensoru un garāžas durvju stāvokli.
Šī ir saite uz oriģinālo instrukciju, kā pievienot sensoru. Tomēr, ņemot vērā visu, kas jau ir pabeigts, sensora uzstādīšanu var ievērojami vienkāršot, un tā vietā, lai izmantotu python, pievienojiet pāris koda rindiņas indeksam.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\lv.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