תוכן עניינים:

ויזואליזציה של נתוני תחבורה באמצעות מפת Google: 6 שלבים
ויזואליזציה של נתוני תחבורה באמצעות מפת Google: 6 שלבים

וִידֵאוֹ: ויזואליזציה של נתוני תחבורה באמצעות מפת Google: 6 שלבים

וִידֵאוֹ: ויזואליזציה של נתוני תחבורה באמצעות מפת Google: 6 שלבים
וִידֵאוֹ: איך עושים מפות חום במערכת חצב של משרד התחבורה? 2024, יולי
Anonim
ויזואליזציה של נתוני תחבורה באמצעות מפת Google
ויזואליזציה של נתוני תחבורה באמצעות מפת Google

בדרך כלל אנו רוצים להקליט נתונים שונים במהלך רכיבה על אופניים, הפעם השתמשנו ב- Wio LTE חדש כדי לעקוב אחריהם.

שלב 1: דברים המשמשים בפרויקט זה

רכיבי חומרה

  • Wio LTE האיחוד האירופי גרסה v1.3- 4G, Cat.1, GNSS, תואם אספרואינו
  • גרוב - חיישן קצב לב מהאוזן
  • גרוב - 16 x 2 LCD (שחור על צהוב)

אפליקציות תוכנה ושירותים מקוונים

  • Arduino IDE
  • PubNub Publish/Subscribe API
  • גוגל מפות

שלב 2: סיפור

Image
Image

שלב 3: חיבור חומרה

תצורת אינטרנט
תצורת אינטרנט

התקן אנטנות GPS ו- LTE ל- Wio LTE וחבר אליו את כרטיס ה- SIM שלך. חבר את חיישן קצב הלב של האוזן ותצוגת 16x2 ליציאת D20 ו- I2C של Wio LTE.

אתה יכול לשנות את חיישן קצב הלב של האוזן לחיישנים אחרים שאתה אוהב. אנא עיין בסוף מאמר זה.

שלב 4: תצורת אינטרנט

חלק 1: PubNub

לחץ כאן התחבר או רשום חשבון PubNub, PubNub משמש להעברת נתונים בזמן אמת למפה.

פתח את פרויקט הדגמה בפורטל הניהול של PubNub, תראה מפתח פרסום ומפתח הרשמה, זכור אותם לתכנות תוכנה.

חלק 2: מפת גוגל

אנא עקוב כאן כדי לקבל מפתח API של מפת Google, הוא ישמש גם בתכנות תוכנה.

שלב 5: תכנות תוכנה

תכנות תוכנה
תכנות תוכנה

חלק 1: Wio LTE

מכיוון שאין ספריית PubNub עבור Wio LTE, אנו יכולים לשלוח את הנתונים שלנו מבקשת HTTP, ראה מסמך API REST של PubNub.

כדי ליצור חיבור HTTP באמצעות כרטיס ה- SIM המחובר ל- Wio LTE, עליך להגדיר תחילה את ה- APN שלך, אם אינך יודע זאת, אנא צור קשר עם מפעילים הסלולר שלך.

ולאחר מכן, הגדר את מפתח הפרסום של PubNub, מפתח המנוי והערוץ. הערוץ כאן, משמש להבדיל בין בעלי אתרים ומנויים. לדוגמה, אנו משתמשים כאן באופני ערוץ, כל המנויים באופני ערוץ יקבלו הודעות שפרסמנו.

את ההגדרות למעלה, לא ארזנו בכיתה, כך שתוכל לשנות אותן ב- bike.ino בצורה קלה יותר, תוכל להוריד את הקודים האלה מסוף מאמר זה.

חלק 2: PubNub

לחץ והחזק את מקש Boot0 ב- Wio LTE, חבר אותו למחשב שלך באמצעות כבל USB, העלה את התוכנית ב- Arduino IDE, לחץ על מקש איפוס ב- Wio LTE.

לאחר מכן פנה אל PubNub, לחץ על מסוף באגים בפרויקט הדגמה, מלא את שם הערוץ בערוץ ברירת המחדל, לחץ על הוסף לקוח.

כאשר אתה רואה [1, "מנוי", "אופניים"] במסוף, המנוי נוסף בהצלחה. המתן זמן מה, תראה נתוני Wio LTE מופיעים במסוף.

חלק 3: מפת גוגל

מפות ENO הן מפות בזמן אמת עם PubNub ו- MapBox, ניתן להשתמש בהן גם עבור PubNub ומפת Google, ניתן להוריד אותה מ- GitHub שלה.

אתה יכול פשוט להשתמש בדוגמה בשם google-draw-line.html בתיקיית דוגמאות, פשוט שנה מפתח פרסום, מפתח הרשמה, ערוץ ומפתח Google בשורה 29, 30, 33 ו -47.

הערה: אנא הערה שורה 42, אחרת היא תשלח נתוני סימולציה ל- PubNub שלך.

אם ברצונך להציג תרשים דופק בפינה הימנית התחתונה, תוכל להשתמש ב- Chart.js, ניתן להוריד אותו מאתר האינטרנט שלו, להכניס אותו לתיקיית השורשים של מפות ENO ולכלול אותו בראש של google-draw-line.html.

והוסף בד בד כדי להציג תרשים:

לאחר מכן צור שני מערכים לשמירת נתוני התרשים

//… var chartLabels = מערך חדש (); var chartData = מערך חדש (); //…

ביניהם, chartLabels משמש לשמירת נתוני מיקום, chartData משמש לשמירה על נתוני דופק. כאשר מגיעות הודעות, דחף אליהן נתונים חדשים ורענן את התרשים.

//… var map = eon.map ({message: function (message, timetoken, channel) {//… chartLabels.push (obj2string (message [0].latlng)); chartData.push (הודעה [0].data); var ctx = document.getElementById ("תרשים"). getContext ('2d'); var chart = תרשים חדש (ctx, {type: 'line', data: {labels: chartLabels, מערכי נתונים: [{label: " קצב לב ", נתונים: chartData}]}}); //…}});

הכל בוצע. נסה לקחת את זה עם האופניים שלך בפעם הבאה.

שלב 6: כיצד לעבוד עם חורשת חיישנים אחרים?

בתוכנית Wio LTE, אתה יכול לקחת עוד נתונים מותאמים אישית להצגה בתרשים או לעשות יותר. המאמר הבא מראה כיצד לשנות את התוכנית כדי להשיג אותה.

הדבר הראשון שאתה צריך לדעת הוא ש- json שברצונך לפרסם ב- PubNub צריך להיות מקודד כתובת URL. Json המקודד מקודד בשיעור BikeTracker, זה נראה כך:

%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f %% 5d %% 2c %% 22data %% 22 %% 3a%d %% 7d %% 5d

אז קל לקחת נתונים מותאמים אישית אחת, או שאתה יכול להשתמש בכלים לקידוד כתובות אתרים כדי ליצור json מקודד משלך כדי לקחת יותר נתונים.

הפעם אנו מנסים להשתמש ב- I2C High Accracy Temp & Humi Grove כדי להחליף את קצב הלב. מכיוון שגם ה- LCD Grove משתמש ב- I2C, אנו משתמשים ב- I2C Hub לחיבור Temp & Humi Grove ו- LCD Grove ל- Wio LTE.

לאחר מכן כלול קובץ ראש ל- BickTracker.h, והוסף משתנה ושיטה למחלקת BikeTracker לאחסון ומדידת טמפרטורה.

/// BikeTracker.h

//… #כלול יישום סוג "Seeed_SHT35.h":: BikeTracker: יישום:: ממשק:: IApplication {//… proteced: //… SHT35 _sht35; צף _טמפרטורה; //… void MeasureTemperature (void); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 הוא מספר סיכת SCL BikeTracker:: BikeTracker (void): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} //… void BikeTracker:: measureTemperature (void) {טמפרטורת צף, לחות; אם (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & טמפרטורה, ולחות) == NO_ERROR) {_temperature = טמפרטורה; }} //…

אם תרצה, תוכל לשנות את תצוגת ה- LCD בשיטת Loop ():

// sprintf (line2, "קצב לב: %d", _heartRate);

MeasureTemperature (); sprintf (שורה 2, "טמפ ': %f", _ טמפרטורה);

אבל איך לפרסם אותו ב- PubNub? עליך לשנות את הפרמטרים של הפונקציה json ו- sprintf () המקודדים בשיטת PublishToPubNub (), תן לזה להיראות כך:

// sprintf (cmd, "GET/publish/%s/%s/0/%s/0/%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f% %5d %% 2c %% 22data %% 22 %% 3a%d %% 7d %% 5d? Store = 0 HTTP/1.0 / n / r / n / r ", // _publishKey, _subscribeKey, _channel, _latitude, _longitude, _heartRate); sprintf (cmd, "GET/publish/%s/%s/0/%s/0/%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f %% 5d %% 2c %% 22data %% 22 %% 3a%f %% 7d %% 5d? Store = 0 HTTP/1.0 / n / r / n / r ", _publishKey, _subscribeKey, _channel, _latitude, _longitude, _temperature);

לאחר מכן תוכל לראות את הטמפרטורה במסוף ניפוי הבאגים ב- PubNub.

מוּמלָץ: