Мазмуну:

Google Картасы менен Транспорттук маалыматтарды визуалдаштыруу: 6 кадам
Google Картасы менен Транспорттук маалыматтарды визуалдаштыруу: 6 кадам

Video: Google Картасы менен Транспорттук маалыматтарды визуалдаштыруу: 6 кадам

Video: Google Картасы менен Транспорттук маалыматтарды визуалдаштыруу: 6 кадам
Video: SSL, TLS, HTTP, HTTPS объяснил 2024, Июль
Anonim
Google Картасы менен Транспорттук маалыматтарды визуалдаштыруу
Google Картасы менен Транспорттук маалыматтарды визуалдаштыруу

Биз, адатта, велосипед тебүү учурунда ар кандай маалыматтарды жазгыбыз келет, бул жолу аларды көзөмөлдөө үчүн жаңы Wio LTEди колдондук.

1 -кадам: Бул долбоордо колдонулган нерселер

Hareware компоненттери

  • Wio LTE EU Version v1.3- 4G, Cat.1, GNSS, Espruino Compatible
  • Grove - Кулак -клип Жүрөктүн кагыш сенсору
  • Grove - 16 x 2 ЖК (Сарыда Кара)

Программалык камсыздоо жана онлайн кызматтары

  • Arduino IDE
  • PubNub Publish/Subscribe API
  • Google Карталар

2 -кадам: Окуя

Image
Image

3 -кадам: Аппараттык туташуу

Желе конфигурациясы
Желе конфигурациясы

GPS жана LTE антенналарын Wio LTEге орнотуңуз жана SIM картаны ага сайыңыз. Ear-clip Heart Rate Sensor жана 16x2 LCDди Wio LTEдин D20 жана I2C портуна туташтырыңыз.

Сиз Ear-clip Heart Rate Sensor'ду сизге жаккан башка сенсорлорго өзгөртө аласыз. Сураныч, бул макаланын аягына караңыз.

4 -кадам: Желе конфигурациясы

1 -бөлүк: PubNub

Бул жерге чыкылдатыңыз же PubNub каттоо эсебин каттаңыз, PubNub реалдуу убакытта маалыматты картага берүү үчүн колдонулат.

PubNub Админ Порталында Демо Долбоорду ачыңыз, сиз Жарыялоо Ачкычын жана Жазылуу Ачкычын көрөсүз, аларды программалык камсыздоо үчүн эстеп каласыз.

2 -бөлүк: Google картасы

Сураныч, Google Map API ачкычын алуу үчүн бул жерди ээрчиңиз, ал программалык камсыздоодо да колдонулат.

5 -кадам: Программалык камсыздоо

Программалык камсыздоо
Программалык камсыздоо

1 -бөлүк: Wio LTE

Wio LTE үчүн PubNub китепканасы жок болгондуктан, биз HTTP сурамы боюнча маалыматтарды жөнөтө алабыз, PubNub REST API документин караңыз.

Wio LTEге туташкан SIM картаңыз аркылуу HTTP туташуу үчүн, сиз биринчи APN'иңизди орнотушуңуз керек, эгер сиз муну билбесеңиз, мобилдик операторлоруңузга кайрылыңыз.

Анан PubNub жарыялоо ачкычын, жазылуу ачкычын жана каналды орнотуңуз. Бул жердеги канал, Басып чыгаруучулар менен Жазылуучуларды айырмалоо үчүн колдонулат. Мисалы, биз бул жерде канал велосипедин колдонобуз, канал велосипединдеги бардык жазылуучулар биз жарыялаган билдирүүлөрдү алышат.

Жогорудагы жөндөөлөрдү биз класска чогулткан жокпуз, андыктан bike.ino аларды оңой өзгөртө аласыз, бул коддорду ушул макаланын аягынан жүктөп алсаңыз болот.

2 -бөлүк: PubNub

Wio LTEдеги Boot0 баскычын басып, кармап туруңуз, аны USB кабели аркылуу компьютериңизге туташтырыңыз, программаны Arduino IDEге жүктөңүз, Wio LTEде Reset баскычын басыңыз.

Андан кийин PubNubга кайрылыңыз, Демо Долбоордогу Мүчүлүштүктөрдү Оңдоо Консолун чыкылдатыңыз, Демейки Каналда каналдын атын толтуруңуз, Кардар Кошуу дегенди басыңыз.

Консолдо [1, "Жазылган", "велосипед"] дегенди көргөндө, Абонент ийгиликтүү кошулду. Бир аз күтө туруңуз, Wio LTE маалыматы консолдо көрүнөт.

3 -бөлүк: Google картасы

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 = жаңы Array (); var chartData = new Array (); //…

Алардын арасында chartLabels жайгашуу маалыматын сактоо үчүн колдонулат, chartData жүрөктүн кагышын сактоо үчүн колдонулат. Кабарлар келгенде, аларга жаңы маалыматтарды түртүп, диаграмманы жаңыртыңыз.

//… var map = eon.map ({билдирүү: функция (кабар, убакыт, канал) {//… chartLabels.push (obj2string (кабар [0].latlng)); chartData.push (билдирүү [0].маалымат); var ctx = document.getElementById ("chart"). getContext ('2d'); var chart = new Chart (ctx, {type: 'line', data: {labels: chartLabels, data set: [{label: " Жүрөктүн кагышы ", маалыматтар: chartData}]}}); //…}});

Баары аткарылды. Кийинки жолу велосипед менен алып кетүүгө аракет кылыңыз.

6 -кадам: Башка сенсор Grove менен кантип иштөө керек?

Wio LTE программасында, сиз диаграммада көрсөтүү үчүн бир жана бир нече жеке маалыматтарды ала аласыз же дагы көп нерселерди жасай аласыз. Төмөнкү макалада ага жетүү үчүн программаны кантип өзгөртүү керектиги көрсөтүлгөн.

Сиз билишиңиз керек болгон биринчи нерсе, PubNubга жарыялоону каалаган json url-коддолгон болушу керек. Коддолгон json BikeTracker классында катуу коддолгон, ал мындай көрүнөт:

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

Ошентип, бир ыңгайлаштырылган маалыматты алуу оңой, же url-коддоо инструменттерин колдонуп, көбүрөөк маалыматты алуу үчүн өзүңүздүн коддолгон json жасаңыз.

Бул жолу биз Heart Rate Grove ордуна I2C High Accracy Temp & Humi Grove колдонууга аракет кылабыз. LCD Grove I2Cди колдонгондуктан, биз Temp & Humi Grove менен LCD Groveду Wio LTEге туташтыруу үчүн I2C Hub колдонобуз.

Андан кийин BickTracker.hге баш файлды кошуп, температураны сактоо жана өлчөө үчүн BikeTracker классына вариантты жана ыкманы кошуңуз.

/// BikeTracker.h

//… #inced "Seeed_SHT35.h" класстын колдонмосу:: BikeTracker: application:: interface:: IApplication {//… proteced: //… SHT35 _sht35; float _temperature; //… void MeasureTemperature (боштук); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 - бул SCL пин номери BikeTracker:: BikeTracker (жараксыз): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} //… жараксыз BikeTracker:: tedTemperature (void) {калкып жүрүүчү температура, нымдуулук; if (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & температура, жана нымдуулук) == NO_ERROR) {_temperature = температура; }} //…

Кааласаңыз, ЖК дисплейин Loop () методунда өзгөртө аласыз:

// sprintf (line2, "Heart Rate: %d", _heartRate);

MeasureTemperature (); sprintf (line2, "Temp: %f", _temperature);

Бирок аны PubNubга кантип жарыялоо керек? PublishToPubNub () методунда коддолгон json жана sprintf () функциясынын параметрлерин өзгөртүү керек, ал мындай көрүнсүн:

// 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, _atitude, _longitude, _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, _longitude, _temperature);

Андан кийин PubNub мүчүлүштүктөрдү оңдоо консолунан температураны көрө аласыз.

Сунушталууда: