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

IoT ջրի ահազանգ. 5 քայլ (նկարներով)
IoT ջրի ահազանգ. 5 քայլ (նկարներով)

Video: IoT ջրի ահազանգ. 5 քայլ (նկարներով)

Video: IoT ջրի ահազանգ. 5 քայլ (նկարներով)
Video: SUPER MINI ICsee Camera 2 in 1-ը ՀԵՏԵՎՈՒՄ Է ՄԱՐԴԿԱՆՑ ՄԵԾ ԳՆՈՎ: 2024, Հուլիսի
Anonim
IoT ջրի ահազանգ
IoT ջրի ահազանգ

Վերջերս ես զգացել եմ խոհանոցի արտահոսքի պահեստավորում: Եթե ես այդ ժամանակ տանը չլինեի, դա իմ բնակարանում հատակի և գիպսաստվարաթղթի վնաս կհասցներ: Բարեբախտաբար, ես տեղյակ էի խնդրի մասին և պատրաստ էի ջուրը հանել դույլով: Սա ինձ ստիպեց մտածել ջրհեղեղի ահազանգ գնելու մասին: Ես Amazon- ում հայտնաբերեցի շատ մատչելի ապրանքներ, բայց ինտերնետ կապ ունեցողներն ունեցան բացասական ակնարկների զգալի տոկոս, առաջին հերթին ՝ սեփականության ծանուցման ծառայությունների հետ կապված խնդիրների պատճառով: Այդ պատճառով ես որոշեցի իմ IoT ջրի ահազանգը կատարել, որը կօգտագործի իմ ընտրած վստահելի ծանուցման միջոցները:

Քայլ 1. Գործողության սկզբունքը

Գործողության սկզբունքը
Գործողության սկզբունքը

Theարթուցիչի ուղեղում կա AVR ATtiny85 միկրոկոնտրոլեր: Այն տևում է լարման ցուցանիշներ մարտկոցից և ջրի սենսորից և դրանք համեմատում է նախապես սահմանված արժեքի հետ `ջրի առկայությունը կամ մարտկոցի լիցքավորված վիճակը հայտնաբերելու համար:

Sensorրի տվիչը պարզապես երկու լար է, որոնք տեղադրված են մոտավորապես 1 մմ հեռավորության վրա: Հաղորդալարերից մեկը միացված է 3.3 Վ -ին, իսկ մյուսը միացված է միկրոկառավարիչի ցուցիչին, որը նույնպես միացված է գետնին 0.5 ՄՀմ ռեզիստորի միջոցով: Սովորաբար, սենսորային լարերի միջև դիմադրությունը շատ բարձր է (ավելի քան 10 ՄՀմ), այնպես որ զգայուն քորոցը ձգվում է մինչև 0 Վ: Այնուամենայնիվ, երբ լարերի միջև ջուր կա, դիմադրությունը նվազում է մինչև 1 ՄՀմ -ից պակաս, և զգայուն քորոցը տեսնում է որոշակի լարման (իմ դեպքում մոտ 1,5 Վ): Երբ ATtiny85- ը հայտնաբերում է այս լարումը զգայուն քորոցում, այն ակտիվացնում է MOSFET- ը `ազդանշանը միացնելու համար և արթնացման ազդանշան է ուղարկում ESP8266 մոդուլին, որը պատասխանատու է ահազանգեր ուղարկելու համար (էլ. Փոստ և ծանուցումներ): Մի րոպե բզզոցից հետո ահազանգը զինաթափվում է և կարող է վերականգնվել միայն հոսանքի հեծանվով:

Այս միավորը դուրս է գալիս երկու ալկալային կամ NiMH բջիջներից: Միկրոկոնտրոլերը շատ ժամանակ քնում է մարտկոցները պահպանելու համար, ընդմիջումներով արթնանում է ջրի սենսորը, ինչպես նաև մարտկոցների լարվածությունը ստուգելու համար: Եթե մարտկոցները ցածր են, միկրոկոնտրոլերը արթնացնում է ESP8266 մոդուլը ՝ մարտկոցի ցածր մարտկոցի նախազգուշացում ուղարկելու համար: Նախազգուշացումից հետո ահազանգը զինաթափվում է `մարտկոցի գերբեռնվածությունը կանխելու համար:

Քանի որ ESP8266 մոդուլը պատասխանատու է մարտկոցի ցածր մարտկոցների, ինչպես նաև ջրհեղեղի մասին նախազգուշացումներ ուղարկելու համար, այն պահանջում է վերահսկողության ազդանշան ATiny85- ից: Կապերի սահմանափակ քանակի պատճառով այս հսկիչ ազդանշանը գեներացվում է մարտկոցի LED նշման համար պատասխանատու նույն քորոցով: Սովորական աշխատանքի ընթացքում (ահազանգը զինված է և մարտկոցները լիցքավորված են), LED- ն պարբերաբար թարթում է: Երբ մարտկոցի ցածր վիճակը հայտնաբերվում է, LED- ը միանում է ESP մոդուլի RX կապին բարձր ազդանշան ապահովելու համար: Եթե ջուրը հայտնաբերվի, մարտկոցի LED- ն անջատված կլինի, քանի դեռ ESP8266- ն արթուն չէ:

Քայլ 2: Նախագծում և հավաքում

Դիզայն և հավաքում
Դիզայն և հավաքում
Դիզայն և հավաքում
Դիզայն և հավաքում
Դիզայն և հավաքում
Դիզայն և հավաքում

Ես նախագծեցի, որ միացումը պետք է կառուցվի երկկողմանի 4x6 սմ երկարությամբ նախատախտակի վրա `օգտագործելով հիմնականում 0805 SMD մասեր: Ներկայացված սխեմաները հիմնված են այս կառուցվածքի վրա, բայց այն կարող է հեշտությամբ հարմարվել անցքերի բաղադրիչների համար (հուշում. Տարածքը նվազագույնի հասցնելու համար, ուղղահայաց զոդել անցքերի միջանցքում):

Հետևյալ մասերը պահանջվում են.

- Ռեզիստորներ `330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 կΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Մեկ 10 μF կերամիկական կոնդենսատոր- Մեկ տրամաբանական մակարդակի N ալիք MOSFET (օրինակ ՝ RFP30N06LE կամ AO3400)- մեկ կարմիր և մեկ դեղին LED (կամ այլ գույներ, եթե ցանկանում եք):- Երկու լարային պտուտակավոր տերմինալային միակցիչներ x 3 (դրանք չեն բացարձակապես անհրաժեշտ է, բայց դրանք ավելի հեշտ են դարձնում ծայրամասի միացումը և անջատումը փորձարկման ընթացքում)- Բարձր պիեզո ազդանշան, որը լավ է 3.3 Վ-ի համար- ATtiny85 միկրոկոնտրոլեր (PDIP տարբերակ)- 8 պինանոց PDIP վարդակից միկրոկառավարիչի համար- ESP-01 մոդուլ (այն կարող է փոխարինվել ESP8266- ի վրա հիմնված մեկ այլ մոդուլով, բայց այդ դեպքում շատ փոփոխություններ կլինեն)-3.3 Վ DC-DC խթանման փոխարկիչ, որը կարող է ապահովել 200 մԱ (500 մԱ պայթյուն) հոսանք 2.2 Վ լարման դեպքում: մուտքագրում: (Ես խորհուրդ եմ տալիս https://www.canton-electronics.com/power-converter… իր ծայրահեղ ցածր հանդարտ հոսանքի պատճառով)-մեկ 3 փին իգական վերնագիր-Երկու 4 փին իգական վերնագիր կամ մեկ 2x4 վերնագիր-22 AWG պինդ լարեր ջրի տվիչի համար `22 AWG շղթայված մետաղալար (կամ այլ տեսակի բարակ բաց մետաղալարեր` հետքեր ստեղծելու համար)

Ես խորհուրդ եմ տալիս վերը թվարկված դիմադրության արժեքները, բայց դրանց մեծ մասը կարող եք փոխարինել նմանատիպ արժեքներով: Կախված LED- ների տեսակից, որոնք ցանկանում եք օգտագործել, գուցե անհրաժեշտ լինի կարգավորել ընթացիկ-սահմանափակող ռեզիստորի արժեքները `ցանկալի պայծառություն ստանալու համար: MOSFET- ը կարող է լինել կամ անցքով, կամ SMT (SOT23): MOSFET- ի տեսակից ազդում է միայն 330 Օմ դիմադրության կողմնորոշումը: Խորհուրդ է տրվում ապահովել PTC ապահովիչ (օրինակ ՝ 1 Ա), եթե մտադիր եք օգտագործել այս սխեման NiMH մարտկոցներով: Այնուամենայնիվ, այն անհրաժեշտ չէ ալկալային մարտկոցներով: Հուշում. Այս ահազանգի համար անհրաժեշտ մասերը կարելի է էժան գնել ebay- ից կամ aliexpress- ից:

Բացի այդ, ESP-01 մոդուլը ծրագրավորելու համար ձեզ հարկավոր կլինի տախտակ, մի քանի անցք 10k դիմադրիչներ, բազմաթիվ արու-արական և իգական-արական jumper («dupont») լարեր և USB-UART ադապտեր:

Sensorրի սենսորը կարող է պատրաստվել տարբեր եղանակներով, բայց ամենապարզը 22 22 AWG լար է `բաց ծայրերով (1 սմ երկարությամբ), որոնք գտնվում են մոտավորապես 1 մմ հեռավորության վրա: Նպատակն է ունենալ սենսորային կոնտակտների միջև 5 ՄΩ -ից պակաս դիմադրություն, երբ ջուր կա:

Շղթան նախատեսված է մարտկոցի առավելագույն տնտեսման համար: Այն մոնիտորինգի ռեժիմում հավաքում է ընդամենը 40-60 μA (ESP-01 մոդուլից հանված հոսանքի LED- ով): Theարթուցիչը միացնելուց հետո միացումը վայրկյան կամ ավելի կքաշի 300-500 մԱ (2.4 Վ մուտքի դեպքում), իսկ դրանից հետո հոսանքը կնվազի 180 մԱ-ից ցածր: Երբ ESP մոդուլն ավարտվի ծանուցումների ուղարկմամբ, ընթացիկ սպառումը կնվազի մինչև 70 մԱ -ից ցածր, մինչև ազդանշանի անջատումը: Այնուհետև ահազանգը կզինաթափվի, և ընթացիկ սպառումը կլինի 30 μA- ից ցածր: Այսպիսով, մի շարք AA մարտկոցներ կկարողանան միացնել միացումը երկար ամիսների ընթացքում (հավանաբար ՝ մեկ տարվա ընթացքում): Եթե օգտագործում եք այլ խթանիչ փոխարկիչ, ասենք 500 μA հանդարտ հոսանքով, մարտկոցները շատ ավելի հաճախ պետք է փոխվեն:

Հավաքման խորհուրդներ.

Օգտագործեք մշտական նշիչ `նախատախտակի վրա բոլոր հետքերն ու բաղադրիչը պիտակավորելու համար` ավելի հեշտ զոդման համար: Ես խորհուրդ եմ տալիս գործել հետևյալ հաջորդականությամբ.

- վերևի SMT LED- ներ և մեկուսացված մետաղալար կամուրջներ

-վերևի MOSFET (նշում. եթե ունեք SOT-23 MOSFET, տեղադրեք այն անկյունագծով, ինչպես լուսանկարում: Եթե օգտագործում եք միջանցք ունեցող MOSFET, տեղադրեք այն հորիզոնական ՝ դարպասի քորոցով I3 դիրքում):

- վերին հատվածը անցքերի մասերի միջով (նշեք. ազդանշանը զոդված չէ և նույնիսկ պետք չէ միացնել PCB- ին)

- հակառակ կողմի SMT մասեր և հետքեր (օրինակ ՝ առանձին լարեր AWG22 մետաղալարից)

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

C կոդ ATtiny85- ի համար

Main.c- ն պարունակում է այն կոդը, որը պետք է կազմվի և վերբեռնվի միկրոկոնտրոլերի վրա: Եթե դուք պատրաստվում եք օգտագործել Arduino տախտակը որպես ծրագրավորող, այս ձեռնարկում կարող եք գտնել միացման սխեմա: Դուք պետք է հետևեք միայն հետևյալ բաժիններին (անտեսեք մնացածը).

-Arduino Uno- ի կարգավորում որպես ISP (համակարգային ծրագրավորում)

- ATtiny85- ի միացում Arduino Uno- ի հետ:

Theրագրաշարը կազմելու և վերբեռնելու համար ձեզ հարկավոր կլինի կամ CrossPack (Mac OS- ի համար) կամ AVR գործիքների ցանց (Windows- ի համար): Կոդ կազմելու համար անհրաժեշտ է կատարել հետևյալ հրամանը.

avr -gcc -Os -mmcu = attiny85 -c main.c; avr -gcc -mmcu = attiny85 -o main.elf main.o; avr -objcopy -j.text -j. տվյալները -O ihex main.elf main.hex

Theրագրակազմը վերբեռնելու համար գործարկեք հետևյալը.

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

«/Dev/cu.usbmodem1411» - ի փոխարեն, ամենայն հավանականությամբ, անհրաժեշտ կլինի տեղադրել սերիական պորտը, որին միացված է ձեր Arduino- ն (այն կարող եք գտնել Arduino IDE- ի ՝ Գործիքների նավահանգստում):

Կոդը պարունակում է բազմաթիվ գործառույթներ: deep_sleep () ստիպում է միկրոկառավարիչը մոտ 8 վայրկյան մտնել շատ ցածր էներգիայի վիճակի: read_volt () օգտագործվում է մարտկոցի և տվիչի լարումները չափելու համար: Մարտկոցի լարումը չափվում է ներքին լարման համեմատ (2.56 Վ գումարած կամ մինուս մի քանի տոկոս), մինչդեռ սենսորի լարումը չափվում է Vcc = 3.3 Վ -ի դիմաց: Ընթերցումները համեմատվում են համապատասխանաբար BATT_THRESHOLD- ի և SENSOR_THRESHOLD- ի հետ `համապատասխանաբար 932 և 102, որոնք համապատասխանում են ~ 2.3 և 0.3 Վ. Հնարավոր է ՝ կարողանաք մարտկոցի շեմը նվազեցնել մարտկոցի կյանքը բարելավելու համար, սակայն դա խորհուրդ չի տրվում (մանրամասն տեղեկությունների համար տե՛ս մարտկոցի նկատառումները):

activ_alarm () տեղեկացնում է ESP մոդուլին ջրի հայտնաբերման մասին և հնչում է զնգոց: low_batt_notification () ծանուցում է ESP մոդուլին, որ մարտկոցը ցածր է, ինչպես նաև հնչում է զնգոց: Եթե դուք չեք ցանկանում արթնանալ գիշերվա կեսին մարտկոցը փոխելու համար, հեռացրեք «| 1 <» - ը low_batt_notification () - ում:

Arduino էսքիզ ESP-01- ի համար

Ես ընտրեցի ծրագրավորել ESP մոդուլը Arduino HAL- ի միջոցով (հետևեք հղմանը ՝ կարգաբերման հրահանգների համար): Բացի այդ, ես օգտագործեցի հետևյալ երկու գրադարանները.

ESP8266 Ուղարկել էլ. Փոստ ՝ Górász Péter- ի կողմից

ESP8266 Պուշովեր Arduino Hannover թիմի կողմից

Առաջին գրադարանը միանում է SMTP սերվերին և ահազանգ է ուղարկում ձեր էլ. Պարզապես ստեղծեք gmail հաշիվ ձեր ESP- ի համար և ավելացրեք հավատարմագրերը ծածկագրին: Երկրորդ գրադարանը push ծանուցումներ է ուղարկում Pushover ծառայության միջոցով (ծանուցումները անվճար են, բայց դուք պետք է վճարեք մեկ անգամ `ծրագիրը ձեր հեռախոսում/պլանշետում տեղադրելու համար): Ներբեռնեք երկու գրադարանները: Տեղադրեք Send Email գրադարանի բովանդակությունը ձեր ուրվագծային թղթապանակի մեջ (arduino- ն այն կստեղծի, երբ arduino- ի էսքիզն առաջին անգամ բացեք): Տեղադրեք Pushover գրադարանը IDE- ի միջոցով (Sketch -> Include Library -> Add. ZIP գրադարան):

ESP-01 մոդուլը ծրագրավորելու համար կարող եք հետևել հետևյալ ձեռնարկին. լարեր ՝ մոդուլի կապումներն ուտեստատախտակին միացնելու համար: Մի մոռացեք, որ խթանող փոխարկիչը և USB-UART ադապտերը պետք է կիսեն հիմքը (նշեք. Հնարավոր է ՝ կարողանաք օգտագործել USB-UART ադապտերի 3.3 Վ ելքը խթանիչ փոխարկիչի փոխարեն, բայց, ամենայն հավանականությամբ, դա չի լինի կարող է բավականաչափ հոսանք թողնել):

Քայլ 4: Մարտկոցի նկատառումներ

Մատուցվող որոնվածի ծածկագիրը նախապես կազմաձևված է մարտկոցի ցածր մարտկոցի մասին նախազգուշացում ուղարկելու համար և անջատվում է 3 2.3 Վ -ում: Այս շեմը հիմնված է այն ենթադրության վրա, որ երկու NiMH մարտկոց օգտագործվում են շարքով: Խորհուրդ չի տրվում NiMH- ի որևէ առանձին բջիջ լիցքաթափել 1 Վ -ից ցածր: Ենթադրելով, որ երկու բջիջներն ունեն հավասար հզորություն և արտանետման բնութագրեր, երկուսն էլ կկտրվեն ~ 1.15 V- ով `ապահով միջակայքում: Այնուամենայնիվ, NiMH բջիջները, որոնք օգտագործվել են լիցքաթափման բազմաթիվ ցիկլերի ընթացքում, հակված են տարբերվելու հզորությամբ: Տարողունակության մինչև 30% տարբերություն կարելի է հանդուրժել, քանի որ դա դեռ կհանգեցնի ամենացածր լարման բջիջների անջատման կետի 1 Վ-ի սահմաններում:

Թեև հնարավոր է նվազեցնել մարտկոցի ցածր շեմը որոնվածում, դա անելով կհեռացնի անվտանգության լուսանցքը և կարող է հանգեցնել մարտկոցի գերբեռնաթափման և վնասման, մինչդեռ մարտկոցի ժամկետի միայն փոքր աճ է սպասվում (NiMH բջիջը> 85% -ը դուրս է գրվել 1.15 Վ լարման դեպքում):

Մեկ այլ գործոն, որը պետք է հաշվի առնել, ուժեղացուցիչի փոխարկիչի ունակությունն է `ապահովել առնվազն 3.0 Վ (2.5 Վ, ըստ անեկդոտ ապացույցների), 300-500 մԱ առավելագույն մարտկոցի ցածր մարտկոցների դեպքում: NiMH մարտկոցների ցածր ներքին դիմադրությունը առաջացնում է միայն 0,1 Վ -ի աննշան անկում գագաթնակետային հոսանքներում, այնպես որ զույգ NiMH բջիջները, որոնք լիցքաթափվում են մինչև 2.3 Վ (բաց միացում), կկարողանան ապահովել առնվազն 2.2 Վ լարման փոխարկիչին: Այնուամենայնիվ, այն ավելի բարդ է ալկալային մարտկոցներով: Aույգ AA մարտկոցներով, որոնք նստած են 2.2-2.3 Վ (բաց միացում), գագաթնակետային հոսանքներում սպասվում է 0.2-0.4 Վ լարման անկում: Չնայած ես հաստատել եմ, որ շղթան աշխատում է առաջարկվող խթանիչ փոխարկիչով `գագաթնակետային հոսանքների դեպքում մատակարարվող 1.8 Վ -ով, սակայն դա, ամենայն հավանականությամբ, հանգեցնում է նրան, որ ելքային լարումը վայրկենապես կնվազի Էսպրեսիֆի առաջարկած արժեքից: Այսպիսով, 2.3 Վ անջատիչ շեմը թողնում է անվտանգության փոքր սահման `ալկալային մարտկոցներով (հիշեք, որ միկրոկառավարիչի կողմից լարման չափումը ճշգրիտ է միայն գումարած կամ մինուս մի քանի տոկոսի սահմաններում): Որպեսզի երաշխավորվի, որ ESP մոդուլը չի խափանում, երբ ալկալային մարտկոցները ցածր են, խորհուրդ եմ տալիս բարձրացման լարումը բարձրացնել մինչև 2,4 Վ (#սահմանել BATT_THRESHOLD 973): 1.2 Վ (բաց միացում) ալկալային բջիջը լիցքաթափվում է մոտ 70% -ով, ինչը ընդամենը 5-10 տոկոսային կետով ցածր է լիցքաթափման աստիճանից `1.15 Վ մեկ բջիջում:

Թե՛ NiMH- ն, և թե՛ ալկալային բջիջներն ունեն այս հավելվածի առավելություններն ու թերությունները: Ալկալային մարտկոցներն ավելի անվտանգ են (չեն բռնկվում կարճացման դեպքում), և դրանք ունեն ինքնաարտադրման շատ ավելի ցածր արագություն: Այնուամենայնիվ, NiMH մարտկոցները երաշխավորում են ESP8266- ի հուսալի աշխատանքը ցածր անջատման կետում `իրենց ներքին ցածր դիմադրության շնորհիվ: Բայց, ի վերջո, ցանկացած տեսակ կարող է օգտագործվել որոշ նախազգուշական միջոցներով, այնպես որ դա պարզապես անձնական նախասիրության հարց է:

Քայլ 5: Իրավական մերժում

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

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