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

Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա ՝ 5 քայլ
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա ՝ 5 քայլ

Video: Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա ՝ 5 քայլ

Video: Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա ՝ 5 քայլ
Video: Ինչպես արագ և մատչելի կերպով մաքրել զուգարանակոնքը 2024, Նոյեմբեր
Anonim
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա
Անլար դռների տվիչ - ծայրահեղ ցածր էներգիա

Եվս մեկ դռան սենսոր !! Այս սենսոր ստեղծելու մոտիվացիան ինձ համար այն էր, որ շատերը, որոնք ես տեսա ինտերնետում, ունեին այս կամ այն սահմանափակումները: Ինձ համար սենսորի նպատակներից են.

1. Սենսորը պետք է լինի շատ արագ `ցանկալի է 5 վրկ -ից պակաս

2. Սենսորը պետք է աշխատի 3.7 Վ Li-ion մարտկոցով, քանի որ դրանցից տասնյակն ընկած վիճակում են

3. Սենսորը պետք է աշխատի երկար ամիսներ մարտկոցի մեկ լիցքավորմամբ: Այն պետք է սպառի <10uA քնի ռեժիմում

4. Սենսորը պետք է կարողանա արթնանալ մարտկոցի կարգավիճակի նման կրիտիկական տվյալներ փոխանցելու համար, նույնիսկ եթե դուռը երկար ժամանակ չի գործում:

5. Սենսորը պետք է տվյալներ փոխանցի MQTT թեմային, երբ դուռը բացվում է, ինչպես նաև երբ դուռը փակ է

6. Սենսորը պետք է սպառի նույնքան էներգիա ՝ անկախ դռան վիճակից

Սենսորի աշխատանքը

Սենսորն ունի 2 հիմնական վերահսկիչ: Առաջինը փոքր միկրո վերահսկիչ ATiny 13A- ն է: Երկրորդը ESP- ն է, որը սովորաբար քնի ռեժիմում է և արթնանում է միայն այն ժամանակ, երբ ATiny- ն դա հնարավորություն է տալիս: Ամբողջ միացումը կարող է կատարվել միայն ESP- ի միջոցով ՝ այն օգտագործելով քնի ռեժիմում, սակայն այն սպառած հոսանքը շատ ավելի մեծ է, քան անհրաժեշտ է մարտկոցը ամիսներ տևելու համար, որպեսզի ATTiny- ն օգնության հասնի: Այն ծառայում է միայն յուրաքանչյուր N վայրկյան արթնանալու, դռան իրադարձություն կամ առողջության ստուգման միջոցառում փնտրելու դեպքում, եթե կա, այն պահում է ESP- ի CH_PD կապը HIGH- ի վրա և ESP- ին ուղարկում իրադարձության տեսակի համապատասխան ազդանշան:. Դրա դերն ավարտվում է այնտեղ:

ESP- ն այնուհետև վերցնում է իր գործառույթը, կարդում է ազդանշանի տեսակը, միանում է WiFi/MQTT- ին, հրապարակում է պահանջվող հաղորդագրությունները, ներառյալ մարտկոցի մակարդակը, այնուհետև անջատվում է ՝ EN- ի կապիչը վերադարձնելով OWԱOWՐ:

Այս չիպերն այս կերպ օգտագործելով, ես օգտվում եմ ATtiny- ի ցածր քնի և ESP- ի զրո պարապ հոսանքից, երբ չիպը անջատված է CH_PD կապի միջոցով:

Պարագաներ

Նախնական պահանջ.

- ATTiny & ESP 01 ծրագրավորման իմացություն

- PCB- ի վրա զոդման բաղադրիչների իմացություն

ESP-01 (կամ ցանկացած ESP)

ATTiny 13A - AVR

LDO 7333 -A - Dածր ելքի լարման կարգավորիչ

Ռեզիստորներ - 1K, 10K, 3K3

Կոնդենսատորներ `100uF, 0.1 uF

Սեղմման կոճակ, միկրո միացում/անջատում - (երկուսն էլ ըստ ցանկության)

Դիոդ - IN4148 (կամ ցանկացած համարժեք)

Li-ion մարտկոց

Reed Switch

Գործ ՝ այդ ամենը տեղավորելու համար

Sոդիչ, PCB և այլն

Քայլ 1. Սխեմատիկա և աղբյուրի ծածկագիր

Սխեմատիկա և աղբյուրի ծածկագիր
Սխեմատիկա և աղբյուրի ծածկագիր

Սխեմաները ներկայացված են կից գծապատկերում:

Ես ներառել եմ P Channel MOSFET ՝ հակադիր բևեռականությունից պաշտպանվելու համար: Եթե ձեզ դա պետք չէ, կարող եք բաց թողնել այն: Pածր Rds ON- ով ցանկացած P Channel MOSFET- ը կանի:

Ներկայումս ESP- ն չունի OTA- ի հնարավորություններ, բայց դա ապագա բարելավման համար է:

Սկզբնաղբյուրը smart-door-sensor

Քայլ 2. Շրջանի աշխատանքը

