جدول المحتويات:

تصور بيانات النقل باستخدام خريطة جوجل: 6 خطوات
تصور بيانات النقل باستخدام خريطة جوجل: 6 خطوات

فيديو: تصور بيانات النقل باستخدام خريطة جوجل: 6 خطوات

فيديو: تصور بيانات النقل باستخدام خريطة جوجل: 6 خطوات
فيديو: How to extract data from google map - طريقية استخراج البيانات من قوقل ماب 2024, يوليو
Anonim
تصور بيانات النقل مع خريطة جوجل
تصور بيانات النقل مع خريطة جوجل

نريد عادةً تسجيل بيانات مختلفة أثناء ركوب الدراجات ، هذه المرة استخدمنا Wio LTE الجديد لتتبعها.

الخطوة 1: الأشياء المستخدمة في هذا المشروع

مكونات هاروير

  • إصدار Wio LTE EU v1.3- 4G ، Cat.1 ، GNSS ، متوافق مع Espruino
  • جروف - مستشعر معدل ضربات القلب بمشبك الأذن
  • Grove - شاشة LCD مقاس 16 × 2 (أسود على أصفر)

تطبيقات البرمجيات والخدمات عبر الإنترنت

  • اردوينو IDE
  • PubNub النشر / الاشتراك API
  • خرائط جوجل

الخطوة الثانية: القصة

Image
Image

الخطوة 3: توصيل الأجهزة

تكوين الويب
تكوين الويب

قم بتثبيت هوائيات GPS و LTE على Wio LTE وقم بتوصيل بطاقة SIM الخاصة بك بها. قم بتوصيل مستشعر معدل ضربات القلب بمشبك الأذن وشاشة LCD مقاس 16 × 2 بمنفذ D20 و I2C من Wio LTE.

يمكنك تغيير مستشعر معدل ضربات القلب بمشبك الأذن إلى مستشعرات أخرى تريدها. يرجى الاطلاع على نهاية هذا المقال.

الخطوة 4: تكوين الويب

الجزء 1: PubNub

انقر هنا لتسجيل الدخول أو تسجيل حساب PubNub ، يُستخدم PubNub لنقل البيانات في الوقت الفعلي إلى الخريطة.

افتح مشروع تجريبي في PubNub Admin Portal ، وسترى مفتاح النشر ومفتاح الاشتراك ، وتذكرهما لبرمجة البرامج.

الجزء 2: خريطة جوجل

يرجى اتباع هنا للحصول على Google Map API Key ، حيث سيتم استخدامه في برمجة البرامج أيضًا.

الخطوة 5: برمجة البرمجيات

برمجة البرمجيات
برمجة البرمجيات

الجزء 1: Wio LTE

نظرًا لعدم وجود مكتبة PubNub لـ Wio LTE ، يمكننا إرسال بياناتنا من طلب HTTP ، راجع مستند PubNub REST API.

لإجراء اتصال HTTP عبر بطاقة SIM المتصلة بـ Wio LTE ، يجب عليك تعيين APN أولاً ، إذا كنت لا تعرف ذلك ، فيرجى الاتصال بمشغلي الهاتف المحمول.

وبعد ذلك ، قم بتعيين مفتاح النشر في PubNub ومفتاح الاشتراك والقناة. تُستخدم القناة هنا للتمييز بين الناشرين والمشتركين. على سبيل المثال ، نستخدم قناة الدراجة هنا ، سيتلقى جميع المشتركين في دراجة القناة الرسائل التي نشرناها.

الإعدادات أعلاه ، لم نقم بتجميعها في الفصل ، بحيث يمكنك تعديلها في bike.ino بسهولة ، يمكنك تنزيل هذه الرموز من نهاية هذه المقالة.

الجزء 2: PubNub

اضغط مع الاستمرار على مفتاح Boot0 في Wio LTE ، وقم بتوصيله بجهاز الكمبيوتر الخاص بك عبر كابل USB ، وقم بتحميل البرنامج في Arduino IDE ، واضغط على مفتاح إعادة التعيين في Wio LTE.

ثم انتقل إلى PubNub ، وانقر فوق Debug Console في Demo Project ، واملأ اسم قناتك في Default Channel ، وانقر فوق Add Client.

عندما ترى [1 ، "مشترك" ، "دراجة"] في وحدة التحكم ، تمت إضافة المشترك بنجاح. انتظر لفترة من الوقت ، سترى بيانات Wio LTE تظهر في وحدة التحكم.

الجزء 3: خريطة جوجل

خرائط ENO هي خرائط في الوقت الفعلي مع PubNub و MapBox ، ويمكن استخدامها أيضًا في PubNub و Google Map ، ويمكنك تنزيلها من GitHub.

يمكنك ببساطة استخدام مثال باسم google-draw-line.html في مجلد الأمثلة ، ما عليك سوى تعديل مفتاح النشر ومفتاح الاشتراك والقناة ومفتاح Google في السطر 29 و 30 و 33 و 47.

إشعار: الرجاء التعليق على السطر 42 ، أو سيتم إرسال بيانات المحاكاة إلى PubNub الخاص بك.

إذا كنت ترغب في عرض مخطط معدل ضربات القلب في أسفل العملة اليمنى ، فيمكنك استخدام Chart.js ، ويمكن تنزيله من موقع الويب الخاص به ، ووضعه في المجلد الجذر لخرائط ENO ، وإدراجه في رأس google-draw-line.html.

وأضف لوحة قماشية في عنصر div لعرض المخطط:

ثم قم بإنشاء صفيفين للاحتفاظ ببيانات المخطط

//… var chartLabels = new Array () ؛ var chartData = new Array () ؛ //…

من بينها ، يتم استخدام 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 ("chart"). 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 Hub لتوصيل Temp & Humi Grove و LCD Grove بـ Wio LTE.

ثم قم بتضمين ملف الرأس إلى BickTracker.h ، وأضف متغيرًا وطريقة إلى فئة BikeTracker لتخزين درجة الحرارة وقياسها.

/// BikeTracker.h

//… #include "Seeed_SHT35.h" class application:: BikeTracker: application:: interface:: IApplication {//… proteced: //… SHT35 _sht35؛ تعويم _temperature؛ //… قياس درجة حرارة باطلة (باطل) ؛ } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()) ، _gnss (GNSS ()) {} // 21 هو رقم التعريف الشخصي لـ SCL BikeTracker:: BikeTracker (void): _ethernet (Ethernet ())، _gnss (GNSS ())، _sht35 (SHT35 (21)) {} //… باطل BikeTracker:: MeasTemperature (باطل) {درجة حرارة الطفو والرطوبة؛ إذا (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH ، & درجة الحرارة ، & الرطوبة) == NO_ERROR) {_temperature = درجة الحرارة ؛ }} //…

إذا كنت ترغب في ذلك ، يمكنك تغيير شاشة LCD بطريقة Loop ():

// sprintf (line2، "Heart Rate:٪ d"، _heartRate) ؛

قياس درجة الحرارة()؛ sprintf (line2، "Temp:٪ f"، _temperature) ؛

ولكن كيف تنشره في 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.

موصى به: