Mundarija:

Wi -Fi signalizatsiya PIR (va uy avtomatizatsiyasi): 7 qadam (rasmlar bilan)
Wi -Fi signalizatsiya PIR (va uy avtomatizatsiyasi): 7 qadam (rasmlar bilan)

Video: Wi -Fi signalizatsiya PIR (va uy avtomatizatsiyasi): 7 qadam (rasmlar bilan)

Video: Wi -Fi signalizatsiya PIR (va uy avtomatizatsiyasi): 7 qadam (rasmlar bilan)
Video: Обзор системы оповещения Dakota Alert 4000 Motion Sensing Wireless Driveway Alarm System 2024, Iyul
Anonim
Image
Image
Wi -Fi signalizatsiya PIR (va uy avtomatizatsiyasi)
Wi -Fi signalizatsiya PIR (va uy avtomatizatsiyasi)

Sharh

Bu sizga uy avtomatlashtirish dasturida uy signal signallarining PIR (passiv infraqizil sensorlar) ishga tushirilgan oxirgi sana/vaqtni (va ixtiyoriy ravishda vaqtlar tarixini) ko'rish imkoniyatini beradi. Ushbu loyihada men OpenHAB (men shaxsan foydalanadigan bepul uy avtomatlashtirish dasturi) bilan qanday ishlashni muhokama qilaman, lekin u MQTT -ni qo'llab -quvvatlaydigan boshqa uy avtomatlashtirish dasturlari yoki ilovalari bilan ishlaydi (bu maqolada keyinroq tasvirlangan). Bu ko'rsatma sizni elektron platani va signalli boshqaruv qutisidagi signal zonalariga kiradigan Wemos D1 mini (ESP8266 chipini ishlatadigan IOT platasi) simini ulash bo'yicha zarur qadamlarni bajaradi. bir yoki bir nechta PIR) ishga tushirilganda, Wemos MQTT protokoli yordamida simsiz ravishda uy avtomatlashtirish dasturiga xabar yuboradi, bu esa o'z navbatida ushbu tetikning oxirgi sanasini/vaqtini ko'rsatadi. Wemos dasturlash uchun Arduino kodi ham taqdim etiladi.

Kirish

Yuqoridagi rasm - bu mening iPhone -dagi OpenHAB ilovasidagi ekranlardan birida ko'rgan narsam. Sana/vaqt matni PIR ishga tushirilgan vaqtni tezroq aks ettirish uchun rang bilan kodlangan - qizil (oxirgi 1 daqiqada ishga tushirilgan), to'q sariq (oxirgi 5 daqiqada ishga tushirilgan), yashil (oxirgi 30 daqiqada ishga tushirilgan) ko'rsatiladi., ko'k (oxirgi soat ichida ishga tushirilgan) yoki boshqa, qora. Sana/vaqtni bosganingizda, PIR -tetiklarning tarixiy ko'rinishi ko'rsatiladi, bu erda 1 - tetik, 0 - bo'sh. Buning ko'p ishlatilish joylari bor, masalan, bu sizning uyingizda bo'lish qarorini to'ldirishi mumkin, u siz bo'lmaganingizda va OpenHAB qoidalari orqali harakatni aniqlay oladi, telefoningizga bildirishnomalar yuboradi, siz buni men kabi bolalarim yo'qmi yoki yo'qligini bilish uchun ishlatishingiz mumkin. yarim tunda uyg'onish, ularning yotoqxonalari tashqarisida joylashgan PIR tomonidan qo'zg'atilgan!

OpenHAB - bu men foydalanadigan uy avtomatlashtirish dasturi, boshqa dasturlar ham ko'p - va agar ular MQTT -ni qo'llab -quvvatlasa, siz ushbu loyihani o'zingiz foydalanadigan dasturiy ta'minotga moslashtirishingiz mumkin.

Taxminlar

Bu ko'rsatma sizda allaqachon mavjud (yoki o'rnatadi) deb taxmin qiladi:

  • Shubhasiz, PIR (passiv infraqizil sensorlar) bilan uy signal tizimi va siz kerakli simlarni ulash uchun signalni boshqarish qutisiga kirishingiz mumkin.
  • OpenHAB (ochiq manbali bepul uy avtomatlashtirilgan dasturiy ta'minoti) ishlaydi, lekin u muhokama qilinganidek, MQTT ulanishi mumkin bo'lgan har qanday uy avtomatlashtirish dasturi bilan ishlashi kerak. Shu bilan bir qatorda, kodni o'zingizning ehtiyojlaringizga mos ravishda o'zgartirishingiz mumkin.
  • OpenHAB bilan o'rnatilgan va bog'langan Mosquitto MQTT (yoki shunga o'xshash) vositachisi (MQTT - bu xabarlarga obuna bo'lish/nashr qilish protokoli, u engil va qurilmalar orasidagi aloqa uchun juda mos keladi)

Agar siz OpenHAB va MQTT brokerini ishlatmasangiz, MakeUseOf veb -saytidagi ushbu ajoyib maqolani ko'ring.

Menga nima kerak?

Simsiz boshqaruvchini yaratish uchun sizga quyidagi qismlar kerak bo'ladi:

  • Wemos D1 mini V2 (o'rnatilgan ESP8266 simsiz CHIP)
  • LM339 taqqoslagichi (bu PIRning bo'sh va tetiklanishini tekshiradi)
  • Wemos uchun 5V DC quvvat manbai (OR, DC-DC buck konverteri
  • Kuchlanish bo'linishi uchun ikkita rezistor (o'lchami sizning signal kuchlanishingizga bog'liq bo'ladi, keyinchalik loyihada muhokama qilinadi)
  • LM339 quvvatini boshqarish uchun 1K ohmli qarshilik
  • LM339 ni mantiqiy ravishda yoqish uchun bitta 2N7000 (yoki shunga o'xshash) MOSFET (ehtimol ixtiyoriy, keyinchalik loyihada muhokama qilinadi)
  • O'chirish moslamalarini o'rnatish va sinov uchun mos o'lchamdagi non paneli
  • Hamma narsani bir -biriga ulash uchun bir nechta non simlari
  • Kerakli asboblar: yon kesgichlar, bitta yadroli sim
  • DC ko'p metrli (majburiy!)

1 -qadam: Signal tizimini boshqarish qutisi

Signal tizimini boshqarish qutisi
Signal tizimini boshqarish qutisi

Birinchidan, ba'zi ogohlantirishlar va ogohlantirishlar

Shaxsan menda Bosch signalizatsiya tizimi bor. Sizga signalizatsiya tizimi uchun tegishli qo'llanmani yuklab olishni va ishga tushirishdan oldin u bilan tanishishingizni tavsiya qilaman, chunki siz zonalarni ulash uchun signalizatsiya tizimini o'chirib qo'yishingiz kerak bo'ladi. Ishni boshlashdan oldin ushbu maqolani to'liq o'qishni tavsiya qilaman!

Quyida siz boshlashdan oldin bilishingiz kerak bo'lgan bir nechta narsalar ro'yxati keltirilgan - davom etishdan oldin ularning har birini o'qib tushunganingizga ishonch hosil qiling! Agar siz signalizatsiya tizimini buzsangiz va/yoki o'rnatish uchun o'rnatuvchiga pul to'lasangiz, men javobgarlikni o'z zimmamga olmayman. Agar siz quyidagilarni o'qib tushunsangiz va kerakli ehtiyot choralarini ko'rsangiz, yaxshi bo'lardi:

1. Mening signal tizimimda qutining ichida zaxira batareyasi bor edi, shuningdek, qopqoqning ichki tomonida (signal tizimi platasiga kirishni ta'minlovchi) buzg'unchilik tugmasi bor edi, shuning uchun boshqaruv panelining old panelini olib tashlashda signalni tashqi tomondan o'chirib qo'yishdi. quti signalni ishga tushirdi! Loyihada ishlayotganda, bu muammoni hal qilish uchun men buzg'unchilik himoyasini chetlab o'tdim, shundan so'ng tamper kalitini qisqa tutashtirdim (yuqoridagi rasmda ko'rsatilgandek qalin qizil sim)

2. Signal tizimini zaxiralashda, taxminan ~ 12 soatdan keyin signalni boshqarish paneli xato kodlari bilan signal bera boshladi. Qo'llanma orqali xato kodlarini aniqlagandan so'ng, men ogohlantirganimni bilib oldim:

  • Sana/vaqt belgilanmagan (qayta konfiguratsiya qilish uchun qo'llanmadan asosiy kod va kalitlar ketma -ketligi kerak edi)
  • Zaxira batareyasi ulanmagan (tuzatish oson, men batareyani qayta ulashni unutganman)

3. Mening signalimda, PIR -larning asosiy signal paneliga ulanishi uchun 4 ta zonali ulanish bloklari (Z1 -Z4 bilan belgilanadi), lekin mening signalizatsiya tizimim 8 zonaga ega. Har bir zonali aloqa bloki aslida har birida 2 ta x zonani ishga tushirishi mumkin (Z1 Z1 va Z5, Z2 Z2 va Z6 va boshqalar). Signal tizimida kimdir aytishini to'xtatish, signalizatsiya tizimining qopqog'ini yuqorida aytib o'tilganidek ochish yoki simlarni PIRga uzib qo'yish uchun o'rnatilgan buzg'unchilik himoyasi mavjud. U har bir zonani EOL (chiziq oxiri) rezistorlari orqali ajratib turadi. Bu "chiziq oxirida" joylashgan maxsus o'lchovli rezistorlar, boshqacha aytganda, PIR ichida (yoki boshqaruv qutisiga ta'sir o'tkazgichi, siren qutisi yoki shu zonaga ulangan narsalar) yuqorida aytib o'tilganidek, bu rezistorlar "buzg'unchilik" sifatida ishlatiladi. himoya " - texnik jihatdan, agar kimdir kabellarni PIRga uzib qo'ysa - chunki signal tizimi bu PIRdan ma'lum qarshilik ko'rishini kutadi, agar qarshilik o'zgarsa, bu tizimni kimdir buzgan deb o'ylaydi va signalni ishga tushiradi.

Masalan:

Mening signalimda "Z4" zonasida 2 ta sim bor, biri koridorimdagi PIRga, ikkinchisi signalni boshqarish qutisiga ta'sir o'tkazgichga o'tadi. Yo'lak PIR ichida 3300 ohmli rezistor mavjud. Boshqarish qutisiga ta'sir o'tkazgichga o'tadigan boshqa sim 6800 ohmli qarshilikka ega. Signal tizimi (mantiqan) "Z4" va "Z8" tamperlarini mana shunday ajratadi. Xuddi shunday, "Z3" zonasida "Z7" ni tashkil etuvchi PIR (3300 ohmli rezistorli), shuningdek, sirenani buzish kaliti (6800 ohmli qarshilik bilan) mavjud. Signalni o'rnatuvchi signal tizimini oldindan tuzgan bo'lardi, shuning uchun u har bir zonaga qaysi qurilma ulanganligini biladi (va EOL rezistorining o'lchamini mos keladigan tarzda o'zgartirdi, chunki signal tizimi har xil EOL rezistorlari qanday o'lchamda ekanligini bilish uchun dasturlashtirilgan. Hech qanday holatda bu rezistorlarning qiymatini o'zgartirmang!)

Yuqoridagilarga asoslanib, chunki har bir zonada bir nechta qurilmalar biriktirilishi mumkin (har xil qarshilik qiymatlari bilan) va V = IR (kuchlanish = amper x qarshilik) formulasini eslab qolsa, bu har bir zonada har xil kuchlanish bo'lishi mumkinligini ham anglatishi mumkin. Bu bizni keyingi bosqichga olib boradi, har bir zonani IDLE va TRIGGERED kuchlanishini o'lchaydi …

2 -qadam: Signal zonasidagi kuchlanishni o'lchash

Signal zonasi kuchlanishini o'lchash
Signal zonasi kuchlanishini o'lchash
Signal zonasi kuchlanishini o'lchash
Signal zonasi kuchlanishini o'lchash

Signal tizimining asosiy kartasiga kirishni olganingizdan so'ng (va agar sizda bo'lsa, buzg'unchilik tugmachasini chetlab o'tdi), signal tizimini qayta yoqing. Endi biz har bir zonadagi kuchlanishni o'lchashimiz kerak, chunki uning IDLE (PIR oldida hech qanday harakat) va TRIGGERED (PIR harakati aniqlanmagan) Qalam va qog'ozni oling, shunda siz kuchlanish ko'rsatkichlarini yozib olasiz.

OGOHLANTIRISH: Sizning signalizatsiya tizimingizning asosiy qismi, ehtimol, 12V shaharda ishlaydi, lekin u 220V (yoki 110V) o'zgaruvchan tokda bo'ladi, transformator quvvatni ACdan DC ga o'zgartiradi. Qo'llanmani o'qing va hech qanday AC terminalini o'lchamasligingizga ishonch hosil qiling. Bu sahifadagi signalizatsiya tizimining skrinshotiga ko'ra, siz rasmning eng pastki qismida 12V DC ga aylantirilgan o'zgaruvchan tok borligini ko'rishingiz mumkin. Biz ajratilgan qizil qutilarda 12V DC ni o'lchaymiz. Hech qachon AC quvvatiga tegmang. Juda ehtiyot bo'ling!

PIR kuchlanishini o'lchash

Menda Z1 orqali Z4 ga ulangan 4 ta PIR bor. Har bir zonangizni quyidagicha o'lchang.

  1. Birinchidan, signal panelidagi GND terminali va zona terminallarini aniqlang. Men buni Bosch signalizatsiyasining qo'llanmasida ko'rsatilgan rasmda ta'kidladim.
  2. Multimetrni oling va kuchlanish o'lchovini 20V DC ga o'rnating. Qora (COM) simini multimetrdan signalning GND terminaliga ulang. Multimetringizdan qizil (+) simni birinchi zonaga qo'ying - mening holatimda "Z1". Voltaj o'qilishini yozing. Qolgan zonalar uchun ham xuddi shunday amallarni bajaring. Mening kuchlanish o'lchovlarim quyidagicha:
  • Z1 = 6.65V
  • Z2 = 6.65V
  • Z3 = 7.92V
  • Z4 = 7.92V

Yuqoridagilarga ko'ra, mening birinchi ikkita zonamga faqat PIR biriktirilgan. Oxirgi ikkita zonada PIR va himoyalanish muhofazasi o'rnatilgan (Z3 boshqaruv qutisi, Z4 siren tamperi) Voltaj farqiga e'tibor bering.

3. Bu keyingi qadam uchun sizga 2 kishi kerak bo'ladi. Bundan tashqari, qaysi PIR qaysi zonada ekanligini bilishingiz kerak bo'ladi. Orqaga qayting va birinchi zonadagi kuchlanishni o'qing. Endi uyingizda kimdir PIR oldida yurishiga ruxsat bering, kuchlanish pasayishi kerak. Yangi kuchlanish ko'rsatkichiga e'tibor bering. Mening holatimda, PIRlar ishga tushirilganda, kuchlanishlar quyidagicha o'qiladi:

  • Z1 = 0V
  • Z2 = 0V
  • Z3 = 4.30V
  • Z4 = 4.30V

Yuqoridagilarga ko'ra, men 1 va 2 -zonalar ishga tushirilganda, kuchlanish 6,65 V dan 0 V gacha tushishini ko'raman. Ammo 3 va 4 -zonalar ishga tushganda, kuchlanish 7,92 V dan 4,30 V gacha pasayadi.

12V quvvat manbaini o'lchash

Biz loyihamizni quvvatlantirish uchun signalni boshqarish qutisidan 12V DC terminalidan foydalanamiz. Signaldagi 12V DC kuchlanishidan kuchlanishni o'lchashimiz kerak. Garchi u allaqachon 12V ni bildirsa -da, biz aniqroq o'qishni bilishimiz kerak. Menimcha, u aslida 13.15V ni o'qiydi. Buni yozing, keyingi bosqichda sizga bu qiymat kerak bo'ladi.

Nega biz kuchlanishni o'lchayapmiz?

Har bir PIR uchun kuchlanishni o'lchashimiz kerak bo'lgan sabab, biz yaratadigan sxema. Biz ushbu loyihaning asosiy elektr komponenti sifatida LM339 to'rtta differentsial taqqoslash chipidan (yoki to'rtta op-ampli komparatordan) foydalanamiz. LM339-da 4 ta mustaqil kuchlanish taqqoslagichi (4 kanal) mavjud, bu erda har bir kanal 2 x kirish voltajini oladi (bitta teskari (-) va bitta teskari bo'lmagan (+) kirishni, diagramaga qarang). teskari kuchlanish bo'lmasa, uning tegishli chiqishi erga tortiladi. Xuddi shunday, agar teskari kiruvchi kuchlanish teskari kirishdan pastroq bo'lsa, u holda chiqish Vcc ga tortiladi. Qulay, mening uyimda menda 4 ta signalli PIR zonasi bor, shuning uchun har bir zona komparatorning har bir kanaliga ulanadi. Agar sizda 4 x dan ortiq PIR bo'lsa, sizga ko'proq kanalli komparator yoki boshqa LM339 kerak bo'ladi!

Eslatma: LM339 nano-amperda quvvat sarflaydi, shuning uchun mavjud signal tizimining EOL qarshiligiga ta'sir qilmaydi.

Agar bu chalkash bo'lsa, keyingi bosqichga o'ting, baribir, biz uni bog'lab qo'yganimizdan keyin mantiqiyroq bo'ladi!

3 -qadam: kuchlanish bo'luvchi yaratish

Image
Image

Voltaj bo'linishi nima?

Kuchlanishni taqsimlovchi - ketma -ket 2 x rezistorli (yoki undan ko'p) zanjir. Biz birinchi qarshilikka (R1) (Vin) kuchlanish beramiz, R1 ning boshqa oyog'i ikkinchi rezistorning birinchi oyog'iga (R2), R2 ning ikkinchi uchi GND ga ulanadi. Keyin biz R1 va R2 o'rtasidagi ulanishdan chiqish voltajini (Vout) olamiz. Bu kuchlanish LM339 uchun mos yozuvlar kuchlanishimizga aylanadi. Voltaj bo'linuvchilari qanday ishlashi haqida qo'shimcha ma'lumot olish uchun youtube Adohms videosiga qarang

(Eslatma: rezistorlar qutbga ega emas, shuning uchun ularni har tomondan ulash mumkin)

Yo'naltiruvchi kuchlanishni hisoblash

Agar sizning PIR ishga tushirilganda kuchlanish pasayadi deb faraz qilsak (bu ko'pchilik signallar uchun shunday bo'lishi kerak), biz erishmoqchi bo'lgan narsa - biz eng past bo'sh kuchlanish bilan eng yuqori tetiklanadigan kuchlanish orasidagi yarmini tashkil etuvchi kuchlanish ko'rsatkichini olish, bu bizning mos yozuvlar kuchlanishimizga aylanadi.

Mening signalimni misol qilib olaman …

Zonaning bo'sh kuchlanishlari Z1 = 6.65V, Z2 = 6.65V, Z3 = 7.92V, Z4 = 7.92V edi. Eng past bo'sh kuchlanish - 6.65 V

Zonaning kuchlanishlari: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. Shuning uchun eng yuqori kuchlanish 4,30 V ni tashkil qiladi

Shunday qilib, biz 4.30V va 6.65V oralig'ida yarim raqamni tanlashimiz kerak (aniq bo'lishi shart emas, taxminan) Menimcha, mening mos yozuvlar kuchlanishim 5.46V atrofida bo'lishi kerak. Eslatma: Agar eng past bo'sh va eng yuqori tetiklanuvchi kuchlanish bir nechta zonalar tufayli bir -biriga juda yaqin bo'lsa, siz turli xil kuchlanishlarga ega bo'lishingiz mumkin.

Voltaj bo'linishi uchun qarshilik qiymatlarini hisoblash

Endi bizda mos yozuvlar zo'riqishi bor, biz mos yozuvlar zo'riqishimizni ta'minlaydigan kuchlanish bo'luvchi yaratish uchun qanday o'lchamdagi rezistorlar kerakligini hisoblashimiz kerak. Biz signaldan 12V doimiy kuchlanish manbasini (Vs) ishlatamiz. Ammo, avvalgi bosqichga ko'ra, biz 12V DC quvvatini o'lchaganimizda, biz 13.15V ga ega bo'ldik. Biz manba sifatida bu qiymatdan foydalanib, kuchlanish taqsimotini hisoblashimiz kerak.

Ohm qonunidan foydalanib Voutni hisoblang …

Vout = Vs x R2 / (R1 + R2)

… yoki onlayn kuchlanish taqsimlagich kalkulyatoridan foydalaning:-)

Siz kerakli natijaga erishmaguningizcha rezistor qiymatlari bilan tajriba o'tkazishingiz kerak bo'ladi. Mening holimda, R1 = 6.8k ohm va R2 = 4.7K ohm bilan ishlangan, uzoq shaklda quyidagicha hisoblangan:

Vout = Vs x R2 / (R1 + R2)

Vout = 13.15 x 4700 / (6800 + 4700)

Vout = 61, 805/11, 500

Vout = 5.37V

4 -qadam: LM339 -ni ulang

Wemos D1 Mini -ni ulash
Wemos D1 Mini -ni ulash

LM339 teskari kirishga kuchlanish bo'luvchi

LM339 komparatori haqida ilgari aytib o'tganimizdek, unga 2 marta kirish kerak bo'ladi. Ulardan biri har bir PIRdan har bir kanalga teskari (+) terminalga, ikkinchisi esa teskari (-) terminalimizga mos yozuvlar kuchlanishi bo'ladi. Yo'naltiruvchi kuchlanish 4 ta komparatorning teskari kirishini ta'minlashi kerak. Ushbu qadamlarni bajarishdan oldin signalizatsiya tizimini o'chiring.

  • Signal tizimidagi 12V shahar blokidan + taxtangizdagi + relsgacha sim o'tkazing *
  • Signal tizimidagi GND blokidan non panelidagi relsgacha sim o'tkazing **
  • LM339 taqqoslagichini taxtaning o'rtasiga o'rnating (chiziq 1 -pinga eng yaqinini bildiradi)
  • Kuchlanishni ajratish davri va bo'linadigan kuchlanishni o'chirish uchun sim yaratish uchun 2 x rezistorni o'rnating
  • Har bir LM339 teskari terminaliga "kuchlanish taqsimlangan" Voutdan simlarni o'tkazing

* MASLAHAT: iloji boricha kuch uchun alligator qisqichidan foydalaning, chunki bu sizning loyihangizni ON/OFF quvvat bilan ta'minlashni osonlashtiradi ** MUHIM! Agar siz Wemos -ni signal panelidan quvvatlantirayotgan bo'lsangiz, MOSFET talab qilinishi mumkin! Mening holatimda, LM339, Wemos va Signal hammasi bitta manbadan quvvat oladi (ya'ni: signalizatsiya tizimining o'zi) Bu menga bitta quvvat ulanishi bilan hamma narsaga quvvatni yoqish imkonini beradi. Biroq, sukut bo'yicha, Wemos -dagi GPIO pinlari "INPUT" pinlari sifatida belgilanadi, ya'ni ular har qanday kuchlanishni oladi va shu manbaga tayanadi, shuning uchun Wemos g'alaba qozonadi. qulab tushmaydi yoki yonmaydi. Menimcha, signal tizimi o'z kuchini oladi va yuklash tartibini juda tez boshlaydi, shuning uchun u Wemos GPIO pinlarini "INPUT_PULLUP" deb e'lon qilishidan oldin qiladi (kuchlanish ichkarida ko'tarilgan) chip). Bu shuni anglatadiki, kuchlanish farqlari butun tizim quvvatga ega bo'lganida Wemosning ishdan chiqishiga olib keladi. Buning yagona yo'li - qo'lda o'chirish va Wemos -ni yoqish. Buni hal qilish uchun MOSFET qo'shiladi va LM339 -ni yoqish uchun "mantiqiy kalit" vazifasini bajaradi. Bu Wemos -ga yuklash imkonini beradi, uning 4 x GPIO pinlarini "INPUT_PULLUP" deb belgilash, bir necha soniya kechiktirish va keyin (boshqa GPIO PIN -kodi OUTPUT sifatida) GPIO pin D5 orqali "HIGH" signalini MOSFETga yuborish, bu mantiqan LM339 -ni yoqadi. Men yuqoridagi kabi simni ulashni maslahat berardim, lekin agar siz Wemos men kabi qulab tushganini ko'rsangiz, siz MOSFETni 1k ohmli pastga tushirish qarshiligi bilan kiritishingiz kerak bo'ladi. Buni qanday qilish kerakligi haqida ko'proq ma'lumot olish uchun ushbu ko'rsatmaning oxiriga qarang.

Signal zonalari LM339 inverting bo'lmagan kirishga

Endi biz signalni boshqarish panelidagi har bir zonadan simlarni LM339 komparatorli kirishiga o'tkazishimiz kerak. Signal tizimi hali ham o'chirilgan bo'lsa, har bir zona uchun LM339 komparatoridagi har bir teskari (+) kirishga sim uzatiladi. Masalan, mening tizimimda:

  • Z1 simlari LM339 1+ kirishiga o'tadi
  • Z2 simlari LM339 kirish 2+ ga o'tadi
  • Z3 simlari LM339 kirish 3+ ga o'tadi
  • Z4 simlari LM339 kirish 4+ ga o'tadi

Agar siz eslatib qo'ysangiz, LM339-ning 3-qadamidagi pin-ga qarang (u rang tasviri bilan tasvirlangan). Tayyor bo'lgandan so'ng, sizning non paneli ushbu bosqichda ko'rsatilgan rasmga o'xshash bo'lishi kerak.

Signal tizimini yoqing va kuchlanish taqsimlagichidan chiqayotgan kuchlanishni o'lchang, chunki u sizning hisoblagich kuchlanishingizga teng.

5 -qadam: Wemos D1 Mini -ni ulash

Wemos D1 mini -ni ulash

Endi bizda barcha LM339 kirishlari bor, endi biz Wemos D1 mini -ni ulashimiz kerak. Har bir LM339 chiqish pimi Wemos GPIO (umumiy maqsadli kirish/chiqish) piniga o'tadi, biz uni kod orqali kirish pimi sifatida belgilaymiz. Wemos, Vcc (kirish manbai) voltaji sifatida maksimal 5Vgacha quvvat oladi (garchi buni ichki 3,3Vgacha tartibga solsa -da), biz 12V temir yo'l panjarasini pastga tushirish uchun juda keng tarqalgan LM7805 kuchlanish regulyatoridan (EDIT: pastga qarang) foydalanamiz. Wemos -ni quvvatlantirish uchun 5V. LM7805 uchun ma'lumotlar jadvali, non paneli tasvirida ko'rsatilgandek, quvvatni yumshatish uchun regulyatorning har ikki tomoniga simli kondansatör kerakligini ko'rsatadi. Kondensatorning uzun oyog'i musbat (+), shuning uchun uni to'g'ri sim bilan bog'langanligiga ishonch hosil qiling.

Voltaj regulyatori voltajni (chap pimi), erni (o'rta pin) va kuchlanishni (o'ng pimi) oladi, agar sizning voltaj regulyatoringiz LM7805dan farq qilsa, pinni ikki marta tekshiring.

(Tartibga solish: signal panelidan keladigan kuchaytirgichlar LM7805 uchun juda yuqori ekanligini ko'rdim. Bu LM7805 kichik sovutgichida juda ko'p issiqlikni keltirib chiqargan va uning ishdan chiqishiga va o'z navbatida Wemosning to'xtashiga olib kelgan. Men LM7805 va kondansatkichlarni DC-DC konvertoriga almashtirdim va shu paytgacha hech qanday muammoga duch kelmadim. Ularni ulash juda oson. Signaldan kirish kuchlanishini ulang, avval multimetrga ulang va potansiometr vintini ishlating. va chiqish voltaji ~ 5V ga qadar sozlang)

GPIO kirish pinlari

Ushbu loyiha uchun biz quyidagi pinlardan foydalanamiz:

  • Z1 zonasi => pin D1
  • Z2 zonasi => pin D2
  • Z3 zonasi => pin D3
  • Z4 zonasi => pin D5

Chiqishlarni LM339 dan Wemos kartasidagi GPIO pinlariga ulang, bu bosqichda ko'rsatilgan rasm. Shunga qaramay, men nimani anglatishini tushunishni osonlashtirish uchun kirishlar va mos keladigan chiqishlarni kod bilan kodladim. Arduino -dagi har bir GPIO pimi "INPUT_PULLUP" deb ta'riflanadi, ya'ni ular normal ishlatilganda (IDLE) 3,3 V ga qadar tortiladi va LM339 PIR ishga tushirilganda ularni erga tushiradi. Kod "HIGH" dan "LOW" gacha o'zgarishni aniqlaydi va uy avtomatlashtirish dasturiga simsiz xabar yuboradi. Agar sizda bu ish bilan bog'liq muammolar mavjud bo'lsa, sizda teskari va teskari kirishlar noto'g'ri bo'lishi mumkin. boshqacha)

Arduino IDE

Wemos -ni taxtadan olib tashlang, endi biz unga kodni yuklashimiz kerak (bu erda muqobil havola) Buni qanday qilish kerakligi haqida batafsil to'xtalmayman, chunki Internetda Wemos yoki boshqa ESP8266 -ga kod yuklash bo'yicha ko'plab maqolalar mavjud. turdagi taxtalar. USB kabelingizni Wemos kartasiga va shaxsiy kompyuteringizga ulang va Arduino IDE -ni yoqing. Kodni yuklab oling va uni loyihangizda oching. Loyihangiz uchun to'g'ri taxtaning o'rnatilishini va yuklanishini, shuningdek, COM portining to'g'ri tanlanganligini (asboblar, port) ta'minlash kerak. Shuningdek, sizga mos kutubxonalar o'rnatilgan bo'lishi kerak (PubSubClient, ESP8266Wifi) Wemos kartasini eskizga kiritish uchun ushbu maqolaga qarang.

Siz quyidagi kod satrlarini o'zgartirishingiz va simsiz ulanish uchun shaxsiy SSID va parol bilan almashtirishingiz kerak bo'ladi. O'zingizning MQTT brokeriga ishora qilish uchun IP manzilini o'zgartiring.

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* password = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (172, 16, 223, 254)

O'zgartirilgandan so'ng, kodingizni tasdiqlang va USB kabeli orqali Wemos kartasiga yuklang.

Eslatmalar:

  • Agar siz turli GPIO portlaridan foydalanayotgan bo'lsangiz, kodni o'zgartirishingiz kerak bo'ladi. Agar siz mendan ko'ra ko'proq yoki kamroq zonalardan foydalansangiz, siz ham kodni o'zgartirishingiz kerak bo'ladi va TOTAL_ZONES = 4; mos keladigan doimiy.
  • Mening signalizatsiya tizimim ishga tushganda, signal tizimi barcha 4 ta PIR -larning quvvat sinovini o'tkazadi, bu esa ulangan GPIO -ni erga tortadi, bu esa Wemos -ni zonalar ishga tushirilgan deb o'ylashga majbur qiladi. Kod MQTT xabarlarini yuborishni e'tiborsiz qoldiradi, agar u bir vaqtning o'zida barcha 4 ta x zonasini faol ko'rsa, chunki signalizatsiya tizimi ishlayapti.

Kodni yuklab olish uchun boshqa havola BU YERDA

6 -qadam: Test va OpenHAB konfiguratsiyasi

Test va OpenHAB konfiguratsiyasi
Test va OpenHAB konfiguratsiyasi

MQTT testi

MQTT - "obuna bo'lish / nashr etish" xabarlar tizimi. Bir yoki bir nechta qurilma "MQTT brokeri" bilan gaplashishi va ma'lum bir mavzuga "obuna bo'lishi" mumkin. Xuddi shu mavzuga "nashr qilingan" boshqa har qanday qurilmadan kelgan barcha xabarlar broker tomonidan unga obuna bo'lgan barcha qurilmalarga yuboriladi. Bu juda yengil va protokoldan foydalanishning soddaligi va oddiy tetiklash tizimi sifatida mukammaldir, masalan. Sinov uchun siz Wemos -dan MQTT brokeriga kiruvchi MQTT xabarlarini Mosquitto serveringizda quyidagi buyruqni bajarib ko'rishingiz mumkin (Mosquitto - MQTT Broker -ning ko'plab dasturlaridan biri). Bu buyruq kiruvchi doimiy xabarlarga obuna bo'ladi:

mosquitto_sub -v -t openhab/signal/status

Siz har 30 soniyada Wemos -dan kiruvchi xabarlarni ko'rishingiz kerak yoki "1" raqami bilan ("men tirikman" degan ma'noni anglatadi). Agar siz doimiy "0" ni (yoki javobsiz) ko'rsangiz, hech qanday aloqa yo'q. Agar siz 1 -raqam kelayotganini ko'rsangiz, demak, bu Wemos MQTT brokeri bilan muloqot qilmoqda (bu qanday ishlashi haqida qo'shimcha ma'lumot olish uchun "MQTT Oxirgi Vasiyat va Ahd" ni qidiring yoki bu blogning haqiqatan ham yaxshi yozuvini ko'ring).

Aloqa funktsional ekanligini isbotlaganingizdan so'ng, biz MQTT orqali zona holati to'g'risida xabar olishini sinab ko'rishimiz mumkin. Quyidagi mavzuga obuna bo'ling (# - joker belgi)

mosquitto_sub -v -t openhab/signal/#

Odatiy holatlar haqidagi xabarlar, shuningdek Wemosning IP -manzili kirishi kerak. PIR oldidan yuring, shunda siz ham zonaning ma'lumoti Ochilganligini, keyin bir soniya yoki undan keyin yopilganligini ko'rishingiz kerak:

openhab/signal/status 1

openhab/signal/zone1 OPEN

openhab/signal/zone1 Yopiq

Bu ishlagandan so'ng, biz OpenHAB -ni GUI -da yaxshi namoyish etadigan qilib sozlashimiz mumkin.

OpenHAB konfiguratsiyasi

OpenHAB -ga quyidagi o'zgartirishlar kiritilishi kerak:

'signal.map' faylini o'zgartirish: (ixtiyoriy, sinov uchun)

CLOSED = IdleOPEN = TriggeredNULL = Noma'lum- = Noma'lum

'status.map' faylini o'zgartirish:

0 = bajarilmadi

1 = Onlayn -= YUQORI! NULL = noma'lum

'items' fayli:

String alarmMonitorState "Signal monitor [MAP (status.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/status: state: default]"} String alarmMonitorIPAddress "Signal monitor IP [%s]" {mqtt = "<[mqttbroker: openhab/signal/ipaddress: state: default]"} Raqam zonasi1_Chart_Period "Zonasi 1 -jadval" Aloqa signalZone1State "1 -zona holati [MAP (signal.map):%s]" {mqtt = "<[mqttbroker: openhab/signal/zone1: holati: standart "} String signalZone1Trigger" Lounge PIR [%1 $ ta%1 $ tr] "Raqam zonasi2_Chart_Period" 2 -zona "Aloqa signalZone2State" 2 -zona holati [MAP (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab/signal/zone2: state: default "} String alarmZone2Trigger" Birinchi zali PIR [%1 $ ta %1 $ tr] "Raqamli zona3_Chart_Period" 3 -Zona "Aloqa signalZone3State" Zonasi 3 holat [MAP (signal.map):%s] "{mqtt =" <[mqttbroker: openhab/signal/zone3: holati: standart "} String signalZone3Trigger" Yotoq xonasi PIR [%1 $ ta%1 $ tr] "raqami zone4_Chart_Period "4 -zona jadvali" Aloqa signalizatsiyasiZone4State "4 -zona holati [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/signal/zone4: holati: standart "} String alarmZone4Trigger" Bosh zali PIR [%1 $ ta %1 $ tr]"

"sayt xaritasi" fayli (rrd4j grafigi bilan birga):

Matn elementi = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Item element = zone1_Chart_Period yorlig'i = "Davr" xaritalari = [0 = "Soat", 1 = "Kun", 2 = "Hafta"] Rasm url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Boshlanmagan] Tasvir url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 1] Rasm url = "https:// localhost: 8080/rrdchart.png" ko'rinishi = [zone1_Chart_Period == 2]}} Matn elementi = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {elementni almashtirish = zone2_Chart_Period label = "Davr" xaritalari = [0 = "Soat", 1 = "Kun", 2 = "Hafta"] Tasvir url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Boshlanmagan] Tasvir url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 2]}} Matn elementi = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch element = zone3_Chart_Period label = "Period" xaritalashlari = [0 = "Soat", 1 = "Kun", 2 = "Hafta"] Rasm url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Boshlanmagan] Rasm url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] Rasm url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Matn item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Item element = zone4_Chart_Period yorlig'i = " "Mappings =" davri = [0 = "Soat", 1 = "Kun", 2 = "Hafta"] Rasm url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Boshlanmagan] Rasm url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] Rasm url = "https:// localhost: 8080/rrdchart.png" ko'rinishi = [zone4_Chart_Period == 2] }} // Ixtiyoriy, lekin status va IP -ni aniqlash uchun qulay ss Matn elementi = alarmMonitorState Matn elementi = alarmMonitorIPAddress

"qoidalar" fayli:

"Signal zonasi 1 holatining o'zgarishi" qoidasi

Qachon ItemZarzone1State Ochilgan, keyin postUpdate (alarmZone1Trigger, yangi DateTimeType ()) alarmZone1State.state = Yopiq tugash

"Signal zonasi 2 holatining o'zgarishi" qoidasi

Qachon ItemZarzone2State Ochilgan holatiga o'zgartirilsin, keyin PostUpdate (alarmZone2Trigger, yangi DateTimeType ()) alarmZone2State.state = Yopiq tugashi

"Signal zonasi 3 holatining o'zgarishi" qoidasi

Qachon ItemZarzone3State OCHIQ holatiga o'zgartirilsin, keyin PostUpdate (alarmZone3Trigger, yangi DateTimeType ()) alarmZone3State.state = Yopiq oxiri

"Signal zonasi 4 holatining o'zgarishi" qoidasi

Qachon ItemZarzone4State Ochilgan holatiga o'zgartirilsin, keyin PostUpdate (alarmZone4Trigger, yangi DateTimeType ()) signalZone4State.state = Yopiq oxiri

Yuqoridagi OpenHAB konfiguratsiyasini o'z sozlamangizga mos ravishda biroz o'zgartirishingiz kerak bo'lishi mumkin.

Agar sizda PIRni ishga tushirish bilan bog'liq muammolar mavjud bo'lsa, boshidan boshlang va zanjirning har bir qismi uchun kuchlanishni o'lchang. Agar siz bundan mamnun bo'lsangiz, simlaringizni tekshiring, umumiy nuqta borligiga ishonch hosil qiling, Wemos -dagi xabarlarni ketma -ket disk raskadrovka konsoli orqali tekshiring, MQTT aloqasini tekshiring va konvertatsiya, elementlar va sayt xaritasi fayllarining sintaksisini tekshiring.

Omad!

Tavsiya: