Kuljetustietojen visualisointi Google Mapin avulla: 6 vaihetta
Kuljetustietojen visualisointi Google Mapin avulla: 6 vaihetta
Anonim
Kuljetustietojen visualisointi Google Mapin avulla
Kuljetustietojen visualisointi Google Mapin avulla

Haluamme yleensä tallentaa erilaisia tietoja pyöräilyn aikana, tällä kertaa seurasimme niitä uudella Wio LTE: llä.

Vaihe 1: Tässä projektissa käytetyt asiat

Hareware -komponentit

  • Wio LTE EU -versio v1.3- 4G, Cat.1, GNSS, Espruino-yhteensopiva
  • Grove - Korvanauhainen sykesensori
  • Grove - 16 x 2 LCD (musta keltaisella)

Ohjelmistosovellukset ja verkkopalvelut

  • Arduino IDE
  • PubNub Publish/Subscribe -sovellusliittymä
  • Google Kartat

Vaihe 2: Tarina

Image
Image

Vaihe 3: Laitteistoyhteys

Web -määritykset
Web -määritykset

Asenna GPS- ja LTE -antennit Wio LTE -laitteeseen ja liitä SIM -kortti siihen. Kytke korvakiinnitteinen sykesensori ja 16x2 LCD Wio LTE: n D20- ja I2C-porttiin.

Voit vaihtaa korvakuulokkeen sykesensorin muihin haluamiisi antureihin. Katso tämän artikkelin loppu.

Vaihe 4: Verkon määritys

Osa 1: PubNub

Napsauta tätä kirjautuaksesi sisään tai rekisteröidäksesi PubNub-tilin, PubNubia käytetään lähettämään reaaliaikaisia tietoja kartalle.

Avaa esittelyprojekti PubNub -hallintaportaalissa, näet julkaisuavaimen ja tilausavaimen, muista ne ohjelmisto -ohjelmointia varten.

Osa 2: Google Map

Seuraa tästä saadaksesi Google Map -sovellusliittymäavaimen, sitä käytetään myös ohjelmisto -ohjelmoinnissa.

Vaihe 5: Ohjelmointi

Ohjelmiston ohjelmointi
Ohjelmiston ohjelmointi

Osa 1: Wio LTE

Koska Wio LTE: lle ei ole PubNub -kirjastoa, voimme lähettää tietomme HTTP -pyynnöstä, katso PubNub REST API -asiakirja.

Jos haluat muodostaa HTTP -yhteyden SIM -korttisi kautta, joka on liitetty Wio LTE -laitteeseen, sinun on ensin asetettava APN, jos et tiedä sitä, ota yhteyttä matkapuhelinoperaattoriisi.

Aseta sitten PubNub -julkaisuavain, tilausavain ja kanava. Tässä olevaa kanavaa käytetään erottamaan julkaisijat ja tilaajat. Esimerkiksi käytämme täällä kanavapyörää, kaikki kanavapyörän tilaajat saavat julkaisemamme viestit.

Yllä olevia asetuksia ei pakattu luokkaan, joten voit muokata niitä bike.ino -sivustossa helpommin, voit ladata nämä koodit tämän artikkelin lopusta.

Osa 2: PubNub

Pidä Boot0 -näppäintä painettuna Wio LTE: ssä, liitä se tietokoneeseen USB -kaapelilla, lataa ohjelma Arduino IDE: ssä ja paina Reset -näppäintä Wio LTE: ssä.

Siirry sitten PubNubiin, valitse Demo -projektissa Debug Console, täytä kanavasi nimi oletuskanavassa ja valitse Lisää asiakas.

Kun konsolissa näkyy [1, "Tilattu", "pyörä"], tilaajan lisääminen onnistui. Odota hetki, näet Wio LTE -tiedot konsolissa.

Osa 3: Google Map

ENO-kartat ovat reaaliaikaisia karttoja, joissa on PubNub ja MapBox. Sitä voidaan käyttää myös PubNubissa ja Google Mapissa, voit ladata sen GitHubista.

Voit käyttää esimerkkikansion esimerkkiä google-draw-line.html. Muokkaa vain julkaisuavainta, tilausavainta, kanavaa ja Google-avainta rivillä 29, 30, 33 ja 47.

HUOMAUTUS: Kommentoi riviä 42, tai se lähettää simulaatiotietoja PubNub -laitteellesi.

Jos haluat näyttää sykekaavion oikeassa alakulmassa, voit käyttää Chart.js-tiedostoa, jonka voit ladata sen verkkosivustolta, laittaa sen ENO Mapsin juurikansioon ja sisällyttää sen google-draw-line.html: n otsikkoon.

Ja lisää kangas diviin näyttääksesi kaavion:

Luo sitten kaksi taulukkoa kaavion tietojen säilyttämiseksi

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

Niistä chartLabelsia käytetään sijaintitietojen säilyttämiseen, chartDataa käytetään syketietojen säilyttämiseen. Kun viestit tulevat, työnnä heille uusia tietoja ja päivitä kaavio.

//… var map = eon.map ({viesti: toiminto (viesti, aikataulu, kanava) {//… chartLabels.push (obj2string (viesti [0].latlng))); chartData.push (viesti [0].data); var ctx = document.getElementById ("chart"). getContext ('2d'); var chart = new Chart (ctx, {type: 'line', data: {labels: chartLabels, datasets: [{label: " Syke ", data: chartData}]}}); //…}});

Valmista. Yritä ottaa se pyöräilylläsi seuraavalla kerralla.

Vaihe 6: Kuinka työskennellä muiden anturipuiden kanssa?

Wio LTE -ohjelmassa voit ottaa yhden tai useamman mukautetun datan näytettäväksi kaaviossa tai tehdä enemmän. Seuraava artikkeli näyttää kuinka ohjelmaa muokataan sen saavuttamiseksi.

Ensimmäinen asia, joka sinun on tiedettävä, on, että json, jonka haluat julkaista PubNubissa, on url-koodattu. Koodattu json on kovakoodattu BikeTracker-luokassa, se näyttää tältä:

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

Joten yhden mukautetun datan ottaminen on helppoa, tai voit käyttää url-koodaustyökaluja oman koodatun jsonisi ottamaan lisää dataa.

Tällä kertaa yritämme käyttää I2C High Accracy Temp & Humi Grove -laitetta syke Groven korvaamiseen. Koska LCD Grove käyttää myös I2C: tä, käytämme I2C Hubia Temp & Humi Groven ja LCD Groven yhdistämiseen Wio LTE: hen.

Lisää sitten päätiedosto BickTracker.h -sivustoon ja lisää muuttuja ja menetelmä BikeTracker -luokkaan lämpötilan tallentamiseksi ja mittaamiseksi.

/// BikeTracker.h

//… #include "Seeed_SHT35.h" luokkasovellus:: BikeTracker: application:: interface:: IApplication {//… suojattu: //… SHT35 _sht35; kelluva _lämpötila; //… void MeasureTemperature (void); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 on SCL -nasta BikeTracker:: BikeTracker (void): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} //… void BikeTracker:: meetTemperature (void) {kelluva lämpötila, kosteus; if (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & lämpötila ja kosteus) == NO_ERROR) {_temperature = lämpötila; }} //…

Jos haluat, voit vaihtaa nestekidenäytön silmukan () menetelmällä:

// sprintf (rivi2, "Syke: %d", _heartRate);

Mittaa lämpötila (); sprintf (rivi2, "Lämpötila: %f", _lämpötila);

Mutta kuinka julkaista se PubNubissa? Sinun on muutettava koodatun json- ja sprintf () -funktion parametrit PublishToPubNub () -menetelmässä, anna sen näyttää tältä:

// sprintf (cmd, "SAA/julkaise/%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, "SAA/julkaise/%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);

Sitten näet lämpötilan PubNub -virheenkorjauskonsolissa.