Բովանդակություն:
- Քայլ 1. Knowանոթանալ ուլտրաձայնային հեռավորության սենսորին
- Քայլ 2. ESP8266 խորհրդի ընտրություն
- Քայլ 3: Ստեղծեք ThingSpeak ալիք
- Քայլ 4. Ինչպես ծրագրավորել ESP-12F- ը
- Քայլ 5: Էսքիզների վերբեռնում
- Քայլ 6: Էլեկտրոնային շղթայի կառուցում
- Քայլ 7: Սենսորի ավարտը
Video: Մարտկոցով աշխատող ջրի կոլեկտորի մակարդակի տվիչ ՝ 7 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Մեր տունն ունի ջրի տանկ, որը սնվում է տանիքին ընկնող անձրևից և օգտագործվում է զուգարանի, լվացքի մեքենայի և այգու ջրելու համար: Վերջին երեք տարիներին ամառները շատ չոր էին, ուստի մենք հետևում էինք տանկի ջրի մակարդակին: Մինչ այժմ մենք օգտագործում էինք փայտե փայտ, որը դրեցինք տանկի մեջ և նշեցինք մակարդակը: Բայց, անշուշտ, պետք է հնարավոր լինի բարելավել դա:
Ահա թե որտեղ է այս նախագիծը հայտնվում: Գաղափարը տանկի վերևում կցել ուլտրաձայնային հեռավորության տվիչ: Այս սենսորը գործում է որպես ձայնային ալիքներ արձակող սոնար, որոնք այնուհետև արտացոլվում են ջրի մակերևույթի կողմից: Ալիքների վերադարձի և ձայնի արագության տևողությունից կարող եք հաշվարկել ջրի մակերևույթի հեռավորությունը և որոշել, թե որքան է լցված տանկը:
Քանի որ ես տանկին մոտ ցանցի միացում չունեմ, կարևոր է, որ ամբողջ սարքը աշխատի մարտկոցների վրա: Սա նշանակում է, որ ես պետք է տեղյակ լինեի բոլոր մասերի էներգիայի սպառման մասին: Տվյալները հետ ուղարկելու համար ես որոշեցի օգտագործել ESP8266 միկրոչիպի ներկառուցված WiFi- ն: Թեև Wifi- ն բավականին էներգիայի կարիք ունի, այն առավելություն ունի մեկ այլ տեսակի ռադիոկապի նկատմամբ. Կարող եք ուղղակիորեն միանալ ձեր տան անլար երթուղիչին ՝ առանց այլ սարք ստեղծելու, որը հանդես է գալիս որպես ռելե:
Էլեկտրաէներգիան խնայելու համար ես ESP8266- ը շատ ժամանակ քնում եմ և ամեն ժամ չափումներ եմ կատարում: Purposeրի մակարդակին հետևելու նպատակով դա ավելի քան բավարար է: Տվյալները կուղարկվեն ThingSpeak և այնուհետև կարող են կարդալ սմարթֆոնով ՝ ծրագրի միջոցով:
Եվս մեկ մանրամասն! Ձայնի արագությունը, որը էական է հեռավորության չափման համար, կախված է ջերմաստիճանից և ավելի փոքր չափով `խոնավությունից: Սեզոնների ընթացքում արտաքին չափումներ կատարելու համար մենք կպչենք BME280 սենսորով, որը չափում է ջերմաստիճանը, խոնավությունը և ճնշումը: Որպես բոնուս, դա կազմում է մեր ջրի մակարդակի տվիչից նաև մինի եղանակային կայանը:
Մասեր:
- 1x ESP8266 ESP-12F:
- 1x ESP-12F ադապտերային ափսե:
- 1x FT232RL FTDI ՝ USB սերիալային ադապտեր:
- 1x HC-SR04-P: ուլտրաձայնային հեռավորության չափման մոդուլ: Նկատի ունեցեք, որ P- ն կարևոր է, քանի որ սա այն տարբերակն է, որն ունի 3 Վ ցածր նվազագույն աշխատանքային լարվածություն:
- 1x BME280 3.3V տարբերակ ՝ ջերմաստիճանի, ճնշման և խոնավության ցուցիչ:
- 1x IRL2203N: n-channel MOSFET տրանզիստոր:
- 1x MCP1700-3302E 3.3V տարբերակ ՝ լարման կարգավորիչ:
- 3x լիցքավորվող AA մարտկոց, օրինակ. 2600 mAh
- 3 մարտկոցի համար 1x մարտկոցի պահոց:
- 1x տախտակ:
- Ռեզիստորներ ՝ 1x 470K, 1x 100K, 4x 10K:
- Կոնդենսատորներ `2x կերամիկական 1uF:
- 3x անջատիչ անջատիչ:
- U- ձևի տախտակի լարեր:
- Jumper լարերը:
- Պլաստիկ ապուրի տարա 1 լ.
- Կոնտեյների ամրացման օղակ:
Ես ծածկագիրը հասանելի դարձրի GitHub- ում:
Քայլ 1. Knowանոթանալ ուլտրաձայնային հեռավորության սենսորին
'Llրի մակերեսին հեռավորությունը մենք չափելու ենք ուլտրաձայնային տվիչով `HC-SR04-P: Batիշտ այնպես, ինչպես չղջիկը, այս սենսորը կիրառում է սոնար. Այն ուղարկում է մարդու ականջի համար չափազանց բարձր հաճախականությամբ զարկերակ, ուստի ուլտրաձայնային և սպասում, մինչև այն հարվածի առարկային, անդրադառնա և վերադառնա: Այնուհետև հեռավորությունը կարող է հաշվարկվել արձագանքն ու ձայնի արագությունը ստանալու ժամանակից:
Մասնավորապես, եթե Trig քորոցը բարձր է քաշվում առնվազն 10 μs- ով, սենսորը ուղարկում է 8 իմպուլսի պայթյուն ՝ 40 Հց հաճախականությամբ: Այնուհետև պատասխանը ստացվում է Echo քորոցի վրա ՝ զարկերակի տեսքով, որը հավասար է ուլտրաձայնային զարկերակի ուղարկման և ստացման միջև ընկած ժամանակին: Հետո մենք պետք է բաժանենք 2-ի, քանի որ ուլտրաձայնային զարկերակը հետ ու առաջ է ընթանում, և մեզ անհրաժեշտ է միակողմանի ճանապարհորդության ժամանակը, և բազմապատկել ձայնի արագությամբ, որը կազմում է մոտ 340 մ/վ:
Բայց մի րոպե! Փաստորեն, ձայնի արագությունը կախված է ջերմաստիճանից և ավելի փոքր չափով `խոնավությունից: Արդյո՞ք ես քերծվածք եմ հավաքում, թե սա արդիական է: Հաշվարկային գործիքի միջոցով մենք գտնում ենք, որ ձմռանը (վերցնելով -5 ° C) մենք կարող ենք ունենալ 328.5 մ/վրկ, իսկ ամռանը (25 ° C ջերմաստիճանի դեպքում) 347.1 մ/վ: Ենթադրենք, մենք գտնում ենք 3 ms միակողմանի ճանապարհորդության ժամանակ: Ձմռանը դա կնշանակի 98,55 սմ, իսկ ամռանը ՝ 104,13 սմ: Դա բավականին տարբերություն է: Այսպիսով, բավականաչափ ճշգրտություն ձեռք բերելու եղանակներին և նույնիսկ օր ու գիշեր, մենք պետք է ջերմաչափ ավելացնենք մեր տեղադրման մեջ: Ես որոշեցի ներառել BME280- ը, որը չափում է ջերմաստիճանը, խոնավությունը և ճնշումը: Կոդում, որն օգտագործել եմ speedOfSound ֆունկցիայի մեջ, մի բանաձև է, որը հաշվարկում է ձայնի արագությունը բոլոր երեք պարամետրերի առումով, չնայած որ ջերմաստիճանն իսկապես ամենակարևոր գործոնն է: Խոնավությունը դեռ ավելի փոքր ազդեցություն ունի, բայց ճնշման ազդեցությունն աննշան է: Մենք կարող էինք ավելի պարզ բանաձև օգտագործել ՝ հաշվի առնելով միայն այն ջերմաստիճանը, որը ես կիրառում էի speedOfSoundSimple- ում:
HC-SR04- ի վրա կա ևս մեկ կարևոր կետ. Առկա է երկու տարբերակ ՝ ստանդարտ տարբերակը գործում է 5 Վ լարման դեպքում, մինչդեռ HC-SR04-P- ն կարող է աշխատել 3 Վ-ից 5 Վ լարման տիրույթում: Քանի որ 3 վերալիցքավորվող AA մարտկոցներն ապահովում են 3x1.25V = 3.75V- ի սահմաններում, կարևոր է ձեռք բերել P- տարբերակը: Որոշ վաճառողներ կարող են սխալ ուղարկել: Այսպիսով, եթե գնում եք, նայեք նկարներին: Երկու տարբերակները տարբերվում են ինչպես հետևի, այնպես էլ առջևի կողմից, ինչպես նկարագրված է այս էջում: P- տարբերակի հետևի մասում բոլոր երեք չիպերը հորիզոնական են, իսկ ստանդարտ տարբերակում մեկը ՝ ուղղահայաց: Առջևում ստանդարտ տարբերակն ունի լրացուցիչ արծաթե բաղադրիչ:
Էլեկտրոնային սխեմայում մենք տրանզիստոր ենք օգտագործելու որպես անջատիչ ուլտրաձայնային տվիչի սնուցման անջատման համար, երբ մեր կարգավորումը խոր քուն է մղում մարտկոցի կյանքը խնայելու համար: Հակառակ դեպքում, այն դեռ կսպառի մոտ 2 մԱ: Մյուս կողմից, BME280- ը ոչ ակտիվ վիճակում սպառում է միայն մոտ 5 μ, ուստի անհրաժեշտ չէ այն անջատել տրանզիստորով:
Քայլ 2. ESP8266 խորհրդի ընտրություն
Սենսորը մարտկոցի վրա հնարավորինս երկար աշխատեցնելու համար մենք պետք է տնտեսենք էներգիայի սպառումը: Մինչ ESP8266- ի Wifi- ն ապահովում է մեր սենսորը ամպին միացնելու շատ հարմար միջոց, այն նաև բավականին էներգիայի կարիք ունի: Գործող ESP8266- ը սպառում է մոտ 80 մԱ: Այսպիսով, 2600 մԱ / ժ մարտկոցներով մենք կկարողանանք մեր սարքը գործարկել առավելագույնը 32 ժամ, մինչև դրանք դատարկվեն: Գործնականում դա ավելի քիչ կլինի, քանի որ մենք չենք կարողանա օգտագործել ամբողջ 2600 մԱ / ժ հզորությունը, մինչև լարումը շատ ցածր մակարդակի վրա ընկնի:
Բարեբախտաբար, ESP8266- ն ունի նաև խոր քնի ռեժիմ, որի դեպքում գրեթե ամեն ինչ անջատված է: Այսպիսով, ծրագիրն այն է, որ ESP8266- ը շատ ժամանակ քնի մեջ դնի և արթնանա այնքան հաճախ, որպեսզի չափումներ կատարեն և տվյալները Wifi- ով ուղարկեն ThingSpeak: Այս էջի համաձայն `խոր քնի առավելագույն ժամանակը մոտ 71 րոպե էր, բայց ESP8266 Arduino միջուկ 2.4.1-ից ի վեր այն ավելացել է մինչև մոտ 3.5 ժամ: Իմ ծածկագրում ես տեղավորվեցի մեկ ժամ:
Ես առաջին անգամ փորձեցի հարմար NodeMCU զարգացման տախտակը, բայց անհեթեթ, խոր քնի դեպքում այն դեռ սպառում էր մոտ 9 մԱ, ինչը մեզ տալիս է մաքուր խոր քնի առավելագույնը 12 օր ՝ նույնիսկ հաշվի չառնելով արթնանալու միջակայքերը: Կարևոր մեղավորը AMS1117 լարման կարգավորիչն է, որն օգտագործում է էներգիան, նույնիսկ եթե փորձում եք շրջանցել այն ՝ մարտկոցը միացնելով անմիջապես 3.3V պինին: Այս էջը բացատրում է, թե ինչպես հեռացնել լարման կարգավորիչը և USB UART- ը: Այնուամենայնիվ, ես երբեք չեմ հասցրել դա անել ՝ առանց իմ տախտակը քանդելու: Ավելին, USB UART- ը հեռացնելուց հետո այլևս չեք կարող միանալ ESP8266- ին `պարզելու, թե ինչն է սխալ:
ESP8266- ի զարգացման տախտակների մեծ մասը, կարծես, օգտագործում է վատնող AMS1117 լարման կարգավորիչը: Բացառություն է WEMOS D1 mini- ն (ձախ կողմում գտնվող նկարը), որը գալիս է ավելի տնտեսող ME6211- ով: Իրոք, ես պարզեցի, որ WEMOS D1 mini- ն խոր քնի մեջ օգտագործում է մոտ 150 μA, որն ավելի նման է դրան: Դրա մեծ մասը հավանաբար պայմանավորված է USB UART- ով: Այս տախտակի օգնությամբ դուք պետք է ինքներդ կպցրեք կապերի վերնագրերը:
Այնուամենայնիվ, մենք կարող ենք շատ ավելի լավ անել, օգտագործելով ESP-12F- ի նման մերկ ոսկորների տախտակը (նկարը աջ կողմում), որը չունի USB UART կամ լարման կարգավորիչ: 3.3 Վ կապոցը կերակրելով ՝ ես գտա խոր քնի սպառումը ՝ ընդամենը 22 μA:
Բայց որպեսզի ESP-12F- ն աշխատի, պատրաստվեք որոշ զոդման և մի փոքր ավելի բարդ ծրագրավորմանը: Բացի այդ, եթե մարտկոցներն ուղղակիորեն չեն մատակարարում ճիշտ լարումը, որը 3 Վ -ից մինչև 3.6 Վ է, մենք պետք է տրամադրենք մեր սեփական լարման կարգավորիչը: Գործնականում պարզվում է, որ դժվար է գտնել մարտկոցի համակարգ, որն ապահովում է այս միջակայքում լարվածություն լիցքաթափման ամբողջ ցիկլի ընթացքում: Հիշեք, որ մենք նաև պետք է սնուցենք HC-SR04-P տվիչը, որը տեսականորեն կարող է գործել 3V- ից ցածր լարման դեպքում, բայց ավելի ճշգրիտ է գործում, եթե լարումը ավելի բարձր է: Ավելին, իմ դիագրամում HC-SR04-P- ը միացված է տրանզիստորով, ինչը առաջացնում է փոքր լրացուցիչ լարման անկում: Մենք կօգտագործենք MCP1700-3302E լարման կարգավորիչը: Առավելագույն մուտքային լարումը 6 Վ է, այնպես որ մենք այն սնուցում ենք մինչև 4 AA մարտկոցով: Ես որոշեցի օգտագործել 3 AA մարտկոց:
Քայլ 3: Ստեղծեք ThingSpeak ալիք
Մեր տվյալները պահելու համար մենք կօգտագործենք ThingSpeak ՝ IoT ամպային ծառայություն: Գնացեք https://thingspeak.com/ և ստեղծեք հաշիվ: Մուտք գործելուց հետո կտտացրեք Նոր ալիք ՝ ալիք ստեղծելու համար: Ալիքի կարգավորումներում լրացրեք անունն ու նկարագրությունը, ինչպես ցանկանում եք: Հաջորդը մենք անվանում ենք ալիքի դաշտերը և դրանք ակտիվացնում ՝ աջից սեղմելով վանդակները: Եթե դուք օգտագործում եք իմ կոդը անփոփոխ, դաշտերը հետևյալն են.
- Դաշտ 1 ՝ ջրի մակարդակ (սմ)
- Դաշտ 2: մարտկոցի մակարդակը (V)
- Դաշտ 3: ջերմաստիճան (° C)
- Դաշտ 4: Խոնավություն (%)
- Դաշտ 5. ճնշում (պա)
Հետագա տեղեկությունների համար գրի՛ր Ալիքի ID- ն, Read API- ի բանալին և Write API- ի բանալին, որոնք կարելի է գտնել ընտրացանկի API ստեղներում:
Կարող եք կարդալ ThingSpeak- ի տվյալները ձեր սմարթֆոնի վրա ՝ օգտագործելով ծրագիր: Իմ Android հեռախոսում ես օգտագործում եմ IoT ThingSpeak Monitor վիջեթը: Դուք պետք է կազմաձևեք այն Ալիքի ID- ով և Read API բանալիով:
Քայլ 4. Ինչպես ծրագրավորել ESP-12F- ը
Մեզ անհրաժեշտ է մերկ ոսկորներով տախտակ ՝ մարտկոցի կյանքը խնայելու համար, սակայն բացասական կողմն այն է, որ ծրագրավորելը մի փոքր ավելի դժվար է, քան ներկառուցված USB UART- ով զարգացման տախտակը:
Մենք կօգտագործենք Arduino IDE- ն: Կան այլ հրահանգներ, որոնք բացատրում են, թե ինչպես օգտագործել այն, այնպես որ ես այստեղ հակիրճ կլինեմ: ESP8266- ի համար այն պատրաստելու քայլերն են.
- Ներբեռնեք Arduino IDE- ն:
- Տեղադրեք աջակցություն ESP8266 տախտակին: Fileանկի Ֆայլ - Նախապատվություններ - Կարգավորումներ ավելացրեք URL https://arduino.esp8266.com/stable/package_esp8266com_index.json Լրացուցիչ խորհրդի ղեկավարի URL- ներին: Հաջորդը ընտրացանկում Գործիքներ - Տախտակ - Տախտակների կառավարիչ տեղադրեք esp8266 esp8266 համայնքի կողմից:
- Ընտրել որպես տախտակ. Ընդհանուր ESP8266 մոդուլ:
ESP-12F- ի հետ աշխատելու համար ես օգտագործեցի ադապտերային ափսե, որը սովորաբար հասանելի է առցանց խանութներում: Ես կպցրեցի չիպը ափսեի մեջ, այնուհետև վերնագրերը կպցրեցի ափսեին: Միայն դրանից հետո ես հայտնաբերեցի, որ ադապտերների ափսեը չափազանց լայն է սովորական տախտակի համար: Այն ձեր կողքին չի թողնում անվճար կապում ՝ ձեր կապերը հաստատելու համար:
Լուծումը, որի համար ես գնացի, U- ձևի լարերի օգտագործումն է և դրանք միացնելը, ինչպես աջ նկարում, նախքան ESP8266- ը ադապտերային ափսեի հետ հացաթղթի վրա դնելը: Այսպիսով, GND- ը և VCC- ն միացված են հացատախտակի ռելսերին, իսկ մնացած կապումներն ավելի մատչելի են դառնում տախտակի ներքևում: Անբարենպաստությունն այն է, որ ձեր տախտակը լիովին լարված կլինի լարերով, երբ ամբողջ շրջանն ավարտեք: Մեկ այլ լուծում է երկու տախտակ իրար տեղավորել, ինչպես ցույց է տրված այս տեսանյութում:
Հաջորդը ՝ ESP-12F- ը ձեր համակարգչի USB- պորտի միջոցով ծրագրավորելու համար մեզ անհրաժեշտ է USB- ից սերիական ադապտեր: Ես օգտագործել եմ FT232RL FTDI ծրագրավորողը: Merրագրավորողը ունի թռիչք `3.3 Վ կամ 5 Վ լարման միջև ընտրելու համար: ESP8266- ի համար այն պետք է դրվի 3.3 Վ լարման վրա: Մի մոռացեք, քանի որ 5V- ը կարող է տապակել ձեր չիպը: Վարորդների տեղադրումը պետք է լինի ավտոմատ, բայց եթե ծրագրավորումը չի աշխատում, կարող եք ձեռքով տեղադրել դրանք այս էջից:
ESP8266- ն ունի ծրագրակազմի ռեժիմ `նոր որոնվածը ֆլեշին վերբեռնելու համար, և ֆլեշ ռեժիմ` ֆլեշ հիշողությունից ընթացիկ որոնվածը գործարկելու համար: Այս ռեժիմների միջև ընտրելու համար որոշ կապում պետք է որոշակի արժեք վերցնել բեռնման ժամանակ.
- Mingրագրավորում ՝ GPIO0 ՝ ցածր, CH-PD ՝ բարձր, GPIO2 ՝ բարձր, GPIO15 ՝ ցածր
- Flash: GPIO0 ՝ բարձր, CH-PD ՝ բարձր, GPIO2 ՝ բարձր, GPIO15 ՝ ցածր
Ադապտերային ափսեը արդեն հոգ է տանում CH-PD- ն վեր քաշելու և GPIO15- ը 10K դիմադրիչներով ներքև քաշելու մասին:
Այսպիսով, մեր էլեկտրոնային շղթայում մենք դեռ պետք է քաշենք GPIO2- ը: Մենք նաև տրամադրում ենք ESP8266- ը ծրագրավորման կամ ֆլեշ ռեժիմի մեջ դնելու անջատիչ և այն վերակայելու անջատիչ, որը կատարվում է RST- ը գետնին միացնելու միջոցով: Հետագայում համոզվեք, որ FT232RL- ի TX կապը միացնում եք ESP8266- ի RXD կապին և հակառակը:
Րագրավորման հաջորդականությունը հետևյալն է.
- Setրագրավորման անջատիչը փակելով, GPIO2- ը սահմանեք ցածր:
- Վերագործարկեք ESP8266- ը ՝ փակելով և նորից բացելով վերակայման անջատիչը: ESP8266- ն այժմ բեռնվում է ծրագրավորման ռեժիմում:
- Setրագրավորման անջատիչը բացելով ՝ GPIO2- ը նորից բարձր դարձրեք:
- Վերբեռնեք նոր որոնվածը Arduino IDE- ից:
- Կրկին վերագործարկեք ESP8266- ը `փակելով և նորից բացելով վերակայման անջատիչը: ESP8266- ն այժմ բեռնվում է ֆլեշ ռեժիմում և գործարկում է նոր որոնվածը:
Այժմ կարող եք ստուգել, թե արդյոք ծրագրավորումն աշխատում է ՝ վերբեռնելով հայտնի Blink էսքիզը:
Եթե այս ամենն աշխատում է, առնվազն GND, VCC, GPIO2, RST, TXD և RXD կապումներն են ճիշտ միացված և միացված: Ի Whatնչ թեթեւություն: Բայց նախքան գործի անցնելը խորհուրդ կտայի նաև ձեր մյուս մուլտիմետրով ստուգել մյուս քորոցները: Ես ինքս խնդիր ունեի քորոցներից մեկի հետ: Դուք կարող եք օգտագործել այս ուրվագիծը, որը բոլոր կապումները մեկ առ մեկ բարձր է դարձնում 5 վայրկյան, իսկ հետո ESP8266- ը 20 վայրկյան խոր քնի մեջ է դնում: ESP8266- ը խոր քնից հետո արթնանալու համար անհրաժեշտ է միացնել RST- ը GPIO16- ին, որը տալիս է արթնության ազդանշան:
Քայլ 5: Էսքիզների վերբեռնում
Ես ծածկագիրը հասանելի եմ դարձրել GitHub- ում, դա ընդամենը մեկ ֆայլ է ՝ Level-Sensor-Deepsleep.ino: Պարզապես ներբեռնեք այն և բացեք այն Arduino IDE- ում: Կամ կարող եք ընտրել Ֆայլ - Նոր և պարզապես պատճենել/տեղադրեք ծածկագիրը:
Որոշ տեղեկություններ կան, որոնք պետք է լրացնեք ֆայլի սկզբում. Օգտագործելու համար WLAN- ի անունը և գաղտնաբառը, ստատիկ IP մանրամասները և ThingSpeak ալիքի Channel ID- ի և Write API- ի բանալին:
Այս բլոգի հուշումից հետո DHCP- ի փոխարեն, որտեղ երթուղիչը դինամիկ կերպով IP է տալիս, մենք օգտագործում ենք ստատիկ IP, որտեղ ինքներս ենք սահմանում ESP8266- ի IP հասցեն: Սա պարզվում է, որ շատ ավելի արագ է, այնպես որ մենք խնայում ենք ակտիվ ժամանակը և դրանով իսկ մարտկոցի էներգիան: Այսպիսով, մենք պետք է տրամադրենք մատչելի ստատիկ IP հասցե, ինչպես նաև երթուղիչի (դարպաս) IP, ենթածանցի դիմակ և DNS սերվեր: Եթե վստահ չեք, թե ինչ լրացնել, կարդացեք ձեր երթուղղիչի ձեռնարկում ստատիկ IP կարգաբերելու մասին: Windows համակարգչի վրա, որը միացված է Wifi- ի ձեր երթուղիչին, գործարկեք պատյան (Windows կոճակ-r, cmd) և մուտքագրեք ipconfig /all: Ձեզ անհրաժեշտ տեղեկատվության մեծ մասը կգտնեք Wi-Fi բաժնում:
Ուսումնասիրելով ծածկագիրը ՝ տեսնում եք, որ ի տարբերություն այլ Arduino կոդի, գործողությունների մեծ մասը տեղի է ունենում setup գործառույթում ՝ loop գործառույթի փոխարեն: Դա պայմանավորված է նրանով, որ ESP8266- ը կարգաբերման գործառույթն ավարտելուց հետո խոր քուն է մտնում (եթե մենք չենք սկսել OTA ռեժիմում): Արթնանալուց հետո այն նման է նոր վերագործարկման և նորից աշխատում է:
Ահա ծածկագրի կարևոր առանձնահատկությունները.
- Արթնանալուց հետո կոդը switchPin- ը (կանխադրված GPIO15) սահմանում է բարձր: Սա միացնում է տրանզիստորը, որն իր հերթին միացնում է HC-SR04-P սենսորը: Նախքան խոր քուն մտնելը այն ցածր է դարձնում քորոցը ՝ անջատելով տրանզիստորը և HC-SR04-P- ն ՝ համոզվելով, որ մարտկոցի ավելի թանկարժեք էներգիա չի սպառում:
- Եթե ռեժիմի PIN- ը (կանխադրված GPIO14) ցածր է, կոդը չափման ռեժիմի փոխարեն անցնում է OTA ռեժիմում: OTA- ով (օդային թարմացում) մենք կարող ենք թարմացնել որոնվածը Wifi- ի միջոցով ՝ սերիական պորտի փոխարեն: Մեր դեպքում դա բավականին հարմար է, քանի որ հետագա թարմացումների համար մենք այլևս կարիք չունենք սերիալը միացնել USB ադապտերին: Պարզապես սահմանեք GPIO14- ը ցածր (էլեկտրոնային միացման OTA անջատիչով), վերակայեք ESP8266- ը (վերակայման անջատիչով) և այն հասանելի կդառնա Arduino IDE- ում `վերբեռնման համար:
- Անալոգային PIN- ի (A0) վրա մենք չափում ենք մարտկոցի լարումը: Սա թույլ է տալիս մեզ անջատել մեր սարքը, որը հայտնի է որպես մշտական խոր քուն, եթե լարումը չափազանց ցածր է, նվազագույնից ցածր, մարտկոցները գերբեռնվածությունից պաշտպանելու համար: Անալոգային չափումը շատ ճշգրիտ չէ, մենք անում ենք numMeasuresBattery (կանխադրված 10) միջոցառումներ և միջինն ենք վերցնում ճշգրտությունը բարձրացնելու համար:
- HC-SR04-P տվիչի հեռավորության չափումը կատարվում է ֆունկցիայի distanceMeasurement- ում: Accuracyշգրտությունը բարձրացնելու համար չափումը կրկնվում է numMeasuresDistance (կանխադրված 3) անգամ:
- Կա ձայնի արագությունը հաշվարկելու գործառույթ BME280 սենսորով ջերմաստիճանից, խոնավությունից և ճնշումից: BME280- ի կանխադրված I2C հասցեն 0x76 է, բայց եթե այն չի աշխատում, գուցե անհրաժեշտ լինի այն փոխել 0x77- ի համար. Bool bme280Started = bme280.begin (0x77);
- Մենք կօգտագործենք BME280- ը հարկադիր ռեժիմում, ինչը նշանակում է, որ այն տևում է մեկ չափում և նորից քնում է էներգիա խնայելու համար:
- Եթե դուք սահմանում եք հզորություն (լ), լրիվ հեռավորություն (սմ) և տարածք (մ 2), ծածկագիրը հաշվարկում է հեռավորության չափումից ջրի բաքի մնացած ծավալը. և վերբեռնեք սա ThingSpeak- ում: Եթե դուք պահում եք կանխադրված արժեքները, այն ջրի մակերեսին հեռավորությունը վերբեռնում է սմ -ով:
Քայլ 6: Էլեկտրոնային շղթայի կառուցում
Վերևում էլեկտրոնային սխեմաների դիագրամն է: Այն բավականին մեծ է մեկ տախտակի համար, հատկապես չափազանց մեծ ադապտերային ափսեի և U- ձևավորված լարերի հնարքով: Ինչ -որ պահի ես անշուշտ կցանկանայի, որ ես օգտագործեի երկու տախտակ միացնելու այլընտրանքը, բայց ի վերջո դա ինձ հաջողվեց:
Ահա միացման կարևոր առանձնահատկությունները.
- Գոյություն ունեն երկու լարման, որոնք դեր են խաղում ՝ մարտկոցից մուտքի լարումը (մոտ 3.75 Վ) և 3.3 Վ, որը սնուցում է ESP8266- ը և BME280- ը: 3.3V- ը դրեցի անջատիչի ձախ ռելսին, իսկ 3.75V- ը `աջ: Լարման կարգավորիչը 3.75V- ը վերածում է 3.3V- ի: Հետեւելով տվյալների թերթիկի հրահանգներին, ես կայունության բարձրացման համար ավելացրել եմ 1 μF կոնդենսատոր լարման կարգավորիչի մուտքի եւ ելքի մեջ:
- ESP8266- ի GPIO15- ը միացված է տրանզիստորի դարպասին: Սա թույլ է տալիս ESP8266- ին միացնել տրանզիստորը և, հետևաբար, ուլտրաձայնային տվիչը `ակտիվ վիճակում, և անջատել այն խոր քնի ժամանակ:
- GPIO14- ը միացված է անջատիչին, OTA անջատիչին: Անջատիչի փակումը ազդանշան է տալիս ESP8266- ին, որը մենք ցանկանում ենք սկսել OTA ռեժիմով, այսինքն `RESET անջատիչը սեղմելուց (փակել և բացելուց) և օդում նոր ուրվագիծ վերբեռնելուց հետո:
- RST և GPIO2 կապումներն իրար միացված են, ինչպես ծրագրավորման դիագրամում: RST- ի քորոցն այժմ միացված է նաև GPIO16- ին, որպեսզի ESP8266- ը արթնանա խոր քունից:
- Ուլտրաձայնային տվիչի TRIG և ECHO կապերը միացված են GPIO12 և GPIO13, իսկ BME280- ի SCL և SDA կապերը `GPIO5 և GPIO4:
- Ի վերջո, անալոգային քորոց ADC- ն մուտքային լարման հետ միացված լարման բաժանարարի միջոցով է: Սա թույլ է տալիս չափել մուտքային լարումը `մարտկոցների լիցքը ստուգելու համար: ADC քորոցը կարող է չափել 0V- ից 1V լարման լարումները: Լարման բաժանարարի համար մենք ընտրեցինք 100K և 470K ռեզիստորներ: Սա նշանակում է, որ ADC կապում լարումը տրվում է ՝ V_ADC = 100K/(100K+470K) V_in:Հաշվի առնելով V_ADC = 1V դա նշանակում է, որ մենք կարող ենք չափել մուտքային լարումները մինչև V_in = 570/100 V_ADC = 5.7V: Ինչ վերաբերում է էներգիայի սպառմանը, ապա հոսանքի արտահոսք կա նաև լարման բաժանարարի միջով: Մարտկոցներից V_in = 3.75V- ով գտնում ենք I_leak = 3.75V/570K = 6.6 μA:
Նույնիսկ երբ միացումն աշխատում է մարտկոցներից, հնարավոր է USB- ը միացնել սերիական ադապտերին: Պարզապես համոզվեք, որ անջատեք VCC ադապտորը և միացրեք GND, RX և TX, ինչպես ծրագրավորման դիագրամում: Սա հնարավորություն է տալիս Arduino IDE- ում բացել Սերիայի մոնիտորը `կարդալու վրիպազերծման հաղորդագրությունները և համոզվելու, որ ամեն ինչ աշխատում է սպասվածի պես:
Ամբողջական սխեմայի համար ես չափեցի ընթացիկ սպառումը 50 μA խորը քնի մեջ, երբ աշխատում եմ մարտկոցներից: Սա ներառում է ESP8266- ը, BME280- ը, ուլտրաձայնային տվիչը (անջատված է տրանզիստորով) և արտահոսքը լարման բաժանարարի միջոցով և, հնարավոր է, այլ արտահոսքեր: Այնպես որ, դա այնքան էլ վատ չէ:
Ես պարզեցի, որ ընդհանուր ակտիվ ժամանակը մոտ 7 վայրկյան է, որից 4.25 վայրկյանը `Wifi- ին միանալու համար և 1.25 վայրկյանը` տվյալները ThingSpeak- ին ուղարկելու համար: Այսպիսով, 80 մԱ ակտիվ հոսանքով ես գտա ժամում 160 μAh ակտիվ ժամանակի համար: Խորը քնի վիճակի համար ժամում ավելացնելով 50 μAh ՝ ընդհանուր առմամբ ունենք ժամում 210 μAh: Սա նշանակում է, որ 2600 mAh մարտկոցները տեսականորեն տևում են 12400 ժամ = 515 օր: Սա բացարձակ առավելագույնն է, եթե մենք կարողանայինք օգտագործել մարտկոցների ամբողջ հզորությունը (ինչը այդպես չէ), և չկան արտահոսքեր, որոնք ես չէի գտել իմ ընթացիկ չափումներով: Այսպիսով, ես դեռ պետք է տեսնեմ, թե արդյոք սա իսկապես ավարտվում է:
Քայլ 7: Սենսորի ավարտը
Ես սենսորը դրեցի պլաստմասե 1 լիտրանոց տարայի մեջ, որը նախկինում ապուր էր պարունակում: Ներքեւի մասում ես երկու անցք արեցի, որպեսզի տեղավորվեն HC-SR04-P տվիչի «աչքերին»: Բացի անցքերից, տարան պետք է անջրանցիկ լինի: Այնուհետեւ այն ամրացվում է ջրի բաքի պատին շրջանաձեւ օղակով, որը սովորաբար օգտագործվում է անձրեւաջրերի արտահոսքի խողովակի համար:
Haveվարճացեք նախագծով:
Խորհուրդ ենք տալիս:
Մինի մարտկոցով աշխատող CRT տատանում. 7 քայլ (նկարներով)
Մինի մարտկոցով սնուցվող CRT տատանումներ. Բարև: Այս հրահանգում ես ձեզ ցույց կտամ, թե ինչպես պատրաստել մինի մարտկոցով աշխատող CRT տատանում: Oscilloscope- ը էլեկտրոնիկայի հետ աշխատելու կարևոր գործիք է. դուք կարող եք տեսնել բոլոր ազդանշանները, որոնք հոսում են շրջագծով, և խնդիրների լուծում
Մարտկոցով աշխատող դռան և կողպման տվիչ, արևային, ESP8266, ESP-Now, MQTT: 4 քայլ (նկարներով)
Battery Powered Shed Door & Lock Sensor, Solar, ESP8266, ESP-Now, MQTT. Այս հրահանգում ես ձեզ ցույց եմ տալիս, թե ինչպես եմ պատրաստել մարտկոցից աշխատող տվիչ ՝ վերահսկելու իմ հեռավոր հեծանիվի դռան դուռը և կողպելու վիճակը: Ես հոսանք չունեմ, ուստի մարտկոցից սնվում եմ: Մարտկոցը լիցքավորվում է փոքր արևային վահանակով: Մոդուլը դ
Իրական ժամանակում ջրհորի ջրի ջերմաստիճան, հաղորդունակություն և ջրի մակարդակի հաշվիչ ՝ 6 քայլ (նկարներով)
Իրական ժամանակի ջրհորի ջրի ջերմաստիճան, հաղորդունակություն և ջրի մակարդակի հաշվիչ. Այս հրահանգները նկարագրում են, թե ինչպես կարելի է կառուցել էժան, իրական ժամանակի ջրաչափ `ջերմաստիճանը մոնիտորինգի համար, Էլեկտրական հաղորդունակություն (ԵՀ) և ջրի մակարդակները փորված հորերում: Հաշվիչը նախատեսված է փորված ջրհորի ներսում կախված լինելու համար, չափելու ջրի ջերմաստիճանը
Մարտկոցով աշխատող դռների տվիչ ՝ տան ավտոմատացման ինտեգրմամբ, WiFi և ESP-NOW: 5 քայլ (նկարներով)
Մարտկոցով աշխատող դռների սենսոր ՝ տան ավտոմատացման ինտեգրմամբ, WiFi և ESP-NOW. Այս ուսանելի ծրագրում ես ձեզ ցույց եմ տալիս, թե ինչպես եմ մարտկոցով աշխատող դռան տվիչ սարքել ՝ տան ավտոմատացման ինտեգրմամբ: Ես տեսել եմ մի քանի այլ գեղեցիկ սենսորներ և ահազանգման համակարգեր, բայց ես ինքս էի ուզում դրանք պատրաստել: Իմ նպատակները. Սենսոր, որը հայտնաբերում և հաղորդում է անելիքի մասին
Duրի մակարդակի Arduino- ի հայտնաբերման մեթոդներ `օգտագործելով ուլտրաձայնային տվիչ և Funduino ջրի տվիչ` 4 քայլ
Duրի մակարդակի Arduino- ի հայտնաբերման մեթոդներ `օգտագործելով ուլտրաձայնային տվիչ և Funduino ջրի սենսոր: Այս նախագծում ես ձեզ ցույց կտամ, թե ինչպես ստեղծել էժան ջրի դետեկտոր` օգտագործելով երկու մեթոդ ՝ 1. Ուլտրաձայնային տվիչ (HC-SR04) .2. Funduino ջրի ցուցիչ