فهرست مطالب:

تجسم داده های حمل و نقل با Google Map: 6 مرحله
تجسم داده های حمل و نقل با Google Map: 6 مرحله

تصویری: تجسم داده های حمل و نقل با Google Map: 6 مرحله

تصویری: تجسم داده های حمل و نقل با Google Map: 6 مرحله
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
تجسم داده های حمل و نقل با Google Map
تجسم داده های حمل و نقل با Google Map

ما معمولاً می خواهیم داده های مختلفی را در طول دوچرخه سواری ضبط کنیم ، این بار از Wio LTE جدید برای ردیابی آنها استفاده کردیم.

مرحله 1: موارد مورد استفاده در این پروژه

اجزای Hareware

  • Wio LTE EU Version v1.3- 4G ، Cat.1 ، GNSS ، Espruino سازگار است
  • Grove - سنسور ضربان قلب با گیره گوش
  • Grove - 16 x 2 LCD (مشکی روی زرد)

برنامه های نرم افزاری و خدمات آنلاین

  • آردوینو IDE
  • PubNub انتشار/اشتراک API
  • نقشه های گوگل

مرحله 2: داستان

Image
Image

مرحله 3: اتصال سخت افزار

پیکربندی وب
پیکربندی وب

آنتن های GPS و LTE را در Wio LTE نصب کرده و سیم کارت خود را به آن وصل کنید. Ear-clip Ear Rens Sensor و LCD 16x2 را به پورت D20 و I2C Wio LTE وصل کنید.

شما می توانید سنسور ضربان قلب گوش گیر را به سنسورهای دیگری که دوست دارید تغییر دهید. لطفاً انتهای این مقاله را ببینید.

مرحله 4: پیکربندی وب

قسمت 1: PubNub

برای ورود یا ثبت نام حساب PubNub اینجا را کلیک کنید ، از PubNub برای انتقال داده های زمان واقعی به نقشه استفاده می شود.

پروژه نمایشی را در پورتال مدیریت PubNub باز کنید ، یک کلید انتشار و یک کلید اشتراک را مشاهده می کنید ، آنها را برای برنامه نویسی نرم افزار به خاطر بسپارید.

قسمت 2: نقشه گوگل

لطفاً برای دریافت کلید API Google Map اینجا را دنبال کنید ، در برنامه نویسی نرم افزار نیز استفاده می شود.

مرحله 5: برنامه نویسی نرم افزار

برنامه نویسی نرم افزار
برنامه نویسی نرم افزار

قسمت 1: Wio LTE

از آنجا که هیچ کتابخانه PubNub برای Wio LTE وجود ندارد ، می توانیم داده های خود را از طریق درخواست HTTP ارسال کنیم ، به PubNub REST API Document مراجعه کنید.

برای ایجاد اتصال HTTP از طریق سیم کارت متصل به Wio LTE ، ابتدا باید APN خود را تنظیم کنید ، اگر این را نمی دانید ، لطفاً با اپراتورهای تلفن همراه خود تماس بگیرید.

و سپس ، کلید انتشار PubNub ، کلید اشتراک و کانال خود را تنظیم کنید. این کانال در اینجا برای تمایز ناشران و مشترکین استفاده می شود. به عنوان مثال ، ما از کانال دوچرخه در اینجا استفاده می کنیم ، همه مشترکین کانال دوچرخه ای پیامهایی را که منتشر کرده ایم دریافت خواهند کرد.

تنظیمات بالا ، ما در کلاس جمع نکرده ایم ، بنابراین می توانید آنها را در bike.ino راحت تر تغییر دهید ، می توانید این کدها را از انتهای این مقاله بارگیری کنید.

قسمت 2: PubNub

کلید Boot0 را در Wio LTE فشار داده و نگه دارید ، آن را از طریق کابل USB به رایانه خود وصل کنید ، برنامه را در Arduino IDE بارگذاری کنید ، در Wio LTE کلید Reset را فشار دهید.

سپس به PubNub مراجعه کنید ، روی Debug Console in Demo Project کلیک کنید ، نام کانال خود را در Default Channel پر کنید ، روی Add Client کلیک کنید.

وقتی [1 ، "مشترک" ، "دوچرخه"] را در کنسول مشاهده کردید ، مشترک با موفقیت اضافه شد. کمی صبر کنید ، خواهید دید که داده های Wio LTE در کنسول ظاهر می شوند.

قسمت 3: نقشه گوگل

نقشه های ENO نقشه های زمان واقعی با PubNub و MapBox هستند ، همچنین می توانند برای PubNub و Google Map استفاده شوند ، می توانید آن را از GitHub آن بارگیری کنید.

شما می توانید به سادگی از یک مثال به نام google-draw-line.html در پوشه نمونه استفاده کنید ، فقط Publish Key ، Subscribe Key ، Channel و Google Key را در خط 29 ، 30 ، 33 و 47 تغییر دهید.

توجه: لطفاً در مورد خط 42 نظر دهید ، در غیر این صورت داده های شبیه سازی به PubNub شما ارسال می شود.

اگر می خواهید نمودار ضربان قلب را در ضلع پایین سمت راست نمایش دهید ، می توانید از Chart.js استفاده کنید ، می توانید آن را از وب سایت خود بارگیری کنید ، آن را در پوشه اصلی ENO Maps قرار داده و آن را در سر google-draw-line.html قرار دهید. به

و یک بوم در div برای نمایش نمودار اضافه کنید:

سپس دو آرایه برای حفظ داده های نمودار ایجاد کنید

//… 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 = new Chart (ctx، {type: 'line'، data: {labels: chartLabels، datasets: [{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

بنابراین گرفتن یک داده سفارشی آسان است ، یا می توانید از ابزارهای رمزگذاری url برای ایجاد json رمزگذاری شده خود برای گرفتن اطلاعات بیشتر استفاده کنید.

این بار سعی می کنیم از I2C High Accracy Temp & Humi Grove برای جایگزینی Heart Rate Grove استفاده کنیم. از آنجا که LCD Grove همچنین از I2C استفاده می کند ، ما از هاب I2C برای اتصال Temp & Humi Grove و LCD Grove به Wio LTE استفاده می کنیم.

سپس فایل head را در BickTracker.h قرار دهید و متغیر و متدی را برای ذخیره و اندازه گیری دما به کلاس BikeTracker اضافه کنید.

/// BikeTracker.h

//… #شامل برنامه کلاس "Seeed_SHT35.h":: BikeTracker: application:: interface:: IApplication {// … محافظت شده: // … SHT35 _sht35؛ شناور _ دما ؛ //… void MeasureTemperature (void)؛ } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (باطل) //: _ethernet (اترنت ()) ، _gnss (GNSS ()) {} // 21 شماره پین SCL است BikeTracker:: BikeTracker (خالی): _ethernet (اترنت ()) ، _gnss (GNSS ()) ، _sht35 (SHT35 (21)) {} //… void BikeTracker:: اندازه گیری دما (خالی) {دمای شناور ، رطوبت ؛ if (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH ، & دما و رطوبت) == NO_ERROR) {_temperature = دما ؛ }} //…

در صورت تمایل ، می توانید صفحه LCD را به روش Loop () تغییر دهید:

// sprintf (line2 ، "ضربان قلب:٪ d" ، _heartRate) ؛

MeasureTemperature ()؛ sprintf (line2، "Temp:٪ f"، _temperature)؛

اما چگونه می توان آن را در PubNub منتشر کرد؟ شما نیاز به تغییر پارامترهای تابع json و sprintf () در روش PublishToPubNub () دارید ، به این صورت است:

// sprintf (cmd ، "GET/انتشار/٪ 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 ، _ عرض ، _ طول ، _heartRate) ؛ sprintf (cmd ، "GET/انتشار/٪ 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 ، _litude ، _temperature) ؛

سپس می توانید دما را در کنسول اشکال زدایی PubNub مشاهده کنید.

توصیه شده: