Raspberry Pi 3 garāžas durvju atvērējs: 15 soļi (ar attēliem)
Raspberry Pi 3 garāžas durvju atvērējs: 15 soļi (ar attēliem)
Anonim
Raspberry Pi 3 garāžas durvju atvērējs
Raspberry Pi 3 garāžas durvju atvērējs

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

Iestatiet Raspberry Pi bez monitora vai tastatūras
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

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

";} cits {atbalss"

"; } ?>

Garāžas durvju atvērējs Garāžas durvju atvēršanas rokasgrāmata slēgts 1 atvērt 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} else {echo"

var13 ->

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

Vietnes attēls
Vietnes attēls
Vietnes attēls
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

Pievienojiet ķēdi Raspberry Pi
Pievienojiet ķēdi 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

Piestipriniet Raspberry Pi garāžai
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

Piestipriniet Raspberry Pi pie SECO-LARM
Piestipriniet Raspberry Pi pie SECO-LARM
Piestipriniet Raspberry Pi pie SECO-LARM
Piestipriniet Raspberry Pi pie 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