Բովանդակություն:

Rmարթուցիչ PIR դեպի WiFi (և տան ավտոմատացում) ՝ 7 քայլ (նկարներով)
Rmարթուցիչ PIR դեպի WiFi (և տան ավտոմատացում) ՝ 7 քայլ (նկարներով)

Video: Rmարթուցիչ PIR դեպի WiFi (և տան ավտոմատացում) ՝ 7 քայլ (նկարներով)

Video: Rmարթուցիչ PIR դեպի WiFi (և տան ավտոմատացում) ՝ 7 քայլ (նկարներով)
Video: LDmicro 22: Arduino տախտակներ AVRDUDESS- ով (միկրոկառավարիչների ծրագրավորում LDmicro- ով) 2024, Հուլիսի
Anonim
Image
Image
Rmարթուցիչ PIR դեպի WiFi (և տան ավտոմատացում)
Rmարթուցիչ PIR դեպի WiFi (և տան ավտոմատացում)

Ակնարկ

Այս հրահանգը ձեզ հնարավորություն կտա դիտել ձեր տան ավտոմատացման ծրագրում ձեր տան ահազանգի PIR- ների (պասիվ ինֆրակարմիր տվիչների) գործարկման վերջին ամսաթիվը/ժամը (և ըստ ցանկության ՝ ժամանակների պատմությունը): Այս նախագծում ես կքննարկեմ, թե ինչպես օգտագործել OpenHAB- ով (տան ավտոմատացման անվճար ծրագրակազմ, որը ես անձամբ եմ օգտագործում), չնայած այն կաշխատի ցանկացած այլ ավտոմատացման ծրագրերի կամ ծրագրերի հետ, որոնք աջակցում են MQTT- ին (նաև այս հոդվածում ավելի ուշ նկարագրված): Այս հրահանգը ձեզ կանցնի անհրաժեշտ քայլերով, թե ինչպես միացնել տպատախտակը և Wemos D1 mini- ն (IOT տախտակ, որն օգտագործում է ESP8266 չիպ), որը ազդում է ահազանգերի կառավարման տուփի ազդանշանային գոտիների վրա այնպես, որ երբ մի գոտի (որը պարունակում է մեկ կամ մի քանի PIR), որը գործարկվում է, Wemos- ը MQTT արձանագրության միջոցով անլար հաղորդագրություն է ուղարկում ձեր տան ավտոմատացման ծրագրակազմ, որն իր հերթին ցուցադրում է այդ ձգանի վերջին ամսաթիվը/ժամը: Տրամադրված է նաև Wemos- ի ծրագրավորման Arduino ծածկագիրը:

Ներածություն

Վերևի պատկերն այն է, ինչ ես տեսնում եմ իմ iPhone- ի OpenHAB հավելվածի էկրաններից մեկի միջոցով: Ամսաթվի/ժամի տեքստը գունային կոդավորված է `ավելի արագ պատկերացնելու համար, թե երբ է գործարկվել PIR- ը` այն ցույց կտա կարմիր (գործարկվել է վերջին 1 րոպեի ընթացքում), նարնջագույն (գործարկվել է վերջին 5 րոպեների ընթացքում), կանաչ (գործարկվել է վերջին 30 րոպեների ընթացքում), կապույտ (գործարկվել է վերջին մեկ ժամվա ընթացքում) կամ այլ կերպ, սև: Սեղմելով ամսաթիվը/ժամը ՝ կցուցադրվի PIR գործարկիչների պատմական տեսքը, որտեղ 1 -ը նշանակում է գործարկված, իսկ 0 -ն անգործուն: Դրա օգտագործումը շատ է, օրինակ ՝ այն կարող է լրացնել ձեր տան առկայության լուծումը, այն կարող է հայտնաբերել շարժումները, եթե դուք բացակայում եք, և OpenHAB կանոնների միջոցով ծանուցումներ ուղարկեք ձեր հեռախոսին, կարող եք օգտագործել այն, ինչպես ես ՝ տեսնելու, թե արդյոք իմ երեխաները գիշերվա կեսին արթնանալը, որը դրդված է նրանց ննջասենյակից դուրս բնակվող PIR- ով:

OpenHAB- ը պարզապես տան ավտոմատացման ծրագիր է, որը ես օգտագործում եմ, կան շատ ուրիշներ, և եթե նրանք աջակցում են MQTT- ն, ապա կարող եք հեշտությամբ հարմարեցնել այս նախագիծը `ձեր օգտագործած ծրագրակազմին համապատասխան:

Ենթադրություններ

Սա ուսանելի է ենթադրում, որ դուք արդեն ունեք (կամ կկարգավորեք).

  • Ակնհայտ է, որ տան ահազանգման համակարգը PIR- ներով (պասիվ ինֆրակարմիր տվիչներ) և որ դուք մուտք ունեք ահազանգի կառավարման տուփ `անհրաժեշտ էլեկտրագծերը միացնելու համար
  • OpenHAB- ը (բաց կոդով տան ավտոմատացման անվճար ծրագրակազմ) աշխատում է, չնայած, ինչպես քննարկվել է, այն պետք է աշխատի ցանկացած տան ավտոմատացման ծրագրակազմի հետ, որը կարող է ներառել MQTT պարտադիր կապ: Այլապես, ինքներդ կարող եք փոփոխել ծածկագիրը ՝ ձեր կարիքներին համապատասխան:
  • Mosquitto MQTT (կամ նմանատիպ) բրոքեր տեղադրված և պարտադիր կազմաձևված OpenHAB- ով (MQTT- ը հաղորդագրությունների բաժանորդագրման/հրապարակման տիպի արձանագրություն է, որը թեթև է և հիանալի սարքերի միջև հաղորդակցության համար)

Եթե չեք գործարկում OpenHAB- ը և MQTT բրոքերը, տեսեք այս հիանալի հոդվածը MakeUseOf վեբ կայքում

Ի՞նչ է ինձ պետք:

