Բովանդակություն:
- Քայլ 1: Նախատիպ
- Քայլ 2. ificationանուցում ուղարկելով Բլինկի միջոցով
- Քայլ 3. Էլեկտրաէներգիայի սպառման չափում և մարտկոցի աշխատանքի գնահատում
- Քայլ 4: Մարտկոցի մակարդակի չափում
- Քայլ 5: Այն դարձնել ավելի գեղեցիկ
- Քայլ 6: Ավարտելով հպումները
Video: Լվացքի մեքենայի ծանուցման տվիչ `6 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Լվացքի մեքենայի սենսորը նստում է իմ լվացքի մեքենայի վերևում և արագացուցիչ է օգտագործում մեքենայից թրթռումները հայտնաբերելու համար: Երբ նա զգում է, որ լվացքի ցիկլն ավարտված է, նա ինձ ծանուցում է ուղարկում իմ հեռախոսի մասին: Ես դա կառուցեցի, քանի որ մեքենան ինքնին այլևս չի ազդում, երբ այն ավարտվում է, և ես հոգնել էի մոռանալ լվացքը հանել:
Կոդը կարելի է գտնել այստեղ ՝
Մասերի ամբողջական ցուցակ.
- WEMOS LOLIN32
- Կիսա չափի տախտակ (նախատիպավորման համար)
- ABS Project Box, Matrix Board 59x88x30 մմ տրամագծով
- Sparkfun LIS3DH - Եռակի առանցքի արագացուցիչի բեկում
- 1x ZVP3306A P-channel MOSFET, 160 mA, 60 V, 3-Pin E-Line
- 1x BC549B TO92 30V NPN տրանզիստոր
- 5 մմ LED կապույտ 68 մկդ
- 1x 100k 0.125W CF դիմադրություն
- 1x 330k 0.125W CF դիմադրություն
- 2x 10k 0.250W CF դիմադրություն
- 1x 100 0.250W CF դիմադրություն
- 2-պտույտ իգական JST PH- ոճի մալուխ (14 սմ)
- 4x M1219-8 նեոդիմի սկավառակ մագնիս 6x4 մմ
Քայլ 1: Նախատիպ
Սարքն օգտագործում է ESP32 միկրոկոնտրոլեր: Այս դեպքում ես օգտագործում եմ Wemos- ի Lolin32 զարգացման խորհուրդը, որը կարող եք գնել AliExpress- ից մոտ 7 դոլարով: Արագացուցիչը Sparkfun LIS3DH- ն է, կարևոր է արագացուցիչը թվային է, քան անալոգային, ինչպես կտեսնեք ավելի ուշ: Մարտկոցը, որը ես վերցրի bluetooth բարձրախոսների հին փաթեթից:
ESP32- ը արագացուցիչին միանում է I2C- ի միջոցով: Կոդի առաջին տարբերակը պարզապես հարցում է անցկացրել արագացման երեք առանցքների (x, y և z) չափված արագացման արժեքի համար յուրաքանչյուր 20ms- ում: Հացաթխման նախատիպը տեղադրելով լվացքի մեքենայի վրա և ես պատրաստեցի վերը նշված գրաֆիկը, որը ցույց է տալիս արագացման գագաթները լվացքի ցիկլի տարբեր փուլերում: Այն գագաթները, որտեղ բացարձակ արագացումը գերազանցում էր 125 մգ -ը (նորմալ ծանրության 125 հազարերորդը), պատկերված են նարնջագույնով: Մենք ցանկանում ենք հայտնաբերել այդ ժամանակաշրջանները և օգտագործել դրանք `որոշելու լվացքի մեքենայի կարգավիճակը:
Ինչպե՞ս որոշել, որ մեքենան միացված է, թե անջատված:
Այս սարքի ստեղծման նպատակներից մեկն այն էր, որ այն ամբողջովին պասիվ կլիներ: Այսինքն ոչ մի կոճակ պետք չէ սեղմել; դա պարզապես կաշխատեր: Այն նաև պետք է լինի շատ ցածր էներգիա, քանի որ իմ դեպքում իսկապես հնարավոր չէր հոսանքի մալուխներ երկարացնել լվացքի մեքենայի վրա:
Բարեբախտաբար, LIS3DH արագացուցիչը ունի մի գործառույթ, որտեղ այն կարող է ընդհատում առաջացնել, երբ արագացումը գերազանցում է տվյալ շեմը (նկատի ունեցեք, դա պահանջում է արագացուցիչի ներկառուցված բարձր անցման զտիչի օգտագործում. Մանրամասների համար տե՛ս Github- ի կոդը) և ESP32- ը կարող է արթնանալ: ընդհատման միջոցով խոր քնի ռեժիմից: Մենք կարող ենք օգտագործել հատկությունների այս համադրությունը `ստեղծելու շատ ցածր էներգիայի քնի ռեժիմ, որը շարժվում է շարժման միջոցով:
Կեղծ կոդն այսպիսի տեսք կունենա.
# Սարքն արթնանում է
notification_threshold = 240 counter = 10 accelerometer.set_threshold (96) # 96mg while counter> 0: if accelerometer.above_threshold (): counter ++ else: counter-- if counter> notification_threshold: # final spin ցիկլը հայտնաբերել է քուն (1 վայրկյան) accelerometer.set_threshold_inruptrupt () esp32.set_wakeup_trigger_on_interrupt () esp32.deep_sleep ()
Այստեղ դուք կարող եք տեսնել, որ մենք օգտագործում ենք հաշվիչ ՝ որոշելու համար, թե քանի վայրկյան արագացում ենք հայտնաբերել արթնության ընթացիկ շրջանում: Եթե հաշվիչը զրոյի իջնի, ապա մենք կարող ենք սարքը նորից քնել: Եթե հաշվիչը հասնում է 240 -ի (ծանուցման շեմին), ապա դա նշանակում է, որ մենք հայտնաբերել ենք 4 րոպե թրթռում: Մենք կարող ենք փոփոխել այս շեմերի արժեքները `համոզվելու համար, որ սարքը ճիշտ է հայտնաբերում պտտման վերջին ցիկլը: Երբ բավարար թրթռում է հայտնաբերվում, մենք կարող ենք պարզապես քնել ևս 5 րոպե (իմ դեպքում սա այն է, թե որքան ժամանակ է պահանջվում մինչև լվացքի իրական ավարտը) նախքան ծանուցում ուղարկելը:
Քայլ 2. ificationանուցում ուղարկելով Բլինկի միջոցով
Blynk- ը ծառայություն է, որը նախատեսված է թույլ տալու փոխազդել IoT սարքերի հետ ՝ ձեր հեռախոսի հավելվածով: Այս դեպքում ես օգտագործում եմ push ծանուցման API- ն, որը գործարկվում է պարզ HTTP POST- ի միջոցով Blynk API- ին:
Քայլ 3. Էլեկտրաէներգիայի սպառման չափում և մարտկոցի աշխատանքի գնահատում
ESP32 չիպը գովազդվում է որպես շատ ցածր էներգիայի սպառման, երբ խոր քնում է (5uA- ից ցածր): Unfortunatelyավոք, զարգացման տարբեր տախտակների միացումն ապահովում է էներգիայի սպառման շատ տարբեր բնութագրեր. Ոչ բոլոր ESP32 dev տախտակները ստեղծված են հավասար: Օրինակ, երբ ես առաջին անգամ սկսեցի այս նախագիծը, ես օգտագործեցի Sparkfun ESP32 Thing- ը, որը խոր քնի ռեժիմում կսպառեր մոտ 1 մԱ էներգիա (նույնիսկ հոսանքի LED- ն անջատելուց հետո): Այդ ժամանակից ի վեր ես օգտագործում եմ Lolin32- ը (ոչ Lite տարբերակը), որի վրա ես խոր քնի ռեժիմում չափել եմ 144.5uA հոսանք: Այս չափումը կատարելու համար ես պարզապես մի շարք բազմաչափ միացրել եմ մարտկոցի և սարքի հետ: Սա, անկասկած, ավելի հեշտ է անել, երբ նախատիպը պատրաստում են տախտակի վրա: Ես նաև չափեցի ընթացիկ օգտագործումը, երբ սարքը արթուն է.
- Խորը քուն ՝ 144.5uA
- Արթուն `45 մԱ
- WiFi- ն միացված է ՝ 150 մԱ
Ենթադրելով, որ ես օգտագործում եմ մեքենան շաբաթը երկու անգամ, ես գնահատեցի սենսորի յուրաքանչյուր նահանգում անցկացրած ժամանակի հետևյալ ժամանակը.
- Խորը քուն ՝ 604090 վայրկյան (~ 1 շաբաթ)
- Արթուն ՝ 720 վայրկյան (12 րոպե)
- WiFi- ն միացված է ՝ 10 վայրկյան
Այս թվերից մենք կարող ենք գնահատել, թե մարտկոցը որքան կշարունակվի: Ես օգտագործեցի այս հարմար հաշվիչը `0.2 մԱ միջին էներգիայի սպառման համար: Մարտկոցի մոտավոր ժամկետը 201 օր է կամ մոտ 6 ամիս: Իրականում ես գտա, որ սարքը կդադարի աշխատել մոտ 2 ամիս հետո, այնպես որ չափումների կամ մարտկոցի հզորության որոշ սխալներ կարող են լինել:
Քայլ 4: Մարտկոցի մակարդակի չափում
Մտածեցի, որ լավ կլիներ, եթե սարքը կարողանար ինձ ասել, երբ մարտկոցը սպառվում է, որպեսզի ես իմանամ, երբ լիցքավորեմ այն: Սա չափելու համար մենք պետք է չափենք մարտկոցի լարումը: Մարտկոցն ունի 4.3V - 2.2V լարման տիրույթ (ESP32- ի նվազագույն աշխատանքային լարումը): Unfortunatelyավոք, ESP32- ի ADC կապերի լարման տիրույթը 0-3.3 Վ է: Սա նշանակում է, որ մենք պետք է մարտկոցի լարվածությունը նվազեցնենք առավելագույն 4.3 -ից մինչև 3.3 -ի ՝ ADC- ի գերբեռնումից խուսափելու համար: Դա հնարավոր է անել լարման բաժանարարի միջոցով: Պարզապես մարտկոցից գետնին համապատասխան արժեքներով երկու ռեզիստոր միացրեք և չափեք լարումը մեջտեղում:
Unfortunatelyավոք, լարման բաժանարար պարզ միացումն էներգիան կթուլացնի մարտկոցից նույնիսկ այն ժամանակ, երբ լարումը չի չափվում: Դուք կարող եք դա մեղմել ՝ օգտագործելով բարձր արժեք ունեցող դիմադրիչներ, սակայն ներքևի կողմն այն է, որ ADC- ն կարող է չկարողանալ բավականաչափ հոսանք քաշել ճշգրիտ չափումներ կատարելու համար: Ես որոշեցի օգտագործել 100kΩ և 330kΩ արժեքներով ռեզիստորներ, որոնք 4.3V- ից կնվազեն մինչև 3.3V ըստ լարման բաժանարար բանաձևի: Հաշվի առնելով 430kΩ- ի ընդհանուր դիմադրությունը, մենք ակնկալում ենք 11.6uA- ի ընթացիկ վիճակահանություն (օգտագործելով Օմի օրենքը): Հաշվի առնելով մեր խոր քնի ընթացիկ օգտագործումը 144uA, դա ողջամտորեն զգալի աճ է:
Քանի որ մենք ուզում ենք միայն մեկ անգամ չափել մարտկոցի լարումը ծանուցում ուղարկելուց առաջ, իմաստ ունի անջատել լարման բաժանարար միացումը այն ժամանակ, երբ մենք ոչինչ չենք չափում: Բարեբախտաբար, մենք կարող ենք դա անել մի քանի տրանզիստորներով, որոնք միացված են GPIO կապումներից մեկին: Ես օգտագործեցի շղթայի փոխանակման այս պատասխանը: Դուք կարող եք տեսնել, որ ես միացում եմ փորձում Arduino- ով և տախտակով ՝ վերևի լուսանկարում (նշեք, որ սխեմայում սխալ կա, որն է պատճառը, որ ես չափում եմ սպասվածից բարձր լարման):
Վերոնշյալ սխեմայի առկայության դեպքում ես օգտագործում եմ հետևյալ կեղծ ծածկագիրը `մարտկոցի տոկոսային արժեքը ստանալու համար.
մարտկոցի_տոկոս ():
# միացնել մարտկոցի լարման միացում gpio_set_level (BATTERY_EN_PIN, HIGH) # Մարտկոցի մակարդակը վերադարձվում է որպես ամբողջ 0 և 4095 միջև բաժանարարը օգտագործում է 100k/330k ohm դիմադրիչներ # 4.3V -> 3.223, 2.4 -> 1.842 ակնկալվող_մաքս = 4.3*330/(100+330) ակնկալվող_ րոպե = 2.4*330/(100+330) մարտկոցի_ մակարդակ = (adc_voltage -expect_min)/(ակնկալվող_մաքս -ակնկալվող_ րոպե) վերադարձնել մարտկոցի մակարդակը * 100.0
Քայլ 5: Այն դարձնել ավելի գեղեցիկ
Մինչ հացահատիկի տարբերակը լավ է աշխատում, ես ուզում էի այն դնել ավելի կոկիկ և հուսալի փաթեթում (առանց լարերի, որոնք կարող են թուլանալ կամ կարճանալ): Ինձ հաջողվեց գտնել իմ կարիքների համար կատարյալ նախագծի տուփը, որը ճիշտ չափի էր, ներառված էր քորոցային տախտակ, ամրացման բռնակներ և պտուտակներ `բոլորը միասին հավաքելու համար: Բացի այդ, այն էժան էր 2 ֆունտից պակաս գնով: Տուփը ստանալուց հետո ինձ մնում էր միայն բաղադրիչները զոդել քորոցատախտակին:
Թերևս դրա ամենախելամիտ մասը մարտկոցի լարման միացման բոլոր բաղադրիչների տեղադրումն էր Lolin32- ի կողքին գտնվող փոքր տարածության վրա: Բարեբախտաբար, մի փոքր ցնցող խաղալիքով և զոդման միջոցով կատարված համապատասխան կապերով, միացումը կոկիկորեն տեղավորվում է: Բացի այդ, քանի որ Wemos Lolin32- ը չունի քորոց մարտկոցի դրական տերմինալը բացահայտելու համար, ես ստիպված էի լար լարել մարտկոցի միակցիչից դեպի քորոց:
Ես նաև ավելացրեցի LED, որը թարթում է, երբ սարքը նկատում է շարժում:
Քայլ 6: Ավարտելով հպումները
Ես տուփի հիմքին սուպեր սոսնձեցի 4 նեոդիմի 4 6 մմ x 4 մմ մագնիս, ինչը թույլ է տալիս այն ամուր կպչել լվացքի մեքենայի մետաղական գագաթին:
Նախագծի տուփն արդեն ունի փոքր անցք `մալուխների մուտքը ապահովելու համար: Բարեբախտաբար, ես կարողացա տեղադրել ESP32 տախտակը այս անցքի մոտ `միկրո USB միակցիչին մուտք գործելու համար: Արհեստական դանակով փոսը մեծացնելուց հետո մալուխը հիանալի տեղավորվեց, ինչը թույլ է տալիս հեշտությամբ լիցքավորել մարտկոցը:
Եթե ձեզ հետաքրքրում է այս նախագծի մանրամասներից որևէ մեկը, խնդրում ենք ազատ զգալ թողնել մեկնաբանություն: Եթե ցանկանում եք տեսնել ծածկագիրը, խնդրում ենք ստուգել այն Github- ում ՝
github.com/alexspurling/washingmachine
Խորհուրդ ենք տալիս:
Ինչպես գտնել լվացքի մեքենայի շարժիչի կապում `6 քայլ
Ինչպես գտնել լվացքի մեքենայի շարժիչներ սկզբից սկսեք տեսողական զննում տ
IoT- ի վրա հիմնված լվացքի ծանուցման համակարգ. 18 քայլ
IoT- ի վրա հիմնված լվացքի ծանուցման համակարգ. HiThis հրահանգը տալիս է քայլ առ քայլ ներածություն այն մասին, թե ինչպես կարելի է կառուցել IoT- ի վրա հիմնված լվացքի ծանուցման համակարգ: Սարքը կցված է ձեր գզրոցներին և լվացքի պայուսակին: Հանուն ցուցադրության այստեղ մենք վերցրել ենք երկու գզրոց և մեկ լվացքի պայուսակ: Sensգում է
Որքան հեշտ էր վերանորոգել իմ լվացքի մեքենայի էլեկտրոնիկան. 5 քայլ (նկարներով)
Որքա՞ն հեշտ էր վերանորոգել իմ լվացքի մեքենայի էլեկտրոնիկան: Ինչու՞ խնդիրը. Սովորաբար ինչ -որ բան վերանորոգելը պարզ և զվարճալի է, բայց գտնելու համար
Ինչպես միացնել լվացքի մեքենայի շարժիչը որպես գեներատոր `3 քայլ (նկարներով)
Ինչպես միացնել լվացքի մեքենայի շարժիչը `որպես գեներատոր. էլեկտրական էներգիայի մեջ
Լվացքի մեքենայի մասին ծանուցումներ MESH- ի միջոցով. 4 քայլ (նկարներով)
Լվացքի մեքենայի մասին ծանուցումներ MESH- ի միջոցով. Ես մոռացել եմ լվացքի մեքենայի հագուստի մասին … Մի՞շտ եք մոռանում հագուստը լվանալուց հետո վերցնել: Այս բաղադրատոմսը կբարելավի ձեր լվացքի մեքենան ՝ Gmail- ի կամ IFTTT- ի միջոցով ծանուցումներ ստանալուց հետո, երբ ձեր հագուստը պատրաստ լինի նկարելու