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

IoT Moon Lamp: 5 քայլ
IoT Moon Lamp: 5 քայլ

Video: IoT Moon Lamp: 5 քայլ

Video: IoT Moon Lamp: 5 քայլ
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Նոյեմբեր
Anonim
IoT Լուսնի լամպ
IoT Լուսնի լամպ

Այս ուսանելիում ես ցույց եմ տալիս, թե ինչպես մարտկոցով աշխատող պարզ LED լամպը փոխակերպել IoT սարքի:

Այս նախագիծը ներառում է.

  • զոդում;
  • ծրագրավորում ESP8266 Arduino IDE- ով;
  • Android հավելվածի պատրաստում MIT App Inventor- ի հետ:

Հետաքրքրության առարկան լուսնի տեսքով լամպն է, որը ես գնել եմ gearbest- ից: Բայց իսկապես այս ձեռնարկը կարող է հարմարեցվել ցածր DC լարման ցանկացած սարքի (AC սնուցվող սարքերը պահանջում են լրացուցիչ միացում):

Պարագաներ

  1. Android սմարթֆոն (android տարբերակները 7-9 փորձարկված են):
  2. Sոդման գործիքներ:
  3. PCB- ի նախատիպավորում (նախատախտակ):
  4. ESP-12E տախտակ (կամ այլ տախտակ ESP8266 միկրոկոնտրոլերով):
  5. USB- սերիալային փոխարկիչ `ծրագրավորման համար:
  6. Պասիվ բաղադրիչների մի քանի տարբեր արժեքներ (ռեզիստորներ և կոնդենսատորներ):

(Լրացուցիչ. Տես «Արգելափակման դիագրամ» բաժինը)

  1. 3.3V@500mA LDO IC:
  2. 3.3V-5V տրամաբանական մակարդակի փոխարկիչ տախտակ:
  3. 5V DC սնուցման աղբյուր:

Քայլ 1: Գաղափար

Գաղափար
Գաղափար

Լուսնի լամպը սնուցվում է մեկ Li-ION 18650 բջիջով և ունի աշխատանքի երեք ռեժիմ.

  • անջատված;
  • ձեռնարկ;
  • մեքենա

Ձեռքով ռեժիմում լամպը կառավարվում է սեղմման կոճակով, յուրաքանչյուր սեղմում փոխվում է LED լուսավորության վիճակը (կապույտը միացված է, նարնջագույնը ՝ միացված, անջատված), լույսի ինտենսիվությունը փոխվում է սեղմել կոճակը սեղմելիս: Ավտոմատ ռեժիմում LED լույսի վիճակները փոխվում են ՝ ինքնին լամպը սեղմելով կամ թափահարելով:

Ես որոշեցի ավելացնել ESP8266- ը ՝ հանդես գալու որպես վեբ սերվեր, որը լսում է հարցումները և համապատասխանաբար նմանակում կոճակների սեղմումները: Ես չէի ուզում կոտրել լամպի սկզբնական գործառույթը, պարզապես ուզում էի WiFi- ի վրա ավելացնել լրացուցիչ կառավարման հնարավորություններ, ուստի ես ընտրեցի ESP- ը `կոճակները սեղմելը մոդելավորելու համար` LED- ների ուղղակի վերահսկման փոխարեն: Նաև դա թույլ տվեց նվազագույն փոխազդել սկզբնական սխեմաների հետ:

Նախատիպի պատրաստումից հետո այն մարտկոցից անընդհատ անջատված վիճակում քշեց m 80 մԱ (full 400 մԱ ՝ ամբողջ պայծառությամբ): Սպասման հոսանքը բարձր է, քանի որ ESP8266- ը աշխատում է որպես սերվեր և միշտ միացված է WiFi- ին և լսում է հարցումները: Մարտկոցը սպառվել է մեկուկես օր հետո միայն անջատված վիճակում, ուստի ավելի ուշ որոշեցի օգտագործել լամպերի USB լիցքավորման պորտը ՝ բոլոր էլեկտրոնիկան սնուցելու արտաքին 5 Վ էլեկտրամատակարարումից և մարտկոցը միասին անջատելու համար (բայց սա պարտադիր չէ):

Քայլ 2: Արգելափակել դիագրամը

Բլոկ սխեմա
Բլոկ սխեմա

Բլոկ -դիագրամում կարող եք տեսնել, թե ինչ սխեմաներ կավելացվեն և ինչպես կփոխվեն առկա սխեմաները: Իմ դեպքում ես ամբողջությամբ հանեցի մարտկոցը և կարճացրեցի մարտկոցների լիցքավորիչների IC մուտքը ելքով (կրկին, սա պարտադիր չէ): Դիագրամում թափանցիկ բլոկները ցույց են տալիս բաղադրիչները, որոնք շրջանցված են (չնայած սեղմման կոճակը դեռ աշխատում է ինչպես նախատեսված էր սկզբնապես):

Փաստաթղթերի համաձայն, ESP8266- ը հանդուրժում է ընդամենը 3.3 Վ, սակայն կան բազմաթիվ օրինակներ, երբ ESP8266- ը միանգամայն լավ է աշխատում 5 Վ -ով, այնպես որ տրամաբանական մակարդակի փոխարկիչը և 3.3 Վ LDO- ն կարող են դուրս մնալ, սակայն ես մնացի լավագույն փորձին և ավելացրի այդ բաղադրիչները:

Ես օգտագործել եմ 3 ESP8266 I/O կապում և ADC կապում: Մեկ թվային ելքային քորոցը կոճակները սեղմելը մոդելավորելու համար է, երկու թվային մուտքը `պարզելու համար, թե ինչ գույնի են LED- ները (այստեղից մենք կարող ենք պարզել, թե որ վիճակում է գտնվում MCU- ն և որն է հաջորդը կոճակի սեղմումից հետո): ADC քորոցը չափում է մուտքային լարումը (լարման բաժանարարի միջոցով), այդպես մենք կարող ենք վերահսկել մարտկոցի լիցքավորման մնացած մակարդակը:

Որպես արտաքին սնուցման աղբյուր ես օգտագործում եմ հին հեռախոսի լիցքավորիչ 5V@1A (մի օգտագործեք արագ լիցքավորիչներ):

Քայլ 3: Programրագրավորում

Ծրագրավորում
Ծրագրավորում
Ծրագրավորում
Ծրագրավորում

Մի խոսքով, ծրագիրն աշխատում է այսպես (լրացուցիչ տեղեկությունների համար տե՛ս կոդը):

ESP8266- ը միանում է ձեր WiFi մուտքի կետին, որի հավատարմագրերը պետք է մուտքագրեք նախնական ծրագրավորման կոդի սկզբում, այն ստանում է ձեր DHCP սերվերի երթուղիչների IP հասցեն, IP- ն գտնելու համար, որն ավելի ուշ ձեզ անհրաժեշտ կլինի, կարող եք ստուգել երթուղիչների վեբ ինտերֆեյսի DHCP կարգավորումները կամ սահմանել դրոշը կարգաբերելը 1 -ում և կտեսնեք, թե ինչ IP ESP է ստացել սերիական մոնիտորում (դուք պետք է այդ IP- ն ամրագրեք ձեր երթուղիչների կարգավորումներում, որպեսզի ESP- ը միշտ բեռնման ժամանակ ստանա նույն IP- ն):

MCU- ն նախաստորագրվելիս միշտ հավերժ կատարում է նույն ռեժիմը.

  1. Ստուգեք, արդյոք այն դեռ միացված է AP- ին, եթե ոչ, փորձեք նորից միանալ մինչև հաջողությունը:
  2. Սպասեք, որ հաճախորդը HTTP հարցում կատարի: Երբ հարցումը տեղի է ունենում.

    1. Ստուգեք մուտքի լարումը:
    2. Ստուգեք, թե որ վիճակում են LED- ները:
    3. Համապատասխանեցրեք HTTP հարցումը հայտնի LED վիճակների հետ (կապույտ միացված, նարնջագույն միացված, երկուսն էլ միացված, անջատված):
    4. Պահանջվող վիճակին հասնելու համար մոդելավորեք այնքան կոճակների սեղմումներ, որքան անհրաժեշտ է:

Ես հակիրճ կներկայացնեմ ծրագրավորման հրահանգները, եթե դա ձեր առաջին անգամն է, երբ ESP8266 MCU ծրագրավորումը ավելի խորքային հրահանգներ է փնտրում:

Ձեզ հարկավոր կլինի Arduino IDE և USB- սերիական ինտերֆեյսի փոխարկիչ (օրինակ ՝ FT232RL): IDE պատրաստելու համար հետևեք այս հրահանգներին:

Followրագրավորման համար ESP-12E մոդուլը միացնելու համար հետևեք սխեմայի սխեմային: Որոշ խորհուրդներ.

  • օգտագործել արտաքին 3.3V@500mA սնուցման աղբյուր (շատ դեպքերում USB- սերիական սնուցման աղբյուրը բավարար չէ);
  • ստուգեք, արդյոք ձեր USB- սերիալային փոխարկիչը համատեղելի է տրամաբանական մակարդակի 3.3 Վ;
  • ստուգեք, արդյոք USB- սերիալային փոխարկիչի վարորդները հաջողությամբ տեղադրված են (windows սարքի կառավարիչից), ինչպես նաև կարող եք ստուգել ՝ արդյոք այն ճիշտ է աշխատում IDE- ից, ընդամենը կարճ RX և TX կապումներից, քան IDE- ից ընտրել COM պորտը, բացել սերիական մոնիտորը և գրել ինչ-որ բան, եթե ամեն ինչ աշխատում է: դուք պետք է տեսնեք տեքստը, որն ուղարկում եք ՝ հայտնվելով վահանակում.
  • ինչ-ինչ պատճառներով ես կարողացա ծրագրավորել ESP միայն այն ժամանակ, երբ ես առաջին անգամ միացրեցի USB- սերիալային փոխարկիչը համակարգչին, այնուհետև ESP- ը միացրեցի արտաքին 3.3V աղբյուրից;
  • Հաջող ծրագրավորումից հետո մի մոռացեք հաջորդ բեռնման ժամանակ բարձր GPIO0 քաշել:

Քայլ 4. Սխեմատիկ և զոդում

Սխեմատիկ և զոդող
Սխեմատիկ և զոդող
Սխեմատիկ և զոդող
Սխեմատիկ և զոդող
Սխեմատիկ և զոդող
Սխեմատիկ և զոդող

Հետևեք սխեմային ՝ բոլոր բաղադրիչները միացնելու համար նախատախտակին: Ինչպես արդեն նշվեց, որոշ բաղադրիչներ պարտադիր չեն: Ես օգտագործել եմ KA78M33 3.3V LDO IC- ն և տրամաբանական մակարդակի փոխարկիչ տախտակը sparkfun- ից, այլապես, ինքներդ կարող եք փոխարկիչ կատարել, ինչպես ցույց է տրված սխեմատիկայում (BSS138- ի փոխարեն կարող եք օգտագործել ցանկացած N-channel mosfet): Այն դեպքում, եթե դուք չշարունակեք օգտագործել Li-ION մարտկոցը, +5V հոսանքի ցանցը մարտկոցի դրական տերմինալ կլինի: ESP8266 ADC հղման լարումը 1 Վ է, իմ ընտրած դիմադրության բաժանարարի արժեքները թույլ են տալիս չափել մուտքային լարումը մինչև 5.7 Վ:

Սկզբնական լամպի PCB- ին պետք է լինի 5 միացում ` +5V (կամ +մարտկոց), GND, սեղմիչ կոճակ, կապույտ և նարնջագույն LED- ները վերահսկելու համար լամպերի MCU- ից PWM ազդանշաններ: Եթե լամպը միացնում եք 5 Վ աղբյուրից, ինչպես ես արեցի, ապա կցանկանաք կարճացնել V VCC կապի մարտկոցի լիցքավորիչները OUTPUT պինով, այդպիսով ամբողջ էլեկտրոնիկան կաշխատվի անմիջապես +5 Վ -ից, այլ ոչ թե մարտկոցի լիցքավորիչից Ելք:

Հետևեք երկրորդ պատկերին `բոլոր զոդման կետերի համար, որոնք ձեզ հարկավոր է պատրաստել PCB լամպերի վրա:

ՆՇՈՄՆԵՐ.

  1. Եթե որոշեցիք կարճացնել +5V մարտկոցի լիցքավորիչի IC ելքով, դա անելուց առաջ ամբողջությամբ հանեք մարտկոցը, չեք ցանկանում +5V- ը միացնել անմիջապես մարտկոցին:
  2. Ուշադրություն դարձրեք, թե որ կոճակի քորոցով եք կպցնում ESP ելքը, քանի որ կոճակի 2 կապում միացված է գետնին, և դուք չեք ցանկանում կարճ միացում, երբ ESP ելքը բարձրանում է բարձր, ավելի լավ է կրկնակի ստուգեք բազմաչափով:

Քայլ 5: Android հավելված

Android հավելված
Android հավելված
Android հավելված
Android հավելված
Android հավելված
Android հավելված

Android հավելվածը պատրաստվել է MIT ծրագրի գյուտարարի միջոցով, ծրագիր ներբեռնելու և (կամ) նախագիծը ինքներդ ձեզ համար ներբեռնելու համար անցեք այս հղումով (այն մուտք գործելու համար ձեզ անհրաժեշտ կլինի Google հաշիվ):

Առաջին գործարկման ժամանակ դուք պետք է բացեք կարգավորումները և մուտքագրեք ձեր ESP8266 IP հասցեն: Այս IP- ն կպահվի, այնպես որ ծրագրի վերագործարկումից հետո նորից մուտքագրելու կարիք չկա:

Testedրագիրը փորձարկվել է մի քանի android 9 և android 7 սարքերով:

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