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

Խելացի բաշխված IoT եղանակի մոնիտորինգի համակարգ `օգտագործելով NodeMCU: 11 քայլ
Խելացի բաշխված IoT եղանակի մոնիտորինգի համակարգ `օգտագործելով NodeMCU: 11 քայլ

Video: Խելացի բաշխված IoT եղանակի մոնիտորինգի համակարգ `օգտագործելով NodeMCU: 11 քայլ

Video: Խելացի բաշխված IoT եղանակի մոնիտորինգի համակարգ `օգտագործելով NodeMCU: 11 քայլ
Video: The Mindful Millionaire Timeless Lessons on Wealth Greed and Happiness in the Psychology of Money 2024, Հուլիսի
Anonim
Խելացի բաշխված IoT եղանակի մոնիտորինգի համակարգ `օգտագործելով NodeMCU
Խելացի բաշխված IoT եղանակի մոնիտորինգի համակարգ `օգտագործելով NodeMCU

Դուք բոլորդ գուցե տեղյակ եք ավանդական եղանակային կայանի մասին. բայց երբևէ մտածե՞լ եք, թե ինչպես է այն իրականում աշխատում: Քանի որ ավանդական եղանակային կայանը ծախսատար է և ծանրաբեռնված, այս կայանների խտությունը մեկ միավորի մակերեսով շատ ավելի փոքր է, ինչը նպաստում է տվյալների անճշտությանը: Ես ձեզ կբացատրեմ, թե ինչպես. Ենթադրենք, որ կայանը գտնվում է քաղաքի կենտրոնում և այն միակ կայանն է, որը գտնվում է «x» մետր շառավղով, այն կարող է հեշտությամբ կողմնակալ լինել, եթե մոտակայքում առկա է աղտոտման պատճառող գործակալ: կայանի «x» մետր շառավղով ամբողջ տարածքը աղտոտված է, քանի որ այդ մեկ կայանը պատասխանատու է ամբողջ տարածքի եղանակային տվյալների որոշման համար:

Այս խնդիրը հաղթահարելու համար մոդուլների խտությունը պետք է մեծանա, ինչը հնարավոր է միայն այն դեպքում, եթե մոդուլներն ավելի էժան լինեն և ավելի փոքր հետք վերցնեն, քան եղածը:

Սա է պատճառը, որ իմ առաջարկած լուծումը այս խնդրի կատարյալ լուծումն է: Այն արժե 10 դոլարից պակաս և նույնպես հեշտությամբ դնում է ափիս:

Ինչպես է դա աշխատում…

Այս նախագծի 3 հիմնական մաս կա:

Սարքի կողմը

Սարքը նկարում ցուցադրված IoT մոդուլ է, որը եղանակի տվյալները սերվեր է ուղարկում ժամանակի յուրաքանչյուր «x» միջակայքում: Տվյալները ներառում են եղանակի փաստացի տվյալները, մոդուլի աշխարհագրական դիրքը. այսինքն ՝ նրա կոորդինատները, նրա MAC հասցեն. սարքը եզակի նույնականացնելու համար, որոնվածի տարբերակը, որի վրա այն այժմ աշխատում է: Սարքի կողմը ներառում է N- մոդուլներ, որոնք բաշխված են ամբողջ տարածքում և ակտիվորեն նպաստում են սերվերին:

Սերվերի կողմից

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

Հաճախորդի/օգտագործողի կողմը

Հենց վերջնական օգտագործողն է սերվերից պահանջում եղանակի տվյալները: Հաճախորդը ուղարկում է ընթացիկ վայրը և գտնվելու վայրի հիման վրա սերվերը հաշվարկում է հաճախորդի և բոլոր մոդուլների միջև հեռավորությունը և հաճախորդին է ուղարկում մոտակա մոդուլի եղանակի տվյալները, որոնք համարվում են ճշգրիտ:

