Mundarija:

Raspberry Pi 3 garaj eshiklarini ochuvchi: 15 qadam (rasmlar bilan)
Raspberry Pi 3 garaj eshiklarini ochuvchi: 15 qadam (rasmlar bilan)

Video: Raspberry Pi 3 garaj eshiklarini ochuvchi: 15 qadam (rasmlar bilan)

Video: Raspberry Pi 3 garaj eshiklarini ochuvchi: 15 qadam (rasmlar bilan)
Video: Mad Maxdan ko'ra kuchliroq poyga!! 🏎🚗🚙🚘 - Burnin' Rubber 5 XS Race 7-12 GamePlay 🎮📱 🇺🇿 2024, Iyul
Anonim
Raspberry Pi 3 garaj eshiklarini ochuvchi
Raspberry Pi 3 garaj eshiklarini ochuvchi

Men buni 2014 yilda yaratdim. O'shandan beri ko'p narsa o'zgardi. 2021 yilda men bu erda Smart Garage Door Opener -ni yangiladim.

Garaj eshigini ochish, yopish va kuzatish uchun Raspberry Pi va smartfondan foydalaning. Eshikning ochilishi va yopilishi oilaning mobil telefonlariga o'rnatilgan o'z-o'zidan imzolangan sertifikatlar yordamida ta'minlanadi. Agar garaj eshigi ochilmasa ochiq bo'lsa, uyali telefonga SMS yuboring.

Garaj eshigi 2014 yil oxiridan beri uzluksiz ishlatilmoqda. Yillar davomida men o'zgarishlarni yangilab turishga harakat qildim. Ko'rsatmalarga kiritilgan o'zgarishlarni tavsiflovchi ilova mavjud.

Ushbu loyihaning maqsadlari:

  • Menga birinchi ko'rsatma bering - men buni joylashtirishni rejalashtirmagan edim, lekin menga ko'plab so'rovlar keldi
  • Standart masofadan boshqarish pulti bilan garaj eshigini oching
  • Garaj eshigini devorga o'rnatilgan eshik qo'ng'irog'i bilan oching
  • Smartfon yordamida garaj eshigini oching
  • Garaj eshigining holatini mobil telefon yoki noutbuk orqali masofadan turib kuzatib boring (u ochiqmi yoki yopiqmi?)
  • Agar eshik yopiq bo'lishi kerak bo'lsa, telefonimga SMS yuboring
  • Garaj eshigini xavfsiz saqlang (masalan, elektr quvvati yo'qolganda, eshik ochilmasligi kerak)
  • Boshqa hech kimga eshikni ochishiga yo'l qo'ymang (ikki tomonlama SSL sertifikati)
  • Simli ulanish o'rniga WiFi -dan foydalaning
  • Raspberry Pi 3 dan foydalaning

Bu Garage Door Opener dasturining asosi kvartarian tomonidan Instructable: Raspberry Pi Garage Door Opener -dan olingan. Dastlab men B+ Raspberry Pi modelini ishlatardim, keyin Raspberry Pi 2 model B ga o'tdim va endi u Raspberry Pi 3 dan foydalanadi.

Men Raspberry Pi bilan muloqot qilish uchun MacBook -dan foydalanardim, lekin har qanday kompyuterdan foydalanish mumkin.

Ushbu qurilmani yaratish uchun hech qanday jiddiy sabab yo'q, lekin bu qiziqarli edi. Birini sotib olish iqtisodiy jihatdan samaraliroq. Shunga o'xshash qurilmani taxminan 130 dollarga sotib olish mumkin.

  • Yuk ko'tarish ustasi 828LM
  • Chemberlen MyQ - 129 dollar
  • GoGo Gate 179 dollar
  • Hunarmand 100 dollar

Eslatmalar:

  • Belgilar bilan o'ralgan matn, masalan, almashtirish-bu, haqiqiy qiymat bilan almashtirilishi kerak
  • Arduino tagiga chizilgan ko'k matn - havola. Bunday holda, bu garaj eshigi ochgichining arduino versiyasiga havola.
  • Men ishlatilgan har bir manbaga kredit berishga harakat qildim. Har qanday kamchiliklar uchun uzr so'rayman. Ushbu hujjatning aksariyati boshqalarning ishiga asoslangan.
  • $ MacBook -dagi terminal oynasida bajarilgan va odatda Raspberry Pi -da bajariladigan buyruqni bildiradi

1 -qadam: qismlarni yig'ish

Ehtiyot qismlar va asboblarni sotib oling yoki yig'ing (narxlar AQSh dollarida).

  • Raspberry Pi 3 Model B Newark Element14 $ 35
  • Amazondan 5.2V 2.5A USB quvvat adapteri $ 9.99
  • Micro USB -dan USB -kabelga 6 fut Amazondan $ 7.99
  • Amazon -dan ish $ 6.99
  • SanDisk Ultra 16 GB microSDHC Class 10 adapterli (SDSQUAN-016G-G4A) Amazondan $ 8.99
  • SunFounder 2 kanalli 5V Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi uchun 5V o'rni qalqoni moduli - $ 6.79
  • 3x Ayol-Ayol jumper simlari. Fry's -da 4,95 dollarga sotib olindi.
  • Dinamik DNS 30 $ uchun yiliga $ 40 (dyn.com)
  • 1-guruh 18 kub. in. Old Work Heavy Wall Switch va Outlet Box, $ 3.12
  • Ultra Pro bitta cho'tka oq devor plitasi, $ 7.88
  • SECO-LARM SM 226L, Garaj eshiklari sensori, narxi juda farq qiladi, Amazonda $ 9.99, bepul etkazib berish.
  • 50 fut qattiq termostat simlari, Home Depot yoki Lowe's, ~ 20 dollar

Mening jami: ~ $ 172.00

Menda quyidagi qismlar, asboblar va xizmatlar bor edi:

  • CAT5 chekilgan kabeli
  • Kichik o'lchagichli sim, uzunligi 6 fut
  • Filipp boshli tornavida
  • Igna pense
  • Quti kesgichlar
  • Zargarlar o'z vintlarini bo'shatish uchun tekis tornavida
  • MacBook (kompyuterdan foydalanish mumkin)
  • AT&T GigaPower (har qanday Internet -provayderdan foydalanish mumkin)

2 -qadam: Raspberry Pi -ni monitor yoki klaviaturasiz o'rnating

Raspberry Pi -ni monitor yoki klaviaturasiz sozlash
Raspberry Pi -ni monitor yoki klaviaturasiz sozlash

Barcha Raspberry Pi loyihalari qandaydir sozlashni talab qiladi. Men bir xil ko'rsatmalar to'plamidan foydalanishni yaxshi ko'raman va kerak bo'lganda bu ko'rsatmalarni yangilash uchun bitta joyim bor.

Raspberry Pi -ni quyidagi ko'rsatmalar yordamida o'rnating:

Raspberry Pi -ni monitor yoki klaviaturasiz sozlash

Yuqorida aytib o'tilganlar ilovadagi ixtiyoriy qadamlarni o'z ichiga oladi. Bosqichni bajarganingizga ishonch hosil qiling:

Veb-serverlarga mijozlar sertifikatlarini qo'shing

Raspberry Pi -ni o'chiring

$ sudo o'chirish -h 0

O'chirish tugagach, olib tashlang

  • chekilgan kabel
  • USB ketma -ket kabel

Bularga endi kerak bo'lmaydi. Raspberry Pi -da buyruqlarni bajarish uchun Wi -Fi, ssh va Mac Book -dagi terminal oynasidan foydalaning.

Quvvatni o'chiring va quvvatni qayta ulang va malina pi qayta yoqilishi kerak.

3 -qadam: Wiring Pi, Apache va PHP -ni o'rnating

Wiring Pi -ni o'rnating

Mac Book -da terminal oynasini oching. Raspberry Pi -ga kiring, keyin Wiring Pi -ni yuklab oling, kompilyatsiya qiling va o'rnating. Ushbu dastur GPIO pinlarini boshqarishga imkon beradi. Bu erda asta-sekin ko'rsatma:

wiringpi.com/download-and-install/

Bu erda ko'rsatmalarning qisqartirilgan versiyasi:

$ ssh pi@♣ malina-pi-ip ♣

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

O'rnatishni tekshirish uchun gpio buyrug'ini bajaring:

$ gpio -v

gpio versiyasi: 2.29 Mualliflik huquqi (c) 2012-2015 Gordon Xenderson Bu mutlaqo KAFOLATSIZ bepul dasturiy ta'minot. Tafsilotlar uchun: gpio kafolati Raspberry Pi tafsilotlari: Turi: Model 2, Tuzatish: 1.1, Xotira: 1024MB, Ishlab chiqaruvchi: Sony [OV] Qurilma daraxti yoqilgan. Bu Raspberry Pi foydalanuvchi darajasidagi GPIO-ga kirishni qo'llab-quvvatlaydi. -> Qo'shimcha ma'lumot uchun man-sahifaga qarang $ gpio readall+-----+-----+---------+------+---+--- Pi 2 ---+---+------+---------+-----+-----+| BCM | wPi | Ism | Rejim | V | Jismoniy | V | Rejim | Ism | 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 | Chiqish | 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 | Ism | Rejim | V | Jismoniy | V | Rejim | Ism | wPi | BCM | +-----+-----+---------+------+---+--- Pi 2 ---+---+--- ---+---------+-----+-----+

Yuqoridagi buyruqlar sizga wiringPi yaxshi ishlayotganiga ishonch hosil qilishi kerak.

Apache va PHP -ni o'rnating

Quyidagi buyruqlarni bajaring:

$ CD..

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

Veb -server ishlayotganini tekshirish uchun brauzerni oching va URL maydoniga kiriting:

(Malina-pi-ip)

Apache -ning standart veb -sayti "Bu ishlaydi!" Deb javob beradi.

4 -qadam: veb -sayt

Mac Book -da terminal oynasini oching. Raspberry Pi -ga kiring, keyin default.html faylini olib tashlang, veb -sayt katalogidagi ruxsatlarni o'zgartiring va index.php deb nomlangan faylni tahrirlang.

$ ssh pi@♣ malina-pi-ip ♣

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

Va quyidagi kodni kiriting:

Garaj ochuvchi

Uy avtomatizatsiyasi

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

";} boshqa {echo"

"; } ?>

Garaj eshiklarini ochuvchi Garaj eshiklarini ochish bo'yicha qo'llanma yopiq 1 ochiq 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} boshqa {echo"

var13 ->

Faylni yozish uchun CTRL-o va ENTER, muharrirdan chiqish uchun esa CTRL-x.

Fayl uchun ruxsatnomalarni o'zgartiring

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

5 -qadam: veb -sayt tasviri

Veb -sayt tasviri
Veb -sayt tasviri
Veb -sayt tasviri
Veb -sayt tasviri

Internetdan yuqori aniqlikdagi masofaviy garaj eshigini oching. Mac bo'yoq cho'tkasi yordamida rasmni xohlaganingizcha o'zgartiring. Yuqoridagi rasmda yuqori aniqlikdagi Genie Garage Opener ishlatilgan, malina pi logotipi qo'shilgan va svetodiod olib tashlangan.

Bir rasm-fon (remote-background.jpg), ikkinchisi-faol tasvir (remote-press.jpg).

Reja shundan iboratki, tugmachani bosganingizda, chiroqni miltillatish o'rniga, malina miltillaydi. Men saytni soddalashtirdim.

Rasmlarni malina pi ga nusxalash:

$ scp *-j.webp

parol: ♣ parol ♣

Veb -saytda bitta tugma mavjud. Tasdiqlash uchun brauzerni oching va "raspberry-pi-ip" kiriting. Apache -ning standart veb -sayti o'rniga "Bu ishlaydi!" Yozuvi o'rniga tugma paydo bo'lishi kerak. Uni bosing.

6 -qadam: Veb -serverni masofadan boshqarish

Garaj eshiklari ochilishiga uzoqdan kirishni osonlashtirish uchun men dinamik DNS nomidan foydalanaman. Chunki men IP -manzillarni eslashni yoqtirmayman.

Bu xususiyat yordamida men brauzerning URL maydoniga "host-hostname", "getmyip.com "ni kiritaman. E'tibor bering: uy yo'riqnomaidagi IP ogohlantirmasdan o'zgarishi mumkin, lekin bu kamdan -kam hollarda bo'ladi. Men DynDNS -dan foydalanishni tanladim. Siz yo'riqchining umumiy IP -manzilini bilishingiz kerak.

U-oyna yo'riqnoma IP-manzili: uverse-public-ip

Xost nomlari va DynDNS Pro hisob ma'lumotlarini ko'rishingiz mumkin. Ishni boshlash uchun bir nechta maslahatlar:

  • Dinamik DNS xost nomini yarating (30dan 1):

    • (Dinamik-xost nomi)
    • Yangilash kaliti: dinamik-ip-yangilovchi-kalit
  • Xost nomi har doim to'g'ri IP -manzil ko'rsatilishini ta'minlash uchun yangilanish mijozini o'rnating.

    • MacBook -ga yuklab oling va o'rnating
    • AT&T U-oyat IP-lari kamdan-kam hollarda o'zgaradi, shuning uchun yuqoridagi yangilanuvchi har doim o'zgarishi mumkin
    • Ko'rsatmalarga amal qiling:

      • Hisob qo'shish
      • Foydalanuvchi nomi va parolni kiriting: ♣ dinamik-ip-foydalanuvchi nomi ♣ ♣ dinamik-ip-parol ♣
      • Xost nomini tanlang
      • Tanlangan xostlarni sozlash -ni bosing
      • Uy egasi faol bo'lishi kerak
    • Qurilmangizga Internetdan kirishga ruxsat berish uchun tarmoqni sozlang. Siz buni qanday qilish haqida umumiy ko'rsatmalar uchun Dyn Wizard -dan foydalanishingiz, PortForward.com kabi manbalardan foydalanishingiz yoki yordam uchun qurilma ishlab chiqaruvchisiga murojaat qilishingiz mumkin.

      • AT&T U-oyati
      • 2-Wire 3801HGV uchun portni yo'naltirish-bu menda mavjud bo'lgan AT&T U-Verse yo'riqnoma. AT&T U-oyat 5268ac yo'riqnoma orqali qanday qilib oldinga yo'naltirishni Qo'shimchadagi Yangilanishlarga qarang.
      • Brauzerni oching va malina-pi-ip-ga o'ting
      • Parol: parol ♣
      • Sozlamalar
      • Xavfsizlik devori

        • Raspberry-pi-hostname-ni tanlang
        • Serverlar

          • Veb -server port 80
          • HTTPS server - 443 port
        • Qo'shish
      • Saqlash

Bu bajarilgandan so'ng, veb -server Internetdan ishlaydi. Tasdiqlash uchun "dinamik-xost nomi" ni kiriting va siz garaj eshigini ochish tugmachasini ko'rasiz.

7 -qadam: Raspberry Pi -ga simni ulang

Raspberry Pi uchun simni ulang
Raspberry Pi uchun simni ulang

Taqdim etilgan kod uchun (4 va 6 -qadam), men GPIO pin 7 dan foydalandim. Tasodifan, GPIO 7 simli pin 7 bilan bir xil bo'ladi. PHP kodida Pi pin raqamlari ishlatiladi va GPIO pin raqamlari emas. Siz xohlaganingizdan foydalanishingiz mumkin, lekin kodni o'zgartirganingizga ishonch hosil qiling.

Men o'ralgan simni ishlatishga harakat qildim, lekin o'rni simni yaxshi ushlab turmaydi. Qattiq sim yaxshiroq.

Birinchi urinishimda men uchta ulash kabelini (ayoldan erkakgacha) yaratdim.

  • Uchta ayol va ayol o'tish kabelidan foydalaning
  • Taxminan 1 dyuymgacha uchta qattiq simni kesib oling.

    Qattiq simning har ikki uchida 1/4 dyuymli chiziq

  • Bir qattiq simni bitta ayol o'tish kabeliga joylashtiring.

Bog'lanish kabellarini yaratishning eng yaxshi usuli (ayol-erkak):

  • Faqat qattiq simdan foydalaning
  • Uchta 4 dyuymli qattiq simni kesib oling
  • Qattiq simning har ikki uchida 1/4 dyuymli chiziq
  • Ayol ulanish pimlarini ishlating

    • Qattiq simning bir chetiga bitta urg'ochi pinni suring va burang

      Ayol pinasi bo'shashmasligi kerak, agar kerak bo'lsa lehim

    • Ayol ulanish pimi yoki elektr plyonkasi bilan qopqoq pinining ustidan siljishni kamaytiring

Diagrammada ko'rsatilgandek, o'rni pi ga ulang:

  • Kabelning ayol uchini Raspberry Pi piniga ulang.
  • O'rnimizni qattiq simini joylashtiring.

8 -qadam: Ishga tushirish xizmatini yarating

Ko'pgina o'rni, shu jumladan sotib olingan, quyidagicha ishlaydi:

  • Signal yoqilganda, elektron o'chadi.
  • Signal o'chirilgan bo'lsa, kontaktlarning zanglashiga olib keladi.

Agar Raspberry Pi kuchini yo'qotsa, o'rni o'chirishni saqlaydigan xavfsizlik mexanizmiga ega.

Muammo Rapberry Pi va o'rni quvvatni qayta tiklaganida paydo bo'lishi mumkin, lekin Raspberry Pi yuklanishni tugatmasdan oldin signalni yoqish uchun o'chirib qo'yish kerak. Siz ertalab garajingiz ochiq va bir nechta yangi do'stlaringiz bilan uyg'onishingiz mumkin!

Shu bilan birga, GPIO pin rejimi ushbu buyruq orqali o'rnatilmaguncha, o'rni ishga tushmaydi: gpio 7 rejimi o'chiriladi. Bundan tashqari, agar GPIO rejimini o'rnatishdan oldin GPIO PIN -kodi ON (gpio yozish 7 1) bo'lsa, o'rni ishga tushirilgandan so'ng o'chadi.

Bu ishga tushirish paytida ishga tushirish va yangi do'stlarni uyg'otmaslik uchun quyidagi ishga tushirish skriptidan foydalaning.

$ ssh pi@♣ malina-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Keyin ushbu skriptni joylashtiring:

#! /bin/bash

# /etc/init.d/garagerelay # Boshlang'ichda "$ 1" tizim qutisi so'rasa, ma'lum funktsiyalarni bajaring) echo "Start Relay" # 7 -ni yoqing, bu esa/usr/local/bin/gpio yozishni o'chiradi 7 1 #Start Gpio/usr/local/bin/gpio mode 7 out;; to'xtatish) echo "To'xtatish gpio";; *) echo "Foydalanish: /etc/init.d/garagerelay {boshlash | to'xtatish}" chiqish 1;; esac chiqish 0

Saqlash uchun: CTRL-o, ENTER

Nanodan chiqish uchun CTRL-x

Faylni bajariladigan qilib yarating:

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

Endi pi -ga bu skriptni yuklashda ishga tushirishni ayting:

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

(Eslatma: "yo'qolgan LSB teglari" ogohlantirishini e'tiborsiz qoldirishingiz mumkin.)

Ishga tushirish skriptining ishlayotganligiga ishonch hosil qiling

$ sudo qayta ishga tushirish

Brauzerni oching va ochgichni bosing. O'rnimizni bosish kerak.

9 -qadam: Raspberry Pi -ni garajga ulang

Raspberry Pi -ni garajga ulang
Raspberry Pi -ni garajga ulang

Raspberry Pi -ni ko'chirishda ishonch hosil qiling:

$ o'chirish -h 0

Siz garajda quvvatni o'chirishni xohlashingiz mumkin. Shunday qilib, eshik qo'ng'irog'i ochgichi sizni elektr toki bilan urmaydi:). Haqiqiy sabab - har safar simlarni qisqartirganda, eshik yuqoriga va pastga tushadi.

Qo'ng'iroqni devorga mahkamlaydigan eshik qo'ng'irog'i turidagi ochgichdan devor vintlarini echib oling.

Eshik jiringlagichi orqasidagi garajdan uyning ichki qismiga teshik oching. Texasda, Raspberry Pi garajda bo'lmasligi kerak, garajdagi harorat o'zgarishi Raspberry Pi -ning ishlash ko'rsatkichlaridan farq qiladi.

O'rnimizni simlarini teshikdan o'tkazing (palto ilgichidan foydalaning).

Eshik jiringlagichining orqa tomonidagi ikkala vintni bo'shating.

O'rnimizni simlarining ikkala uchini ajratib oling: 1) o'rni tomonining 1/8 dyuymli va eshik qo'ng'irog'ining taxminan ½ dyuymli. Telning eshik qo'ng'irog'ini orqa vintni o'rab oladigan darajada katta halqa qilib eging.

Eshik qo'ng'irog'ining orqa tarafidagi har bir vintga bitta o'rni simini ulang va vintni mahkamlang. Ulanishlar rasmda ko'rsatilgandek. O'rnimizni kontaktni izolyatsiya qilgani uchun, yo'nalish qaysi o'rni qaysi vintga ulanganligi muhim emas.

10-qadam: Raspberry Pi-ni SECO-LARM-ga ulang

Raspberry Pi-ni SECO-LARM-ga ulang
Raspberry Pi-ni SECO-LARM-ga ulang
Raspberry Pi-ni SECO-LARM-ga ulang
Raspberry Pi-ni SECO-LARM-ga ulang

Kodni tugatishimdan oldin, men va oilam ta'tilda edilar va men brauzerimni ochdim. Mening brauzerimning oxirgi ko'rinishi garaj eshigining ochilishi edi - sahifa yangilandi va garaj eshigi ochildi. Bir necha kundan keyin qo'shnim qo'ng'iroq qilib, garaj eshigi ochiq bo'lishi kerakligini so'radi? Yaxshiyamki, men uni 500 mil uzoqlikdan yopib qo'yishim mumkin edi.

Bu snafu meni bunday bo'lmasligi uchun kodni o'zgartirishga majbur qildi va veb -saytga sensor va garaj eshigining holatini qo'shdi.

Bu sensorni qo'shish uchun ko'rsatma bo'lgan asl nusxaga havola. Ammo, tugallangan hamma narsani hisobga olgan holda, sensorni o'rnatish ancha soddalashtirilishi mumkin va pythonni ishlatish o'rniga index.php -ga bir necha satr kod qo'shing.

closed

Magnit garaj eshigining chap, yuqori ichki qismiga, sensor esa garaj devoriga biriktirilgan. Shunday qilib, men qattiq termostatni simini sensordan malina pi ga qaytarishim kerak edi. Buning uchun garajdan chordoqqa va chordoqdan garaj eshigi ochiladigan devorga (eshik qo'ng'irog'i tugmasi) teshik kerak edi.

Men SECO-LARM sensori va qattiq simlar orasiga ko'k birlashma qutisini joylashtirdim.

Mening uyimda birinchi qavatning shipi bilan ikkinchi qavatning tagida 18 dyuymli bo'shliq bor. Menimcha, bu erda isitish va sovutish kanallari ishlaydi. Menga ikkinchi qavat va eshik qo'ng'irog'ini o'z ichiga olgan 2x4 (tepa plastinka) orqali o'tish uchun etarlicha uzun matkap uzatmasi kerak edi.

Eng muhimi, chodirdan simlar garaj eshigi ochiladigan joyga o'tadigan maydonga burg'ilashda elektr tokini burg'ulash emas. Buni tuzatish qiziq emas edi. Chiroqlarni ko'rish va chiroqlarni o'chirish juda hayajonli edi!

Sensor ikkita qattiq termostatni simini yoki ko'rinmas it panjara simini talab qiladi.

Raspberry Pi bir nechta pinli tavsiflarga ega (BCM, wPi, jismoniy). Kod simli pin raqamlarini ishlatadi. Barcha pin va pinli xaritalar va pin qiymatlarini ko'rish uchun quyidagilarni kiriting:

$ gpio o'qish

Gpio qo'llanmasi uchun quyidagilarni kiriting:

$ gpio odam

Asl yo'riqnomada, jismoniy pin 9, erga ulangan va SECO-LARM simlaridan biriga ulanadi. Biroq, bu men uchun ishlamaydi. Buning o'rniga, simlarni 15 va 17 -gachasi jismoniy pimlarga ulang

SECO-LARM sensori yopilganda, 15-sonli jismoniy pin (wPi pin 3) 3,3V ga o'tadi. Jismoniy pin 17 - 3,3V. Agar u ishlamasa, SECO-LARM ulanishini o'zgartiring.

SECO-LARMni garaj eshigi va devoriga ulang. Simlarni ishga tushiring va Raspberry Pi -ga ulaning.

11 -qadam: Eshik yopiq bo'lganda ochiq bo'lsa, ogohlantirish yuboring

Agar garaj eshigi ochilmasa ochiq bo'lsa, mobil telefonga SMS yuboring.

Oddiy SMTP -ni o'rnating va sozlang.

Menda AT&T uyali aloqa bor va matnli xabarlar uchun ♣cell-phone-number♣@txt.att.net dan foydalanaman. Menda ham Gmail hisobi bor va quyidagi misolda ♣gmail-account♣@gmail.com ishlatiladi. Agar siz turli xil xizmatlardan foydalansangiz, tegishli o'zgarishlarni kiriting.

Quyidagi $ buyruqlari uchun MacBook -da terminal oynasini oching va Raspberry Pi -ga kiring.

Ma'lumot omborlari yangilanganligiga ishonch hosil qiling:

$ sudo apt-get yangilanishi

Oddiy SSMTP va pochta yordam dasturlarini o'rnating:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

SSMTP konfiguratsiya faylini tahrirlang:

$ sudo nano /etc/ssmtp/ssmtp.conf

quyidagicha:

mailhub = smtp.gmail.com: 587 xost nomi = sizning xost-ismingiz, AuthUser=♣gmail-account♣@gmail.com AuthPass = gmail-parol ♣ UseSTARTTLS = YES

SSMTP taxalluslar faylini tahrirlang:

$ sudo nano/etc/ssmtp/revaliases

Har bir foydalanuvchi uchun elektron pochta xabarlarini yuboradigan bitta qator yarating. Masalan:

ildiz: mailgmail-account♣@gmail.com: smtp.gmail.com: 587

SSMTP konfiguratsiya faylining ruxsatlarini o'rnating:

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

/Etc/ssmtp/ssmtp.conf faylining ruxsatnomalari Raspberry Pi -dan kim elektron pochta xabarlarini yuborishi mumkinligini aniqlaydi. Odatiy bo'lib, bu fayl foydalanuvchi ildiziga tegishli va fayl guruhi ham root hisoblanadi.

E -pochta hisoblari to'g'risidagi ma'lumotlarni o'z ichiga olgan SSMTP taxalluslar faylini tahrir qiling:

$ sudo nano /etc/ssmtp/ssmtp.conf

Yuqoridagi sozlash va konfiguratsiya jarayoni tugagandan so'ng, buyruq satridan elektron pochta xabarini yuborish orqali tekshiring.

$ echo "garaj eshigini yoping" | "Garaj eshigi ochiq" elektron pochta xabarlari ♣cell-phone-number♣@txt.att.net

Garaj eshigi ochilmasligi kerakligini tekshirish uchun skript yarating va matnli xabar yuboring.

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

va quyidagilarni qo'shing:

#!/bin/bash

# garaj eshigi ochiqligini tekshiring. # Agar ochiq bo'lsa, ogohlantirish yuboring va syslogga yozing = 0; door = $ (/home/pi/wiringPi/gpio/gpio o'qish 3) agar ["$ door" -eq "$ up"] bo'lsa, logger ♣ your -hostname ♣: Garage Door Open echo "garaj eshigini yoping" | "Garaj eshigi ochiq" elektron pochta xabarlari ♣cell-phone-number♣@txt.att.net chiqish 0

Keyin kerakli soatlarda ishlash uchun crontab qo'shing:

$ sudo crontab - e

va qo'shing:

# Kechasi, har soatda garaj eshigi ochiqligini tekshiring

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

Agar hamma narsa yaxshi bo'lsa, keyingi bosqichga o'ting.

12 -qadam: Raspberry Pi -ni maxfiy kitobga qo'ying

Raspberry Pi -ni maxfiy kitobga qo'ying
Raspberry Pi -ni maxfiy kitobga qo'ying
Raspberry Pi -ni maxfiy kitobga qo'ying
Raspberry Pi -ni maxfiy kitobga qo'ying

Malinali pi ni maxfiy kitobga qo'ying. Men buni Mayklnikida taxminan 7 dollarga oldim. Men simlar va elektr kabeli uchun kichik teshiklarni kesib tashladim.

13 -qadam: Ilova: Adabiyotlar

SunFounder 2 kanal 5V o'rni qalqoni moduli Arduino UNO 2560 1280 ARM PIC AVR STM32 uchun

  • 5V 2-kanalli o'rni interfeysi platasi va har biriga 15-20mA kerak
  • Drayv oqimi AC250V 10A yuqori oqim rölesi bilan jihozlangan; DC30V 10A
  • To'g'ridan -to'g'ri mikrokontroller tomonidan boshqariladigan standart interfeys (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL logic)
  • O'rnatish chiqish holati uchun LED ko'rsatkichlari Hujjatni yuklab olish uchun havola:

14 -qadam: Qo'shimcha: yangilanishlar

21 fevral 2016 yil

  • Dastlabki ko'rsatmalarda avtomatik to'g'rilash, formatlash va yo'nalishlarning aniqligi bilan bog'liq muammolar bor edi.

    • Masalan, kod ichidagi ikkita tirnoq kursivli er -xotin tirnoqqa o'xshash narsaga o'zgartirilganda. Ammo, agar siz uni skriptga kesib qo'ysangiz, u ishlamaydi.
    • O'rgatuvchi muharrir avtomatik tuzatishni yaxshi ko'radi, shuning uchun wlan rejaga, avtomatik o'chirish esa avtomatik o'chirishga aylanadi. Bu o'zgarishlarni sezish qiyin.
    • Mening ba'zi yo'nalishlarim etarli darajada aniq bo'lmasligi mumkin.
    • Odatda, burchakli qavslarni indikator sifatida almashtirish kerak bo'lgan narsadan foydalanaman. Tahrirchi ularni html -ga o'zgartiradi. Shunday qilib, men kvadrat qavsga o'tdim, lekin ular muammolarga olib kelishi mumkin, chunki ular kodga o'xshaydi. Shunday qilib, men oxir -oqibat haqiqiy qiymat bilan almashtirish uchun ♣ ga joylashdim.
  • Vaqt o'tishi bilan men ba'zi skriptlarni yaxshiladim.
  • 21-26-sonli qadamlar

2016 yil 03 -aprel

  • Nosozliklarni tuzatish, havolalar va yangilanishlar bilan qo'shimcha tuzildi (27-29-bosqichlar)
  • Nosozliklarni tuzatish oldingi 2 -bosqichdan Ilovaga ko'chirildi
  • Nosozliklarni tuzatish sahifasi yangilandi va alifbo tartibiga o'tkazildi
  • Fayl nomi test2wifi.sh -dan garage.sh -ga o'zgartirildi - faqat tavsiflovchi.
  • Garage.sh -dan foydalanish uchun cron yangilandi
  • 1, 20-26 tahrirlangan (ilovadan oldin qadam qo'yish uchun ishga tushirish xizmatini yarating)

2016 yil 04 -APR

  • 2-11 va 16-20-qadamlarni o'z standartim bilan almashtirdim, bu Raspberry Pi ni o'rnatish edi
  • Yangilangan qismlar ro'yxati, 1 -qadam
  • Rasmlar qo'shildi/qo'shildi

2016 yil 05 -APRAL

Soddalashtirilgan veb -sayt va rasm (4 va 5 -bosqichlar)

2016 yil 01 -may

Seco-larm/raspberry Pi sensori uchun muammolarni bartaraf etish qo'shildi

2016 yil 01 -may

Oldingi tahrirlar to'g'ri saqlanmaganmi?

2016 yil 11 -noyabr

  • AT&T GigaPower -ga yangilandi va yo'riqchini 5268ac -ga o'zgartirdi
  • 5268ac orqaga qaytishni qo'llab -quvvatlamaydi, shuning uchun Garage Opener serveriga mahalliy kompyuterlardan kirish mumkin emas. MacBook garaj ochuvchi veb -serveriga kirishi uchun quyidagilarni bajaring:

$ sudo nano /etc /hosts

va qatorni qo'shing

192.168.1.64 (serverning tashqi domen nomi)

Saqlash va chiqish, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • 5268ac-ning HTTPS-server, HTTP-server va veb-server kabi ichki portni uzatish qoidalari ishlamaydi. Portni qayta yo'naltirishni ishga tushirish uchun:

    • Brauzerni oching va 192.168.1.254 ga o'ting
    • Kirish
    • Sozlamalar, Xavfsizlik devori, Ilovalar, teshik va DMZ -ni tanlang.
    • Garaj ochuvchi veb -serverni tanlang
    • Foydalanuvchi aniqlaganini tanlang
    • Yangi foydalanuvchi aniqlagan ilovani bosing

      • Ilova profilining nomini kiriting: PortForwarding
      • "Ilova ta'rifini yaratish" bo'limida quyidagilarning har birini qo'shing va ro'yxatga qo'shish -ni bosing:

        • TCP 80 dan 80 gacha, xarita 443 portini joylashtirish uchun
        • 443 dan 443 gacha bo'lgan TCP 443 portini joylashtirish uchun xaritadir
        • UDP 443 dan 443 gacha, xarita 443 portini joylashtirish uchun
        • UDP 80 dan 80 gacha, 443 portni joylashtirish uchun xarita
    • Orqaga bosing
    • Veb -serveringizni qayta tanlang
    • Foydalanuvchi aniqlaganini tanlang
    • PortForwarding -ni qo'shing
    • Saqlash -ni bosing

2018 yil 21 -yanvar

  • Raspberry Pi 3 ga yangilandi
  • Bosqichlarga bir nechta tahrirlar
  • Ba'zi qismlar va narxlar yangilandi

15 -qadam: Ilova: Muammolarni bartaraf etish

Disk maydoni ishlatilgan

Oxirgi qatorda ishlatilgan diskdagi bo'sh joy ko'rsatilgan. SD -kartada 8 Gb mavjud.

$ CD../..

$ sudo du –hx –c

elektron pochta

Agar sizda muammolar bo'lsa, buni sinab ko'ring:

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

Agar elektron pochta sozlamalari to'g'ri o'rnatilgan bo'lsa, siz gmail hisobingizga elektron pochta xabarini olishingiz kerak.

Agar autentifikatsiya muvaffaqiyatsizlikka uchragan bo'lsa:

Hisobingiz xavfsizligini pasaytirishingiz kerak bo'lishi mumkin. Biroq, xavfsizlikni pasaytirish tavsiya etilmaydi. Google xavfsizlik sozlamalari past bo'lgan havolali elektron pochta xabarini yuboradi.

Hisobingizga kirmaslik uchun www.gmail.com saytidan joriy elektron pochta o'quvchisidan o'tishingiz mumkin (tavsiya etiladi) yoki sozlamalarni https://www.google.com/settings/security/lesssecu… manzilida o'zgartiring, shunda hisobingiz endi yo'q bo'ladi. zamonaviy xavfsizlik standartlari bilan himoyalangan.

Men xavfsizlik standartlarini tushirishni tavsiya etmayman.

Agar avtorizatsiya muvaffaqiyatsizlikka uchragan bo'lsa:

Buning mumkin bo'lgan sababi, siz /etc/ssmtp/ssmtp.conf faylida gmail hisob qaydnomangiz uchun noto'g'ri foydalanuvchi nomi yoki parolni ko'rsatganligingizdir. AuthUser va AuthPass maydonlarining qiymatlarini ikki marta tekshiring.

Agar siz ishlov berish jarayonida aloqani yo'qotib qo'ysangiz:

Ehtimol, siz Google smtp uchun noto'g'ri portni /etc/ssmtp/ssmtp.conf yoki/etc/ssmtp/revaliases da ko'rsatgansiz.

Jurnalingizning oxirgi satrlarini tekshiring. U erda ba'zi tegishli xato xabarlar bo'lishi kerak:

$ tail /var/log/mail.log

$ tail/var/log/syslog

Garaj eshigi ochilmaydi

Agar hamma narsa ishlayotgan bo'lsa va u to'xtab qolsa, uni qayta ishga tushiring. Agar bu ishlamasa, Raspberry Pi -dan quvvat simini torting va keyin quvvatni tiklang. Raspberry Pi 2 daqiqadan kamroq vaqt ichida qayta ishga tushishi kerak va hamma narsa yaxshi ishlashi kerak. Bu odatda turar -joy shluzi quvvatining yo'qolishi bilan bog'liq.

GPIO

Agar biror narsa noto'g'ri bo'lsa, nima bo'layotganini ko'rishning eng yaxshi usuli quyidagi buyruqdir:

$ gpio o'qish

MacBook -dan malina pi -ga kiring

Terminal - bu MacBook yordam dasturi: disk/ilovalar/yordamchi dasturlar/terminal. Men terminal ilovasini dokda saqlayman.

MacBook -da terminalni oching

$ ssh pi@♣ malina-pi-ip ♣

♣ parol ♣

Turar joy darvozasiga kiring

MacBook -da brauzerni oching

URL = ♣ malina-pi-ip ♣

Kirish: shlyuz-parol

Jurnallar

Agar biror narsa noto'g'ri bo'lsa, xatolar, ogohlantirishlar yoki boshqa muammolar uchun ushbu jurnallarni tekshiring.

$ cat/var/log/xabarlar

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

MAC katalogi

Veb -sayt fayllari saqlanadigan MacBook -dagi katalog

MAC katalogi =/Foydalanuvchilar/♣ mening macbook ♣/Ish stoli/wi-fi yoqilgan uy/wifi yoqilgan garaj eshigi/veb-sayt

Parol

Parol = ♣ malina-pi-parol

RAM va CPU ishlatilgan

$ top

Chiqish uchun CTRL-c

Raspberry Pi uy katalogi

$ pwd

/uy/pi

Raspberry Pi xost nomi

$ xost nomi

xost nomi = xost nomi

Raspberry Pi IP

♣ malina-pi-ip ♣ = 192.168.1.93

Raspberry Pi veb -saytlari katalogi

/var/www

Seco-larm ishlashni to'xtatadi

2016 yil 1-mayda Seco-larm ishlamay qoldi. Sensor uchinchi marta ishlamay qoldi. Buni to'g'ri aytish uchun, Raspberry Pi -dagi 15 -jismoniy pin 3.3v kirishni aniqlashni to'xtatdi. Men 1 va 17 -chi 3.3v jismoniy pinlarni sinab ko'rdim va ikkalasi ham hali 3.3v chiqardi. Men 15 -jismoniy pindan boshqa GPIO -ga, 16 -jismoniy pin (GPIO 4) ga o'tdim va u yana ishlay boshladi. Shunday qilib, Seco-larmda hech qanday yomonlik yo'q. Muammo Raspberry Pi GPIO bilan bog'liq.

GPIO 3, jismoniy pin 15 o'lik. Bu GPIO pinlarini qanday tekshirish haqida juda yaxshi xabar.

Men GPIO 3 dan GPIO 4 ga o'tdim va shunga mos ravishda kodni o'zgartirdim. GPIO pin nima uchun ishlamay qolganini bilmayman. Mana ikkita mumkin sabab:

  • Menda Seco-larm sensori o'rnatilgan, shuning uchun eshik yopilganda, u 3,3V ga chiqadi. Garaj eshigi ochilgandan keyin tez -tez yopiladi. Ehtimol, GPIO pimi ko'p yoki kamroq 3,3v doimiy kirishni qabul qila olmaydi.
  • Nosozlik elektr quvvati yo'qolishiga to'g'ri keldi, ehtimol, elektr quvvati ko'tarildi.

U-oyatli turar joy darvozasi

Menda AT&T U-oyati turar joy shlyuzi bor, lekin har qanday xizmat ishlashi kerak.

Agar U-oyat shlyuzi qayta ishga tushsa yoki kuchini yo'qotsa, Raspberry Pi-ni qayta yuklash kerak bo'lishi mumkin.

U-oyatli turar joy shlyuzi Public IP = ♣ router-public-ip ♣

U-oyatli turar-joy shlyuzining umumiy IP-si o'zgarishi mumkin, lekin juda kamdan-kam hollarda

U-oyatli turar-joy darvozasi Bosh sahifasi = 192.168.1.254

U-oyat yo'riqchining simsiz ulanish nuqtasi SSID = ssid va boshqalar

WiFi o'tkazuvchanligi kutilganidan sekinroq

Routerni kamroq ishlatilgan kanalga o'zgartiring. Odatiy bo'lib, barcha provayderlar har bir kishining wifi -ni 1 -kanalga o'rnatadilar. Kamroq ishlatilgan kanalga o'zgartiring, masalan, 11. Taq sonini ishlatishga harakat qiling.

Eslatma: Men bir nechta qo'shnilarga wi-fi-ni yaxshilash uchun nima qilganimni aytdim, hozir hamma 9 yoki 11-da, shuning uchun men 1-ga qaytdim. Siz har doim g'alati kanaldan foydalanishingiz kerak.

Brauzerni oching.

U-oyat uchun URL maydoniga 192.168.1.254 kiriting.

Simsiz havolani bosing va 6 yoki 11 -kanalni tanlang.

Smartfon uchun wifi analizator deb nomlangan ilova mavjud. Displeylardan birida ma'lum bir kanalda uzatiladigan yaqin atrofdagi Wi -Fi kirish nuqtalari ko'rsatilgan. Mening mahallamda hamma 1 -kanalga o'rnatiladi.

Raspberry Pi -ni ajratib oling va keyin quvvatni tiklang

Tavsiya: