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

EAL - Արդյունաբերություն 4.0 GPS տվյալների հավաքագրում Rc մեքենայի վրա. 4 քայլ
EAL - Արդյունաբերություն 4.0 GPS տվյալների հավաքագրում Rc մեքենայի վրա. 4 քայլ

Video: EAL - Արդյունաբերություն 4.0 GPS տվյալների հավաքագրում Rc մեքենայի վրա. 4 քայլ

Video: EAL - Արդյունաբերություն 4.0 GPS տվյալների հավաքագրում Rc մեքենայի վրա. 4 քայլ
Video: Real shot, how Murphy beds are produced? 2024, Հունիսի
Anonim
EAL - Արդյունաբերություն 4.0 GPS տվյալների հավաքագրում Rc Car- ի վրա
EAL - Արդյունաբերություն 4.0 GPS տվյալների հավաքագրում Rc Car- ի վրա
EAL - Արդյունաբերություն 4.0 GPS տվյալների հավաքագրում Rc Car- ի վրա
EAL - Արդյունաբերություն 4.0 GPS տվյալների հավաքագրում Rc Car- ի վրա

Այս Ուղեցույցում մենք կխոսենք այն մասին, թե ինչպես ենք մենք GPS մոդուլ տեղադրում RC մեքենայի վրա և հավաքված տվյալները տեղադրում ենք վեբ էջ `հեշտ մոնիտորինգի համար: Մենք նախապես ուսուցանել էինք, թե ինչպես ենք պատրաստել մեր RC մեքենան, որը կարելի է գտնել այստեղ: Սա օգտագործում է նույն կառուցվածքը, չնայած մենք որոշել ենք ջնջել ուլտրաձայնային տվիչները և փոխարենը կիրառել ենք GPS մոդուլը: Նախագծում մենք ստեղծել ենք տվյալների բազա, որը պարունակում է GPS տվյալներ, և կառուցել ենք վեբ էջ, որի վրա տվյալները կարող են գտնվել, ինչպես նաև կիրառվել են քարտեզի վրա, այնպես որ կարող եք տեսնել, թե որտեղ է եղել մեքենան: Այցելեք Joerha.dk ՝ վեբ էջը դիտելու համար:

Վերևի հոսքագծում կարող եք տեսնել այս նախագծում օգտագործված տեխնոլոգիաների ակնարկը: Այս հրահանգից առավելագույնը ստանալու համար դուք պետք է ընտանիք ունենաք որոշ, եթե ոչ օգտագործվող բոլոր տեխնոլոգիաների հետ: Կապված է ըստ օգտագործման: Github- ի թերբեռնվածությունը նույնպես կօգնի, քանի որ մենք կապվել ենք մեր github պահոցների հետ:

Կոմունալ ծառայությունների ցանկ.

  • Github
  • Ազնվամորի PI/Raspbian

    Պիթոն

  • Node.js

    • Express.js
    • Sequelize.js
    • MySQL
  • HTML, CSS, JS

    Bootstrap

Քայլ 1: Տվյալների բազայի կարգավորում

Տվյալների բազայի կարգավորում
Տվյալների բազայի կարգավորում

Այս հատվածում մենք կխոսենք այն մասին, թե ինչպես ենք մենք կառուցում տվյալների բազայի համակարգը, որից հանվում են մեր GPS տվյալները: Տվյալների բազան կառուցված է MySQL- ում ՝ ըստ վերը նշված նկարի, որտեղ մենք ունենք երկու աղյուսակ ՝ «Օգտվողներ» և «GPSEntries»: Օգտվողների մեջ մենք ունենք «Id» ՝ որպես մեր հիմնական բանալին: Այն օգտագործվում է որպես եզակի նույնացուցիչ: «Անուն» -ը ներկայումս մուտք գործած օգտվողի անունն է: «Apikey» - ն այն եզակի բանալին է, որը տրված է օգտագործողին ՝ API մուտք գործելու համար: «Ակտիվ» է `ստուգել, արդյոք օգտվողը ակտիվ է, մենք կարող ենք այն անջատել, այնպես որ նա չի կարող մուտք գործել տվյալների բազա: «CreatedAt» - ը և «UpdatedAt» - ը կազմված են տվյալների բազայի ստեղծման գործընթացից:

«GPSEntries» աղյուսակում մենք ունենք GPS մոդուլից տվյալները պարունակող բոլոր հատկանիշները: «Timeամանակը» GPS մոդուլի ընթացիկ ժամանակն է, որը մենք օգտագործում ենք այն տեղադրելու ժամանակը ցուցադրելու համար: Այնուհետև մենք ունենք դիրք կոորդինատներում, ինչպես նաև «արագություն» և «ուղղություն»: Մենք ունենք նաև սխալի բազմաթիվ հատկանիշներ, որոնք ցույց են տալիս, որ GPS- ի տվյալների մեջ սխալ կա, կոորդինատներում ՝ fx: Մենք դրանք ավելացրել ենք տվյալների բազայում, բայց դրանք չենք ցուցադրում վեբ էջում: «UserId» - ը օտարերկրյա բանալին է, որը պարունակում է «id» - ը Users աղյուսակից: Այն օգտագործվում է ցույց տալու համար, թե որ օգտվողն է տեղադրել տվյալները:

Քայլ 2: API

API
API

Այս հատվածում մենք կխոսենք API- ի մասին, որը վերահսկում է տվյալների բազան և կպցնում տվյալները դրան: Վեբ API- ն կառուցված է Node.js- ի հետ, որն օգտագործում է Express.js և Sequalize.js:

Node.js- ն օգտագործվում է JavaScript սերվերի վրա աշխատելու համար, որտեղ սովորաբար այն հիմնականում օգտագործվում է վեբ էջի հաճախորդների կողմից սցենարագրման համար:

Express.js- ը այն շրջանակն է, որը մենք օգտագործում էինք API- ի կառուցման համար:

Sequalize.js- ն օգտագործվում է Gps տվյալների և տվյալների բազայի հատկանիշների միջև կապեր ստեղծելու համար: Դրա համար այն օգտագործում է մի մեթոդ, որը կոչվում է ORM (օբյեկտ-հարաբերական քարտեզագրում): Սա նաև այն վայրն է, որտեղ ստեղծվում է «CreatedAt» և «UpdatedAt» (ցուցադրվում է 1 -ին քայլում):

API- ն կարող է օգտագործվել այցելելով api.joerha.dk: Այնուհետև url- ին ավելացրեք /gps, որը ցույց կտա տվյալների բազայի բոլոր տվյալները JSON ձևաչափով: Ձեր գրառումների քանակը վերահսկելու համար կարող եք url- ին ավելացնել /2 (Օգտվողը) և /x (մուտքերի թիվը): Fx api.joerha.dk/gps/2/10 ցույց կտա 10 վերջին գրառումները: Ֆորմատավորված տվյալների դուրսբերումը ցուցադրվում է վերևի նկարում:

Կոդը կարելի է գտնել այստեղ ՝ Github

Քայլ 3: GPS/Python հավելված

GPS/Python հավելված
GPS/Python հավելված
GPS/Python հավելված
GPS/Python հավելված
GPS/Python հավելված
GPS/Python հավելված

Այս հատվածում մենք կխոսենք սցենարի մասին, որն աշխատում է ազնվամորու վրա և հավաքում է GPS տվյալները և ուղարկում այն API- ին:

GPS- ից տվյալները հավաքելու համար մենք օգտագործում ենք gpsd կոչվող մի դևոն (Նկար 1): Այստեղ մենք հավաքում ենք տվյալները, որոնք տեղադրում ենք տվյալների բազայում և մեր GPSEntries աղյուսակի հիմքը: Սցենարը, որը տվյալները հանում է gpsd- ից և տեղադրում API- ին, գրված է python- ում:

Դիմումը նախաստորագրում է շարանը, այնպես որ այն կարող է միաժամանակ գործարկել ինչպես gpsd, այնպես էլ մեր ծրագիրը: Gpsd- ի տվյալները անընդհատ հոսվում են, քանի դեռ GPS- ն ակտիվ է (Նկար 2):

Այնուհետև մենք կատարում ենք մի հանգույց, որը անընդհատ տեղադրում է իր բեռնվածությունը GPS- ի տվյալները պարունակող API- ին: Տվյալները ձևաչափվում են որպես JSON: Theանրաբեռնվածությունը բաղկացած է GPSD- ում տեսվող հատկանիշներից:. Fix պիտակը գործում է որպես ընթացիկ տվյալների ակնթարթային պատկեր և այն ուղարկում է API- ին: Դա արվում է request.post- ի միջոցով և օգտագործում է url և API բանալին: Տպումը (r.status_code) դուրս է գալիս օգտվողին ՝ իմանալու համար, թե արդյոք տվյալները ստացվել են ճիշտ: Time.sleep (0.5) - ն, թե որքան հաճախ են տվյալները տեղադրվում (Նկար 3)

Կոդը կարելի է գտնել այստեղ ՝ Github

Քայլ 4: Webրագրի վեբ էջ

Webրագրի վեբ էջ
Webրագրի վեբ էջ

Այս հատվածում մենք կխոսենք այն մասին, թե ինչպես ենք մենք կազմել մեր էջը, որը ցույց է տալիս տվյալները և նախագծի վերաբերյալ այլ տեղեկություններ: Կայքը կառուցված է HTML, css և JS- ով: Սկսելու համար մենք օգտագործեցինք Bootstrap 4.0 -ը, որը գրադարան է HTML- ի, css- ի և JS- ի համար: Այն գալիս է բազմաթիվ գործառույթներով, որոնք օգնում են ձեզ կառուցել ձեր կայքը: Մենք այն օգտագործել ենք վերևում գտնվող navbar- ի համար, ինչպես նաև այն տողերի և սյունակների կարգավորումները, որոնցով կառուցված է կայքը: Հետո մենք ունենք մեկ այլ փոքր css սցենար, որը վերահսկում է ֆոնի և վերնագրերի գույները: Առանց դրա, մենք օգտագործել ենք lightbox կոչվող գրադարանը, այնպես որ կարող եք սեղմել նկարների վրա և դրանք բացվել: Կայքի բովանդակությունը պարունակում է google քարտեզ, տվյալների աղյուսակ, գործող մեքենայի տեսանյութ և հղում հենց այս էջին:

Google- ի քարտեզն ամենահետաքրքիրն է: Քարտեզը բեռնված է google API- ի միջոցով, որտեղ այն աշխատելու համար տեղադրված է յուրահատուկ API բանալին: Տվյալները հոսում են քարտեզի վրա 500 մմ ընդմիջումով: Մենք կատարել ենք գործառույթ, որտեղ տվյալների բազայի վերջին 100 կետերը ցուցադրվում են որպես մարկերներ, այնպես որ կարող եք հետևել, թե որտեղ է եղել մեքենան: Դա արվում է այն բանի միջոցով, որը կոչվում է AJAX զանգ:

GPS տվյալների աղյուսակի տվյալների հավաքածուները պահանջվում են նույն կերպ: Աղյուսակում կարող եք տեսնել վերջին 10 գրառումները, որոնք թարմացվել են իրական ժամանակում, երբ GPS- ն ակտիվ է: Մենք տվյալների բազայից վերցնում ենք 500 ms միջակայքում:

Կոդը կարելի է գտնել այստեղ ՝ Github

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