Պարագաներ

  • NodeMCU (ESP8266-12E)
  • DHT11 (խոնավության և ջերմաստիճանի ցուցիչ)
  • BMP180 (ureնշման և ջերմաստիճանի ցուցիչ)
  • MQ-135 (օդի որակի ինդեքսի ցուցիչ)
  • USB մալուխ (ծրագիրը վերբեռնելու համար)
  • 5 վոլտ սնուցման աղբյուր
  • Կոնդենսատորներ (ըստ ցանկության ՝ տեղադրվել էլեկտրահաղորդման գծին զուգահեռ)
  • Arduino IDE (debրագիրը կարգաբերելու և վերբեռնելու համար)
  • ՓՈՍՏԱՄԱՆ դիմում (ըստ ցանկության ՝ կարգաբերել API- ն)
  • Վեբ կայք (PHP և MySQL սերվեր ընդունելու համար)

Քայլ 1: erոդեք բոլոր բաղադրիչները և ծրագիրը վերբեռնեք NodeMCU- ին:

Sոդեք բոլոր բաղադրիչները և ծրագիրը վերբեռնեք NodeMCU
Sոդեք բոլոր բաղադրիչները և ծրագիրը վերբեռնեք NodeMCU
Sոդեք բոլոր բաղադրիչները և ծրագիրը վերբեռնեք NodeMCU
Sոդեք բոլոր բաղադրիչները և ծրագիրը վերբեռնեք NodeMCU

Theոդեք բոլոր բաղադրիչները NodeMCU- ին, ինչպես ցույց է տրված սխեմայում պարֆ տախտակի վրա: Բացի այդ, էլեկտրահաղորդման գծերին զուգահեռ միացրեք կոնդենսատորը, քանի որ էներգիան ավելանում է տվյալների ակտիվ փոխանցման և ստացման ժամանակ:

Theոդման աշխատանքներն ավարտելուց հետո վերբեռնեք «code.c» ֆայլում նշված կոդը:

Նշում. Մի մոռացեք հավատարմագրերը փոխարինել ձեր հավատարմագրերով: Տեղադրեք նաև «html_file.h» անունով ֆայլը arduino էսքիզների թղթապանակի ներսում: Այս նախագծում օգտագործված բոլոր վերնագրերի ֆայլերը կարելի է գտնել այստեղ

Կոդի առանձնահատկությունները

Մուտքի կետ. Քանի որ դժվար է յուրաքանչյուր մոդուլ ծրագրել զանգվածային արտադրության հավատարմագրերով, մոդուլն իր առաջին բեռնախցիկում տեղադրում է վեբ էջ ՝ ընդունելու WiFi- ի հավատարմագրերը, որոնց մոդուլները պետք է միացվեն և պահվում է EEPROM- ում ՝ հետագա օգտագործման համար:

Հավատարմագրերի կազմաձևումից հետո NodeMCU- ն ստուգում է EEPROM- ի հավատարմագրերը և միանում է EEPROM- ում առկա WiFi հավատարմագրերին:

WiFi- ին հաջողությամբ միանալուց հետո NodeMCU- ն սկսում է սերվերի վրա տվյալների վերբեռնում յուրաքանչյուր «x» միջակայքում, տվյալները ներառում են եղանակի տվյալները, մոդուլի MAC հասցեն, որոնվածի տարբերակը, սարքի աշխարհագրական դիրքը:

OTA- ի թարմացում. Մոդուլը նաև ամեն օր ստուգում է որոնվածի նոր թարմացումների առկայությունը կոդում նշված որոշակի ժամի: Այս գործառույթը օգտակար է, քանի որ որևէ արտադրողի համար հնարավոր չէ շարունակել և փոխել առանձին մոդուլի ծրագիրը, եթե որևէ փոփոխություն կատարվի:

Watchdog Timer. Atlast- ը պետք է լինի միջոց ՝ ինքն իրեն վերականգնելու համար ՝ առանց որևէ մարդու միջամտության, եթե այն խրված է կամ վթարի է ենթարկվում: Դրան կարելի է հասնել ՝ օգտագործելով Watchdog ժամաչափը: Գործողության եղանակը հետևյալն է. Կա ընդհատման ենթակարգ, որն աշխատում է ամեն վայրկյան: ISR- ն ամեն անգամ կատարելագործում է հաշվիչը և ստուգում, թե արդյոք հաշվիչը հասել է առավելագույն հաշվարկի: Երբ հաշվիչը հասնում է առավելագույն արժեքին, մոդուլը ինքնաբերաբար վերակայվում է `ենթադրելով, որ այն խափանվել է: Սովորական աշխատանքի դեպքում հաշվիչը միշտ վերակայվում է մինչև առավելագույն հաշվարկին հասնելը:

Քայլ 2: SQL Server- ի կազմաձևում

SQL Server- ի կազմաձևում
SQL Server- ի կազմաձևում

SQL Server- ի տեղադրումը նույնպես իսկապես պարզ է: Պարզապես ստեղծեք տվյալների բազա SQL սերվերում և ներմուծեք կարգավորումը ՝ ներմուծելով «database_structure.txt» անունը կրող ֆայլը: Այս քայլում կարող եք գտնել ֆայլը: Քանի որ հրահանգվողը թույլ չի տալիս վերբեռնել «.sql» ֆայլերը, ես ֆայլը վերանվանել եմ «.txt»:

Նշում. Ֆայլը վերանվանել ".txt" - ից ".sql":

Քայլ 3: Ֆայլի սերվերի կազմաձևում

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

Քանի որ Instructable- ը թույլ չի տալիս վերբեռնել PHP ֆայլեր, ես ֆայլերը վերանվանել եմ «.txt»:

Նշում. Խնդրում ենք վերանվանել ֆայլերի ընդլայնումը ".php": Նաև մի մոռացեք փոխել "config.php" ֆայլի հավատարմագրերը:

Պարզապես ֆայլերը վերբեռնեք սերվերի վրա և պատրաստ եք:

Ես ձեզ կարճ տեղեկատվություն կտամ PHP ֆայլերի մասին:

db_config.php:

Այս ֆայլում պահվում են SQL սերվերին միանալու համար անհրաժեշտ բոլոր հավատարմագրերը:

db_connect:

Այս ֆայլում առկա է տվյալների բազայի հետ կապի համար անհրաժեշտ դասը:

insert.php:

NodeMCU- ն այս PHP ֆայլը կանչում է տվյալները GET մեթոդով սերվերին վերբեռնելու համար: Այս ֆայլը նաև պատասխանատու է նույն տվյալները SQL սերվերում պահելու համար:

retrieve.php:

Օգտատերը/Հաճախորդն այս PHP- ն անվանում է GET մեթոդով: Սերվերը հաշվարկում է օգտագործողի և բոլոր մոդուլների միջև հեռավորությունը: Այնուհետև մոտակա մոդուլի տվյալները ուղարկվում են որպես պատասխան հաճախորդին JSON/XML ձևաչափով `ըստ հաճախորդի նախընտրածի:

update.php:

Այս PHP ֆայլը մոդուլը կանչում է ամեն օր որոշակի ժամի ՝ ստուգելու համար, թե արդյոք մոդուլը գործարկու՞մ է որոնվածի վերջին տարբերակը: Պարզապես տեղադրեք վերջին ".bin" ֆայլը ֆայլերի սերվերի մեջ և ֆայլի փոփոխականի մեջ նշեք ֆայլի գրացուցակը:

Եթե այս շատ ֆայլեր սկզբում սարսափելի են թվում, հաջորդ քայլին ես ներառել եմ օգտվողի փաստաթղթերը:

Քայլ 4: Օգտվողի փաստաթղթավորում

Օգտվողի փաստաթղթավորում
Օգտվողի փաստաթղթավորում
Օգտվողի փաստաթղթավորում
Օգտվողի փաստաթղթավորում

Ներածություն:

Եղանակի API- ն ապահովում է պարզ ինտերֆեյս ՝ երկրի մակերևույթի վրա գտնվող վայրերի եղանակի տվյալները պահանջելու համար: Դուք պահանջում եք եղանակի մասին տեղեկատվություն որոշակի լայնության/երկայնության զույգի համար `ելքային ձևաչափով: API- ն վերադարձնում է ջերմաստիճանի, խոնավության, ճնշման և օդի որակի ինդեքսը, որը վերջին անգամ գրանցվել է մոտակա մոդուլի կողմից պահանջվող վայրից:

Նախքան ձեր սկսելը:

Այս փաստաթուղթը նախատեսված է վեբ կայքերի և բջջային ծրագրավորողների համար, ովքեր ցանկանում են եղանակի վերաբերյալ տեղեկատվություն ներառել մշակվող հավելվածի վրա: Այն ներկայացնում է օգտագործումը ՝ օգտագործելով API- ն և առկա պարամետրերի տեղեկատու նյութը:

Եղանակի տվյալների հարցումներ

Եղանակի API- ի հարցումները կառուցված են որպես URL տող: API- ն վերադարձնում է եղանակի տվյալները երկրագնդի մի կետի համար, որը նշվում է լայնություն/երկայնություն զույգով: Նկատի ունեցեք, որ եղանակային տվյալների ճշգրտությունն ուղղակիորեն համամասնական է տարածքում տեղադրված մոդուլների խտությանը:

Եղանակի API- ի հարցումը վերցնում է հետևյալ ձևը

example.com/retrieve.php?lat=25.96446&lon=53.9443&format=json

Որտեղ ելքային ձևաչափը (ձևաչափը) կարող է լինել հետևյալ արժեքներից որևէ մեկը

  • JSON (խորհուրդ է տրվում), ցույց է տալիս ելքը JavaScript Object Notation- ում (JSON); կամ
  • XML, ցույց է տալիս արտադրանքը XML- ում, փաթաթված հանգույցի մեջ:

Հարցման պարամետրեր

Ինչպես ստանդարտ է բոլոր URL- ներում, պարամետրերը բաժանվում են օգտագործելով ampersand (&) նիշը: Ստորև նշված են պարամետրերի ցանկը և դրանց հնարավոր արժեքները:

Պահանջվող պարամետրեր

  • lat: Ներկայացնում է որոնման վայրի լայնությունը: (օրինակ ՝ լատ = 19.56875)
  • lon: Ներկայացնում է որոնման վայրի երկայնությունը: (օրինակ ՝ lon = 72.97568)

Լրացուցիչ պարամետրեր

ձևաչափ. Նշում է եղանակի տվյալների արձագանքման ելքային ձևաչափը: Այն կարող է լինել կամ JSON կամ XML: Կանխադրվածը JSON է: (օրինակ ՝ ձևաչափ = json կամ ձևաչափ = xml)

Եղանակի արձագանքներ

Յուրաքանչյուր վավեր հարցման համար ժամային գոտու ծառայությունը կպատասխանի հարցման URL- ում նշված ձևաչափով: Յուրաքանչյուր պատասխան կպարունակի հետևյալ տարրերը.

  • հաջողություն. արժեք, որը ցույց է տալիս պատասխանի կարգավիճակը:

    • 0: Բացասական; ցույց է տալիս, որ հարցումը սխալ է ձևավորված:
    • 1 ՝ հաստատող; ցույց է տալիս, որ հարցումը հաջող է:
  • հաղորդագրություն. տող, որը ցույց է տալիս հարցման սխալ ձևի պատճառը: Հասանելի է միայն այն դեպքում, երբ կարգավիճակը բացասական է:
  • տվյալներ. եղանակի բազմաթիվ պարամետրերով զանգված:

    • ջերմաստիճանը `ջերմաստիճանի տվյալները:
    • hum: խոնավության առկայության տվյալները:
    • pres. բացարձակ ճնշման տվյալները:
    • aqi: օդի որակի ներկա ինդեքսը:

Երկու ձևաչափերի պատասխանի օրինակները կարելի է տեսնել պատկերներում:

Քայլ 5: Մոդուլի տեղադրում

Մոդուլի կարգավորում
Մոդուլի կարգավորում
Մոդուլի կարգավորում
Մոդուլի կարգավորում

Ստեղծվում է մուտքի կետ և կայքէջը տեղակայվում է IP հասցեում (Լռելյայն ՝ 192.168.4.1) ՝ սարքի կառավարիչից/օգտագործողից հավատարմագրերը ստանալու առաջին իսկ բեռնման ժամանակ, կամ եթե մոդուլը չի գտնում արդեն պահված հավատարմագրերը EEPROM:

Օգտագործողը պետք է մուտքագրի SSID և գաղտնաբառ, որին օգտվողը ցանկանում է, որ մոդուլը միանա: Լայնությունը և երկայնությունը ինքնաբերաբար լրացվում են, եթե թույլ եք տալիս դիտարկիչին մուտք գործել տեղ:

Բոլոր մանրամասները մուտքագրելուց հետո կտտացրեք «ՈENDԱՐԿԵԼ» կոճակին, այնուհետև բոլոր հավատարմագրերը գրված են մոդուլի EEPROM- ում:

Այս քայլը շատ կարևոր է, քանի որ մոդուլների զանգվածային արտադրության ընթացքում անհնար է ծրագրավորել բոլոր մոդուլները `դրա գտնվելու վայրի ճշգրիտ տվյալներով և WiFi հավատարմագրերով: Բացի այդ, նպատակահարմար չէ կոդի կոդավորել ծրագրի հավատարմագրերը, քանի որ եթե մենք ընդհանրապես պետք է մոդուլը տեղափոխենք այլ վայր կամ ցանկանում ենք փոխել WiFi- ի հավատարմագրերը, մենք պետք է մոդուլը ծրագրավորենք: Այս դժվարություններից խուսափելու համար սկզբնական տեղադրման գործառույթն իրականացվում է:

Քայլ 6: Այժմ ժամանակն է տվյալները ներդնել ամպի մեջ:

Այժմ ժամանակն է տվյալները ներդնել ամպի մեջ
Այժմ ժամանակն է տվյալները ներդնել ամպի մեջ
Այժմ ժամանակն է տվյալները ներդնել ամպի մեջ
Այժմ ժամանակն է տվյալները ներդնել ամպի մեջ

Նախորդ բոլոր քայլերն ավարտվելուց հետո ժամանակն է թույլ տալ, որ մոդուլը վերբեռնի տվյալները սերվերում: Այն ինքնաբերաբար սկսում է վերբեռնել հավատարմագրերը պահպանելուց հետո:

Այն «insert.php» - ին անվանում է որպես API զանգ ՝ փոխանցելով GET մեթոդով ուղարկվող բոլոր պարամետրերը:

Ստորև բերված կոդի հատվածը ցույց է տալիս, թե ինչպես են պարամետրերը մշակվում:

եթե (isset ($ _ GET ['temp']) && isset ($ _ GET ['hum']) && isset ($ _ GET ['pres']) && isset ($ _ GET ['aqi']) && isset ($ _ GET ['mac']) && isset ($ _ GET ['lat']) && isset ($ _ GET ['lon']))) 2. {3. // հիմնական ծրագիր 4.}

Ինչպես և այնպես, բոլոր մոդուլները սկսում են տվյալների վերբեռնում:

Նշում. Իջեցրեք բեռնման հաճախականությունը կոդի մեջ, եթե կարծում եք, որ սերվերը գերբեռնված է:

Քայլ 7: Օդային (OTA) թարմացում

Օդային (OTA) թարմացում
Օդային (OTA) թարմացում

Այն բանից հետո, երբ մոդուլը ամբողջովին կարգավորվում է և սկսում է վերբեռնել տվյալները, այն ամեն օր ստուգում է ծրագրակազմի թարմացումների առկայությունը ծրագրում նշված կոնկրետ ժամին: Եթե գտնում է որևէ մեկը, այն ներբեռնում և թարթում է դրանում առկա երկուական ֆայլը: Իսկ եթե դա չլինի, տվյալների բեռնման բնականոն աշխատանքը շարունակվում է:

Նոր թարմացումը ստուգելու համար մոդուլը կանչում է «update.php» ՝ ուղարկելով MAC հասցեն իր հարցման վերնագրում: Այնուհետև սերվերը ստուգում է, արդյոք այդ կոնկրետ MAC հասցեն ունի՞ որևէ նոր թարմացում, եթե այո, ապա այն ի պատասխան ուղարկում է վերջին որոնվածի երկուական ֆայլը:

Այն նաև ստուգում է մոդուլի հիմնական նույնականացման համար անհրաժեշտ բոլոր անհրաժեշտ վերնագրերը:

Քայլ 8: Ինչպես օգտվողը/հաճախորդը կարող են մուտք գործել տվյալներ…

Ինչպես օգտվողը/հաճախորդը կարող են մուտք գործել տվյալներ…
Ինչպես օգտվողը/հաճախորդը կարող են մուտք գործել տվյալներ…
Ինչպես օգտվողը/հաճախորդը կարող են մուտք գործել տվյալներ…
Ինչպես օգտվողը/հաճախորդը կարող են մուտք գործել տվյալներ…
Ինչպես օգտվողը/հաճախորդը կարող են մուտք գործել տվյալներ…
Ինչպես օգտվողը/հաճախորդը կարող են մուտք գործել տվյալներ…

Սերվերից տվյալներ մուտք գործելը բավականին պարզ է: Պարզապես զանգահարելով «retrieve.php» ՝ մենք ի պատասխան JSON ձևաչափով կստանանք եղանակի տվյալները: Դրանից հետո պարզապես JSON- ի տվյալները վերլուծելու խնդիր է `առանձին տարրերին մուտք գործելու համար: Նման է XML պատասխանի դեպքում: Օգտագործողը միշտ կարող է նշել պատասխանի նախընտրելի ձևաչափը, որի դեպքում օգտագործողը հարմար է աշխատել: Եթե օգտագործողը չի նշում ձևաչափը, կանխադրված ձևաչափը JSON է:

Նմուշի հարցումը կատարվում է POSTMAN գործիքի միջոցով `API- ի աշխատանքը ստուգելու համար:

JavaScript- ում JSON պատասխանի վերլուծման օրինակ ցուցադրվում է ներքևի կոդի հատվածում:

var url = "https://example.com/retrieve.php?lat=19.044848&lon=72.8464373";; գործառույթը httpGet (theUrl) {var xmlHttp = new XMLHttpRequest (); xmlHttp.open ("GET", theUrl, false); // կեղծ համաժամանակյա հարցման համար xmlHttp.send (null); վերադարձնել xmlHttp.responseText; } var myVar = httpGet (url); var obj = JSON.parse (myVar); document.getElementById («aqi»). innerHTML = obj.data [0].aqi; document.getElementById («ջերմաստիճան»). innerHTML = Math.round (obj.data [0].temp) + "° C"; document.getElementById ("temp"). innerHTML = Math.round (obj.data [0].temp) + "° C"; document.getElementById («խոնավություն»). innerHTML = Math.round (obj.data [0].hum) + "%"; document.getElementById («ճնշում»). innerHTML = Math.round (obj.data [0].pres) + "mb";

Այս քայլի վերջում հասանելի է օրինակ HTML- էջի աղբյուրը, որը վերլուծում է JSON պատասխանը:

Նշում. Ֆայլի ընդլայնումը փոխեք «.html» - ի:

Քայլ 9: Այս ծրագրի սահմանափակումները

  • Նախագիծը օգտագործում է GET ՝ տվյալները ուղարկելու համար. չնայած այն գործ չունի զգայուն տվյալների հետ, տվյալները կարող են հեշտությամբ շահարկվել, քանի որ աղբյուրների իսկությունը ստուգելու որևէ մեխանիզմ չունի, բացի վերնագրերը ստուգելուց, որոնք հեշտությամբ կարող են փոփոխվել և նույնիսկ սովորական սարքը կարող է կեղծվել կարծես եղանակային մոդուլ լինի:
  • Քանի որ մոդուլը միայն ապավինում և կախված է մուտքի այլ կետից (WIFI) `ուղարկելու այն տվյալները, որոնք մեծ մասամբ այլ կազմակերպությունների կլինեին: Եթե ինչ-ինչ պատճառներով մուտքի կետը ընդհանրապես անջատված է, մոդուլը չի կարողանա տվյալներ ուղարկել:
  • Չնայած նախագիծը կառուցված է առկա համակարգի ճշգրտությունը բարձրացնելու համար, շուկայում առկա սենսորը սպասվածից ավելի քիչ ճշգրիտ է, ինչը արդյունքում հանգեցնում է իր հիմնական նպատակի ձախողման:
  • Նախագիծը պլանավորելիս ես պլանավորում էի ներառել մի ռեժիմ, որի դեպքում սերվերը միջին արժեքը գնահատում է ըստ գտնվելու վայրի ՝ սխալի ուղղման համար: Բայց այս գործառույթն իրականացնելիս ես հասկացա, որ դրան անհրաժեշտ են երրորդ կողմի API- ներ ՝ կոորդինատները աշխարհագրական տարածաշրջաններ թարգմանելու համար:

Քայլ 10: Լրացուցիչ բարելավումներ, որոնք կարող են կատարվել այս ծրագրի համար:

  • Մոդուլի ճշգրտությունը կարող է հետագայում բարելավվել `հատուկ հարմարեցնելով սենսորները հատուկ նպատակի համար` շուկայում առկա ընդհանուր մոդուլից օգտվելու փոխարեն:
  • Մոդուլը կարող է փոփոխվել `նույնիսկ ավելի ինքնուրույն աշխատելու համար` օգտագործելով հատուկ չիպ, որը անլար հաղորդակցվում է Cell-tower- ի հետ `տվյալներն ուղարկելու համար` դրանով իսկ բարելավելով սխալների հանդուրժողականությունը:
  • Արևային վահանակը և մարտկոցի համակարգը կարող են օգտագործվել ESP- ի խոր քնի ռեժիմի հետ միասին ՝ դրանով իսկ բարելավելով էներգիայի արդյունավետությունը և այն ավելի անկախ դարձնելով արտաքին էներգիայի աղբյուրից:
  • POST- ը կարող է օգտագործվել տվյալներ ուղարկելու համար նույնականացման ինչ -որ մեխանիզմով, օրինակ ՝ տվյալների յուրաքանչյուր փոխանցման համար ցիկլային կոդերի օգտագործմամբ:
  • NodeMCU- ի փոխարեն, որը նախատիպային տախտակ է, մենք կարող ենք զանգվածային արտադրության մեջ օգտագործել սովորական միկրոկառավարիչ, որը ոչ միայն նվազեցնում է ծախսերը, այլև լավագույնս օգտագործում է համակարգի ռեսուրսները:
  • Google- ի աշխարհագրական տեղորոշման API- ի հետ համատեղ և ցանկացած հասանելի բաց WIFI- ին միանալով, մոդուլը կարող է աշխատել նույնիսկ առանց այն կազմաձևելու. պատրաստ է փոխանցել տվյալները գործարանից ՝ առանց որևէ կարգաբերման:

Քայլ 11: Մի քանի խոսք հանդիսատեսի համար:

Մի քանի խոսք հանդիսատեսի համար
Մի քանի խոսք հանդիսատեսի համար

Բարև տղերք, ես հասկանում եմ, որ սա ամենևին էլ սկսնակների համար հարմար ձեռնարկ չէ, քանի որ ես չեմ նշել յուրաքանչյուր մանրուք, որը պետք է լուսաբանվի: Եվ նաև, որ այս նախագիծը իսկապես հսկայական է ՝ ընդգրկվելու Ուսուցման մեջ: Այնուամենայնիվ, ես ամեն կերպ փորձում էի լուսաբանել նախագծի յուրաքանչյուր կարևոր կողմը: Ես նաև գիտեմ, որ նախագծի աշխատանքը ցուցադրող տեսահոլովակը իսկապես հիանալի կլիներ, բայց քանի որ սա իմ առաջին ուսանելի և անկեղծ ասած, սա իմ նմանատիպ բանի առաջին հրապարակումն է, ես բավականին նյարդայնանում էի տեսախցիկ.

Եթե ձեզ անհրաժեշտ է որևէ օգնություն այս նախագիծը կամ դրան նման բան պատրաստելու համար, պարզապես դիմեք ինձ [email protected] հասցեով, այլապես կարող եք մեկնաբանություն թողնել, ինչպես միշտ: Ես կփորձեմ օգնել իմ տղաներին իմ հնարավորությունների սահմաններում:

Շնորհակալություն!!

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