ATTiny Աշխատանքային հոսք

Այստեղ կախարդանքը տեղի է ունենում նրանում, թե ինչպես է ATTiny- ն վերահսկում դռան անջատիչի դիրքը:

Սովորական տարբերակն այն է, որ անջատիչին ամրացնող ձգիչ ամրացնեն և շարունակեն վերահսկել դրա վիճակը: Սա ունի անընդհատ հոսանքի բացասական կողմը, որը սպառվում է ձգվող դիմադրիչի կողմից: Այստեղից խուսափելու եղանակն այն է, որ ես օգտագործել եմ երկու կապում անջատիչը վերահսկելու համար, այլ ոչ թե մեկը: Ես այստեղ օգտագործել եմ PB3 և PB4: PB3- ը սահմանվում է որպես մուտքագրում, իսկ PB4- ը `ելք PB3- ում ներքին INPUT_PULLUP- ով: Սովորաբար PB4- ը բարձր է պահվում, երբ ATtiny- ն քնի ռեժիմում է: Սա ապահովում է, որ մուտքային ձգվող դիմադրության միջոցով ընթացիկ հոսք չլինի ՝ անկախ եղեգի անջատիչի դիրքից: այսինքն. Եթե անջատիչը փակ է, երկուսն էլ PB3- ը և PB4- ը Բարձր են, ուստի նրանց միջև հոսանք չի հոսում: Եթե անջատիչը բաց է, ապա նրանց միջև ճանապարհ չկա, և հոսանքը զրո է: Երբ ATtiny- ն արթնանում է, գրում է LOW- ը PB4- ի վրա, այնուհետև ստուգում է PB3- ի վիճակը: Եթե PB3- ը ԲԱՐՁՐ է, ապա եղեգի անջատիչը ԲԱ է, այլապես ՓԱԿ է: Այնուհետև այն գրում է բարձր ՝ PB4- ով:

ATtiny & ESP- ի միջև հաղորդակցությունը տեղի է ունենում երկու PIN PB1 / PB2 կապի միջոցով, որոնք միացված են ESP- ի Tx / RX- ին: Ես ազդանշանը սահմանել եմ որպես

PB1 PB2 ====== Tx Rx

0 0 ====== WAKE_UP (Առողջության ստուգում)

0 1 ====== ՍԵՆՍՈՐ_ՕՊԵՆ

1 0 ====== ՍԵՆՍՈՐ_ՓԱԿՎԱ

1 1 ====== Չօգտագործված

ESP- ին ազդանշան ուղարկելուց բացի, այն ուղարկում է նաև բարձր զարկերակ PB0- ի վրա, որը միացված է ESP CH_PD կապին: Սա արթնացնում է ESP- ն: Առաջին բանը, որ ESP- ն անում է դա GPIO0 HIGH- ն պահելու համար, որը միացված է CH_PD- ին, դրանով իսկ ապահովելով նրա հզորությունները, նույնիսկ եթե ATTiny- ը խլում է PB0 HIGH- ը: Այժմ վերահսկողությունը ESP- ինն է `որոշելու, թե երբ է այն ցանկանում անջատել:

Այնուհետև այն միանում է WiFi- ին, MQTT- ին, տեղադրում է հաղորդագրությունը և ինքն իրեն ուժ է տալիս ՝ GPIO0- ում LOW գրելով:

ESP 01 Աշխատանքային հոսք

ESP հոսքը ուղիղ առաջ է: Այն արթնանում է և կարդում է Tx/Rx քորոցների արժեքները ՝ որոշելու համար, թե ինչ տեսակի հաղորդագրություն է տեղադրվելու: Միանում է WiFi- ին և MQTT- ին, տեղադրում է հաղորդագրությունը և ինքն իրեն ուժ է տալիս:

Նախքան անջատելը, այն կրկին ստուգում է մուտքային կապերի արժեքները `տեսնելու, թե արդյոք դրանք փոխվել են վերջին ընթերցումից հետո: Սա պետք է հոգ տանել դռան արագ բացման և փակման մասին: Եթե դուք չունեք այս չեկը, ապա որոշ դեպքերում կարող եք բաց թողնել դուռը փակելը, եթե այն փակ է բացումից 5-6 վայրկյանում: 2 վայրկյանում դուռը բացվելու և փակվելու գործնական սցենարը լավ է ընկալվում while հանգույցով, որը շարունակում է հաղորդագրություններ տեղադրել այնքան ժամանակ, քանի դեռ դռան ներկա վիճակը տարբերվում է նախորդից: Միակ սցենարը, որը կարող է բաց թողնել, այն է, որ բոլոր բաց/փակ իրադարձությունները գրանցվեն, երբ դուռը բազմիցս բացվում/փակվում է 4-5 վրկ պատուհանի սահմաններում, ինչը շատ քիչ հավանական դեպք է:

Քայլ 3: Առողջության ստուգում

Ինձ անհրաժեշտ էր նաև ESP- ից առողջության ստուգման հաղորդագրություն, որտեղ այն ուղարկում է ESP- ի մարտկոցի մակարդակը, ինչպես նաև ապահովելու համար, որ սենսորը լավ է աշխատում ՝ առանց ձեռքով ստուգման: Դրա համար ATTiny- ն ուղարկում է WAKE_UP ազդանշան ամեն 12 ժամը մեկ: Այն կարող է կազմաձևվել ATINy ծածկագրում WAKEUP_COUNT փոփոխականի միջոցով: Սա շատ օգտակար է դռների կամ պատուհանների համար, որոնք հազվադեպ են բացվում, այնպես որ դուք կարող եք չհասկանալ, թե երբևէ ինչ -որ բան սխալ է սենսորի կամ մարտկոցի հետ:

Այն դեպքում, երբ ձեզ անհրաժեշտ չէ առողջության ստուգման գործառույթը, ապա ATTiny- ի օգտագործման ամբողջ հայեցակարգը անհրաժեշտ չէ: Այդ դեպքում դուք կարող եք գտնել այլ դիզայններ, որոնք մարդիկ ստեղծել են, որտեղ ESP- ի մատակարարումը սնվում է MOSFET- ով, այնպես որ կարող եք հասնել զրոյական հոսանքի, երբ դուռը չի շահագործվում: Կան նաև այլ բաներ, ինչպիսիք են ընթացիկ խաղարկությունը, որը բաց է և դռան փակ դիրքում նույնը: դրա համար ես ինչ -որ տեղ տեսա մի նախագիծ, որը սովորական 2 վիճակի փոխարեն օգտագործում էր 3 պետական եղեգի անջատիչ:

Քայլ 4: Էլեկտրաէներգիայի չափումներ և մարտկոցի կյանք

Ես չափել եմ սխեմայի ընթացիկ սպառումը, և քնելիս և դրա շուրջը տևում է 30uA ֆունտ: Անցնելով ATTiny- ի տվյալների թերթերին, այն պետք է լինի մոտ 1-4 uA ամբողջ շրջանի համար, ներառյալ LDO- ի հանդարտ հոսանքը, բայց հետո իմ չափումները ցույց են տալիս 30. MOSFET- ը և LDO- ն սպառում են աննշան հոսանք:

Այսպիսով, 800mAH մարտկոցը պետք է երկար տևի: Ես ճշգրիտ վիճակագրություն չունեմ, բայց ես այն օգտագործում եմ իմ 2 դռների վրա արդեն ավելի քան մեկ տարի, և յուրաքանչյուր 18650 բջիջ, որի մեջ մոտ 800 մԱՀ է մնացել, տևում է մոտ 5-6 ամիս իմ հիմնական դռան վրա, որը բացվում և փակվում է օրական առնվազն 30 անգամ: Տանիքի դուռը, որը բացվում է շաբաթական ընդամենը մի քանի անգամ, տևում է 7-8 ամիս:

Քայլ 5. Ապագա բարելավումներ

1. ESP- ը չի ընդունում MQTT հաղորդագրության առաքումը: Programրագիրը կարող է բարելավվել ՝ բաժանորդագրվելով այն թեմային, որտեղ նա հրապարակում է հաղորդագրությունը ՝ առաքումը հաստատելու համար, կամ Async MQTT գրադարանը կարող է օգտագործվել QoS 1 -ով հաղորդագրություն տեղադրելու համար:

2. OTA- ի թարմացում. ESP ծածկագիրը կարող է փոփոխվել `թարմացման համար MQTT թեմա կարդալու համար, ուստի ֆայլը ստանալու համար մտեք OTA ռեժիմ:

3. ESP01- ը կարող է փոխարինվել ESP-12- ով `ավելի շատ մուտքային PIN կոդերի հասանելիություն ունենալու համար, և կարող է դրան միացնել ավելի շատ տվիչներ: Այդ դեպքում կապը 2 բիթ մեթոդով անհնար է: Այնուհետև դա կարող է բարելավվել `ATtiny & ESP- ի միջև I2C հաղորդակցություն իրականացնելու համար: Սա մի փոքր բարդ է, բայց աշխատունակ: Ես այն աշխատում եմ մեկ այլ սարքում, որտեղ ATTiny- ը E2- ի միջոցով պտտվող կոդավորիչի արժեքներ է ուղարկում ESP:

4. Ընթացիկ միացումը վերահսկում է ESP- ի ներքին Vcc- ը, եթե մենք օգտագործում ենք ESP12- ը, ապա այն կարող է փոփոխվել `մարտկոցի փաստացի մակարդակը ADC կապի միջոցով կարդալու համար:

5. Ապագայում ես նաև կտեղադրեմ դրա փոփոխություն, որը կարող է օգտագործվել որպես ինքնուրույն ցուցիչ ՝ առանց MQTT- ի կամ տան ավտոմատացման համակարգի անհրաժեշտության: Սենսորը կգործի ինքնուրույն և կարող է զանգահարել, երբ միացված է, իհարկե դրա համար անհրաժեշտ է ինտերնետ կապ:

6. Եվ ցանկը շարունակվում է…

7. Մարտկոցի հակադարձ պաշտպանություն.

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