
Sisällysluettelo:
- Vaihe 1: Kerää osat
- Vaihe 2: Asenna Raspberry Pi ilman näyttöä tai näppäimistöä
- Vaihe 3: Asenna Wiring Pi, Apache ja PHP
- Vaihe 4: Verkkosivusto
- Vaihe 5: Verkkosivuston kuva
- Vaihe 6: Hallitse verkkopalvelinta etänä
- Vaihe 7: Kytke piiri Raspberry Pi -laitteeseen
- Vaihe 8: Luo käynnistyspalvelu
- Vaihe 9: Kiinnitä Raspberry Pi autotalliin
- Vaihe 10: Kiinnitä Raspberry Pi SECO-LARM -laitteeseen
- Vaihe 11: Lähetä hälytys, jos ovi on auki, kun sen pitäisi olla kiinni
- Vaihe 12: Laita Raspberry Pi salaiseen kirjaan
- Vaihe 13: Liite: Viitteet
- Vaihe 14: Liite: Päivitykset
- Vaihe 15: Liite: Vianetsintä
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-06-01 06:09

Luin tämän ohjeen vuonna 2014. Paljon on muuttunut sen jälkeen. Vuonna 2021 päivitin älykkään autotallin ovenavaajan täällä.
Avaa, sulje ja seuraa autotallin ovea Raspberry Pi: n ja älypuhelimen avulla. Oven avaaminen ja sulkeminen varmistetaan perheen matkapuhelimiin asennetuilla itse allekirjoitetuilla varmenteilla. Jos autotallin ovi on auki, kun sen ei pitäisi olla, lähetä tekstiviesti (SMS) matkapuhelimeen.
Autotallin ovi on ollut jatkuvassa käytössä vuoden 2014 lopusta lähtien. Vuosien mittaan olen yrittänyt pitää muutokset ajan tasalla. On liite, jossa kuvataan ohjeiden muutokset.
Tämän projektin tavoitteet ovat:
- Tee ensimmäinen opettavainen - en aikonut julkaista tätä, mutta olen saanut monia pyyntöjä
- Avaa autotallin ovi tavallisella kaukosäätimellä
- Avaa autotallin ovi seinälle asennetulla ovikellon autotallinavaajalla
- Avaa autotallin ovi älypuhelimella
- Seuraa autotallin oven tilaa etänä matkapuhelimen tai kannettavan tietokoneen kautta (onko se auki vai kiinni?)
- Lähetä tekstiviesti matkapuhelimeeni, jos ovi on auki, kun se pitäisi sulkea
- Pidä autotallin ovi turvassa (esim. Sähkökatkon sattuessa oven ei pitäisi avautua)
- Älä anna verkon muiden avata ovea (kaksisuuntainen itse allekirjoitettu SSL-varmenne)
- Käytä WiFi -yhteyttä langallisen yhteyden sijasta
- Käytä Raspberry Pi 3
Tämän autotallin ovenavaajan toteutuksen perusta on peräisin Quartarianin Instructable: Raspberry Pi -autotallin ovenavaajastä. Käytin alun perin mallia B+ Raspberry Pi, sitten Raspberry Pi 2 -mallia B, ja nyt se käyttää Raspberry Pi 3: ta.
Käytin MacBookia kommunikoidaksesi Raspberry Pi: n kanssa, mutta mitä tahansa tietokonetta voidaan käyttää.
Ei ole pakottavaa syytä rakentaa tätä laitetta, mutta se oli hauskaa. On halvempaa ostaa yksi. Vastaavan laitteen voi ostaa noin 130 dollarilla.
- Nostolaite 828LM
- Chamberlain MyQ 129 dollaria
- GoGo Gate 179 dollaria
- Käsityöläinen 100 dollaria
Huomautuksia:
- Teksti, joka on suljettu pataan, kuten tämä ♣ vaihda tämä ♣, tulee korvata todellisella arvolla
- Arduinon alleviivattu sininen teksti on linkki. Tässä tapauksessa se on linkki autotallin ovenavaajan arduino -versioon.
- Olen yrittänyt hyvittää kaikki käytetyt lähteet. Pahoitteluni mahdollisista puutteista. Suurin osa tästä asiakirjasta perustuu muiden tekemiin töihin.
- $ ilmaisee komennon, joka suoritetaan MacBookin pääteikkunassa ja suoritetaan yleensä Raspberry Pi: llä
Vaihe 1: Kerää osat
Osta tai kerää osia ja työkaluja (hinnat USD).
- Raspberry Pi 3 Malli B Newark Element14 $ 35
- 5.2V 2.5A USB -virtalähde Amazonilta 9,99 dollaria
- Micro USB - USB -kaapeli 6ft Amazonilta 7,99 dollaria
- Kotelo Amazonilta 6,99 dollaria
- SanDisk Ultra 16 Gt: n microSDHC-luokka 10 ja sovitin (SDSQUAN-016G-G4A) Amazonilta 8,99 dollaria
- SunFounder 2 -kanavainen 5 V: n relesuojamoduuli Arduinolle UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - 6,79 dollaria
- 3x naaras-naarasliitin. Ostettu Fry'sistä hintaan 4,95 dollaria.
- Dynaaminen DNS 40 dollaria vuodessa 30 nimelle (dyn.com)
- 1-jengi 18 cu. tuumaa vanha työ raskaan seinän kytkin ja pistorasia, 3,12 dollaria
- Ultra Pro Single Brush Valkoinen seinälevy, 7,88 dollaria
- SECO-LARM SM 226L, Garage Door Sensor, hinta vaihtelee suuresti, 9,99 dollaria Amazonilla ilmaisella toimituksella
- 50 jalkaa kiinteää termostaattijohtoa, Home Depot tai Lowe's, ~ 20 dollaria
Yhteensä: ~ 172,00 dollaria
Minulla oli seuraavat osat, työkalut ja palvelut:
- CAT5 Ethernet -kaapeli
- Pieni johdin, 6 jalkaa pitkä
- Phillips -pään ruuvimeisseli
- Neulan nenäpihdit
- Laatikkoleikkurit
- Jalokivikauppiaiden tasainen ruuvimeisseli, tarvitaan löysäämään releen ruuveja
- MacBook (tietokonetta voidaan käyttää)
- AT&T GigaPower (mitä tahansa Internet -palveluntarjoajaa voidaan käyttää)
Vaihe 2: Asenna Raspberry Pi ilman näyttöä tai näppäimistöä

Kaikki Raspberry Pi -projektit vaativat jonkinlaista asennusta. Haluan käyttää samoja ohjeita ja tarvittaessa päivittää ne yhteen paikkaan.
Asenna Raspberry Pi käyttämällä seuraavia ohjeita:
Asenna Raspberry Pi ilman näyttöä tai näppäimistöä
Yllä oleva ohje sisältää valinnaisia vaiheita liitteessä. Muista tehdä seuraava vaihe:
Lisää asiakaspuolen varmenteet verkkopalvelimille
Sammuta Raspberry Pi
$ sudo sammutus -h 0
Kun olet sammunut, poista
- Ethernet kaapeli
- USB -sarjakaapeli
Näitä ei enää tarvita. Käytä wifi -yhteyttä, ssh: tä ja Mac -kirjan pääteikkunaa komentojen suorittamiseen Raspberry Pi -laitteella.
Irrota virta ja kytke virta takaisin, ja vadelma pi pitäisi käynnistyä uudelleen.
Vaihe 3: Asenna Wiring Pi, Apache ja PHP
Asenna Wiring Pi
Avaa pääteikkuna Mac Bookissa. Kirjaudu Raspberry Pi -palveluun, lataa, käännä ja asenna Wiring Pi. Tämä ohjelmisto mahdollistaa GPIO -nastojen ohjaamisen. Tässä on vaiheittainen opas:
wiringpi.com/download-and-install/
Tässä on tiivistetty versio ohjeista:
$ ssh pi@♣ vadelma-pi-ip ♣
salasana: ♣ salasana ♣ $ sudo apt-get install git-core $ git clone git: //git.drogon.net/wiringPi $ cd wiringPi $ git pull origin $./build
Tarkista asennus suorittamalla gpio -komento:
$ gpio -v
gpio-versio: 2.29 Tekijänoikeus (c) 2012-2015 Gordon Henderson Tämä on ilmainen ohjelmisto, joka EHDOTTOMASTI TAKUUTTA. Lisätietoja: gpio -takuu Raspberry Pi Tiedot: Tyyppi: Malli 2, Versio: 1.1, Muisti: 1024 Mt, Valmistaja: Sony [OV] Laitepuu on käytössä. Tämä Raspberry Pi tukee käyttäjätason GPIO-käyttöä. -> Katso man-sivulta lisätietoja $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Nimi | Tila | V | Fyysinen | V | Tila | 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 | ULOS | 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 | Tila | V | Fyysinen | V | Tila | Nimi | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+
Yllä olevien komentojen pitäisi antaa sinulle jonkin verran luottamusta siihen, että wiringPi toimii OK.
Asenna Apache ja PHP
Suorita seuraavat komennot:
$ cd..
$ sudo apt-get update $ sudo apt-get install apache2 php5 libapache2-mod-php5
Tarkista verkkopalvelimen toiminta avaamalla selain ja kirjoittamalla URL -kenttään:
P vadelma-pi-ip ♣
Apachen oletussivusto vastaa "Se toimii!"
Vaihe 4: Verkkosivusto
Avaa pääteikkuna Mac Bookissa. Kirjaudu Raspberry Pi -palveluun, poista oletusindeksi index.html, muuta käyttöoikeuksia verkkosivustohakemistossa ja muokkaa tiedostoa nimeltä index.php.
$ ssh pi@♣ vadelma-pi-ip ♣
salasana: ♣ salasana ♣ $ sudo rm /var/www/index.html $ sudo chown pi: root/var/www $ sudo nano /var/www/index.php
Ja kirjoita seuraava koodi:
Autotallin avaaja
Kodin automatisointi |
---|
Autotallin ovenavaaja | Autotallin oven avausopas | suljettu 1 | auki 0 |
Kirjoita tiedosto painamalla CTRL-o ja ENTER ja poistu editorista painamalla CTRL-x.
Muuta tiedoston käyttöoikeuksia
$ sudo chmod 664 /var/www/index.php
Vaihe 5: Verkkosivuston kuva


Tartu korkean resoluution etäkäyttöiseen autotallin ovenavaajaan verkosta. Muokkaa kuvaa haluamallasi tavalla Mac -siveltimellä. Yllä olevassa kuvassa käytettiin korkean resoluution Genie Garage Openeria, lisättiin vadelmapi -logo ja led poistettiin.
Yksi kuva on tausta (remote-background.jpg) ja toinen on aktiivinen kuva (remote-press.jpg).
Suunnitelmana oli, että napin painalluksella vadelma vilkkuu sen sijaan, että vilkkuu. Yksinkertaistin verkkosivuston.
Kopioi kuvat vadelmapi: lle:
$ scp *-j.webp
salasana: ♣ salasana ♣
Sivustolla on yksi painike. Vahvista avaamalla selain ja kirjoittamalla ♣ vadelma-pi-ip ♣. Painikkeen pitäisi näkyä Apachen oletussivuston sijaan, joka sanoo "Se toimii!" Paina sitä.
Vaihe 6: Hallitse verkkopalvelinta etänä
Jotta autotallin ovenavaajaa olisi helppo käyttää etäsijainnista, käytän dynaamista DNS -nimeä. Koska en pidä IP -osoitteiden muistamisesta.
Tämän ominaisuuden avulla kirjoitan ♣ dynamic-hostname ♣.getmyip.com selaimen URL-kenttään. Huomautus: Kotireitittimien IP -osoite voi muuttua ilman erillistä ilmoitusta, mutta näin tapahtuu harvoin. Päätin käyttää DynDNS: ää. Sinun on tiedettävä reitittimesi julkinen IP -osoite.
U-Verse-reitittimen IP: verse-public-ip
Voit tarkastella isäntänimiä ja DynDNS Pro -tilitietoja. Tässä on muutamia vinkkejä alkuun pääsemiseksi:
-
Luo dynaaminen DNS -isäntänimi (1/30):
- ♣ dynaaminen isäntänimi ♣
- Päivitysavain: ♣ dynaaminen-ip-päivitysavain key
-
Asenna päivitysohjelma varmistaaksesi, että isäntänimi osoittaa aina oikeaan IP -osoitteeseen.
- Lataa ja asenna MacBookiin
- AT&T: n U-verse-IP-osoitteet muuttuvat harvoin, joten yllä oleva päivitys voidaan suorittaa aina, kun se muuttuu
-
Seuraa ohjeita:
- Lisää tili
- Anna käyttäjätunnus ja salasana: ♣ dynaaminen-ip-käyttäjänimi ♣ ♣ dynaaminen-ip-salasana ♣
- Valitse isäntänimi
- Napsauta Määritä valitut isännät
- Isännän tulee olla aktiivinen
-
Määritä verkko sallimaan laitteesi käyttö Internetistä. Voit käyttää ohjattua Dynard -toimintoamme saadaksesi yleisiä ohjeita tämän tekemiseen, käyttämään resursseja, kuten PortForward.com, tai ottamaan yhteyttä laitteen valmistajaan.
- AT&T U-jae
- Portin edelleenlähetys 2-johdin 3801HGV: lle-tämä on minulla oleva AT&T U-Verse -reititin. Katso liitteen päivitykset, kuinka AT&T U-verse 5268ac -reitittimen siirtäminen eteenpäin.
- Avaa selain ja siirry kohtaan p vadelma-pi-ip ♣
- Salasana: ♣ salasana ♣
- asetukset
-
Palomuuri
- Valitse ♣ vadelma-pi-isäntänimi ♣
-
Palvelimet
- Verkkopalvelimen portti 80
- HTTPS -palvelin - portti 443
- Lisätä
- Tallentaa
Kun tämä on tehty, verkkopalvelin toimii Internetistä. Vahvista syöttämällä ♣ dynaaminen isäntänimi ♣ ja sinun pitäisi nähdä autotallin oven avauspainike.
Vaihe 7: Kytke piiri Raspberry Pi -laitteeseen

Annetulle koodille (vaiheet 4 ja 6) käytin GPIO -nastaista 7. On sattumaa, että GPIO 7 on sama kuin wiringPi -nasta 7. PHP -koodissa käytetään johdotuksen Pi -nastaisia numeroita, EI GPIO -nastanumeroita. Voit käyttää mitä tahansa, mutta muista vaihtaa koodi.
Yritin käyttää kierrettyä lankaa, mutta rele ei pidä hyvin kierrettyjä lankoja. Kiinteä lanka on parempi.
Ensimmäisellä yrityksellä loin kolme liitäntäkaapelia (naaras-uros).
- Käytä kolmea naaras -naarashyppykaapelia
-
Leikkaa kolme kiinteää lankaa noin 1 tuumaan.
Kuori 1/4in kiinteän langan molemmista päistä
- Työnnä yksi kiinteä lanka yhteen naarashyppykaapeliin.
Tässä on parempi tapa luoda liitäntäkaapelit (naaras-uros):
- Käytä vain kiinteää lankaa
- Leikkaa kolme 4 tuuman paksuista lankaa
- Kuori 1/4in kiinteän langan molemmista päistä
-
Käytä naarasliittimiä
-
Liu'uta yksi naarasliitäntätappi kiinteän langan ja puristimen toiseen päähän
Naarasnappi ei saa irrota, juota tarvittaessa
- Liu'uta vedonpoistaja naarasliitännän tai suojatapin päälle sähköasentajan teipillä
-
Kytke rele pi: iin kaavion mukaisesti:
- Liitä kaapelin naaraspää Raspberry Pi -tappiin.
- Työnnä kiinteä johdin releeseen.
Vaihe 8: Luo käynnistyspalvelu
Useimmat releet, mukaan lukien ostettu, toimivat seuraavasti:
- Kun signaali on päällä, piiri jää pois päältä.
- Kun signaali on POIS, piiri on päällä.
Jos Raspberry Pi menettää virran, releessä on turvamekanismi, joka pitää piirin POIS PÄÄLTÄ.
Ongelma voi ilmetä, kun Rapberry Pi ja rele saavat virran takaisin, mutta ennen kuin Raspberry Pi on lopettanut käynnistyksen kytkeäkseen signaalin PÄÄLLE, joka on tarpeen pitää piiri pois päältä. Voit herätä aamulla autotallisi auki ja mahdollisesti muutaman uuden ystävän!
Rele ei kuitenkaan itse alusta, ennen kuin GPIO -pin -tila on asetettu tällä komennolla: gpio -tila 7 ulos. Lisäksi jos GPIO -nasta on PÄÄLLÄ (gpio write 7 1) ennen GPIO -tilan asettamista, rele pysyy pois päältä alustuksen jälkeen.
Jos haluat, että tämä alustus suoritetaan käynnistyksen yhteydessä ja et herää uusiin ystäviin, käytä seuraavaa käynnistysskriptiä.
$ ssh pi@♣ vadelma-pi-ip ♣
$ sudo nano /etc/init.d/garagerelay
Liitä sitten tämä skripti:
#! /bin/bash
# /etc/init.d/garagerelay # Suorita tiettyjä toimintoja, kun järjestelmätapaus "$ 1" pyytää) echo "Rele käynnistys" # Käännä 7, joka pitää releen pois päältä/usr/local/bin/gpio write 7 1 #Käynnistä Gpio/usr/local/bin/gpio mode 7 out;; stop) echo "Stoping gpio";; *) echo "Käyttö: /etc/init.d/garagerelay {start | stop}" exit 1;; esac exit 0
Tallennus: CTRL-o, ENTER
Poistu nanosta painamalla CTRL-x
Tee tiedostosta suoritettava:
$ sudo chmod +x /etc/init.d/garagerelay
Kerro nyt pi: lle suorittaaksesi tämän komentosarjan käynnistyksen yhteydessä:
$ sudo update -rc.d -f garagerelay start 4
(Huomautus: Voit turvallisesti jättää huomiotta "puuttuvat LSB -tunnisteet" -varoituksen.)
Varmista, että käynnistysskripti on käynnissä
$ sudo uudelleenkäynnistys
Avaa selain ja napsauta avaajaa. Releen pitäisi napsahtaa.
Vaihe 9: Kiinnitä Raspberry Pi autotalliin

Kun siirrät Raspberry Pi: tä, muista ajaa:
$ sammutus -h 0
Haluat ehkä sammuttaa autotallin virran. Ovikellon avaaja ei siis saa sähköiskua:). Todellinen syy on se, että joka kerta kun oikosuljet johdot, ovi menee ylös ja alas.
Irrota ovikellotyyppisen avaajan seinäruuvit, jotka kiinnittävät ovikellon seinään.
Työnnä reikä ovikellon avaajan takana olevasta autotallista talon sisälle. Texasissa Raspberry Pi: n ei pitäisi olla autotallissa, autotallin lämpötilan vaihtelu on Raspberry Pi: n käyttömäärien ulkopuolella.
Vedä relejohdot reiän läpi (käytä takin ripustinta).
Löysää molemmat ruuvit ovikellon avaajan takana.
Kuori relejohtojen molemmat päät: 1) noin 1/8 tuumaa relepuolelta ja noin ½ tuumaa ovikellon puolelta. Taivuta langan ovikellopuoli puoliksi silmukkaan, joka on tarpeeksi suuri mahtuaksesi takaruuvin ympärille.
Liitä yksi relejohto kuhunkin ovikellon takana olevaan ruuviin ja kiristä ruuvi. Liitännät ovat kuvan mukaiset. Koska rele eristää piirin, suunnalla ei ole edes väliä mikä rele on kiinnitetty mihin ruuviin.
Vaihe 10: Kiinnitä Raspberry Pi SECO-LARM -laitteeseen


Ennen kuin sain koodin valmiiksi, perheeni ja minä olimme lomalla ja avasin selaimen. Selaimen viimeinen näkymä oli autotallin ovenavaaja - sivu päivitettiin ja autotallin ovi avattiin. Muutamaa päivää myöhemmin naapuri soitti ja kysyi, pitäisikö autotallin oven olla auki? Onneksi pystyin sulkemaan sen 500 mailin päästä.
Tämä snafu pakotti minut muuttamaan koodin, jotta tämä ei tapahtuisi, ja lisäämään anturi ja autotallin oven tila verkkosivustoon.
Tämä on linkki alkuperäiseen anturin lisäämisohjeeseen. Ottaen kuitenkin huomioon kaiken, mikä on jo valmis, anturin asentamista voidaan yksinkertaistaa huomattavasti ja pythonin käytön sijaan lisätä pari riviä koodia index.php -tiedostoon.
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\fi.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