Turinys:

„Raspberry Pi 3“garažo durų atidarytuvas: 15 žingsnių (su nuotraukomis)
„Raspberry Pi 3“garažo durų atidarytuvas: 15 žingsnių (su nuotraukomis)

Video: „Raspberry Pi 3“garažo durų atidarytuvas: 15 žingsnių (su nuotraukomis)

Video: „Raspberry Pi 3“garažo durų atidarytuvas: 15 žingsnių (su nuotraukomis)
Video: BAKHSH PILOV Bucharijos žydai 1000 metų senumo RECEPTAS KAIP GAMINTI 2024, Liepa
Anonim
„Raspberry Pi 3“garažo durų atidarytuvas
„Raspberry Pi 3“garažo durų atidarytuvas

Šią instrukciją sukūriau 2014 m. Nuo to laiko daug kas pasikeitė. 2021 metais čia atnaujinau „Smart Garage Door Opener“.

Naudokite „Raspberry Pi“ir išmanųjį telefoną, kad atidarytumėte, uždarytumėte ir stebėtumėte garažo duris. Durų atidarymas ir uždarymas užtikrinamas naudojant savarankiškai pasirašytus sertifikatus, įdiegtus šeimos mobiliuosiuose telefonuose. Jei garažo durys atidarytos, kai to neturėtų būti, tada siųskite tekstinį pranešimą (SMS) į mobilųjį telefoną.

Garažo vartai buvo nuolat naudojami nuo 2014 m. Pabaigos. Bėgant metams stengiausi nuolat atnaujinti pakeitimus. Yra priedas, kuriame aprašomi nurodymų pakeitimai.

Šio projekto tikslai yra šie:

  • Padarykite savo pirmąjį pamokomą - neplanavau to paskelbti, bet gavau daug prašymų
  • Atidarykite garažo duris naudodami standartinį nuotolinio valdymo pultą
  • Atidarykite garažo duris su sieniniu durų skambučio garažo atidarytuvu
  • Atidarykite garažo duris naudodami išmanųjį telefoną
  • Stebėkite garažo durų būseną nuotoliniu būdu per mobilųjį telefoną ar nešiojamąjį kompiuterį (ar jis atidarytas ar uždarytas?)
  • Siųsti tekstinį pranešimą į mano mobilųjį telefoną, jei durys atidarytos, kai jos turėtų būti uždarytos
  • Saugokite garažo duris (pvz., Dingus elektrai, durys neturėtų atsidaryti)
  • Neleiskite niekam kitam tinkle esančiam asmeniui atidaryti duris (dvipusis SSL sertifikatas)
  • Vietoj laidinio ryšio naudokite „WiFi“
  • Naudokite „Raspberry Pi 3“

Šio garažo vartų atidarymo pagrindas buvo gautas iš „Instructable: Raspberry Pi“garažo durų atidarytuvo. Iš pradžių aš naudoju modelį B+ Raspberry Pi, tada perėjau prie Raspberry Pi 2 modelio B, o dabar jis naudoja Raspberry Pi 3.

Bendraudamas su „Raspberry Pi“naudojau „MacBook“, tačiau galima naudoti bet kurį kompiuterį.

Nėra įtikinamos priežasties kurti šį įrenginį, bet tai buvo smagu. Tai ekonomiškiau pirkti. Panašų įrenginį galima įsigyti už maždaug 130 USD.

  • Kėlimo meistras 828LM
  • Chamberlain MyQ 129 USD
  • „GoGo Gate“179 USD
  • Amatininkas 100 USD

Pastabos:

  • Tekstas, įtrauktas į kastuvus, toks kaip „pakeisti-tai“, turėtų būti pakeistas faktine verte
  • „Arduino“pabrauktas mėlynas tekstas yra nuoroda. Šiuo atveju tai yra nuoroda į garažo durų atidarytuvo arduino versiją.
  • Aš bandžiau įskaityti visus panaudotus šaltinius. Atsiprašau už bet kokius praleidimus. Dauguma šio dokumento yra pagrįsti kitų žmonių darbais.
  • $ reiškia komandą, įvykdytą „MacBook“terminalo lange ir paprastai vykdoma naudojant „Raspberry Pi“

1 žingsnis: Surinkite dalis

Pirkite arba surinkite dalis ir įrankius (kainos USD).

  • „Raspberry Pi 3“modelio B „Newark“elementas
  • 5.2V 2.5A USB maitinimo adapteris iš „Amazon“9,99 USD
  • „Micro USB“į USB kabelį 6 pėdų atstumu nuo „Amazon“7,99 USD
  • Dėklas iš „Amazon“6,99 USD
  • „SanDisk Ultra“16 GB „microSDHC Class 10“su adapteriu (SDSQUAN-016G-G4A) iš „Amazon“8,99 USD
  • „SunFounder“2 kanalų 5 V relės skydo modulis „Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi“- 6,79 USD
  • 3x moterų-moterų jungiamieji laidai. Pirktas „Fry's“už 4,95 USD.
  • Dinaminis DNS 40 USD per metus 30 vardų (dyn.com)
  • 1-gauja 18 kub. "Old Work Heavy Wall" jungiklis ir išleidimo dėžutė, 3,12 USD
  • „Ultra Pro“vieno šepetėlio balta sieninė plokštė, 7,88 USD
  • SECO-LARM SM 226L, garažo durų jutiklis, kaina labai skiriasi, 9,99 USD „Amazon“su nemokamu pristatymu
  • 50 pėdų kieto termostato laido, „Home Depot“arba „Lowe“, ~ 20 USD

Mano bendra suma: ~ 172,00 USD

Turėjau šias dalis, įrankius ir paslaugas:

  • CAT5 eterneto kabelis
  • Mažo skersmens viela, 6 pėdų ilgio
  • „Phillips“galvos atsuktuvas
  • Adatos nosies replės
  • Dėžutės pjaustytuvai
  • Juvelyrų plokščiagalvis atsuktuvas, reikalingas atlaisvinti relės varžtus
  • „MacBook“(galima naudoti kompiuterį)
  • „AT&T GigaPower“(galima naudoti bet kurį interneto paslaugų teikėją)

2 veiksmas: nustatykite „Raspberry Pi“be monitoriaus ar klaviatūros

Nustatykite „Raspberry Pi“be monitoriaus ar klaviatūros
Nustatykite „Raspberry Pi“be monitoriaus ar klaviatūros

Visi „Raspberry Pi“projektai reikalauja tam tikros sąrankos. Man patinka naudoti tą patį instrukcijų rinkinį ir, jei reikia, turėti vieną vietą atnaujinti tas instrukcijas.

Nustatykite „Raspberry Pi“naudodami šią instrukciją:

Nustatykite „Raspberry Pi“be monitoriaus ar klaviatūros

Aukščiau paminėtame priede yra pasirenkami veiksmai. Būtinai atlikite šiuos veiksmus:

Pridėkite kliento pusės sertifikatus prie žiniatinklio serverių

Išjunk Raspberry Pi

$ sudo išjungimas -h 0

Išjungę, pašalinkite

  • eterneto kabelis
  • USB nuoseklusis kabelis

Šių nebereikės. Naudokite „Wi -Fi“, „ssh“ir „Mac Book“terminalo langą, kad paleistumėte komandas „Raspberry Pi“.

Atjunkite maitinimą ir vėl įjunkite maitinimą, o „Raspberry pi“turėtų būti paleistas iš naujo.

3 veiksmas: įdiekite „Wiring Pi“, „Apache“ir PHP

Įdiekite „Wiring Pi“

„Mac Book“atidarykite terminalo langą. Prisijunkite prie „Raspberry Pi“, tada atsisiųskite, sukompiliuokite ir įdiekite „Wiring Pi“. Ši programinė įranga leidžia valdyti GPIO kaiščius. Čia yra žingsnis po žingsnio vadovas:

wiringpi.com/download-and-install/

Čia yra sutrumpinta instrukcijų versija:

$ ssh pi@♣ aviečių-pi-ip ♣

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

Norėdami patikrinti diegimą, paleiskite komandą gpio:

$ gpio -v

gpio versija: 2.29 Autorių teisės (c) 2012-2015 Gordonas Hendersonas Tai nemokama programinė įranga be jokių garantijų. Išsamesnės informacijos tipas: „gpio“-garantija „Raspberry Pi“Išsami informacija: tipas: 2 modelis, peržiūra: 1.1, atmintis: 1024 MB, gamintojas: „Sony“[OV] Įrenginių medis įgalintas. Šis „Raspberry Pi“palaiko vartotojo lygio GPIO prieigą. -> Daugiau informacijos rasite žmogaus puslapyje $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Pavadinimas | Režimas | V | Fizinis | V | Režimas | Pavadinimas | 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 || 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 | Pavadinimas | Režimas | V | Fizinis | V | Režimas | Pavadinimas | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+

Aukščiau pateiktos komandos turėtų suteikti jums tam tikrą pasitikėjimą, kad „wiringPi“veikia gerai.

Įdiekite „Apache“ir PHP

Vykdykite šias komandas:

$ cd..

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

Norėdami patikrinti, ar žiniatinklio serveris veikia, atidarykite naršyklę ir URL lauke įveskite:

„Aviečių-pi-ip“

Numatytoji „Apache“svetainė atsako „Tai veikia!“

4 žingsnis: svetainė

„Mac Book“atidarykite terminalo langą. Prisijunkite prie „Raspberry Pi“, tada pašalinkite numatytąjį index.html failą, pakeiskite leidimus svetainės kataloge ir redaguokite failą pavadinimu index.php.

$ ssh pi@♣ aviečių-pi-ip ♣

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

Ir įveskite šį kodą:

Garažo atidarytuvas

Namų automatika

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

";} dar {aidas"

"; } ?>

Garažo durų atidarytuvas Garažo durų atidarymo vadovas uždaryta 1 atidaryti 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} else {echo"

var13 ->

CTRL-o ir ENTER, kad parašytumėte failą, ir CTRL-x, jei norite išeiti iš redaktoriaus.

Pakeiskite failo leidimus

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

5 žingsnis: svetainės vaizdas

Svetainės vaizdas
Svetainės vaizdas
Svetainės vaizdas
Svetainės vaizdas

Patraukite didelės raiškos nuotolinį garažo durų atidarytuvą iš interneto. Pakeiskite vaizdą taip, kaip norėtumėte, naudodami „Mac“teptuką. Aukščiau esančiame paveikslėlyje buvo naudojamas didelės skiriamosios gebos „Genie Garage Opener“, pridėtas aviečių pi logotipas ir pašalintas šviesos diodas.

Vienas vaizdas yra fonas (remote-background.jpg), o kitas-aktyvus vaizdas (remote-press.jpg).

Planas buvo toks, kad paspaudus mygtuką, užuot mirksėjęs šviesos diodas, mirksi avietė. Supaprastinau svetainę.

Nukopijuokite vaizdus į aviečių pi:

$ scp *-j.webp

slaptažodis: „slaptažodis“

Svetainėje yra vienas mygtukas. Norėdami patikrinti, atidarykite naršyklę ir įveskite ♣ raspberry-pi-ip ♣. Vietoj numatytosios „Apache“svetainės, kurioje sakoma „Tai veikia!“, Turėtų pasirodyti mygtukas. Paspauskite jį.

6 veiksmas: nuotoliniu būdu valdykite interneto serverį

Kad būtų lengva pasiekti garažo durų atidarytuvą iš tolimos vietos, naudoju dinamišką DNS pavadinimą. Nes man nepatinka prisiminti IP adresus.

Naudodamas šią funkciją naršyklės URL laukelyje įvedu ♣ dynamic-hostname ♣.getmyip.com. Pastaba: namų maršrutizatorių IP gali pasikeisti be įspėjimo, tačiau tai atsitinka retai. Aš nusprendžiau naudoti „DynDNS“. Turite žinoti savo maršrutizatoriaus viešąjį IP adresą.

„U-Verse“maršrutizatoriaus IP: „uvers-public-ip“

Galite peržiūrėti pagrindinio kompiuterio pavadinimus ir išsamią „DynDNS Pro“paskyros informaciją. Štai keli patarimai, kaip pradėti:

  • Sukurkite dinaminio DNS pagrindinio kompiuterio pavadinimą (1 iš 30):

    • „Dinaminis pagrindinio kompiuterio pavadinimas“
    • Atnaujintojo raktas: „Dinaminis-ip-atnaujinimo raktas“
  • Įdiekite naujinimo klientą, kad įsitikintumėte, jog jūsų prieglobos serverio vardas visada nurodomas teisingu IP adresu.

    • Atsisiųskite ir įdiekite „MacBook“
    • „AT&T U“versijos IP retai keičiasi, todėl aukščiau pateiktą atnaujinimo priemonę galima paleisti, kai ji pasikeičia
    • Vykdykite nurodymus:

      • Pridėti paskyrą
      • Įveskite vartotojo vardą ir slaptažodį: ♣ dynamic-ip-username ♣ ♣ dynamic-ip-password ♣
      • Pasirinkite pagrindinio kompiuterio pavadinimą
      • Spustelėkite Konfigūruoti pasirinktus kompiuterius
      • Šeimininkas turėtų tapti aktyvus
    • Konfigūruokite savo tinklą, kad jis galėtų pasiekti jūsų įrenginį iš interneto. Galite naudoti mūsų „Dyn Wizard“, kad gautumėte bendrąsias instrukcijas, kaip tai padaryti, naudoti išteklius, tokius kaip „PortForward.com“, arba kreiptis pagalbos į įrenginio gamintoją.

      • AT&T eilėraštis
      • 2 laidų 3801HGV prievadų peradresavimas-tai mano turimas „AT&T U-Verse“maršrutizatorius. Žiūrėkite priede pateiktus atnaujinimus, kaip perkelti AT&T U-verse 5268ac maršrutizatorių.
      • Atidarykite naršyklę ir eikite į „Raspberry-pi-ip“
      • Slaptažodis: „slaptažodis“
      • Nustatymai
      • Ugniasienė

        • Pasirinkite ♣ aviečių-pi-pagrindinio kompiuterio pavadinimas ♣
        • Serveriai

          • Žiniatinklio serverio prievadas 80
          • HTTPS serveris - 443 prievadas
        • Papildyti
      • Sutaupyti

Kai tai bus padaryta, žiniatinklio serveris veiks iš interneto. Norėdami patikrinti, įveskite ♣ dynamic-hostname ♣ ir pamatysite garažo vartų atidarymo mygtuką.

7 žingsnis: Prijunkite grandinę prie „Raspberry Pi“

Prijunkite grandinę prie Raspberry Pi
Prijunkite grandinę prie Raspberry Pi

Pateiktam kodui (4 ir 6 veiksmai) naudojau GPIO kaištį 7. Atsitiktinai GPIO 7 yra tas pats kaip wiringPi kaištis 7. PHP kode naudojami laidų Pi kaiščių numeriai, o ne GPIO kaiščių numeriai. Galite naudoti bet kurį norimą, bet būtinai pakeiskite kodą.

Bandžiau naudoti susuktą vielą, tačiau relė blogai laikosi ant susuktos vielos. Kieta viela geriau.

Pirmuoju bandymu sukūriau tris jungiamuosius kabelius (nuo moterų iki vyrų).

  • Naudokite tris trumpiklius nuo moterų iki moterų
  • Iškirpkite tris vientisos vielos gabalus iki maždaug 1 colio.

    Juostelė 1/4 colio ant abiejų tvirtos vielos galų

  • Įkiškite vieną tvirtą laidą į vieną jungiamąjį kabelį.

Čia yra geresnis būdas sukurti jungiamuosius kabelius (nuo moterų iki vyrų):

  • Naudokite tik tvirtą laidą
  • Iškirpkite tris 4 colių vientisos vielos gabalus
  • Juostelė 1/4 colio ant abiejų tvirtos vielos galų
  • Naudokite jungiamuosius kaiščius

    • Pastumkite vieną jungiamąjį kaištį ant vientisos vielos galo ir užspauskite

      Patelė neturėtų atsilaisvinti, jei reikia, lituokite

    • Pastumkite įtempimą per jungiamąjį kaištį arba dangtelį su elektriko juosta

Prijunkite relę prie pi, kaip parodyta diagramoje:

  • Prijunkite kabelio galą prie Raspberry Pi kaiščio.
  • Įkiškite tvirtą laidą į relę.

8 veiksmas: sukurkite paleisties paslaugą

Dauguma relių, įskaitant įsigytą, veikia taip:

  • Kai signalas įjungtas, grandinė lieka išjungta.
  • Kai signalas išjungtas, grandinė įjungta.

Jei „Raspberry Pi“praranda galią, relė turi saugos mechanizmą, kuris išjungia grandinę.

Problema gali kilti, kai „Rapberry Pi“ir relė atgauna maitinimą, tačiau dar nepasibaigus „Raspberry Pi“paleidimui įjungti signalą, kurio reikia, kad grandinė nebūtų išjungta. Ryte galite pabusti atidarę garažą ir galbūt keletą naujų draugų!

Tačiau relė iš tikrųjų nepradeda veikti, kol GPIO kaiščio režimas nenustatytas naudojant šią komandą: „gpio mode 7 out“. Be to, jei GPIO kaištis įjungtas (gpio write 7 1) prieš nustatant GPIO režimą, inicijavus relė liks išjungta.

Jei norite, kad šis inicijavimas vyktų įkrovos metu ir nepabustų naujų draugų, naudokite šį paleidimo scenarijų.

$ ssh pi@♣ aviečių-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Tada įklijuokite šį scenarijų:

#! /bin/bash

# /etc/init.d/garagerel 1 #Paleiskite „Gpio“/usr/local/bin/gpio režimą 7; stop) aidas "Stoping gpio";; *) echo "Naudojimas: /etc/init.d/garagerelay {start | stop}" išėjimas 1;; esac išėjimas 0

Norėdami išsaugoti: CTRL-o, ENTER

Norėdami išeiti iš „nano“, paspauskite CTRL-x

Padarykite failą vykdomąjį:

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

Dabar pasakykite savo pi, kad paleistumėte šį scenarijų įkrovos metu:

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

(Pastaba: galite saugiai ignoruoti įspėjimą „trūkstamų LSB žymų“.)

Įsitikinkite, kad paleisties scenarijus veikia

$ sudo perkraukite

Atidarykite naršyklę ir spustelėkite atidarytuvą. Relė turėtų spustelėti.

9 veiksmas: pritvirtinkite „Raspberry Pi“prie garažo

Pritvirtinkite Raspberry Pi prie garažo
Pritvirtinkite Raspberry Pi prie garažo

Perkeldami „Raspberry Pi“, būtinai paleiskite:

$ išjungimas -h 0

Galbūt norėsite išjungti garažo maitinimą. Taigi, durų skambučio atidarytuvas jūsų neužmuša elektra:). Tikroji priežastis yra ta, kad kiekvieną kartą sutrumpinus laidus, durys pakils aukštyn ir žemyn.

Atsukite varžtus nuo durų skambučio tipo atidarytuvo, kuris pritvirtina durų skambutį prie sienos.

Iš garažo už durų skambučio atidarytuvo padarykite skylę į namo vidų. Teksase „Raspberry Pi“neturėtų būti garaže, o temperatūros svyravimai garaže skiriasi nuo „Raspberry Pi“veikimo specifikacijų.

Praleiskite relės laidus per skylę (naudokite pakabą).

Atsukite abu varžtus, esančius galinėje durų skambučio atidarytuvo pusėje.

Pašalinkite abu relės laidų galus: 1) apie 1/8 colio relės pusės ir apie ½ colio durų skambučio pusėje. Sulenkite vielos durų skambučio pusę į pusę kilpą, pakankamai didelę, kad tilptų aplink galinį varžtą.

Prijunkite vieną relės laidą prie kiekvieno varžto, esančio galinėje durų skambučio pusėje, ir priveržkite varžtą. Sujungimai yra tokie, kaip parodyta paveikslėlyje. Kadangi relė izoliuoja grandinę, kryptis net nesvarbu, kuri relė yra pritvirtinta prie kokio varžto.

10 veiksmas: pritvirtinkite Raspberry Pi prie SECO-LARM

Pritvirtinkite Raspberry Pi prie SECO-LARM
Pritvirtinkite Raspberry Pi prie SECO-LARM
Pritvirtinkite Raspberry Pi prie SECO-LARM
Pritvirtinkite Raspberry Pi prie SECO-LARM

Kol nebaigiau kodo, mes su šeima atostogavome ir aš atidariau naršyklę. Paskutinis mano naršyklės vaizdas buvo garažo vartų atidarytuvas - puslapis atnaujintas ir atidarytos garažo durys. Po kelių dienų paskambino kaimynas ir paklausė, ar garažo durys turi būti atidarytos? Laimei, galėjau jį uždaryti iš 500 mylių.

Šis užkandis privertė mane pakeisti kodą, kad taip neatsitiktų, ir pridėti prie svetainės jutiklį ir garažo durų būseną.

Tai nuoroda į originalią instrukciją, kaip pridėti jutiklį. Tačiau, atsižvelgiant į viską, kas jau baigta, jutiklio įdiegimą galima labai supaprastinti ir vietoj „python“pridėti porą kodo eilučių į index.php.

closed

Magnetas pritvirtintas prie kairės, viršutinės garažo vartų vidaus pusės, o jutiklis-prie garažo sienos. Taigi, aš turėjau paleisti tvirtą termostato laidą iš jutiklio atgal į aviečių pi. Tam reikėjo skylės iš garažo į palėpę ir iš palėpės į sieną, kurioje yra garažo durų atidarytuvas (durų skambučio jungiklis).

Įdėjau mėlyną jungiamąją dėžę tarp SECO-LARM jutiklio ir kietų laidų.

Mano namuose yra 18 colių tarpas tarp pirmo aukšto lubų ir antro aukšto apačios. Manau, kad čia yra šildymo ir aušinimo kanalai. Man reikėjo pakankamai ilgo grąžto pratęsimo, kad galėčiau eiti per antrą aukštą ir per viršutinę 2x4 (viršutinę plokštę), kurioje yra durų skambutis.

Svarbiausia yra tai, kad gręžiant iš palėpės į vietą, kur laidai eis prie garažo durų atidarymo, NEGALIMA gręžti elektros. Tai ištaisyti nebuvo smagu. Matyti kibirkštis ir užgesinti šviesas buvo gana jaudinantis!

Jutikliui reikalingi du tvirti termostato laidai arba nematoma šunų tvoros viela.

„Raspberry Pi“turi kelis kaiščių aprašymus (BCM, wPi, fizinis). Kodas naudoja laidų pi kaiščių numerius. Norėdami pamatyti visus kaiščius, kaiščių atvaizdus ir kaiščių vertes, įveskite:

$ gpio skaityti

Norėdami gauti „gpio“vadovą, įveskite:

$ gpio vyras

Pradinėse instrukcijose „Physical Pin 9“yra įžemintas ir prijungiamas prie vieno iš SECO-LARM laidų. Tačiau man tai netinka. Vietoj to prijunkite laidus prie fizinių 15 ir 17 kaiščių

Fizinis kaištis 15 (wPi kaištis 3) pereina prie 3,3 V, kai SECO-LARM jutiklis yra uždarytas. Fizinis kaištis 17 yra 3.3v. Jei tai neveikia, perjunkite „SECO-LARM“jungtis.

Pritvirtinkite SECO-LARM prie garažo durų ir sienos. Paleiskite laidus ir prijunkite prie „Raspberry Pi“.

11 veiksmas: siųskite įspėjimą, jei durys atidarytos, kai jos turėtų būti uždarytos

Jei garažo durys atidarytos, kai to neturėtų būti, tada siųskite tekstinį pranešimą į mobilųjį telefoną.

Įdiekite ir sukonfigūruokite paprastą SMTP.

Turiu mobilųjį AT&T ir tekstiniams pranešimams naudoju ♣cell-phone-number♣@txt.att.net. Aš taip pat turiu „Gmail“paskyrą, o toliau pateiktame pavyzdyje naudojama ♣gmail-account♣@gmail.com. Jei naudojate skirtingas paslaugas, atlikite atitinkamus pakeitimus.

Norėdami gauti toliau nurodytas komandas $, atidarykite „MacBook“terminalo langą ir prisijunkite prie „Raspberry Pi“.

Įsitikinkite, kad saugyklos yra atnaujintos:

$ sudo apt-get atnaujinimas

Įdiekite paprastas SSMTP ir pašto paslaugas:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

Redaguokite SSMTP konfigūracijos failą:

$ sudo nano /etc/ssmtp/ssmtp.conf

taip:

mailhub = smtp.gmail.com: 587 pagrindinio kompiuterio vardas = ♣ jūsų prieglobos serverio vardas ♣ AuthUser=♣gmail-account♣@gmail.com AuthPass = ♣ gmail-slaptažodis ♣ NaudokiteSTARTTLS = TAIP

Redaguokite SSMTP slapyvardžio failą:

$ sudo nano/etc/ssmtp/revaliases

Sukurkite vieną eilutę kiekvienam vartotojui, kuris galės siųsti el. Pavyzdžiui:

šaknis: ♣gmail-account♣@gmail.com: smtp.gmail.com: 587

Nustatykite SSMTP konfigūracijos failo leidimus:

$ sudo chmod 664 /etc/ssmtp/ssmtp.conf

Failo /etc/ssmtp/ssmtp.conf leidimai nustato, kas galės siųsti el. Laiškus iš „Raspberry Pi“. Pagal numatytuosius nustatymus šis failas priklauso vartotojo root, o failo grupė taip pat yra root.

Redaguokite SSMTP slapyvardžio failą, kuriame yra duomenų apie el. Pašto paskyras:

$ sudo nano /etc/ssmtp/ssmtp.conf

Baigę aukščiau pateiktą sąrankos ir konfigūravimo procesą, išbandykite jį išsiųsdami el. Laišką iš komandinės eilutės.

$ echo "uždaryti garažo duris" | paštu -s "Garažo durys atidarytos" ♣cell-phone-number♣@txt.att.net

Sukurkite scenarijų, kad patikrintumėte, ar garažo durys atidarytos, kai to neturėtų būti, ir tada išsiųskite tekstinį pranešimą.

$ sudo nano /usr/local/bin/garage.sh

ir pridėkite:

#!/bin/bash

# patikrinkite, ar garažo durys atidarytos. # Jei atidarytas, siųsk įspėjimą ir rašyk į syslog up = 0; durys = $ (/home/pi/wiringPi/gpio/gpio skaityti 3) jei ["$ door" -eq "$ up"], tada registratorius ♣ jūsų -šeimininko vardas ♣: Garažo durų atidarymo aidas "uždaryti garažo duris" | paštas -s "Garažo durys atidarytos" ♣cell-phone-number♣@txt.att.net fi exit 0

Tada pridėkite „crontab“, kad jis veiktų reikiamomis valandomis:

$ sudo crontab –e

ir pridėkite:

# Naktį kas valandą patikrinkite, ar garažo durys atidarytos

0 22-23/1 * * * sudo /usr/local/bin/garage.sh 0 0-5/1 * * * sudo /usr/local/bin/garage.sh

Jei viskas veikia, pereikite prie kito žingsnio.

12 veiksmas: įdėkite „Raspberry Pi“į slaptą knygą

Įdėkite „Raspberry Pi“į slaptą knygą
Įdėkite „Raspberry Pi“į slaptą knygą
Įdėkite Raspberry Pi į slaptą knygą
Įdėkite Raspberry Pi į slaptą knygą

Įdėkite aviečių pi į slaptą knygą. Aš tai gavau Michael'e už maždaug 7 USD. Iškirpiau mažas skyles laidams ir maitinimo laidui.

13 žingsnis: Priedas: Nuorodos

„SunFounder“2 kanalų 5 V relės skydo modulis, skirtas „Arduino UNO 2560“1280 ARM PIC AVR STM32

  • 5V 2 kanalų relės sąsajos plokštė, ir kiekvienai iš jų reikia 15-20 mA
  • Vairuotojo srovė Įrengta didelės srovės relė, AC250V 10A; DC30V 10A
  • Standartinė sąsaja, kurią galima tiesiogiai valdyti mikrovaldikliu („Arduino“, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL logika)
  • Indikacijos šviesos diodai, rodantys relės išvesties būseną Nuoroda, skirta atsisiųsti dokumentą:

14 žingsnis: Priedas: Atnaujinimai

21FEB2016

  • Pradinėse instrukcijose buvo problemų dėl automatinio taisymo, formatavimo ir nurodymų aiškumo.

    • Pavyzdinė problema yra ta, kad dvigubos kabutės kode pakeičiamos į tai, kas atrodo kaip kursyvas. Tačiau, jei iškirpsite ir įklijuosite jį į scenarijų, jis neveiks.
    • Pamokomas redaktorius mėgsta taisyti automatiškai, todėl Wlanas ima planuoti, o automatinis pašalinimas - automatiškai pašalinti. Šiuos pokyčius sunku pastebėti.
    • Kai kurios mano kryptys gali būti nepakankamai aiškios.
    • Paprastai aš naudoju kampinius laikiklius kaip indikatorių tam, ką reikia pakeisti. Redaktorius konvertuoja juos į html. Taigi, perėjau prie skliaustelių, tačiau jie gali sukelti problemų, nes jie atrodo kaip kodas. Taigi, aš pagaliau pasirinkau ♣ s kaip indikatorių pakeisti faktine verte.
  • Laikui bėgant taip pat patobulinau kai kuriuos scenarijus.
  • Redaguotas 21–26 veiksmai

2016 m

  • Sukūrė priedą su trikčių šalinimu, nuorodomis ir atnaujinimais (27–29 veiksmai)
  • Trikčių šalinimas perkeltas į priedą iš ankstesnio 2 veiksmo
  • Atnaujintas ir pašalintas abėcėlės tvarka trikčių šalinimo puslapis
  • Failo pavadinimas pakeistas iš test2wifi.sh į garage.sh - tik labiau apibūdinantis.
  • Atnaujintas „cron“, kad būtų naudojamas „garage.sh“
  • Redaguota 1, 20–26 (Sukurkite paleisties paslaugą, kurią reikia atlikti prieš priedą)

2016 m. Balandžio 04 d

  • 2–11 ir 16–20 žingsnius pakeičiau mano standartu, kaip nustatyti „Raspberry Pi“
  • Atnaujintas dalių sąrašas, 1 veiksmas
  • Pridėtos/sujungtos nuotraukos

2016 05 05

Supaprastinta svetainė ir vaizdas (4 ir 5 veiksmai)

2016 M. GEGUŽĖS

Pridėtas „Seco-larm/aviečių Pi“jutiklio trikčių šalinimas

2016 M. GEGUŽĖS

Ankstesni pakeitimai nebuvo tinkamai išsaugoti?

2016 m. Lapkričio 11 d

  • Atnaujinta į „AT&T GigaPower“ir pakeistas maršrutizatorius į 5268ac
  • „5268ac“nepalaiko kilpos atgal, todėl „Garage Opener“serveris nepasiekiamas iš LAN tinkle esančių kompiuterių. Kad „MacBook“galėtų pasiekti garažo atidarytuvo žiniatinklio serverį, atlikite šiuos veiksmus:

$ sudo nano /etc /hosts

ir pridėkite eilutę

192.168.1.64 (serverio išorinio domeno vardas)

Išsaugoti ir išeiti, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • „5268ac“integruotos prievadų peradresavimo taisyklės, pvz., HTTPS serveris, HTTP serveris ir žiniatinklio serveris, neveikia. Norėdami priversti uosto peradresavimą dirbti:

    • Atidarykite naršyklę ir eikite į 192.168.1.254
    • Prisijungti
    • Pasirinkite Nustatymai, Ugniasienė, Programos, skylės ir DMZ.
    • Pasirinkite garažo atidarytuvo žiniatinklio serverį
    • Pasirinkite Vartotojo apibrėžta
    • Spustelėkite naują vartotojo apibrėžtą programą

      • Programos profilio pavadinime įveskite: PortForwarding
      • Skiltyje „Sukurti programos apibrėžimą“pridėkite kiekvieną iš šių elementų ir spustelėkite Pridėti prie sąrašo:

        • TCP nuo 80 iki 80, žemėlapis iki pagrindinio prievado 443
        • TCP nuo 443 iki 443 žemėlapis iki pagrindinio 443 prievado
        • UDP nuo 443 iki 443, žemėlapis iki pagrindinio 443 prievado
        • UDP nuo 80 iki 80, žemėlapis iki pagrindinio prievado 443
    • Spustelėkite atgal
    • Iš naujo pasirinkite savo žiniatinklio serverį
    • Pasirinkite Vartotojo apibrėžta
    • Pridėti „PortForwarding“
    • Spustelėkite Išsaugoti

2018 sausio 21 d

  • Atnaujinta į Raspberry Pi 3
  • Keletas žingsnių pakeitimų
  • Atnaujintos kai kurios dalys ir kainos

15 žingsnis: Priedas: Trikčių šalinimas

Išnaudota vieta diske

Paskutinėje eilutėje rodoma visa naudojama disko vieta. SD kortelė turi 8 GB.

$ cd../..

$ sudo du –hx –c

paštą

Jei turite problemų, pabandykite tai padaryti:

$ echo "testas" | sendmail -v ♣your-gmail-account♣@gmail.com

Jei el. Paštas nustatytas teisingai, el. Laišką turėtumėte gauti savo „Gmail“paskyroje.

Jei jums nepavyksta autentifikuoti:

Gali tekti sumažinti paskyros saugumą. Tačiau nerekomenduojama sumažinti saugumo. „Google“atsiųs el. Laišką su nuoroda į mažesnio saugumo nustatymą.

Galite pereiti iš dabartinio el. Pašto skaitytuvo į svetainę www.gmail.com, kad pasiektumėte savo paskyrą (rekomenduojama), arba pakeisti nustatymus adresu https://www.google.com/settings/security/lesssecu…, kad jūsų paskyra nebebūtų naudojama. apsaugotas šiuolaikiniais saugumo standartais.

Nerekomenduoju mažinti saugumo standartų.

Jei įvyksta autorizacijos klaida:

Labiausiai tikėtina priežastis yra ta, kad faile /etc/ssmtp/ssmtp.conf nurodėte neteisingą „Gmail“paskyros vartotojo vardą ar slaptažodį. Dar kartą patikrinkite laukų „AuthUser“ir „AuthPass“reikšmes.

Jei ryšys nutrūksta apdorojimo metu:

Tikėtina, kad kažkur /etc/ssmtp/ssmtp.conf arba/etc/ssmtp/revaliases nurodėte netinkamą „Google“smtp prievadą.

Patikrinkite paskutines savo žurnalų eilutes. Ten turėtų būti keletas svarbių klaidų pranešimų:

$ tail /var/log/mail.log

$ tail/var/log/syslog

Garažo durys neatsidaro

Jei viskas veikė ir tiesiog sustojo, pabandykite iš naujo paleisti. Jei tai nepadeda, ištraukite maitinimo laidą iš „Raspberry Pi“ir vėl atjunkite maitinimą. „Raspberry Pi“turėtų perkrauti mažiau nei per 2 minutes ir viskas turėtų veikti gerai. Paprastai tai atsitinka dėl elektros energijos praradimo gyvenamuosiuose vartuose.

GPIO

Jei kas nors negerai, geriausias būdas pamatyti, kas vyksta, yra naudojant šią komandą:

$ gpio skaityti

Prisijunkite prie „Raspberry pi“iš „MacBook“

terminalas yra „MacBook“programa: diskas/programos/komunalinės paslaugos/terminalas. Terminalo programą laikau doke.

„MacBook“atidarykite terminalą

$ ssh pi@♣ aviečių-pi-ip ♣

„Slaptažodis“

Prisijunkite prie gyvenamojo tinklo šliuzo

„MacBook“atidarykite naršyklę

URL = ♣ aviečių-pi-ip ♣

Prisijungimas: „vartai-slaptažodis“

Rąstai

Jei kažkas negerai, patikrinkite, ar šiuose žurnaluose nėra klaidų, įspėjimų ar kitų problemų.

$ cat/var/log/messages

$ cat/var/log/syslog $ cat/var/log/dmesg

MAC katalogas

„MacBook“katalogas, kuriame saugomi svetainės failai

MAC katalogas =/Vartotojai/♣ mano „MacBook“♣/Darbalaukis/„Wi-Fi“įgalintas namas/„Wi-Fi“įgalintas garažo durų atidarytuvas/svetainė

Slaptažodis

Slaptažodis = p aviečių-pi-slaptažodis ♣

Naudota RAM ir procesorius

$ viršuje

CTRL-c, kad išeitumėte

„Raspberry Pi“namų katalogas

$ pwd

/home/pi

Raspberry Pi pagrindinio kompiuterio pavadinimas

$ hostname

pagrindinio kompiuterio vardas = ♣ pagrindinio kompiuterio vardas ♣

Raspberry Pi IP

♣ aviečių-pi-ip ♣ = 192.168.1.93

Raspberry Pi svetainių katalogas

/var/www

Seco-lerva nustoja veikti

2016 m. Gegužės 1 d. „Seco-larm“nustojo veikti. Tai trečias kartas, kai jutiklis nustojo veikti. Norėdami tai pasakyti teisingai, fizinis „Raspberry Pi“kaištis 15 nustojo aptikti 3,3 V įvestį. Aš bandžiau 3.3v fizinius 1 ir 17 kaiščius, ir abu vis tiek išvedė 3.3v. Aš perėjau iš fizinio kaiščio 15 į kitą GPIO, fizinį kaištį 16 (GPIO 4) ir jis vėl pradėjo veikti. Taigi, „Seco-larm“nėra nieko blogo. Atrodo, kad problema susijusi su „Raspberry Pi GPIO“.

GPIO 3, fizinis kaištis 15 negyvas. Tai labai geras pranešimas apie tai, kaip išbandyti GPIO kaiščius.

Aš perėjau iš GPIO 3 į GPIO 4 ir atitinkamai pakeičiau kodą. Nesu tikras, kodėl GPIO kaištis nustojo veikti. Štai dvi galimos priežastys:

  • Aš turiu sumontuotą „Seco-larm“jutiklį, todėl uždarius duris jis išveda 3.3v. Garažo durys uždaromos dažniau nei atidarytos. Galbūt GPIO kaištis negali priimti daugiau ar mažiau pastovios 3,3 V įvesties.
  • Gedimas sutapo su galios praradimu, galbūt buvo elektros energijos šuolis.

U-eilės gyvenamieji vartai

Turiu „AT&T U-verse“su „Residential Gateway“, tačiau bet kuri paslauga turėtų veikti.

Jei „U-verse Gateway“bus paleistas iš naujo arba praras maitinimą, gali tekti iš naujo paleisti „Raspberry Pi“.

U-verse gyvenamųjų namų vartai Public IP = ♣ router's-public-ip ♣

„U-verse“gyvenamųjų vartų viešasis IP gali keistis, tačiau tai daro labai retai

„U-verse Residential Gateway“pagrindinis puslapis = 192.168.1.254

„U-verse Router“belaidžio prieigos taško SSID = ♣ ssid ♣

„WiFi“pralaidumas yra lėtesnis nei tikėtasi

Pakeiskite maršrutizatorių į mažiau naudojamą kanalą. Pagal numatytuosius nustatymus visi tinklo tiekėjai suderina kiekvieno „Wi -Fi“prie 1 kanalo. Pakeiskite į mažiau naudojamą kanalą, pvz., 11. Pabandykite naudoti nelyginį skaičių.

Pastaba: porai kaimynų pasakiau, ką padariau, kad pagerinčiau „Wi-Fi“, ir dabar visi veikia 9 ar 11, todėl grįžau prie 1. Visada turėtumėte naudoti nelyginį kanalą.

Atidarykite naršyklę.

„U-verse“URL laukelyje įveskite 192.168.1.254.

Spustelėkite belaidžio ryšio nuorodą ir pasirinkite 6 arba 11 kanalą.

Yra išmaniojo telefono programa, vadinama „wifi“analizatoriumi. Viename iš ekranų rodomi visi netoliese esantys „Wi -Fi“prieigos taškai, transliuojami tam tikru kanalu. Mano kaimynystėje visi yra nusistatę 1 kanalą.

Atjunkite „Raspberry Pi“ir atjunkite maitinimą

Rekomenduojamas: