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

Pանապարհների քարտեզագիր ՝ 6 քայլ
Pանապարհների քարտեզագիր ՝ 6 քայլ

Video: Pանապարհների քարտեզագիր ՝ 6 քայլ

Video: Pանապարհների քարտեզագիր ՝ 6 քայլ
Video: Угрюм-река (1969) (1 серия) фильм 2024, Նոյեմբեր
Anonim
Pանապարհների քարտեզագրող
Pանապարհների քարտեզագրող
Pանապարհների քարտեզագրող
Pանապարհների քարտեզագրող
Pանապարհների քարտեզագրող
Pանապարհների քարտեզագրող

Այս IoT նախագծում մենք միացնում ենք NEO-6M (GPS մոդուլ) ՝ Arduino- ի միջոցով տեղային տվյալները հասցնելու Excel թերթիկին, որը կպահվի համակարգչում: Այնուհետև Tableau Public- ի հետ մենք ստեղծում ենք այս տվյալների տվյալների արտացոլում `մեր բռնած ճանապարհը քարտեզագրելու համար: Թեև սա իրական ժամանակում տվյալների հավաքագրման և ներկայացման մի եղանակ է ՝ խիստ փոխկապակցված տվյալների մեջ, այս գործընթացը կարող է կիրառվել նաև տվյալների վրա հիմնված այլ նախագծերի դեպքում:

Քայլ 1: Նյութերի ձեռքբերում

Նյութերի ձեռքբերում
Նյութերի ձեռքբերում

Այս նախագծի համար ձեզ հարկավոր է հետևյալը.

  • NEO-6M GPS մոդուլ
  • Արդուինո Ունո
  • Արական/արական jumper լարեր (ձեզ հարկավոր է 4 լար)
  • USB 2.0 մալուխ A տեսակից մինչև B
  • Այս ծրագրերով համակարգիչ ՝ Tableau Public, Arduino IDE (TinyGPS ++ - ով) և մշակում

Քայլ 2: Սարքերի տեղադրում

Սարքերի տեղադրում
Սարքերի տեղադրում
Սարքերի տեղադրում
Սարքերի տեղադրում

Մենք նախ պետք է ստեղծենք GPS մոդուլը Arduino UNO- ի հետ, որպեսզի Arduino- ն մեզ տա տվյալների ցուցադրման ինտերֆեյս: NEO-6M- ին միացված չորս լարերից յուրաքանչյուրը համապատասխանում է կոնկրետ նավահանգիստներին: Եթե ձեր NEO-6M- ը լարերի հետ չի գալիս, դուք ստիպված կլինեք այն ուղղակիորեն միացնել jumper լարերով: Վերոնշյալ գծապատկերում կարմիրը համապատասխանում է ուժին (VCC), սևը ՝ գետնին (GND), դեղինը ՝ տվյալներ փոխանցելու համար (TxD), իսկ սպիտակը ՝ տվյալներ ստանալու (RxD): Մենք կապում ենք այս լարերը արական/արական jumper լարերին, որպեսզի կարողանանք դրանք միացնել Arduino- ին: Հետևելով վերևի գծապատկերին, մենք միացնում ենք հողալարերը Arduino- ի GND թվային կապին, TxD մետաղալարը ՝ 4 -ին, RxD մետաղալարը ՝ ~ 3 -ին, իսկ VCC լարերը ՝ 5V լարման համար: Հետագա քայլին մենք պետք է TxD և RxD սահմանենք SoftwareSerial- ի ճիշտ թվերով:

Երբ երկու սարքերը միացված են միմյանց, մենք պետք է ապահովենք էներգիայի աղբյուր: Միացրեք USB 2.0 մալուխը ձեր նոութբուքին և NEO-6M- ի լույսը պետք է լուսավորվի:

Քայլ 3: Arduino- ի կոդավորումը ՝ տվյալները հանելու համար

Arduino- ի կոդավորումը տվյալների հանման համար
Arduino- ի կոդավորումը տվյալների հանման համար

Այժմ, երբ մենք ունենք սարքեր ՝ արբանյակներից GPS տվյալներ հավաքելու համար, մենք կգրենք ծածկագիր ՝ մեր ուզած GPS տվյալները վերլուծելու համար: Ենթադրելով, որ ազդանշան եք վերցրել (իմ GPS մոդուլը կապույտ թարթում է), NEO-6M- ը լռելյայն տպում է սերիական մոնիտորի հումքային տվյալները NMEA հաղորդագրությունների տեսքով, որոնք $ GP- ի տեսք ունեն, որին հաջորդում են ավելի շատ տառեր և շարք թվերի. Վերոնշյալ պատկերը տալիս է ընդհանուր պատկերացում այն մասին, թե ինչ պետք է ցուցադրվի ձեր սերիական մոնիտորի վրա, երբ տեղադրվի հիմնական Arduino կոդը:

Իմ կցած կոդը բացատրելու համար (կամ եթե ցանկանում եք ինքներդ փորձել ծածկագրել այն), նախ պետք է ներառեք ինչպես SoftwareSerial, այնպես էլ TinyGPS ++ գրադարանները (վերջիններիս համար ՝ Էսքիզ> Ներառել> Ավելացնել. ZIP գրադարան): SoftwareSerial- ը թույլ է տալիս մեզ ունենալ սերիական կապ; TinyGPS ++ - ը մեզ տալիս է հեշտ գործիք ՝ նպատակային տեղեկատվությունը կարդալու տեսքով տպելու համար: Համոզվեք, որ SoftwareSerial օբյեկտը նախաստորագրում եք Arduino- ի համապատասխան կապում: Կարգավորման գործառույթում մենք օգտագործում ենք 9600 որպես բաուդ արագություն:

Այս հրահանգի նպատակների համար մենք օղակի գործառույթում տպելու ենք ընդամենը յոթ տեսակի տվյալներ. Լայնություն (աստիճան), երկայնություն (աստիճան), արագություն (կմ), ընթացք (աստիճան), բարձրություն (կմ), արբանյակների քանակ օգտագործել և hdop. Դուք կարող եք որոնել այս տեղեկատվությունը տպագրելու համար Արդուինիանայի գրադարանում: Ընդհանուր ձևն է Serial.print (): Օրինակ ՝ երկայնություն տպելու համար մենք մուտքագրում ենք Serial.print (gps.location.lng (), 6): 6 -ը ներկայացնում է, թե քանի թվանշան ենք ուզում տասնորդական կետից աջ:

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

Քայլ 4: Լսելու համար մշակման օգտագործումը

Օգտագործելով Processing to Listen
Օգտագործելով Processing to Listen

Մինչ մենք ունենք Arduino IDE- ի համար ստեղծված կոդը, մենք ունենք այս տվյալների պահպանման խնդիր: Այս պահին մենք կարող ենք դիտել սերիական մոնիտորի տվյալները միայն այն ժամանակ, երբ մենք դրանք հավաքում ենք: Այս տվյալները մուտքագրելու բազմաթիվ եղանակներ կան, բայց ես հիմնականում ընտրեցի Processing- ը, քանի որ դրա ինտերֆեյսը նմանակում է Arduino IDE- ին և օգտագործում է Java, ինձ ծանոթ լեզու (նշեք, որ դուք կարող եք նաև վերահսկել Arduino- ի տախտակը Processing- ով, եթե ներբեռնում եք Firmata- ն): Մշակումը լսում է Arduino- ին միացված պորտը և հնարավորություն ունի շահարկել տվյալները, որոնք կարդացվում են սերիական մոնիտորի վրա: Այս նավահանգստի անունը գտնելու համար վերադառնաք ձեր Arduino IDE ֆայլին և ստուգեք Գործիքներ> Պորտ:

Ես տրամադրել եմ Մշակման ծածկագիրը, բայց ահա արագ ակնարկ, թե ինչպես է աշխատում կոդը:

Նախքան կարգաբերման գործառույթը, համոզվեք, որ դուք ունեք փոփոխականներ նավահանգստի, ստացված աղյուսակի, տողի, որի հետ մենք աշխատելու ենք, և ֆայլի անունը: Այնուհետև տեղադրման գործառույթում կան պարամետրեր ՝ ձեր Run պատուհանի չափը սահմանելու համար, բայց այդ թվերը չեն ազդում մեր ֆունկցիոնալության վրա (օրինակ ՝ դրանք սահմանել (500, 500)): Երբ նավահանգիստը նախաստորագրում եք, օգտագործեք նավահանգստի անունը String ձևով և 9600 baud փոխարժեքով: Վերջապես, ստեղծեք ինը սյունակ (GPS- ի յոթ կատեգորիաների, ժամանակի և ամսաթվի համար) `սեղանը նախաստորագրելու համար:

Ոչ ոքի գործառույթում մենք օգտագործում ենք ներկառուցված ամսաթվի և ժամի գործառույթները ՝ GPS տվյալների հավաքածուի արդյունահանման համար հետևելու համար: Այժմ Arduino- ի տվյալների հոսքը կարդալու և ճիշտ ժամանակի և ամսաթվի համապատասխան վերնագրերի տակ դնելու համար մենք օգտագործում ենք կանոնավոր արտահայտություններ:

Ես օգտագործում եմ regex ՝ matchAll ֆունկցիայի ճշգրիտ տվյալները վերլուծելու համար, որը փնտրում է ցանկացած արտահայտություն հավասար նշանի և ստորակետի միջև (սահմանազատիչները, որոնք ես դրել եմ իմ Arduino ծածկագրում): Սա հետագայում տեղադրում է բոլոր համապատասխան պիտակները ՝ թվային տվյալները, երկչափ զանգվածում: Այնուհետև մենք կարող ենք կոչ անել այս զանգվածների ինդեքսները `դրանք տեղադրելու Excel թերթի վերնագրերի տակ:

Նոր.csv ֆայլը պահելու համար մենք օգտագործում ենք ստեղնը ՝ Run պատուհանը փակելու համար: Որքան երկար սպասեք բանալին սեղմելու համար, այնքան ավելի շատ տվյալներ կհավաքեք: Հետևելով մեկ այլ ուղեցույցի ձևին, ես նաև որոշեցի ֆայլը պահել տվյալների պանակում `ամսաթվով և ժամով որպես ֆայլի անուն:

Քայլ 5: Տվյալների ցուցադրում Tableau Public- ում

Տվյալների ցուցադրում Tableau Public- ում
Տվյալների ցուցադրում Tableau Public- ում
Տվյալների ցուցադրում Tableau Public- ում
Տվյալների ցուցադրում Tableau Public- ում
Տվյալների ցուցադրում Tableau Public- ում
Տվյալների ցուցադրում Tableau Public- ում

Վերջնական քայլը ներառում է տվյալների որոշակի արտացոլում: Կան բազմաթիվ ծրագրեր տվյալների վիզուալիզացիայի ստեղծման և ցուցադրման համար, այսինքն ՝ Plotly, բայց այս նախագծի համար մենք կօգտագործենք Tableau: Բացեք Tableau Public- ը և բացեք պահպանված Excel ֆայլը որպես տեքստային ֆայլ: Աշխատաթերթ ստեղծելու համար կտտացրեք ներքևի ձախ մասում գտնվող թերթ 1 -ին:

Քանի որ մենք աշխատում ենք GPS տվյալների հետ, մենք կօգտագործենք քարտեզ ՝ մեր տեղեկատվությունը պատկերելու համար: Ձախ սյունակում, որտեղ գրված է «Միջոցառումներ», մենք երկայնությունը քարշ կտանք սյուների մեջ, իսկ լայնությունը ՝ տողերի վերևում: Tableau- ն երկու միջոցներն էլ կանխադրված է դարձնում AVG, այնպես որ կտտացրեք պայմանների կողքին գտնվող բացվող կետին և երկուսն էլ փոխեք դեպի Dimension: Այժմ քարտեզը պետք է ունենա ուղի, որը ցուցադրվում է հավաքված լայնության և երկայնության արժեքների միջոցով:

Ձեր տվյալները սխալի համար մաքրելու համար (ինչը կարող է կատարվել նաև Tableau- ն բացելուց առաջ), կարող եք ընտրել մի քանի տեղերի շրջանակներ բացառելը `կտտացնելով դրանք և ընտրելով տարբերակը: Իմ GPS մոդուլը 100% ճշգրիտ չէ, քանի որ իմ ուղու որոշ հատվածներ տեղակայված չեն, բայց ընդհանուր ուղին գրանցված է:

Քայլ 6: Վիզի կատարելագործում

Վիզի մաքրում
Վիզի մաքրում

Վերջին մասն այն է, որ այս տվյալները դարձնեն ավելի ընթեռնելի: Եթե ցանկանում եք փողոցային համատեքստ, կարող եք գնալ Քարտեզ> Քարտեզի շերտ> Փողոցներ և մայրուղիներ: Ազատորեն փորձեք այլ նշանների հետ: Ես արագությունը քաշեցի Գույնի վրա ՝ ցույց տալու համար, թե ինչպես է արագության բարձրացման դեպքում գույնի ինտենսիվությունը մեծանում: Ես նաև օգտագործեցի Մանրամասն ՝ դասընթացի համար Պիտակի փոխարեն, քանի որ Պիտակը թվերը կցուցադրեր քարտեզի վրա, մինչդեռ ես ցանկանում էի, որ տեղեկատվությունը հայտնվեր միայն այն դեպքում, երբ դուք սավառնել եք տեղադրության կետերի վրա:

Այժմ, երբ դուք զգացել եք տվյալների հավաքագրման և տվյալների վիզուալիզացիայի վրա եղածը ցուցադրելու ամբողջ գործընթացը, կարող եք դա կիրառել այլ նախագծերի դեպքում:

Պինգդի Հուանգի կողմից, ամառ 2018

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