Мазмұны:

Google картасының көмегімен деректерді тасымалдау: 6 қадам
Google картасының көмегімен деректерді тасымалдау: 6 қадам

Бейне: Google картасының көмегімен деректерді тасымалдау: 6 қадам

Бейне: Google картасының көмегімен деректерді тасымалдау: 6 қадам
Бейне: #Донор Қазірден бастап барлық кинотеатрларда! 2024, Шілде
Anonim
Google Map көмегімен тасымалдау деректерін визуализациялау
Google Map көмегімен тасымалдау деректерін визуализациялау

Біз әдетте велосипедпен жүру кезінде әр түрлі деректерді жазғымыз келеді, бұл жолы біз оларды бақылау үшін жаңа Wio LTE қолдандық.

1 -қадам: Бұл жобада қолданылатын заттар

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

  • Wio LTE EU нұсқасы v1.3- 4G, Cat.1, GNSS, Espruino үйлесімді
  • Гроув - жүрек соғу жиілігінің сенсоры
  • Grove - 16 x 2 LCD (Сарыда қара)

Бағдарламалық жасақтама және онлайн қызметтері

  • Arduino IDE
  • PubNub Publish/Subscribe API
  • Гугл картасы

2 -қадам: Әңгіме

Image
Image

3 -қадам: аппараттық қосылым

Веб конфигурациясы
Веб конфигурациясы

GPS және LTE антенналарын Wio LTE -ге орнатыңыз және оған SIM картаны қосыңыз. Құлақ қысқышының жүрек соғу жиілігі сенсоры мен 16x2 СКД Wio LTE D20 және I2C портына қосыңыз.

Құлақ қысқышының жүрек соғу жиілігін сенсорды өзіңізге ұнайтын басқа сенсорларға өзгертуге болады. Осы мақаланың соңын қараңыз.

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 -де Қалпына келтіру түймесін басыңыз.

Содан кейін PubNub -қа жүгініңіз, Demo Project -те Debug Console түймесін басыңыз, әдепкі арнада арнаңыздың атын толтырыңыз, Клиент қосу түймешігін басыңыз.

Консольде [1, «Жазылған», «велосипед»] дегенді көргенде, Абонент сәтті қосылды. Біраз күтіңіз, консольде Wio LTE деректері пайда болады.

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

ENO Maps-бұл PubNub және MapBox бар нақты уақыттағы карталар, оны PubNub және Google Map үшін де қолдануға болады, оны GitHub сайтынан жүктеуге болады.

Мысалдар қалтасында google-draw-line.html деп аталатын мысалды қолдануға болады, 29, 30, 33 және 47-жолда Publish Key, Subscribe Key, Channel және Google Key-ді өзгертіңіз.

ЕСКЕРТУ: 42 -жолға түсініктеме беріңіз, әйтпесе ол PubNub -қа модельдеу деректерін жібереді.

Егер сіз жүрек соғу жиілігін диаграмманы төменгі оң жақта көрсеткіңіз келсе, Chart.js-ті қолдана аласыз, оны оның веб-сайтынан жүктеуге болады, оны ENO Maps-тің түпкі қалтасына салып, оны google-draw-line.html басына қосыңыз..

Диаграмманы көрсету үшін div -ге кенеп қосыңыз:

Содан кейін диаграмма деректерін сақтау үшін екі массив жасаңыз

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

Олардың ішінде chartLabels орналасу деректерін сақтау үшін, chartData жүрек соғу жиілігін сақтау үшін қолданылады. Хабарлар келгенде, оларға жаңа деректерді жіберіп, диаграмманы жаңартыңыз.

//… var map = eon.map ({хабар: функция (хабар, уақыт, канал) {//… chartLabels.push (obj2string (хабар [0].latlng)); chartData.push (хабар [0].мәліметтер); var ctx = document.getElementById («диаграмма»). getContext ('2d'); var chart = жаңа диаграмма (ctx, {type: 'line', деректер: {labels: chartLabels, деректер жиынтығы: [{label: « Жүрек соғу жиілігі «, деректер: chartData}]}}); //…}});

Барлығы жасалды. Келесі жолы велосипедпен алып кетуге тырысыңыз.

6 -қадам: Басқа сенсорлық тоғаймен қалай жұмыс істеу керек?

Wio LTE бағдарламасында диаграммада көрсету үшін бір немесе бірнеше реттелетін деректерді алуға немесе басқаларын жасауға болады. Келесі мақалада оған жету үшін бағдарламаны қалай өзгерту керектігі көрсетілген.

Сіз білуіңіз керек бірінші нәрсе-PubNub-та жариялағыңыз келетін json url-кодталған болуы керек. Кодталған json BikeTracker сыныбында қатты кодталған, ол келесідей:

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

Сонымен, бір реттелетін деректерді алу оңай, немесе сіз қосымша деректерді алу үшін өзіңіздің кодталған json жасау үшін url-кодтау құралдарын пайдалана аласыз.

Бұл жолы біз Heart Rate Grove орнына I2C High Accracy Temp & Humi Grove қолдануға тырысамыз. LCD Grove -де I2C қолданылғандықтан, біз Temp & Humi Grove мен LCD Grove -ді Wio LTE -ге қосу үшін I2C хабын қолданамыз.

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

/// BikeTracker.h

//… #«Seeed_SHT35.h» сынып қосымшасын қосыңыз:: BikeTracker: application:: interface:: IApplication {//… қорғалған: //… SHT35 _sht35; float _temperature; //… void MeasureTemperature (void); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 - бұл SCL PIN нөмірі BikeTracker:: BikeTracker (жарамсыз): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} //… жарамсыз BikeTracker:: tedTemperature (void) {өзгермелі температура, ылғалдылық; if (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & температура, және ылғалдылық) == ЖОҚ_ҚАТЕ) {_temperature = температура; }} //…

Қаласаңыз, СКД дисплейін Loop () әдісімен өзгертуге болады:

// sprintf (2 -жол, «Жүрек соғу жиілігі: %d», _heartRate);

Температураны өлшеу (); 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 %% 22мәліметтер %% 22 %% 3a%d %% 7d %% 5d? Store = 0 HTTP/1.0 / n / r / n / r «, // _publishKey, _subscribeKey, _kanal, _латitude, _longitude, _heartRate); sprintf (cmd, «GET/жариялау/%s/%s/0/%s/0/%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f %% 5d %% 2c %% 22мәліметтер %% 22 %% 3a%f %% 7d %% 5d? Store = 0 HTTP/1.0 / n / r / n / r «, _publishKey, _subscribeKey, _kanal, _латит, _ ұзындық, _температура);

Содан кейін PubNub отладтау консолінде температураны көре аласыз.

Ұсынылған: