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

Մարտկոցով աշխատող դռների տվիչ ՝ տան ավտոմատացման ինտեգրմամբ, WiFi և ESP-NOW: 5 քայլ (նկարներով)
Մարտկոցով աշխատող դռների տվիչ ՝ տան ավտոմատացման ինտեգրմամբ, WiFi և ESP-NOW: 5 քայլ (նկարներով)

Video: Մարտկոցով աշխատող դռների տվիչ ՝ տան ավտոմատացման ինտեգրմամբ, WiFi և ESP-NOW: 5 քայլ (նկարներով)

Video: Մարտկոցով աշխատող դռների տվիչ ՝ տան ավտոմատացման ինտեգրմամբ, WiFi և ESP-NOW: 5 քայլ (նկարներով)
Video: Easiest Chords on guitar | Կիթառի ամենահեշտ chord-երը | LuzeQ 2024, Նոյեմբեր
Anonim
Image
Image

Այս ուսանելիում ես ձեզ ցույց եմ տալիս, թե ինչպես եմ մարտկոցով աշխատող դռների տվիչ սարքել ՝ տան ավտոմատացման ինտեգրմամբ: Ես տեսել եմ մի քանի այլ գեղեցիկ սենսորներ և ահազանգման համակարգեր, բայց ես ինքս էի ուզում դրանք պատրաստել:

Իմ նպատակները.

  • Սենսոր, որը հայտնաբերում և հայտնում է դուռը արագ բացելու մասին (<5 վայրկյան)
  • Սենսոր, որը հայտնաբերում է դուռը փակելը
  • Սենսոր, որը աշխատում է մարտկոցով և աշխատում է մի քանի ամիս մարտկոցով

Սարքավորումը և ծրագրաշարը ոգեշնչված են

  • Քևին Դարրայի (TPL5111 և TPS73733) տախտակը:
  • Այս տեսանյութը

Ես սենսոր պատրաստեցի իմ առջևի և հետնամասի համար: Միակ տարբերությունն առաջնորդվող դիրքն է և արտաքին հոսանքի անջատիչը (հետնամասի սենսորի վրա):

Ես մի քանի բարելավումներ եմ կատարել ապարատային և ծրագրային ապահովման զարգացման ընթացքում, դա երևում է լուսանկարներում:

Պարագաներ

Ես գնել եմ էլեկտրոնային բաղադրիչները Aliexpress- ից, հիմնական մասերը.

  • LiPo մարտկոց
  • TPS73733 LDO
  • TPL5111
  • Եղեգի անջատիչ
  • P-channel mosfet: IRLML6401TRPBF
  • Մագնիս
  • PCB ադապտերային ափսե SMD բաղադրիչների համար և մեկ այլ:

Քայլ 1: Սարքաշար - միացում

Սարքաշար - Շղթա
Սարքաշար - Շղթա
Սարքաշար - Շղթա
Սարքաշար - Շղթա
Սարքաշար - Շղթա
Սարքաշար - Շղթա

Տեսեք սխեմայի կցված սխեմաները: Ես կպցրեցի SMD- ի մասերը ադապտերվող PCB ափսեի վրա և բոլոր բաղադրիչները կպցրեցի երկկողմանի պերֆ տախտակին: Ես միացրեցի ESP-01- ը կին վերնագրերի միջոցով, այնպես որ կարող էի հեռացնել այն ծրագրավորելու համար `սույն հրահանգի 3-րդ քայլում ցուցադրված ադապտերի միջոցով:

Շղթան աշխատում է հետևյալ կերպ.

  • Երբ դուռը բացվում է, TPL5111- ը կրակում է DELAY/M_DRV կապում և միացնում է TPS73733 LDO- ն, որը սնուցում է ESP-01- ը: Այս գործողության համար EN/ONE_SHOT- ը պետք է ցածր քաշվի, տե՛ս TPL5111- ի տվյալների թերթիկը:
  • Hasրագիրը գործարկելուց հետո (տես քայլ Softwareրագրային ապահովում), ESP-01- ը Կատարված ազդանշան է ուղարկում TPL5111- ին, որն այնուհետև անջատում է TPS73733- ը ՝ հանգեցնելով TPL5111- ի և TPS73733- ի շատ ցածր էներգիայի վիճակի:

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

Հետնամասի սենսորի համար ես ավելացրեցի որոշ կոնդենսատորներ և դիմադրիչներ, երբ հայտնաբերեցի որոշ անկայունություններ, սակայն անկայունությունն առաջացրեց ծրագրաշարը (esp_now_init), ինչպես ես հետագայում հայտնաբերեցի:

Քայլ 2. Սարքաշար - պարիսպ

Սարքավորումներ - պարիսպ
Սարքավորումներ - պարիսպ
Սարքավորումներ - պարիսպ
Սարքավորումներ - պարիսպ
Սարքավորումներ - պարիսպ
Սարքավորումներ - պարիսպ

Ես նախագծել եմ պատյանները Autodesk Fusion360- ում, որը ոգեշնչված է «շվեյցարական շեշտով տղայի» այս տեսահոլովակով:

Երեք մասի STL ֆայլերը.

  • Տուփ
  • Կափարիչ
  • Մագնիս պահող

հրապարակված են իմ Thingiverse էջում:

Քայլ 3: Softwareրագրակազմ

Ծրագրային ապահովում
Ծրագրային ապահովում

Isրագիրը իմ Github- ում է:

Flowրագրի ընթացքը պատկերված է նկարում: Տեսեք իմ մյուս Instructable- ը `ESP-NOW- ի օգտագործման բացատրության համար:

Երբ մոդուլը միացված է, այն առաջին հերթին փորձում է ուղարկել «ԲԱ '» հաղորդագրությունը ESP-NOW- ի միջոցով: Եթե դա չհաջողվի, այն անցնում է WiFi և MQTT կապի:

Ես պարզեցի, որ գոնե իմ կարգաբերման մեջ «ՓԱԿ» հաղորդագրությունը հաջողությամբ չի ուղարկվել ESP-NOW- ի միջոցով, ուստի ես դա հանեցի ծրագրից և օգտագործեցի միայն WiFi և MQTT:

Այն ժամանակ, երբ դուռը բացվում է, և մոդուլը սպասում է, որ դուռը փակվի, այն օգտագործում է WiFi- ն և MQTT- ին միանալու ժամանակը, ուստի երբ դուռը փակ է, մնում է միայն չափված լարումը և ՓԱԿ հաղորդագրություն ուղարկել, այնուհետև այն ուղղակիորեն քնում է:

Programրագիրը ստուգում է, թե արդյոք փակ հաղորդագրությունը ստացողը ստանում է ճիշտ թեմայով MQTT հաղորդագրություն լսելու միջոցով:

Քայլ 4: Տան ավտոմատացում և հեռագիր

Տան ավտոմատացում և հեռագիր
Տան ավտոմատացում և հեռագիր
Տան ավտոմատացում և հեռագիր
Տան ավտոմատացում և հեռագիր
Տան ավտոմատացում և հեռագիր
Տան ավտոմատացում և հեռագիր

Իմ դռների տվիչները հաղորդակցվում են իմ Openhab Home Automation- ի հետ ՝ իմ Raspberry Pi Zero- ի վրա:

Հիմնական ծրագրեր.

  • Կարդացեք դռան վիճակը ՝ ԲԱ or կամ ՓԱԿ:
  • Aանգահարեք ինձ հեռագրի միջոցով, եթե դուռը բացվի (Եթե rmարթուցիչը միացված է կամ Մոնիտորի գործառույթը միացված է):
  • Կարդացեք վերջին անգամ, երբ դուռը բացվել կամ փակվել է:
  • Հաշվեք դռան տվիչի բացվածքների քանակը, մինչև մարտկոցը սպառվի:

Օրինակ, եթե մենք արձակուրդում ենք, և հարևանը մտնում է բույսերը ջրելու, ես հաղորդագրություն եմ ստանում: Տեսանյութը դիտեք ներածության մեջ:

Իմ Openhab- ի իրերը, կանոնները և կայքի քարտեզի ֆայլերը իմ Github- ում են: Այս ֆայլերում դուք կարող եք տեսնել նաև դռան իմ դռան սենսորը, որն օգտագործում է սովորական լարային եղեգի անջատիչ և կողպեքի բացման մեջ 3D տպիչից մի փոքր կոնտակտ (վերջ) անջատիչ (տես նկարները):

Ինչպես օգտագործել Telegram- ի գործողությունը Openhab- ում, նկարագրված է այստեղ:

Քայլ 5. Բարելավումներ և հետագա բարելավումներ

Բարելավումներ և հետագա բարելավումներ
Բարելավումներ և հետագա բարելավումներ
Բարելավումներ և հետագա բարելավումներ
Բարելավումներ և հետագա բարելավումներ

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

Կարգավորեք դռների երկար բացերը ինքնահոս զարկերակային ազդանշանի միջոցով

Ամռանը, երբ տանն ենք, մի քանի ժամով բաց ենք թողնում հետնամուտքը: WiFi կապով աշխատող ESP-01- ն այնուհետ անհարկի կթափի մարտկոցը: Այսպիսով, ես ներառեցի միացման/անջատման անջատիչ, որպեսզի կարողանամ այս իրավիճակում անջատել մոդուլը:

Այնուամենայնիվ, դա երբեմն հանգեցնում էր մշտապես անջատված մոդուլի (երբ մոռացել էի միացնել այն) և մարտկոցի լիցքաթափումից հետո բացված դռնից և մի մոդուլից մի քանի կեսօրից հետո (Երբ մոռացել էի անջատել այն):

Հետևաբար, ես ցանկանում էի, որ կարողանայի անջատել մոդուլը ծրագրաշարի միջոցով `նախապես որոշված ժամանակ (1 րոպե) մոդուլը միացնելուց հետո:

Այնուամենայնիվ, որտեղ ESP-01- ի «ԿԱՏԱՐՎԱ’ »զարկերակն անջատեց TPL5111- ը, երբ դուռը փակ էր, ես պարզեցի, որ TPL5111- ը չի արվել« ԿԱՏԱՐՎԱ '»զարկերակով, մինչդեռ DELAY/M_DRV քորոցը բարձր էր: DELAY/M_DRV կապում այս Բարձր ազդանշանը առաջացել է բացված դուռի և մարտկոցի լարման հետ միացված եղեգի անջատիչի NC կոնտակտի պատճառով:

Այսպիսով, DELAY/M_DRV կապի ազդանշանը չպետք է անընդհատ ԲԱՐՁՐ լինի, այլ պետք է զարկերակային լինի: TPL5111 տվյալների թերթում կարող եք գտնել, որ այն պետք է լինի> 20 ms- ի զարկերակ: Այս ինքնորոշման ազդանշանը ես արեցի P-channel mosfet- ի, կոնդենսատորի և 10K և 300K դիմադրության միջոցով, տես ներառված սխեման:

Այն աշխատում է հետևյալ կերպ.

  • Եթե եղեգի անջատիչի NC կոնտակտը փակ է, դարպասը OWԱOWՐ է, և Mosfet- ը միացված է, ինչը հանգեցնում է DELAY/M_DRV կապում բարձր ազդանշանի, որն ակտիվացնում է մոդուլը:
  • Կոնդենսատորը արագ լիցքավորվում է, որի արդյունքում Դարպասի վրա լարումը բարձրանում է:
  • Մոտ 20 ms- ից հետո Դարպասի լարումը մարտկոցի լարման 97% -ն է (300K/(300K+10K), որը ԲԱՐՁՐ է, և Mosfet- ն անջատված է, ինչը հանգեցնում է OWԱOWՐ ազդանշանի DELAY/M_DRV քորոցին:
  • Երբ DELAY/M_DRV կապը ցածր է, ESP-01- ի ԿԱՏԱՐՎԱ signal ազդանշանը հանգեցնում է մոդուլի անջատման:

Սա ներդրված է ծրագրաշարում; while-loop- ը ոչ միայն ստուգում է, որ դուռը դեռ բաց է, այլ նաև ստուգում է, որ մոդուլը չափազանց երկար միացված չէ: Շատ երկար միացված լինելու դեպքում այն հրապարակում է NULL արժեք (դռան անորոշ վիճակ): Այս դեպքում ես չգիտեմ ՝ դուռը բաց է, թե փակ, և ես չեմ հասնում ներածության մեջ նշված բոլոր նպատակներին, բայց մարտկոցի կյանքն ավելի կարևոր է, և շատ անգամ մենք նորից բացում ենք դուռը նույն օրը, ինչը հանգեցնում է հաստատված փակ վիճակի դռան.

Կարևոր է օգտագործել P-channel Mosfet- ը, որը հարմար է այստեղ օգտագործվող լարման տիրույթին: Mosfet- ը պետք է ամբողջովին միացված լինի մոտ 3.8 Վ -ի դեպքում և ամբողջովին անջատված լինի մոտ -0.2 Վ -ի VGS- ով: Ես փորձեցի մի քանի Mosfets և պարզեցի, որ IRLML6401TRPBF- ը լավ է աշխատում այս նպատակի համար `10K և 300K ռեզիստորների հետ համատեղ:. 1 uF կոնդենսատորը լավ է աշխատում ՝ մոտ 20 ms արագության երկարություն ստանալու համար: Ավելի մեծ կոնդենսատորը հանգեցնում է ավելի երկար զարկերակի, որն անհրաժեշտ չէ, քանի որ TPL5111- ն ակտիվացվել է: Ես օգտագործել եմ իմ DSO150 օսլիլոսկոպը `լարումները և զարկերակի երկարությունը ստուգելու համար:

Պլանավորված բարելավում. OTA- ի թարմացում

Ես նախատեսում եմ ներառել OTA թարմացում հետևյալ ընթացակարգի միջոցով, որն արդեն մասամբ ներառված է ընթացիկ ծրագրաշարի մեջ

  • NodeRed- ի Openhab- ի միջոցով ես հրապարակում եմ պահպանված «թարմացման» հաղորդագրությունը `« թարմացման թեմա »:
  • Եթե մոդուլը միացված և միացված է MQTT սերվերին և բաժանորդագրված է «թարմացման թեմային», այն ստանում է թարմացման հաղորդագրություն:
  • Թարմացման հաղորդագրությունը թույլ չի տա մոդուլի անջատումը և կսկսի HTTPUpdateServer- ը:
  • HTTPUpdateServer կայքի միջոցով կարող եք թարմացնել ծրագրակազմը:
  • NodeRed- ի Openhab- ի միջոցով ես հրապարակում եմ պահպանված «դատարկ» հաղորդագրությունը `« թարմացման թեմա »:

Պլանավորված բարելավում. Սարքավորումների անջատում կանխորոշված ժամանակից հետո:

Ներկայիս սխեմայում ես օգտագործում եմ 200K դիմադրություն TPL5111- ի DELAY/M_DRV- ի և GND- ի միջև: Սա միացնում է մոդուլը ավելի քան 2 ժամ (տե՛ս TPL5111 տվյալների թերթի 7.5.3.): Այնուամենայնիվ, ես չեմ ցանկանում, որ մոդուլն այսքան երկար միացված լինի, քանի որ մարտկոցը լիցքաթափվում է: Եթե ծրագրային լուծումը (տես վերը) չի կարող անջատել մոդուլը, կամ թարմացման հաղորդագրությունը չնախատեսված կերպով մոդուլը դնում է թարմացման ռեժիմում, մոդուլը երկար ժամանակ մնում է միացված:

Ուստի ավելի լավ է օգտագործել ավելի փոքր ռեզիստոր TPL5111- ի DELAY/M_DRV- ի և GND- ի միջև, այնպես որ մոդուլը կարճ ժամանակ անց անջատվում է, օրինակ `50K ռեզիստոր, որի արդյունքում միանում է 7 րոպե:

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