Անլար վերահսկիչ ստեղծելու համար հարկավոր է աղբյուրներ բերել հետևյալ մասերից.

  • Wemos D1 mini V2 (ունի ներկառուցված ESP8266 անլար CHIP)
  • LM339 համեմատիչ (սա կկատարի PIR պարապուրդի և գործարկման ստուգում)
  • 5V DC էներգիայի աղբյուր Wemos- ի համար (OR, DC-DC buck փոխարկիչ: Նշում. LM7805 լարման կարգավորիչը կարող է չաշխատել այս ծրագրի համար, ինչպես քննարկվել է այս նախագծում)
  • Երկու դիմադրություն լարման բաժանարարի համար (չափը կախված կլինի ձեր ահազանգման լարումներից, որը կքննարկվի նախագծում ավելի ուշ)
  • Մեկ 1K Օմ դիմադրություն `LM339 հզորությունը վերահսկելու համար հանդես գալու որպես քաշվող դիմադրության դեր
  • Մեկ 2N7000 (կամ նման) MOSFET ՝ տրամաբանորեն LM339- ը միացնելու համար (հնարավոր է ՝ ընտրովի, նախագծում ավելի ուշ քննարկված)
  • Շղթայի կարգաբերման և փորձարկման համար համապատասխան չափի տախտակ
  • Հացաթղթերի մի փունջ `ամեն ինչ իրար միացնելու համար
  • Անհրաժեշտ գործիքներ `կողային կտրիչներ, մեկ առանցքային մետաղալար
  • DC բազմաչափ (պարտադիր է)

Քայլ 1: Տագնապային համակարգի կառավարման տուփ

Տագնապային համակարգի կառավարման տուփ
Տագնապային համակարգի կառավարման տուփ

Նախ մի քանի նախազգուշացում և հերքում:

Անձամբ ես ունեմ Bosch ազդանշանային համակարգ: Խստորեն խորհուրդ կտամ ներբեռնել ձեր հատուկ ազդանշանային համակարգի համապատասխան ձեռնարկը և ծանոթանալ դրան, նախքան այն սկսելը, քանի որ անհրաժեշտ կլինի անջատել ազդանշանային համակարգը `գոտիները միացնելու համար: Ես նաև խորհուրդ կտայի կարդալ այս հոդվածն ամբողջությամբ ամբողջությամբ սկսելուց առաջ:

Ստորև բերված է մի քանի բաների ցանկ, որոնք դուք պետք է իմանաք նախքան սկսելը. Համոզվեք, որ կարդում և հասկանում եք դրանցից յուրաքանչյուրը նախքան շարունակելը: Ես պատասխանատվություն չեմ կրում, եթե դուք խափանում եք ձեր ազդանշանային համակարգը և/կամ ստիպված եք վճարել ձեր տեղադրողին այն շտկելու համար: Եթե դուք կարդում և հասկանում եք հետևյալը, սակայն և ձեռնարկում եք անհրաժեշտ նախազգուշական միջոցները, ապա ձեզ լավ պետք է լինի.

1. Իմ ահազանգման համակարգն ուներ պահեստային մարտկոց տուփի ներսում և կափարիչի ներքին մասում ուներ խափանման անջատիչ (որն ապահովում է ազդանշանային համակարգի տախտակին մուտք գործելը), այնպես որ նույնիսկ ահազանգը արտաքինից անջատելը, երբ հեռացնում եք կառավարման առջևի վահանակը տուփը դա ազդանշան արձակեց: Aroundրագրի վրա աշխատելիս շրջանցելու համար ես շրջանցեցի կեղծիքի պաշտպանությունը `անջատելով վարդակից կարճ միացումով (հաստ կարմիր մետաղալարը, ինչպես ցույց է տրված վերևի լուսանկարում)

2. Տագնապային համակարգը միացնելիս, մոտ hours 12 ժամ հետո ահազանգի կառավարման վահանակը սկսեց ազդանշանային ազդանշանի անսարք կոդերով: Ձեռնարկի միջոցով անսարքությունների կոդերը որոշելուց հետո ես պարզեցի, որ այն ինձ նախազգուշացնում է, որ.

  • Ամսաթիվը/ժամը որոշված չէ (ինձ անհրաժեշտ էր հիմնական կոդն ու ձեռնարկից ստեղների հաջորդականությունը `նորից կազմաձևելու համար)
  • Որ պահեստային մարտկոցը միացված չէր (հեշտ շտկում, ես պարզապես մոռացել էի նորից միացնել մարտկոցը)

3. Իմ ահազանգում կան 4 x գոտու միացման բլոկներ (պիտակավորված Z1 -Z4), որպեսզի PIR- ները միացվեն հիմնական ազդանշանային տախտակին, սակայն. Ահազանգման համակարգս իրականում ունակ է 8 գոտու: Յուրաքանչյուր գոտու միացման բլոկ իրականում կարող է գործել 2 x գոտի (Z1- ը ՝ Z1 և Z5, Z2- ը ՝ Z2 և Z6 և այլն): Ահազանգման համակարգն ունի ներկառուցված պաշտպանություն `ինչ-որ մեկի խոսքը դադարեցնելու համար, ազդանշանային համակարգի կափարիչը բացելով, ինչպես վերը նշվեց, կամ լարերը PIR- ով կտրելու համար: Այն տարբերակում է յուրաքանչյուր գոտու միջամտություն EOL (գծի վերջ) դիմադրիչների միջոցով: Սրանք հատուկ չափի դիմադրիչներ են, որոնք գտնվում են «գծի վերջում» ՝ այլ կերպ ասած, PIR- ի ներսում (կամ կառավարման տուփի խափանման անջատիչ, կամ ազդանշանի տուփ կամ ինչ որ միացված է այդ գոտուն): Ինչպես նշվեց, այս դիմադրիչները օգտագործվում են որպես «կեղծիչ» պաշտպանություն » - տեխնիկապես, եթե ինչ -որ մեկը մալուխները կտրում է PIR- ի, որովհետև ահազանգման համակարգն ակնկալում է, որ որոշակի դիմադրություն կտեսնի այդ PIR- ից, ապա եթե դիմադրությունը փոխվի, ենթադրվում է, որ ինչ -որ մեկը խախտել է համակարգը և ազդանշան կսկսի:

Օրինակ:

Իմ ահազանգի համաձայն, «Z4» գոտում կա 2 լար, մեկը անցնում է միջանցքում գտնվող PIR- ին, իսկ մեկը `ազդանշանային կառավարման վանդակի կեղծման անջատիչին: Միջանցքի PIR- ի ներսում այն ունի 3300 օմ դիմադրություն: Մյուս մետաղալարն, որն անցնում է կառավարման տուփի խափանման անջատիչին, ունի 6800 օմ դիմադրություն, որը միացված է շարքով: Այսպես է ահազանգման համակարգը (տրամաբանորեն) տարբերակում «Z4» և «Z8» կեղծարարները: Նմանապես, «Z3» գոտում կա PIR (3300 օմ ռեզիստորով) և նաև ազդանշանի խափանման անջատիչ (6800 օմ դիմադրիչով), որը կազմում է «Z7» - ը: Alarmարթուցիչի տեղադրիչը նախապես պետք է կազմաձևեր ահազանգման համակարգը, որպեսզի իմանա, թե որ սարքն է միացված յուրաքանչյուր գոտու (և փոխում է EOL ռեզիստորի չափը, քանի որ ահազանգման համակարգը ծրագրված է իմանալու, թե ինչ չափի են տարբեր EOL ռեզիստորները: ոչ մի դեպքում չպետք է փոխեք այս դիմադրողների արժեքը:)

Այսպիսով, վերը նշվածի հիման վրա, քանի որ յուրաքանչյուր գոտու վրա կարող են կցված լինել նաև մի քանի սարքեր (դիմադրության տարբեր արժեքներով), և հիշելով բանաձևը V = IR (լարման = ամպեր x դիմադրություն), ապա դա կարող է նաև նշանակել, որ յուրաքանչյուր գոտի կարող է ունենալ տարբեր լարման: Որը մեզ տանում է հաջորդ քայլին ՝ չափելով յուրաքանչյուր գոտի IDLE vs TRIGGERED լարման…

Քայլ 2. Տագնապի գոտու լարման չափում

Rmարթուցիչի գոտու լարման չափում
Rmարթուցիչի գոտու լարման չափում
Rmարթուցիչի գոտու լարման չափում
Rmարթուցիչի գոտու լարման չափում

Ձեր ազդանշանային համակարգի հիմնական տախտակին մուտք գործելուց հետո (և եթե այն ունեք, եթե այն ունեք, ինչպես նաև նախորդ քայլով), նորից միացրեք ազդանշանային համակարգը: Այժմ մենք պետք է չափենք յուրաքանչյուր գոտու լարումը, երբ այն անգործուն է (PIR- ի դիմաց ոչ մի շարժում) vs TRIGGERED (PIR- ը շարժում է հայտնաբերել) Բռնեք գրիչ և թուղթ, որպեսզի կարողանաք գրել ձեր լարման ցուցանիշները:

WԳՈՇԱՈՄ. Ամենայն հավանականությամբ, ձեր ազդանշանային համակարգի հիմնական մասը կաշխատի 12 Վ լարման հոսանքով, սակայն այն կունենա իր սկզբնական հոսանքը 220 Վ (կամ 110 Վ) AC լարման միջոցով, իսկ տրանսֆորմատորը հոսանքը փոխարկում է AC- ից DC: ԿԱՐԴԱՔ ձեռնարկը և լրացուցիչ նախազգուշական միջոցներ ձեռնարկեք ՝ ապահովելով, որ ՉԵՔ չափում AC տերմինալներ: Ըստ այս էջի իմ ազդանշանային համակարգի էկրանի, դուք կարող եք տեսնել, որ պատկերի հենց ներքևում AC հոսանք է, փոխակերպված 12V DC- ի: Մենք չափում ենք 12V DC- ն ընդգծված կարմիր տուփերում: Երբեք մի դիպչեք AC հոսանքին: Takeայրահեղ զգույշ եղեք:

Չափման PIR լարման

Ես ունեմ 4 x PIR միացված Z1- ից Z4- ին: Ձեր գոտիներից յուրաքանչյուրը չափեք հետևյալ կերպ.

  1. Նախ, ահազանգի վահանակի վրա նշեք GND տերմինալը և գոտու տերմինալները: Ես դրանք ընդգծել եմ իմ Bosch ազդանշանի ձեռնարկից ցուցադրված պատկերի վրա:
  2. Ձեռք բերեք ձեր բազմաչափը և սահմանեք ձեր լարման չափումը 20V DC: Միացրեք սև (COM) մալուխը ձեր բազմիմետրից ահազանգի GND տերմինալին: Տեղադրեք կարմիր (+) կապարը ձեր բազմիմետրից առաջին գոտու վրա `իմ դեպքում` «Z1» պիտակով: Գրեք լարման ցուցանիշը: Կատարեք նույն քայլերը մնացած գոտիների համար: Իմ լարման չափումները հետևյալն են.
  • Z1 = 6,65 Վ
  • Z2 = 6,65 Վ
  • Z3 = 7.92 Վ
  • Z4 = 7.92 Վ

Ըստ վերը նշվածի, իմ առաջին երկու գոտիներին կցված են միայն PIR- ներ: Վերջին երկու գոտիներում կան ինչպես PIR- ներ, այնպես էլ դրանցից պաշտպանված են կեղծիքները (Z3 կառավարման տուփի խափանում, Z4 ազդանշանի խափանում) Նշեք լարման տարբերությունները:

3. Այս հաջորդ քայլի համար, ամենայն հավանականությամբ, ձեզ հարկավոր կլինի 2 մարդ: Դուք նաև պետք է իմանաք, թե որ PIR- ն որ գոտում է: Վերադարձեք և կարդացեք առաջին գոտու լարումը: Այժմ ձեր տանը ինչ -որ մեկին ստիպեք քայլել PIR- ի դիմաց, լարումը պետք է ընկնի: Ուշադրություն դարձրեք լարման նոր ընթերցմանը: Իմ դեպքում, PIR- ները գործարկելիս լարումները հետևյալն են.

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

Ըստ վերը նշվածի, ես կարող եմ տեսնել, որ երբ 1 և 2 գոտիները գործարկվում են, լարումը նվազում է 6,65 Վ -ից մինչև 0 Վ: Սակայն, երբ 3 և 4 գոտիները գործարկվում են, լարումը նվազում է 7.92 Վ -ից մինչև 4.30 Վ:

Չափիչ 12 Վ էլեկտրամատակարարում

Մենք կօգտագործենք 12V DC տերմինալը ահազանգի կառավարման տուփից `մեր նախագիծը սնուցելու համար: Մենք պետք է չափենք ահազանգի 12V DC սնուցման լարումը: Չնայած այն արդեն նշում է 12 Վ, մենք պետք է ավելի ճշգրիտ ընթերցում իմանանք: Իմ դեպքում, այն իրականում կարդում է 13.15V: Գրեք սա, հաջորդ քայլին ձեզ հարկավոր կլինի այս արժեքը:

Ինչու՞ ենք մենք չափում լարումը:

Պատճառը, որի համար մենք պետք է չափենք լարումը յուրաքանչյուր PIR- ի համար, այն միացումն է, որը մենք կստեղծենք: Մենք կօգտագործենք LM339 քառակուսի դիֆերենցիալ համեմատիչ չիպ (կամ չորս op-amp համեմատիչ) ՝ որպես այս ծրագրի հիմնական էլեկտրական բաղադրիչ: LM339- ն ունի 4 անկախ լարման համեմատիչ (4 ալիք), որտեղ յուրաքանչյուր ալիք ընդունում է 2 x մուտքային լարման (մեկ շրջվող (-) և մեկ ոչ շրջադարձային (+) մուտք, տե՛ս դիագրամ) Եթե հակադարձ մուտքային լարման լարումը պետք է իջնի ավելի ցածր, քան ոչ շրջվող լարումը, ապա դրա հետ կապված ելքը կձգվի գետնին: Նմանապես, եթե ոչ շրջվող մուտքային լարումը նվազում է ավելի ցածր, քան շրջվող մուտքը, ապա ելքը քաշվում է մինչև Vcc: Հարմար է, որ իմ տանը ես ունեմ 4 x ահազանգի PIR/գոտիներ, ուստի յուրաքանչյուր գոտի կհաղորդվի համեմատիչի յուրաքանչյուր ալիքին: Եթե ունեք ավելի քան 4 x PIR, ձեզ հարկավոր կլինի ավելի շատ ալիքներով համեմատիչ կամ մեկ այլ LM339:

Նշում. LM339- ը էներգիա է սպառում նանո-ուժեղացուցիչներում, ուստի չի ազդի առկա ազդանշանային համակարգի EOL դիմադրության վրա:

Եթե սա շփոթեցնող է, ամեն դեպքում շարունակեք հաջորդ քայլին, այն միացնելուց հետո ավելի իմաստալից կլինի:

Քայլ 3. Լարման բաժանարարի ստեղծում

Image
Image

Ի՞նչ է լարման բաժանարարը:

Լարման բաժանարարը 2 x ռեզիստորներով (կամ ավելի) միացում է `շարքով: Մենք ապահովում ենք (Vin) լարումը առաջին ռեզիստորին (R1) R1- ի մյուս ոտքը միանում է երկրորդ դիմադրության առաջին ոտքին (R2), իսկ R2- ի մյուս ծայրը միանում է GND- ին: Այնուհետեւ մենք վերցնում ենք ելքային լարումը (Vout) R1- ի եւ R2- ի միացումից: Այդ լարումը կդառնա մեր տեղեկատու լարումը LM339- ի համար: Լարման բաժանարարների աշխատանքի մասին լրացուցիչ տեղեկությունների համար տես Adohms youtube տեսանյութը

(Նշում. Ռեզիստորները չունեն բևեռականություն, այնպես որ դրանք կարող են միացված լինել ցանկացած ուղղությամբ)

Մեր հաշվարկման լարման հաշվարկը

Ենթադրելով, որ լարումը նվազում է, երբ ձեր PIR- ը գործարկվում է (սա պետք է լինի ահազանգերի մեծ մասի դեպքում), այն, ինչին մենք փորձում ենք հասնել, դա լարման ընթերցում ստանալն է, որը մեր կիսամյակային ամենացածր պարապ լարման և ամենաբարձր գործարկվող լարման միջև ընկած հատվածի կեսն է: սա կդառնա մեր տեղեկատու լարումը:

Որպես օրինակ վերցնելով իմ ահազանգը …

Գոտու պարապ լարումները եղել են Z1 = 6.65V, Z2 = 6.65V, Z3 = 7.92V, Z4 = 7.92V: Ամենացածր պարապ լարումը, հետևաբար, 6,65 Վ է

Գոտու լարված լարումները հետևյալն էին ՝ Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V: Հետևաբար ամենաբարձր գործարկվող լարումը 4.30V է

Այսպիսով, մենք պետք է մի թիվ ընտրենք 4.30V- ից մինչև 6.65V- ի միջև (պարտադիր չէ, որ ճշգրիտ լինի, պարզապես կոպիտ) Իմ դեպքում իմ տեղեկատու լարումը պետք է լինի մոտ 5.46V: Նշում. Եթե ամենացածր պարապ և ամենաբարձր գործարկվող լարումը շատ մոտ են միմյանց ՝ մի քանի գոտիների պատճառով, որոնք առաջացնում են տարբեր լարման տիրույթ, կարող է անհրաժեշտ լինել ստեղծել 2 կամ ավելի լարման բաժանարարներ:

Լարման բաժանարարի համար մեր դիմադրության արժեքների հաշվարկը

Այժմ մենք ունենք հղումային լարման, մենք պետք է հաշվարկենք, թե ինչ չափի դիմադրիչներ են մեզ անհրաժեշտ լարման բաժանարար ստեղծելու համար, որը կապահովի մեր հղման լարումը: Մենք կօգտագործենք 12V DC լարման աղբյուրը (Vs) ահազանգից: Այնուամենայնիվ, ըստ նախորդ քայլի, երբ մենք չափում էինք 12 Վ DC հոսքը, մենք իրականում ստացել էինք 13.15 Վ: Մենք պետք է հաշվենք լարման բաժանարարը `օգտագործելով այս արժեքը որպես աղբյուր:

Հաշվարկեք Vout- ը ՝ օգտագործելով ohms օրենքը…

Vout = Vs x R2 / (R1 + R2)

… Կամ օգտագործեք լարման բաժանարար առցանց հաշվիչ:-)

Դուք պետք է փորձարկեք ռեզիստորի արժեքները, մինչև հասնեք ձեր ցանկալի ելքին: Իմ դեպքում, այն մշակվել է R1 = 6.8k ohm և R2 = 4.7K ohm- ով, որը երկար հաշվարկված է հետևյալ կերպ.

Vout = Vs x R2 / (R1 + R2)

Vout = 13.15 x 4700 / (6800 + 4700)

Vout = 61, 805 /11, 500

Vout = 5.37V

Քայլ 4: Լարացրեք LM339- ը

Wemos D1 Mini- ի միացում
Wemos D1 Mini- ի միացում

Լարման բաժանարար դեպի LM339 շրջվող մուտքերը

Ինչպես ավելի վաղ քննարկվել էր LM339 համեմատիչի վերաբերյալ, այն կպահանջի 2 x մուտք: Մեկը կլինի լարում յուրաքանչյուր PIR- ից դեպի յուրաքանչյուր ալիք, որը չի վերածում (+) տերմինալ, մյուսը կլինի մեր անդրադարձ լարումը դեպի մեր շրջադարձային (-) տերմինալին: Հղման լարումը պետք է սնուցի բոլոր 4 համեմատական շրջվող մուտքերը: Այս քայլերը կատարելուց առաջ անջատեք ազդանշանային համակարգը:

  • Անվտանգության համակարգի 12 Վ DC բլոկից մետաղալար գործարկեք դեպի ձեր հացահատիկի + երկաթուղին *
  • Տեղադրեք մետաղալար GND բլոկից ահազանգման համակարգի վրա դեպի երկաթուղի ձեր հացահատիկի վրա **
  • Տեղադրեք LM339 համեմատիչը հացատախտակի մեջտեղում (խազը ցույց է տալիս 1 -ին փինին ամենամոտը)
  • Տեղադրեք 2 x ռեզիստորները `լարվածության բաժանարար միացում ստեղծելու համար և լարերը բաժանված լարման համար
  • Միացրեք լարումը «լարման բաժանված» Vout- ից մինչև յուրաքանչյուր LM339 շրջվող տերմինալ

* ԽՈՐՀՈՐԴ. Հնարավորության դեպքում օգտագործեք ալիգատոր ամրակ, քանի որ դա հեշտացնում է ձեր նախագծին ON/OFF էներգիա տրամադրելը ** ԿԱՐԵՎՈՐ: MOSFET- ը կարող է պահանջվել, եթե Wemos- ը միացնում եք rmարթուցիչի վահանակից: Իմ դեպքում, LM339- ը, Wemos- ը և Alarm- ը բոլորն էլ էներգիա են ստանում միևնույն աղբյուրից (այսինքն ՝ ահազանգման համակարգն ինքնին): Սա ինձ թույլ է տալիս ամեն ինչ միացնել հոսանքի մեկ միացման միջոցով: Այնուամենայնիվ, լռելյայն GPIO կապումներն Wemos- ում սահմանվում են որպես «ՄՏԱՈinsԹՅՈՆ» կապեր, ինչը նշանակում է, որ նրանք ընդունում են ցանկացած լարվածություն, և ապավինում են այդ աղբյուրին `լարման ճիշտ մակարդակները (նվազագույն/առավելագույն մակարդակները) ապահովելու համար, որպեսզի Wemos- ը հաղթի»: t վթարի ենթարկվել կամ այրվել: Իմ դեպքում ահազանգման համակարգը ստանում է իր հզորությունը և սկսում է կատարել իր գործարկման հաջորդականությունը շատ արագ, իրականում այնքան արագ, որ դա անում է նախքան Wemos- ի գործարկումը և GPIO- ի կապում հայտարարելը որպես «INPUT_PULLUP» (լարումը ներսից բարձրացված չիպ): Սա չի նշանակում, որ լարման տարբերությունները կհանգեցնեն Wemos- ի փլուզմանը, երբ ամբողջ համակարգը սնվի: Դրա միակ ճանապարհը կլինի ձեռքով անջատել և միացնել Wemos- ը: Դա լուծելու համար ավելացվում է MOSFET և գործում է որպես «տրամաբանական անջատիչ» LM339- ը միացնելու համար: Սա թույլ է տալիս Wemos- ին գործարկել, սահմանել իր 4 x համեմատիչ GPIO կապում որպես «INPUT_PULLUP's», մի քանի վայրկյան հետաձգել, իսկ հետո (մեկ այլ GPIO pin D5- ի միջոցով, որը սահմանվում է որպես ելք), ուղարկել «HIGH» ազդանշան GPIO pin D5 միջոցով MOSFET, որը տրամաբանորեն միացնում է LM339- ը: Ես խորհուրդ կտայի միացնել վերը նշվածը, բայց ԵԹԵ գտնեք, որ Wemos- ը վթարի է ենթարկվում, ինչպես և ես, ապա ստիպված կլինեք ներառել MOSFET- ը ՝ 1k ohm քաշվող դիմադրիչով: Լրացուցիչ տեղեկությունների համար, թե ինչպես դա անել, տե՛ս այս հրահանգի վերջը:

Rmարթուցիչի գոտիներ LM339 ոչ հետադարձ մուտքերի համար

Այժմ մենք պետք է լարեր տանք ահազանգի կառավարման վահանակի յուրաքանչյուր գոտուց մինչև LM339 համեմատիչի մուտքերը: Theարթուցիչը դեռ անջատված է, յուրաքանչյուր գոտու համար մետաղալար հաղորդեք LM339 համեմատիչի յուրաքանչյուր ոչ-շրջադարձային (+) մուտքի վրա: Օրինակ, իմ համակարգում.

  • Հաղորդալար Z1- ից անցնում է LM339 մուտքի 1+
  • Լարը Z2- ից անցնում է LM339 մուտքի 2+
  • Հաղորդալար Z3- ից անցնում է LM339 մուտքի 3+
  • Լարը Z4- ից անցնում է LM339 մուտքի 4+

Եթե հիշեցում ունեք, դիմեք LM339- ի 3-րդ քայլի «փին» -ին (այն գունավոր ծածկագրված է տախտակի պատկերով): Ավարտելուց հետո ձեր տախտակը պետք է նման լինի այս քայլին ցուցադրված պատկերին:

Միացրեք ազդանշանային համակարգը և չափեք լարման բաժանարարից դուրս եկող լարումը `ապահովելու համար, որ այն հավասար է ձեր հաշվարկման լարման, ինչպես հաշվարկվել է ավելի վաղ:

Քայլ 5. Միացում Wemos D1 Mini- ին

Wemos D1 մինի միացում

Այժմ մենք խնամում ենք LM339- ի բոլոր մուտքերը, այժմ մենք պետք է միացնենք Wemos D1 mini- ն: Յուրաքանչյուր LM339 ելքային քորոց անցնում է Wemos GPIO (ընդհանուր նպատակի մուտքագրում/ելք) քորոցին, որը մենք կոդի միջոցով կնշանակենք որպես մուտքային քաշող քորոց: Wemos- ը տևում է մինչև 5 Վ առավելագույն ՝ որպես իր Vcc (մուտքի աղբյուր) լարման (չնայած դա ներքին կարգավորում է մինչև 3.3 Վ): Մենք կօգտագործենք շատ տարածված LM7805 լարման կարգավորիչ (Խմբագրել. Տես ստորև) ՝ 12 Վ ռելսերը գետնատախտակի վրա իջեցնելու համար 5 Վ հզորացնել Wemos- ը: LM7805- ի տվյալների թերթիկը ցույց է տալիս, որ մեզ անհրաժեշտ է կոնդենսատոր, որը միացված է կարգավորիչի յուրաքանչյուր կողմում `հոսանքը հարթելու համար, ինչպես ցույց է տրված սեղանի նկարի վրա:Կոնդենսատորի ավելի երկար ոտքը դրական է (+), այնպես որ համոզվեք, որ այն միացված է ճիշտ ձևով:

Լարման կարգավորիչը տանում է լարումը (ձախ կողային կապում), գետնին (միջին քորոց) և լարումը դուրս (աջ կողքի քորոց) Կրկնակի ստուգեք անջատիչը, եթե ձեր լարման կարգավորիչը տատանվում է LM7805- ից:

(Խմբագրել. Ես գտա, որ ահազանգի վահանակից եկող ուժեղացուցիչները չափազանց բարձր էին LM7805- ի համար: Սա մեծ ջերմություն էր առաջացնում LM7805- ի փոքր ջերմատաքսում և առաջացնում այն, իսկ իր հերթին `Wemos- ի դադարեցումը: աշխատում եմ: Փոխարենը ես փոխարինեցի LM7805- ը և կոնդենսատորները DC-DC փոխարկիչով և դրանից հետո խնդիրներ չունեմ: Դրանք շատ հեշտ է լարել: Պարզապես միացրեք ազդանշանից մուտքային լարումը, նախ միացեք մուլտիմետրին և օգտագործեք պոտենցիոմետրի պտուտակը: և կարգավորել մինչև ելքային լարումը is 5 Վ)

GPIO մուտքագրման կապում

Այս նախագծի համար մենք օգտագործում ենք հետևյալ կապերը.

  • գոտի Z1 => կապում D1
  • գոտի Z2 => կապում D2
  • գոտի Z3 => կապ D3
  • գոտի Z4 => pin D5

Հաղորդալարեք ելքերը LM339- ից ՝ Wemos տախտակի համապատասխան GPIO կապումներին, ըստ այս քայլում ցույց տրված տախտակի պատկերի: Կրկին, ես գունավոր ծածկագրել եմ մուտքերը և համապատասխան ելքերը, որպեսզի ավելի հեշտ լինի տեսնել, թե ինչն ինչին է վերաբերում: Arduino- ում GPIO- ի յուրաքանչյուր կապում սահմանվում է որպես «INPUT_PULLUP», ինչը նշանակում է, որ դրանք նորմալ օգտագործման դեպքում (IDLE) կիջնեն մինչև 3.3 Վ, իսկ LM339- ը դրանք կիջեցնի գետնին, եթե PIR- ը գործարկվի: Կոդը հայտնաբերում է HIGH- ից LOW փոփոխությունը և անլար հաղորդագրություն է ուղարկում ձեր տան ավտոմատացման ծրագրակազմին: Եթե աշխատանքի հետ կապված խնդիրներ ունեք, հնարավոր է, որ ձեր շրջադարձային և ոչ շրջադարձային մուտքերը սխալ կերպով շրջվեն (եթե ձեր PIR- ի լարումը բարձրանա գործարկման ժամանակ, ինչպես դա տեղի է ունենում շատ հոբբի PIR- ների դեպքում, ապա կցանկանաք, որ կապերը լինեն այլ կերպ)

Arduino IDE

Հեռացրեք Wemos- ը գրատախտակից, այժմ մենք պետք է դրան վերբեռնենք ծածկագիրը (այստեղ այլընտրանքային հղում): Չեմ մանրամասնի, թե ինչպես դա անել, քանի որ համացանցում կան բազմաթիվ հոդվածներ Wemos- ում կամ այլ ESP8266 կոդ վերբեռնելու վերաբերյալ: տիպի տախտակներ: Միացրեք USB մալուխը Wemos տախտակին և համակարգչին և միացրեք Arduino IDE- ն: Ներբեռնեք ծածկագիրը և բացեք այն ձեր նախագծում: Դուք պետք է համոզվեք, որ ձեր ծրագրի համար տեղադրված և բեռնված է ճիշտ տախտակը, ինչպես նաև ընտրված COM- ի ճիշտ պորտը (Գործիքներ, նավահանգիստ): Ձեզ նույնպես կպահանջվի տեղադրված համապատասխան գրադարաններ (PubSubClient, ESP8266Wifi) Ձեր ուրվագծում Wemos տախտակը ներառելու համար տե՛ս այս հոդվածը:

Դուք պետք է փոխեք կոդի հետևյալ տողերը և ձեր անլար կապի համար փոխարինեք ձեր սեփական SSID- ով և գաղտնաբառով: Բացի այդ, փոխեք IP հասցեն ՝ ձեր սեփական MQTT բրոքերին մատնանշելու համար:

// Wifi

const char* ssid = "your_wifi_ssid_here"; const char* գաղտնաբառ = "your_wifi_password_here"; // MQTT բրոքեր IPAddress MQTT_SERVER (172, 16, 223, 254)

Փոփոխվելուց հետո հաստատեք ձեր ծածկագիրը, այնուհետև USB մալուխի միջոցով վերբեռնեք Wemos տախտակին:

Նշումներ

  • Եթե դուք օգտագործում եք տարբեր GPIO նավահանգիստներ, ապա ձեզ հարկավոր է հարմարեցնել ծածկագիրը: Եթե դուք օգտագործում եք ավելի շատ կամ ավելի քիչ գոտիներ, քան ես ունեմ, ապա ձեզ նույնպես պետք է հարմարեցնել ծածկագիրը և TOTAL_ZONES = 4; անընդհատ համապատասխանել:
  • Իմ ահազանգման համակարգը գործարկելիս ահազանգման համակարգը հզորության փորձարկում կկատարի բոլոր 4 x PIR- ների վրա, որոնք գետնին քաշեցին բոլոր միացված GPIO- ները `Wemos- ին մտածելով, որ գոտիները սկսվում են: Կոդն անտեսում է MQTT հաղորդագրություններ ուղարկելը, եթե միաժամանակ տեսնում է բոլոր 4 x գոտիները, քանի որ ենթադրում է, որ ահազանգման համակարգը միանում է:

Կոդի այլընտրանքային ներբեռնման հղումը ՝ ԱՅՍՏԵ

Քայլ 6. Փորձարկում և OpenHAB կազմաձևում

Փորձարկում և OpenHAB կազմաձևում
Փորձարկում և OpenHAB կազմաձևում

MQTT թեստավորում

MQTT- ը «բաժանորդագրվել / հրապարակել» հաղորդագրությունների համակարգ է: Մեկ կամ մի քանի սարք կարող է խոսել «MQTT բրոքերի» հետ և «բաժանորդագրվել» որոշակի թեմայի: Sameանկացած այլ սարքից ցանկացած մուտքային հաղորդագրություն, որը «հրապարակված» է նույն թեմային, բրոքերի կողմից դուրս կմղվի բոլոր այն սարքերին, որոնք բաժանորդագրվել են դրան: Դա չափազանց թեթև և պարզ օգտագործման արձանագրություն է և կատարյալ է որպես պարզ հրահրող համակարգ, ինչպիսին է այստեղ: Փորձարկման համար կարող եք դիտել Wemos- ից մուտքային MQTT հաղորդագրությունները ձեր MQTT բրոքերին ՝ ձեր Mosquitto սերվերի վրա հետևյալ հրամանը գործարկելով (Mosquitto- ն MQTT Broker- ի բազմաթիվ ծրագրերից մեկն է): Այս հրամանը բաժանորդագրվում է մուտքային պահվող հաղորդագրություններին.

mosquitto_sub -v -t openhab/ահազանգ/կարգավիճակ

Դուք պետք է տեսնեք մուտքային հաղորդագրություններ, որոնք գալիս են Wemos- ից ամեն 30 վայրկյանը մեկ «1» թվով (նշանակում է «ես կենդանի եմ»): Եթե տեսնում եք հաստատուն «0» (կամ ոչ մի պատասխան), ապա հաղորդակցություն չկա: Երբ տեսնում եք, որ թիվ 1 է գալիս, ապա դա նշանակում է, որ Wemos- ը շփվում է MQTT բրոքերի հետ (որոնեք «MQTT Վերջին կամք և կտակ» ՝ ավելի մանրամասն տեղեկությունների համար, թե ինչպես է դա աշխատում, կամ տեսեք այս իսկապես լավ բլոգի գրառումը)

Երբ ապացուցեք, որ հաղորդակցությունը գործում է, մենք կարող ենք ստուգել, որ գոտու վիճակի մասին տեղեկացվում է MQTT- ի միջոցով: Բաժանորդագրվեք հետևյալ թեմային (# -ը վայրի քարտ է)

mosquitto_sub -v -t openhab/alarm/#

Պետք է մտնեն սովորական կարգավիճակի հաղորդագրությունները, ինչպես նաև հենց Wemos- ի IP հասցեն: Քայլեք PIR- ի առջև, և դուք պետք է նաև տեսնեք, թե ինչպես են տարածքի տեղեկությունները գալիս ՝ նշելով, որ այն ԲԱ է, այնուհետև վայրկյան կամ ավելի ուշ, որ այն ՓԱԿ է, հետևյալի նման.

բաց/ահազանգ/կարգավիճակ 1

openhab/alarm/zone1 OPEN

բաց/ահազանգ/գոտի 1 ՓԱԿ

Երբ սա աշխատի, մենք կարող ենք կարգավորել OpenHAB- ը, որպեսզի այն գեղեցիկ ներկայացված լինի GUI- ում:

OpenHAB կոնֆիգուրացիա

Հետևյալ փոփոխությունները պահանջվում են OpenHAB- ում.

'alarm.map' փոխակերպման ֆայլ. (ըստ ցանկության, փորձարկման համար)

ՓԱԿՎԱ = = IdleOPEN = Փորձարկված NULL = Անհայտ- = Անհայտ

'status.map' փոխակերպման ֆայլ

0 = Չհաջողվեց

1 = Առցանց -= ԻOWՐ! NULL = անհայտ

'տարրերի' ֆայլ:

Լարային alarmMonitorState "rmարթուցիչի մոնիտոր [MAP (status.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/status: state: default]"} String alarmMonitorIPAddress "Alarm Monitor IP [%s]" "{mqtt = "<[mqttbroker: openhab/alarm/ipaddress: state: default]"} Միավորների գոտի 1_Կարտ_շրջան "Գոտի 1 գծապատկեր" Կապ alarmZone1State "Գոտու 1 նահանգ [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker. s] "{mqtt =" <[mqttbroker: openhab/alarm/zone2: state: default "} String alarmZone2Trigger" First Hall PIR [%1 $ ta %1 $ tr] "Number zone3_Chart_Period" Zone 3 Chart "Contact alarmZone3State" Zone 3 վիճակ [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} String alarmZone3Trigger" Ննջասենյակի PIR [%1 $ ta%1 $ tr] "համար zone4_Chart_Period "Zone 4 Chart" Contact contactZone4State "Zone 4 State [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: state: default "} String alarmZone4Trigger" Main Hall PIR [%1 $ ta %1 $ tr]"

«կայքի քարտեզ» ֆայլ (ներառյալ rrd4j գրաֆիկը)

Տեքստային նյութ = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Շրջանակ {Փոխել նյութը = zone1_Chart_Period label = «"Ամանակաշրջան» քարտեզագրումներ = [0 = «"ամ», 1 = «Օր», 2 = «Շաբաթ»] Պատկերի url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Uninitialized] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 1] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 2]}} Տեքստային տարր = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Շրջանակ {Փոխել նյութը = zone2_Chart_Period label = "Period" mappings = [0 = "Hour", 1 = "Day", 2 = "Week"] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Uninitialized] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 2]}} Տեքստային տարր = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Շրջանակ {Փոխել նյութը = zone3_Chart_Period label = "eriամանակաշրջան" քարտեզագրում = [0 = ""ամ", 1 = "Օր", 2 = "Շաբաթ"] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Uninitialized] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Տեքստ item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Շրջանակ {Փոխել նյութը = zone4_Chart_Period label = " "Ամանակաշրջան "քարտեզագրումներ = [0 =" "ամ ", 1 =" Օր ", 2 =" Շաբաթ "] Image url =" https:// localhost: 8080/rrdchart.png "visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Uninitialized] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // ԸՆՏՐՈԹՅՈՆ, բայց հարմար է կարգավիճակի և IP հասցեի ախտորոշման համար ss Տեքստային տարր = alarmMonitorState Տեքստային նյութ = alarmMonitorIPAddress

«կանոնների» ֆայլ

կանոն «Տագնապային գոտի 1 -ի վիճակի փոփոխություն»

երբ Ապրանքի alarmZone1State- ը փոխվեց OPEN- ի, ապա postUpdate (alarmZone1Trigger, նոր DateTimeType ()) alarmZone1State.state = ՓԱԿՎԱ end վերջ

կանոն «Տագնապային գոտի 2 -ի վիճակի փոփոխություն»

երբ Ապրանքի alarmZone2State- ը փոխվեց OPEN- ի, ապա postUpdate (alarmZone2Trigger, նոր DateTimeType ()) alarmZone2State.state = ՓԱԿ

կանոն «Տագնապային գոտի 3 -ի վիճակի փոփոխություն»

երբ Ապրանքի alarmZone3State- ը փոխվեց OPEN- ի, ապա postUpdate (alarmZone3Trigger, նոր DateTimeType ()) alarmZone3State.state = ՓԱԿ

կանոն «Տագնապային գոտի 4 -ի վիճակի փոփոխություն»

երբ Կետ alarmZone4State- ը փոխվում է ԲԱ then, ապա postUpdate (alarmZone4Trigger, նոր DateTimeType ()) alarmZone4State.state = ՓԱԿՎԱ end վերջ

Հնարավոր է, որ անհրաժեշտ լինի մի փոքր փոխել վերը նշված OpenHAB- ի կազմաձևը `ձեր սեփական կարգավորմանը համապատասխան:

Եթե PIR- ների գործարկման հետ կապված որևէ խնդիր ունեք, ապա սկսեք սկզբից և չափեք լարումները շղթայի յուրաքանչյուր մասի համար: Երբ դրանից գոհ կլինեք, ստուգեք ձեր էլեկտրագծերը, համոզվեք, որ կա ընդհանուր հիմք, ստուգեք Wemos- ի հաղորդագրությունները սերիական կարգաբերման վահանակի միջոցով, ստուգեք MQTT հաղորդակցությունը և ստուգեք ձեր փոխակերպման, տարրերի և կայքի քարտեզի ֆայլերի շարահյուսությունը:

Հաջողություն!

Խորհուրդ ենք տալիս: