Talaan ng mga Nilalaman:

Raspberry Pi 3 Garage Door Opener: 15 Hakbang (na may Mga Larawan)
Raspberry Pi 3 Garage Door Opener: 15 Hakbang (na may Mga Larawan)

Video: Raspberry Pi 3 Garage Door Opener: 15 Hakbang (na may Mga Larawan)

Video: Raspberry Pi 3 Garage Door Opener: 15 Hakbang (na may Mga Larawan)
Video: Touring DAN BILZERIAN's Bel Air Mega Mansion With A Bowling Alley! 2024, Hulyo
Anonim
Raspberry Pi 3 Garage Door Opener
Raspberry Pi 3 Garage Door Opener

Nilikha ko ito ng itinuturo noong 2014. Maraming nagbago mula noon. Noong 2021, na-update ko ang Smart Garage Door Opener dito.

Gumamit ng isang Raspberry Pi at isang smartphone upang buksan, isara at subaybayan ang isang pintuan ng garahe. Ang pagbubukas at pagsasara ng pinto ay nasiguro sa pamamagitan ng paggamit ng mga sertipiko na naka-sign ng sarili na naka-install sa mga mobile phone ng pamilya. Kung ang pintuan ng garahe ay bukas kung hindi ito dapat, pagkatapos ay magpadala ng isang text message (SMS) sa isang cell phone.

Ang pintuan ng garahe ay patuloy na ginagamit mula noong huling bahagi ng 2014. Sa paglipas ng mga taon, sinubukan kong panatilihing na-update ang mga pagbabago. Mayroong isang apendiks na naglalarawan sa mga pagbabago sa itinuro.

Ang mga layunin ng proyektong ito ay upang:

  • Gawin ang aking unang itinuturo - Hindi ko plano na i-post ito, ngunit nakatanggap ako ng maraming mga kahilingan
  • Magbukas ng isang pintuan ng garahe na may isang karaniwang remote
  • Magbukas ng isang pintuan ng garahe na may nakabukas na dingding na nagbukas ng doorbell
  • Magbukas ng pintuan ng garahe gamit ang isang SmartPhone
  • Subaybayan ang katayuan ng pintuan ng garahe nang malayuan sa pamamagitan ng isang cell phone o laptop (bukas ba ito o sarado?)
  • Magpadala ng isang text message sa aking cell phone kung bukas ang pinto kung kailan dapat itong sarado
  • Panatilihing ligtas ang pintuan ng garahe (hal., Sa pagkawala ng kuryente, hindi dapat buksan ang pinto)
  • Huwag payagan ang sinumang iba pa sa net na buksan ang pinto (dalawang daan na naka-sign na SSL certificate)
  • Gumamit ng WiFi sa halip na isang wired na koneksyon
  • Gumamit ng isang Raspberry Pi 3

Ang batayan para sa pagpapatupad ng Garage Door Opener na ito ay nagmula sa Instructable: Raspberry Pi Garage Door Opener ng quartarian. Orihinal, gumamit ako ng isang modelo ng B + Raspberry Pi, pagkatapos ay lumipat sa isang modelo ng Raspberry Pi 2 na B, at ngayon ay gumagamit na ito ng isang Raspberry Pi 3.

Gumamit ako ng isang MacBook upang makipag-usap sa Raspberry Pi, ngunit ang anumang computer ay maaaring magamit.

Walang nakakahimok na dahilan upang maitayo ang aparatong ito, ngunit masaya ito. Mas epektibo ang pagbili ng isa. Ang isang katulad na aparato ay maaaring mabili ng halos $ 130 USD.

  • Angat ng master 828LM
  • Chamberlain MyQ $ 129
  • GoGo Gate $ 179
  • Craftman $ 100

Mga Tala:

  • Ang teksto na nakapaloob sa mga spades, tulad nito ♣ palitan-ito ♣ ay dapat mapalitan ng isang aktwal na halaga
  • Ang Arduino na may salungguhit na asul na teksto ay isang link. Sa kasong ito, ito ay isang link sa isang bersyon ng arduino ng isang nagbukas ng pintuan ng garahe.
  • Sinubukan kong kredito ang bawat ginamit na mapagkukunan. Humihingi ako ng paumanhin para sa anumang mga pagkukulang. Karamihan sa dokumentong ito ay batay sa gawain ng ibang tao.
  • Ipinapahiwatig ng $ isang utos na naisakatuparan sa isang window ng terminal sa MacBook at kadalasang isinasagawa sa Raspberry Pi

Hakbang 1: Ipunin ang Mga Bahagi

Bumili o magtipon ng mga bahagi at tool (presyo sa USD).

  • Raspberry Pi 3 Model B Newark Element14 $ 35
  • 5.2V 2.5A USB Power Adapter mula sa Amazon $ 9.99
  • Micro USB sa USB cable 6ft mula sa Amazon na $ 7.99
  • Kaso mula sa Amazon na $ 6.99
  • SanDisk Ultra 16 GB microSDHC Class 10 na may Adapter (SDSQUAN-016G-G4A) mula sa Amazon $ 8.99
  • SunFounder 2 Channel 5V Relay Shield Module para sa Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $ 6.79
  • 3x Mga Wire ng Jumper ng Babae-Babae. Bumili sa Fry ng $ 4.95.
  • Dynamic na DNS $ 40 bawat taon para sa 30 mga pangalan (dyn.com)
  • 1-Gang 18 cu. sa. Old Work Heavy Wall Switch at Outlet Box, $ 3.12
  • Ultra Pro Single Brush White Wall Plate, $ 7.88
  • SECO-LARM SM 226L, Garage Door Sensor, malawak na nag-iiba ang presyo, $ 9.99 sa Amazon na may libreng pagpapadala
  • 50ft ng Solid thermostat wire, Home Depot o Lowe's, ~ $ 20

Ang Aking Kabuuan: ~ $ 172.00

Mayroon akong mga sumusunod na bahagi, tool at serbisyo:

  • CAT5 Ethernet cable
  • Maliit na gauge wire, 6 ft ang haba
  • Phillips head screwdriver
  • Mga karayom sa ilong
  • Mga pamutol ng kahon
  • Jewelers flathead screw driver, kinakailangan upang paluwagin ang mga turnilyo sa relay
  • MacBook (maaaring magamit ang isang PC)
  • AT&T GigaPower (maaaring magamit ang anumang tagapagbigay ng serbisyo sa internet)

Hakbang 2: I-setup ang Raspberry Pi Nang Walang Monitor o Keyboard

I-setup ang Raspberry Pi Nang Walang Monitor o Keyboard
I-setup ang Raspberry Pi Nang Walang Monitor o Keyboard

Ang lahat ng mga proyekto ng Raspberry Pi ay nangangailangan ng ilang uri ng pag-setup. Gusto kong gumamit ng parehong hanay ng mga tagubilin at, kung kinakailangan, magkaroon ng isang lugar upang mai-update ang mga tagubiling iyon.

I-setup ang Raspberry Pi gamit ang sumusunod na maituturo:

I-setup ang Raspberry Pi nang walang Monitor o Keyboard

Ang itinuturo sa itaas ay may kasamang mga opsyonal na hakbang sa apendiks. Siguraduhing gawin ang hakbang:

Magdagdag ng mga client-side certs sa mga web server

Patayin ang Raspberry Pi

$ sudo shutdown -h 0

Kapag na-shutdown, alisin

  • ethernet cable
  • Serial serial USB

Hindi na ito kakailanganin. Gumamit ng wifi, ssh at isang window ng terminal sa Mac Book upang magpatakbo ng mga utos sa Raspberry Pi.

I-unplug muli ang lakas at i-plug ang lakas, at dapat i-reboot ang raspberry pi.

Hakbang 3: I-install ang Mga Kable Pi, Apache at PHP

I-install ang Mga Kable Pi

Magbukas ng isang window ng terminal sa Mac Book. Mag-login sa Raspberry Pi, pagkatapos ay mag-download, mag-compile, at mag-install ng Wiring Pi. Pinapayagan ng software na ito ang kontrol ng mga GPIO pin. Narito ang isang sunud-sunod na gabay:

wiringpi.com/download-and-install/

Narito ang isang condensadong bersyon ng mga tagubilin:

$ ssh pi @ ♣ raspberry-pi-ip ♣

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

Patakbuhin ang utos ng gpio upang suriin ang pag-install:

$ gpio -v

bersyon ng gpio: 2.29 Copyright (c) 2012-2015 Gordon Henderson Ito ay libreng software na Ganap na WARRANTY. Para sa mga detalye ng uri: gpio -warranty Mga Detalye ng Raspberry Pi: Uri: Model 2, Pagbabago: 1.1, Memory: 1024MB, Maker: Sony [OV] Pinapagana ang puno ng aparato. Sinusuportahan ng Raspberry Pi na ito ang pag-access sa antas ng gumagamit ng GPIO. -> Tingnan ang pahina ng tao para sa karagdagang detalye $ gpio readall + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + ------ + --------- + ----- + ----- + | BCM | wPi | Pangalan | Mode | V | Pisikal | V | Mode | Pangalan | wPi | BCM | + ----- + ----- + --------- + ------ + --- + ---- ++ ---- + --- + - ----- + --------- + ----- + ----- + | | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | SA | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | SA | 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 | SA | 0 | 11 || 12 | 0 | SA | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | SA | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | SA | 0 | 15 || 16 | 1 | SA | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | SA | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | SA | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | SA | 0 | 21 || 22 | 0 | SA | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | SA | 0 | 23 || 24 | 1 | SA | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | SA | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | SA | 1 | 27 || 28 | 1 | SA | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | SA | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | SA | 1 | 31 || 32 | 0 | SA | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | SA | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | SA | 0 | 35 || 36 | 0 | SA | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | SA | 0 | 37 || 38 | 0 | SA | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | SA | GPIO.29 | 29 | 21 | + ----- + ----- + --------- + ------ + --- + ---- ++ ---- + --- + - ----- + --------- + ----- + ----- + | BCM | wPi | Pangalan | Mode | V | Pisikal | V | Mode | Pangalan | wPi | BCM | + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + --- --- + --------- + ----- + ----- +

Ang mga utos sa itaas ay dapat magbigay sa iyo ng ilang kumpiyansa na ang wiringPi ay gumagana OK.

I-install ang Apache at PHP

Patakbuhin ang mga sumusunod na utos:

$ cd..

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

Upang ma-verify na gumagana ang web server, buksan ang isang browser, at sa kahon ng URL ipasok ang:

♣ raspberry-pi-ip ♣

Ang default na website ng Apache ay tumutugon sa "Gumagana ito!"

Hakbang 4: Website

Magbukas ng isang window ng terminal sa Mac Book. Mag-login sa Raspberry Pi, pagkatapos alisin ang default index.html file, baguhin ang mga pahintulot sa direktoryo ng website, at i-edit ang isang file na tinatawag na index.php.

$ ssh pi @ ♣ raspberry-pi-ip ♣

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

At ipasok ang sumusunod na code:

Tagabukas ng garahe

Pag-aautomat sa Bahay

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

";} iba pa {echo"

"; } ?>

Tagabukas ng Pinto ng garahe Manwal ng Magbukas ng Pinto ng garahe sarado 1 buksan ang 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} iba pa {echo"

var13 ->

CTRL-o at ENTER upang isulat ang file, at CTRL-x upang lumabas sa editor.

Baguhin ang mga pahintulot sa file

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

Hakbang 5: Imahe sa Website

Imahe sa Website
Imahe sa Website
Imahe sa Website
Imahe sa Website

Kunin ang isang mataas na resolusyon ng pintuan ng remote na garahe mula sa web. Baguhin ang imahe ayon sa nais mong paggamit ng Mac paintbrush. Sa imahe sa itaas, ginamit ang isang mataas na resolusyon ng Genie Garage Opener, idinagdag ang isang logo ng raspberry pi at tinanggal ang led.

Ang isang imahe ay ang background (remote-background.jpg), at ang isa pa ay ang aktibong imahe (remote-press.jpg).

Ang plano ay ang sa pindot ng itulak, sa halip na kumurap ng humantong, ang raspberry ay kumurap. Pinasimple ko ang website.

Kopyahin ang mga imahe sa raspberry pi:

$ scp *-j.webp

password: ♣ password ♣

Ang web site ay may isang solong pindutan ng push. Upang ma-verify, buksan ang isang browser at ipasok ang ♣ raspberry-pi-ip ♣. Sa halip na default na website ng Apache, na nagsasabing "Gumagana ito!", Dapat lumitaw ang pindutan. Pindutin ito.

Hakbang 6: Malayuan Kontrolin ang Webserver

Upang gawing madali ang pag-access sa Garage Door Opener mula sa isang malayuang lokasyon, gumagamit ako ng isang dynamic na DNS name. Dahil ayoko ng naaalala ang mga IP address.

Sa tampok na ito, inilalagay ko ang ♣ Dynamic-hostname ♣.getmyip.com sa patlang ng URL ng isang browser. Tandaan: Ang IP sa mga router ng bahay ay maaaring magbago nang walang abiso, ngunit bihirang mangyari ito. Pinili kong gamitin ang DynDNS. Kakailanganin mong malaman ang pampublikong IP address ng iyong router.

U-Verse Router IP: ♣ uverse-public-ip ♣

Maaari mong tingnan ang mga detalye ng iyong hostname at DynDNS Pro account. Narito ang ilang mga tip upang makapagsimula:

  • Lumikha ng iyong Dynamic na DNS hostname (1 ng 30):

    • ♣ Dynamic-hostname ♣
    • Updater Key: ♣ dynamic-ip-updater-key ♣
  • Mag-install ng isang update client upang matiyak na ang iyong hostname ay laging nakaturo sa tamang IP address.

    • Mag-download at mag-install sa MacBook
    • Ang mga AT&T na U-talata na mga IP ay bihirang magbago, kaya't ang taga-update sa itaas ay maaaring patakbuhin tuwing magbabago ito
    • Sundin ang mga direksyon:

      • Magdagdag ng account
      • Ipasok ang username at password: ♣ Dynamic-ip-username ♣ ♣ Dynamic-ip-password ♣
      • Piliin ang hostname
      • I-click ang I-configure ang Mga Napiling Host
      • Dapat maging aktibo ang host
    • I-configure ang iyong network upang payagan ang pag-access sa iyong aparato mula sa Internet. Maaari mong gamitin ang aming Dyn Wizard para sa ilang mga pangkalahatang tagubilin sa kung paano ito gawin, gumamit ng mga mapagkukunan tulad ng PortForward.com, o makipag-ugnay sa tagagawa ng aparato para sa tulong.

      • AT&T U-talata
      • Pagpasa ng Port para sa 2-Wire 3801HGV - ito ang AT&T U-Verse router na mayroon ako. Tingnan ang Mga Update sa isang Appendix para sa kung paano magpatuloy sa AT&T U-talata 5268ac router.
      • Buksan ang browser at pumunta sa ♣ raspberry-pi-ip ♣
      • Password: ♣ password ♣
      • Mga setting
      • Firewall

        • Piliin ang ♣ raspberry-pi-hostname ♣
        • Mga server

          • Port ng Web Server 80
          • HTTPS Server - port 443
        • Idagdag pa
      • Magtipid

Kapag tapos na ito, gagana ang webserver mula sa internet. Upang ma-verify, ipasok ang ♣ Dynamic-hostname ♣ at dapat mong makita ang pindutan ng nagbukas ng pinto ng garahe.

Hakbang 7: I-wire ang Circuit sa Raspberry Pi

Wire ang Circuit sa Raspberry Pi
Wire ang Circuit sa Raspberry Pi

Para sa ibinigay na code (hakbang 4 at 6), ginamit ko ang GPIO pin 7. Nagkataon na ang GPIO 7 ay kapareho ng mga wiringPi pin 7. Sa PHP code, ang mga numero ng mga kable na Pi pin ay ginagamit at HINDI mga numero ng GPIO pin. Maaari mong gamitin ang alinman sa gusto mo, ngunit tiyaking baguhin ang code.

Sinubukan kong gumamit ng baluktot na kawad, ngunit ang relay ay hindi nakahawak nang mabuti sa baluktot na kawad. Mas mahusay ang solid wire.

Sa aking unang pagtatangka, gumawa ako ng tatlong magkakaugnay na mga kable (babae-sa-lalaki).

  • Gumamit ng tatlong babae hanggang babae na jumper cables
  • Gupitin ang tatlong piraso ng solidong kawad sa halos 1in.

    Guhitin ang 1 / 4in sa magkabilang dulo ng solidong kawad

  • Ipasok ang isang solidong kawad sa isang babaeng jumper cable.

Narito ang isang mas mahusay na paraan upang lumikha ng mga nag-uugnay na mga kable (babae-sa-lalaki):

  • Gumamit lamang ng solidong kawad
  • Gupitin ang tatlong 4in na piraso ng solidong kawad
  • Guhitin ang 1 / 4in sa magkabilang dulo ng solidong kawad
  • Gumamit ng mga babaeng pin na nag-uugnay

    • I-slide ang isang babaeng nag-uugnay na pin sa isang dulo ng solidong kawad at crimp

      Ang babaeng pin ay hindi dapat maluwag, maghinang kung kinakailangan

    • I-slide ang pagkaginhawa ng pilit sa babaeng nag-uugnay na pin o cover pin na may tape ng elektrisista

I-wire ang relay sa pi tulad ng ipinakita sa diagram:

  • Ikonekta ang babaeng dulo ng cable sa Raspberry Pi pin.
  • Ipasok ang solidong kawad sa Relay.

Hakbang 8: Lumikha ng isang Serbisyo sa Pagsisimula

Karamihan sa mga relay kasama ang binili, nagpapatakbo ng tulad nito:

  • Kapag ang signal ay NASA circuit ay mananatiling off.
  • Kapag ang signal ay naka-OFF pagkatapos ang circuit ay nakabukas.

Kung ang Raspberry Pi ay nawalan ng lakas, ang relay ay may isang mekanismo sa kaligtasan na pinapanatili ang circuit OFF.

Maaaring maganap ang isang problema kapag ang Rapberry Pi at relay ay nakakuha ng kuryente na naibalik, ngunit bago matapos ang pag-boot ng Raspberry Pi upang i-ON ang signal na kailangang panatilihin ang circuit. Maaari kang magising sa umaga na bukas ang iyong garahe at potensyal ng ilang mga bagong kaibigan!

Gayunpaman, ang relay ay hindi talaga nagsisimula hanggang ang GPIO pin mode ay itinakda sa pamamagitan ng utos na ito: gpio mode 7 out. Bukod dito, kung ang GPIO ay naka-pin sa ON (gpio isulat ang 7 1) bago mo itakda ang mode na GPIO, ang relay ay mananatili sa sandaling na-initialize na.

Upang mapatakbo ang pagsasimulang ito sa boot at huwag magising sa mga bagong kaibigan, gamitin ang sumusunod na script ng pagsisimula.

$ ssh pi @ ♣ raspberry-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Pagkatapos i-paste ang script na ito:

#! / basahan / bash

# /etc/init.d/garagerelay # Magpatupad ng mga partikular na pag-andar kapag tinanong ng system case na "$ 1" sa pagsisimula) echo "Start Relay" # I-on ang 7 na nagpapanatili ng relay / usr / local / bin / gpio isulat ang 7 1 #Start Gpio / usr / local / bin / gpio mode 7 out;; itigil) echo "Pagtigil sa gpio";; *) echo "Usage: /etc/init.d/garagerelay {start | stop}" exit 1;; exit esac 0

Upang mai-save: CTRL-o, ENTER

Upang lumabas sa nano, CTRL-x

Gawing maipapatupad ang file:

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

Ngayon sabihin sa iyong pi na patakbuhin ang script na ito sa boot:

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

(Tandaan: Maaari mong ligtas na balewalain ang babalang "nawawalang mga LSB tag.")

Tiyaking tumatakbo ang script ng startup

$ sudo reboot

Magbukas ng isang browser at mag-click sa opener. Dapat mag-click ang relay.

Hakbang 9: Ikabit ang Raspberry Pi sa Garage

Ikabit ang Raspberry Pi sa Garage
Ikabit ang Raspberry Pi sa Garage

Kapag inililipat ang Raspberry Pi, tiyaking tumakbo:

$ shutdown -h 0

Maaaring gusto mong patayin ang kuryente sa garahe. Kaya, hindi ka kinukuryente ng nagbukas ng doorbell:). Ang totoong dahilan ay sa bawat oras na maikliit mo ang mga wire, ang pintuan ay paakyat at baba.

Alisin ang mga tornilyo sa dingding mula sa nagbukas ng uri ng doorbell, na nakakabit sa doorbell sa dingding.

Maglagay ng butas mula sa garahe sa likod ng nagbukas ng doorbell hanggang sa loob ng bahay. Sa Texas, ang Raspberry Pi ay hindi dapat nasa garahe, ang pagkakaiba-iba ng temperatura sa garahe ay nasa tabi ng mga pagtutukoy ng pagpapatakbo ng Raspberry Pi.

Patakbuhin ang mga relay wire sa butas (gumamit ng isang hanger ng amerikana).

Paluwagin ang parehong mga turnilyo sa likuran ng nagbukas ng doorbell.

Huhubad ang magkabilang dulo ng mga wire ng relay: 1) mga 1/8 "pulgada ng panig ng relay, at halos ½" pulgada sa gilid ng doorbell. Bend ang gilid ng doorbell ng kawad sa isang kalahating loop na sapat na malaki upang magkasya sa paligid ng backside screw.

Ikonekta ang isang relay wire sa bawat tornilyo sa likuran ng doorbell, at higpitan ang tornilyo. Ang mga koneksyon ay tulad ng ipinapakita sa imahe. Dahil ihiwalay ng relay ang circuit, ang direksyon ay hindi mahalaga kung aling relay ang nakakabit sa aling turnilyo.

Hakbang 10: Ikabit ang Raspberry Pi sa SECO-LARM

Ikabit ang Raspberry Pi sa SECO-LARM
Ikabit ang Raspberry Pi sa SECO-LARM
Ikabit ang Raspberry Pi sa SECO-LARM
Ikabit ang Raspberry Pi sa SECO-LARM

Bago ko natapos ang code, nagbakasyon kami ng aking pamilya at binuksan ko ang aking browser. Ang huling pagtingin ng aking browser ay ang nagbukas ng pintuan ng garahe - ang pahina ay na-refresh at ang pintuan ng garahe ay binuksan. Makalipas ang ilang araw ay tumawag ang isang kapit-bahay at tinanong kung dapat buksan ang pintuan ng garahe? Sa kabutihang palad, naisasara ko ito mula sa 500 milya ang layo.

Pinilit ako ng snafu na baguhin ang code upang hindi ito mangyari, at magdagdag ng isang sensor at ang estado ng pintuan ng garahe sa website.

Ito ay isang link sa orihinal na itinuturo para sa pagdaragdag ng isang sensor. Gayunpaman, naibigay ang lahat ng bagay na nakumpleto, ang pag-install ng sensor ay maaaring gawing simple at sa halip na gumamit ng sawa ay magdagdag ng isang pares ng mga linya ng code sa index.php.

closed

Ang magnet ay nakakabit sa kaliwang kamay, tuktok na panloob na bahagi ng pintuan ng garahe, at ang sensor ay nakakabit sa dingding ng garahe. Kaya, kailangan kong patakbuhin ang solidong termostat wire mula sa sensor pabalik sa raspberry pi. Kinakailangan nito ang isang butas mula sa garahe papunta sa attic at mula sa attic sa pader na naglalaman ng opener ng pinto ng garahe (switch ng doorbell).

Nagpasok ako ng isang asul na kahon ng kantong sa pagitan ng SECO-LARM sensor at mga solidong wire.

Sa aking bahay, mayroong isang 18 pulgada na agwat sa pagitan ng kisame ng unang palapag at sa ilalim ng ikalawang palapag. Ipinapalagay ko na dito tumatakbo ang mga pag-init at paglamig ng mga duct. Kailangan ko ng drill bit extension na sapat na mahaba upang dumaan sa ikalawang palapag at sa tuktok na 2x4 (itaas na plato) na naglalaman ng doorbell.

Ang pinakamahalagang bahagi ay kapag ang pagbabarena mula sa attic papunta sa lugar kung saan tatakbo ang mga wire sa magbukas ng pintuan ng garahe ay HUWAG mag-drill sa pamamagitan ng kuryente. Ang pag-aayos nito ay hindi masaya. Ang pagkakita ng mga spark at ang pagpatay ng mga ilaw ay medyo nakakaganyak!

Nangangailangan ang sensor ng dalawang solidong mga wire ng termostat o hindi nakikita na kawad ng aso ng aso.

Ang Raspberry Pi ay may maraming mga paglalarawan ng pin (BCM, wPi, pisikal). Gumagamit ang code ng mga numero ng mga kable pi pin. Upang makita ang lahat ng mga pin, at ipasok ang mga mapping at halaga ng pin:

$ gpio readall

Para sa isang manwal na gpio, ipasok ang:

$ gpio man

Sa orihinal na mga tagubilin, ang Physical pin 9 ay ground at kumokonekta sa isa sa mga lead ng SECO-LARM. Gayunpaman, hindi ito gagana para sa akin. Sa halip ay ikonekta ang mga lead sa mga pisikal na pin na 15 at 17

Ang pisikal na pin 15 (wPi pin 3) ay papunta sa 3.3V kapag ang sensor ng SECO-LARM ay sarado. Ang Physical pin 17 ay 3.3v. Kung hindi ito gumana pagkatapos ay ilipat ang mga koneksyon sa SECO-LARM.

Ikabit ang SECO-LARM sa garahe ng pinto at dingding. Patakbuhin ang mga wire at kumonekta sa Raspberry Pi.

Hakbang 11: Magpadala ng Alerto Kung Bukas ang Pinto Kung Dapat Ito Isara

Kung ang pintuan ng garahe ay bukas kung hindi ito dapat, pagkatapos ay magpadala ng isang text message sa isang cell phone.

I-install at i-configure ang simpleng SMTP.

Mayroon akong cellular na AT&T at gumagamit ng ♣cell-phone-number♣@txt.att.net para sa mga text message. Mayroon din akong isang gmail account, at ang halimbawa sa ibaba ay gumagamit ng ♣gmail-account♣@gmail.com. Kung gumagamit ka ng iba't ibang mga serbisyo, pagkatapos ay gawin ang mga naaangkop na pagbabago.

Para sa mga $ command sa ibaba, buksan ang isang window ng terminal sa MacBook at mag-login sa iyong Raspberry Pi.

Tiyaking napapanahon ang mga repository:

$ sudo apt-get update

Mag-install ng simpleng mga kagamitan sa SSMTP at mail:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

I-edit ang file ng pagsasaayos ng SSMTP:

$ sudo nano /etc/ssmtp/ssmtp.conf

tulad ng sumusunod:

mailhub = smtp.gmail.com: 587 hostname = ♣ iyong-hostname ♣ AuthUser=♣gmail-account♣@gmail.com AuthPass = ♣ gmail-password ♣ UseSTARTTLS = YES

I-edit ang file ng mga alias sa SSMTP:

$ sudo nano / etc / ssmtp / revaliases

Lumikha ng isang linya para sa bawat gumagamit na makakapagpadala ng mga email. Halimbawa:

ugat: ♣gmail-account♣@gmail.com: smtp.gmail.com: 587

Itakda ang mga pahintulot ng file ng pagsasaayos ng SSMTP:

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

Tinutukoy ng mga pahintulot ng file /etc/ssmtp/ssmtp.conf kung sino ang maaaring magpadala ng mga email mula sa Raspberry Pi. Bilang default ang file na ito ay pagmamay-ari ng ugat ng gumagamit at ang pangkat ng file ay root din.

I-edit ang file ng mga alias na SSMTP, na naglalaman ng data tungkol sa mga email account:

$ sudo nano /etc/ssmtp/ssmtp.conf

Kapag kumpleto na ang proseso ng pag-set up at pagsasaayos, subukan ito sa pamamagitan ng pagpapadala ng isang email mula sa linya ng utos.

$ echo "isara ang pintuan ng garahe" | mail -s "Buksan ang Pinto ng garahe" ♣cell-phone-number♣@txt.att.net

Lumikha ng isang script upang suriin kung ang pintuan ng garahe ay bukas kapag hindi ito dapat, at pagkatapos ay magpadala ng isang text message.

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

at idagdag ang sumusunod:

#! / baseng / bash

# suriin kung bukas ang pinto ng garahe. # Kung bukas magpadala ng alerto at sumulat sa syslog up = 0; door = $ (/ home / pi / wiringPi / gpio / gpio read 3) if ["$ door" -eq "$ up"] then logger ♣ your-hostname ♣: Garage Door Open echo "isara ang pintuan ng garahe" | mail -s "Buksan ang Pinto ng garahe" ♣cell-phone-number♣@txt.att.net fi exit 0

Pagkatapos magdagdag ng isang crontab upang tumakbo sa mga kinakailangang oras:

$ sudo crontab –e

at idagdag:

# Sa gabi, suriin bawat oras kung bukas ang pintuan ng garahe

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

Kung ang lahat ay gumagana, pagkatapos ay pumunta sa susunod na hakbang.

Hakbang 12: Ilagay ang Raspberry Pi sa Lihim na Aklat

Ilagay ang Raspberry Pi sa Lihim na Aklat
Ilagay ang Raspberry Pi sa Lihim na Aklat
Ilagay ang Raspberry Pi sa Lihim na Aklat
Ilagay ang Raspberry Pi sa Lihim na Aklat

Ilagay ang raspberry pi sa isang lihim na libro. Nakuha ko ang isang ito kay Michael para sa humigit-kumulang na $ 7. Pinutol ko ang ilang maliliit na butas para sa mga wire at ang kurdon ng kuryente.

Hakbang 13: Apendiks: Mga Sanggunian

SunFounder 2 Channel 5V Relay Shield Module para sa Arduino UNO 2560 1280 ARM PIC AVR STM32

  • 5V 2-Channel Relay interface board, at bawat isa ay nangangailangan ng 15-20mA
  • Kasalukuyang Driver Na nilagyan ng mataas na kasalukuyang relay, AC250V 10A; DC30V 10A
  • Karaniwang interface na maaaring kontrolin nang direkta ng microcontroller (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL lohika)
  • Indication LED's para sa Relay output status link upang mai-download ang dokumento:

Hakbang 14: Apendiks: Mga Update

21FEB2016

  • Sa mga orihinal na tagubilin, may mga isyu sa awtomatikong pagwawasto, pag-format at kalinawan ng mga direksyon.

    • Ang isang halimbawa ng isyu ay kapag ang mga dobleng quote sa loob ng code ay nabago sa isang bagay na mukhang isang naka-italyadong dobleng quote. Gayunpaman, kung i-cut-and-paste mo ito sa isang script hindi ito gagana.
    • Gusto ng nagtuturo na editor na mag-autocorrect, kaya't lumiliko sa plano, at ang autoremove ay lumiliko upang awtomatikong alisin. Ang mga pagbabagong ito ay matigas upang makita.
    • Ang ilan sa aking mga direksyon ay maaaring hindi sapat na malinaw.
    • Karaniwan, gumagamit ako ng mga bracket ng anggulo bilang isang tagapagpahiwatig para sa isang bagay na kailangang mapalitan. Ina-convert ng editor ang mga ito sa html. Kaya, lumipat ako sa mga square bracket, ngunit maaaring maging sanhi ng mga problema dahil mukhang code ang mga ito. Kaya, sa wakas ay nanirahan ako sa as s bilang tagapagpahiwatig para sa kapalit ng isang tunay na halaga.
  • Sa paglipas ng panahon ay napabuti ko rin ang ilan sa mga script.
  • Mga Na-edit na Hakbang 21-26

03APR2016

  • Nilikha ang isang Appendix na may Pag-troubleshoot, Mga Sanggunian at Update (hakbang 27-29)
  • Inilipat ang Pag-troubleshoot sa Appendix mula sa dating hakbang 2
  • Nai-update at na-alpabeto ang pahina ng pag-troubleshoot
  • Pinalitan ang pangalan ng file mula sa test2wifi.sh patungong garage.sh - mas mapaglarawan lamang.
  • Nai-update na cron upang magamit ang garahe.sh
  • Na-edit ang 1, 20-26 (Lumikha ng isang serbisyo sa pagsisimula upang hakbang bago ang apendiks)

04APR2016

  • Pinalitan ang mga hakbang sa 2-11 at 16-20 sa aking pamantayan ay ang pagse-set up ng isang Raspberry Pi
  • Listahan ng na-update na mga bahagi, hakbang 1
  • Nagdagdag / nagsama ng mga larawan

05APR2016

Pinasimple na website at imahe (mga hakbang 4 at 5)

01MAY2016

Nagdagdag ng pag-troubleshoot para sa Seco-larm / raspberry Pi sensor

01MAY2016

Hindi nai-save nang maayos ang mga naunang pag-edit?

11NOV2016

  • Nai-update sa AT&T GigaPower at binago ang router sa 5268ac
  • Hindi sinusuportahan ng 5268ac ang loop pabalik, kaya hindi ma-access ang server ng Garage Opener mula sa mga computer sa LAN. Para ma-access ng isang MacBook ang web server ng pambukas ng garahe gawin ang sumusunod:

$ sudo nano / etc / host

at idagdag ang linya

192.168.1.64 ♣ panlabas-na-domain-pangalan ♣

I-save at lumabas, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • Ang built-in na mga patakaran sa pagpapasa ng built-in na 5268ac, tulad ng, HTTPS server, HTTP Server at Web Server ay hindi gumagana. Upang magamit ang pagpapasa ng port:

    • Magbukas ng isang browser, at pumunta sa 192.168.1.254
    • Mag log in
    • Piliin ang Mga Setting, Firewall, Mga Aplikasyon, pinholes at DMZ.
    • Piliin ang web server ng pambukas ng garahe
    • Piliin ang Tinukoy ng Gumagamit
    • Mag-click sa isang bagong application na tinukoy ng gumagamit

      • Sa Pangalan ng Profile ng Application ipasok ang: PortForwarding
      • Sa Lumikha ng Kahulugan ng Application idagdag ang bawat isa sa mga sumusunod at i-click ang Idagdag sa Listahan:

        • TCP mula 80 hanggang 80, mapa sa host port 443
        • TCP mula 443 hanggang 443 na mapa upang mag-host ng port 443
        • Ang UDP mula 443 hanggang 443, mapa sa host port 443
        • UDP mula 80 hanggang 80, mapa sa host port 443
    • Mag-click pabalik
    • Piliin muli ang iyong web server
    • Piliin ang Tinukoy ng Gumagamit
    • Magdagdag ng PortForwarding
    • I-click ang I-save

21JAN2018

  • Nai-update sa Raspberry Pi 3
  • Maraming mga pag-edit sa mga hakbang
  • Nai-update ang ilang mga bahagi at presyo

Hakbang 15: Appendix: Pag-troubleshoot

Ginamit ang space ng disk

Ipinapakita ng huling linya ang kabuuang puwang ng disk na ginamit. Ang SD card ay mayroong 8GB.

$ cd../..

$ sudo du –hx –c

email

Kung nagkakaroon ka ng mga isyu, subukan ito:

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

Kung ang email ay naka-set up nang tama, pagkatapos ay dapat kang makakuha ng isang email sa iyong gmail account.

Kung nakakuha ka ng pagkabigo sa pagpapatotoo:

Maaaring kailanganin mong babaan ang seguridad sa iyong account. Gayunpaman, HINDI inirerekumenda ang pagbaba ng seguridad. Magpapadala ang Google ng isang email na may isang link sa mas mababang setting ng seguridad.

Maaari kang lumipat mula sa iyong kasalukuyang email reader upang magamit ang www.gmail.com upang ma-access ang iyong account (inirerekomenda) o baguhin ang iyong mga setting sa https://www.google.com/settings/security/lesssecu… upang ang iyong account ay wala na protektado ng mga modernong pamantayan sa seguridad.

Hindi ko inirerekumenda ang pagbaba ng iyong mga pamantayan sa seguridad.

Kung nakakuha ka ng pagkabigo sa Pahintulot:

Ang pinaka-malamang na sanhi nito ay tinukoy mo ang isang maling username o password para sa iyong gmail account sa /etc/ssmtp/ssmtp.conf file. I-double check ang mga halaga ng mga patlang ng AuthUser at AuthPass.

Kung nawala ang koneksyon sa gitna ng pagpoproseso:

Malamang na tinukoy mo ang maling port para sa Google smtp saanman sa /etc/ssmtp/ssmtp.conf o sa / etc / ssmtp / revaliases.

Suriin ang mga huling linya ng iyong mga tala. Dapat mayroong ilang mga kaugnay na mensahe ng error doon:

$ tail /var/log/mail.log

$ buntot / var / log / syslog

Hindi bubuksan ang Pinto ng garahe

Kung gumagana ang lahat at huminto lang ito, subukang muling simulan. Kung hindi iyon gumana, hilahin ang kurdon ng kuryente mula sa Raspberry Pi, at pagkatapos ay ibalik ang lakas. Ang Raspberry Pi ay dapat na mag-reboot nang mas mababa sa 2 minuto at ang lahat ay dapat na gumana nang maayos. Sa pangkalahatan ito ay sanhi ng pagkawala ng kuryente sa Residential Gateway.

GPIO

Kung may anumang naging mali, kung gayon ang pinakamahusay na paraan upang makita kung ano ang nangyayari ay ang sumusunod na utos:

$ gpio readall

Mag-login sa raspberry pi mula sa MacBook

ang terminal ay isang utility ng MacBook: disk / aplikasyon / utilities / terminal. Itinatago ko ang terminal app sa pantalan.

Sa MacBook, buksan ang terminal

$ ssh pi @ ♣ raspberry-pi-ip ♣

♣ password ♣

Mag-login sa gateway ng tirahan

Sa MacBook, buksan ang browser

URL = ♣ raspberry-pi-ip ♣

Pag-login: ♣ gateway-password ♣

Mga troso

Kung may mali, suriin ang mga log na ito para sa mga error, babala o iba pang mga isyu.

$ cat / var / log / mga mensahe

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

Direktoryo ng MAC

Direktoryo sa MacBook kung saan nakaimbak ang mga file ng website

Direktoryo ng MAC = / Mga Gumagamit / ♣ aking macbook ♣ / Pinapagana ng desktop / wi-fi ang bahay / pinapagana ng pinto ng garahe ng wifi / website

Password

Password = ♣ raspberry-pi-password ♣

Ginamit ang RAM at CPU

$ itaas

CTRL-c upang lumabas

Direktoryo sa bahay ng Raspberry Pi

$ pwd

/ bahay / pi

Hostname ng Raspberry Pi

$ hostname

hostname = ♣ hostname ♣

Raspberry Pi IP

♣ raspberry-pi-ip ♣ = 192.168.1.93

Raspberry Pi Website Directory

/ var / www

Huminto sa paggana ang Seco-larm

Noong 01MAY2016, huminto sa paggana ang Seco-larm. Ito ang pangatlong beses na tumigil sa paggana ang sensor. Upang sabihin ito nang tama, ang pisikal na pin 15 sa Raspberry Pi ay tumigil sa pagtuklas ng 3.3v input. Sinubukan ko ang 3.3v mga pisikal na pin na 1 at 17, at pareho pa ring naglalabas ng 3.3v. Lumipat ako mula sa pisikal na pin 15 sa isa pang GPIO, pisikal na pin 16 (GPIO 4) at nagsimula itong gumana muli. Kaya, walang mali sa Seco-larm. Ang problema ay tila sa Raspberry Pi GPIO.

Ang GPIO 3, patay na ang pisikal na pin 15. Ang ay isang napakahusay na post sa kung paano subukan ang mga GPIO pin.

Lumipat ako mula sa GPIO 3 hanggang GPIO 4, at binago ang code nang naaayon. Hindi ako sigurado kung bakit tumigil sa paggana ang pin ng GPIO. Narito ang dalawang posibleng dahilan:

  • Mayroon akong naka-install na Seco-larm sensor kaya kapag sarado ang pinto ay naglalabas ito ng 3.3v. Ang pintuan ng garahe ay mas madalas na sarado pagkatapos ito ay bukas. Marahil, ang pin ng GPIO ay hindi maaaring tumagal ng isang mas-o-mas mababa pare-pareho na input ng 3.3v.
  • Ang kabiguan ay sumabay sa isang pagkawala ng kuryente, marahil ay mayroong isang power spike.

U-talatang Residential Gateway

Mayroon akong AT&T U-talatang may Residential Gateway, ngunit ang anumang serbisyo ay dapat na gumana.

Kung ang U-talata Gateway ay nai-restart o nawalan ng kapangyarihan, ang Raspberry Pi ay maaaring kailanganing i-reboot.

U-taludtod na gateway ng tirahan Public IP = ♣ router-public-ip ♣

Ang IP ng isang U-talata na tirahan ng gateway ay maaaring magbago, ngunit napakabihirang gawin ito

U-taludtod Residential Gateway Home Page = 192.168.1.254

U-taludtod ng Router wireless access point na SSID = ♣ ssid ♣

Ang WiFi throughput ay mas mabagal kaysa sa inaasahan

Baguhin ang router sa isang hindi gaanong ginagamit na channel. Bilang default, ang lahat ng mga tagabigay ng circuit ay nagbibigay ng wifi ng bawat isa sa channel 1. Baguhin sa isang hindi gaanong ginagamit na channel, tulad ng, 11. Subukang gumamit ng isang kakaibang numero.

Tandaan: Sinabi ko sa ilang kapitbahay kung ano ang ginawa ko upang mapagbuti ang wi-fi at ngayon ang lahat ay nasa 9 o 11, kaya't bumalik ako sa 1. Dapat mong palaging gumamit ng isang kakatwang channel.

Magbukas ng isang browser.

Para sa U-taludtod, ipasok ang 192.168.1.254 sa kahon ng URL.

Mag-click sa link na Wireless, at piliin ang channel 6 o 11.

Mayroong isang app para sa matalinong telepono na tinatawag na wifi analyzer. Ipinapakita ng isa sa mga ipinapakita ang lahat ng mga kalapit na point ng pag-access sa wifi na nag-broadcast sa isang partikular na channel. Sa aking kapitbahayan, ang lahat ay nakatakda sa channel 1.

I-unplug ang Raspberry Pi, at pagkatapos ay ibalik ang lakas

Inirerekumendang: