Kazalo:

Vizualizacija transportnih podatkov z Google Zemljevidom: 6 korakov
Vizualizacija transportnih podatkov z Google Zemljevidom: 6 korakov

Video: Vizualizacija transportnih podatkov z Google Zemljevidom: 6 korakov

Video: Vizualizacija transportnih podatkov z Google Zemljevidom: 6 korakov
Video: planeTALK | Philip PLANTHOLT, VP Flightradar24 "The Facebook of Aviation" (С субтитрами) 2024, November
Anonim
Vizualizacija transportnih podatkov z Google Zemljevidom
Vizualizacija transportnih podatkov z Google Zemljevidom

Običajno želimo med kolesarjenjem snemati različne podatke, tokrat smo za sledenje uporabili nov Wio LTE.

1. korak: Stvari, uporabljene v tem projektu

Komponente za zajce

  • Združljivo z različico Wio LTE EU v1.3- 4G, kat.1, GNSS, Espruino
  • Grove - Senzor srčnega utripa za ušesa
  • Grove - 16 x 2 LCD (črno na rumeno)

Programske aplikacije in spletne storitve

  • Arduino IDE
  • PubNub Publish/Subscribe API
  • Google zemljevidi

2. korak: Zgodba

Image
Image

3. korak: Povezava strojne opreme

Spletna konfiguracija
Spletna konfiguracija

Na Wio LTE namestite antene GPS in LTE in nanjo priključite kartico SIM. Senzor srčnega utripa s sponko za ušesa in 16x2 LCD priključite na vrata Wio LTE D20 in I2C.

Senzor srčnega utripa za ušesa lahko spremenite v druge senzorje, ki so vam všeč. Oglejte si konec tega članka.

4. korak: Spletna konfiguracija

1. del: PubNub

Kliknite tukaj, če se želite prijaviti ali registrirati račun PubNub, PubNub se uporablja za prenos podatkov v realnem času na zemljevid.

Odprite predstavitveni projekt na skrbniškem portalu PubNub, videli boste ključ za objavo in ključ za naročnino, zapomnite si jih za programiranje programske opreme.

2. del: Google Map

Prosimo, sledite tukaj, če želite dobiti ključ API -ja za Google Map, ki se bo uporabljal tudi pri programiranju programske opreme.

5. korak: Programiranje programske opreme

Programsko programiranje
Programsko programiranje

1. del: Wio LTE

Ker za Wio LTE ni knjižnice PubNub, lahko podatke pošljemo iz zahteve HTTP, glejte dokument PubNub REST API.

Če želite vzpostaviti povezavo HTTP prek kartice SIM, priključene v Wio LTE, morate najprej nastaviti APN. Če tega ne veste, se obrnite na mobilne operaterje.

Nato nastavite PubNub Publish Key, Subscribe Key in Channel. Tu se kanal uporablja za razlikovanje med založniki in naročniki. Na primer, tukaj uporabljamo kanalsko kolo, vsi naročniki na kanalskem kolesu bodo prejeli sporočila, ki smo jih objavili.

Zgornjih nastavitev nismo zapakirali v razred, tako da jih lahko lažje spremenite v bike.ino, te kode lahko prenesete s konca tega članka.

2. del: PubNub

Pritisnite in držite tipko Boot0 v Wio LTE, jo povežite z računalnikom prek kabla USB, naložite program v Arduino IDE, pritisnite tipko Ponastavi v Wio LTE.

Nato se obrnite na PubNub, kliknite Debug Console v Demo Project, vnesite ime svojega kanala v Default Channel in kliknite Add Client.

Ko v konzoli vidite [1, «Naročnik», «kolo»], je bil naročnik uspešno dodan. Počakajte nekaj časa, v konzoli se bodo prikazali podatki Wio LTE.

3. del: Google Map

ENO zemljevidi so zemljevidi v realnem času z PubNub in MapBox, lahko pa se uporabljajo tudi za PubNub in Google Map, prenesete ga lahko z njegovega GitHub-a.

V mapi z primeri lahko preprosto uporabite primer z imenom google-draw-line.html, v vrsticah 29, 30, 33 in 47 spremenite ključ za objavo, ključ za naročnino, kanal in ključ za Google.

OBVESTILO: Prosimo, komentirajte vrstico 42, sicer bo poslala podatke simulacije v vaš PubNub.

Če želite prikazati grafikon srčnega utripa v spodnjem desnem koeficientu, lahko uporabite Chart.js, ki ga lahko prenesete s svojega spletnega mesta, ga vstavite v korensko mapo ENO Maps in ga vključite v naslov google-draw-line.html.

Za prikaz grafikona dodajte platno v div:

Nato ustvarite dva niza za shranjevanje podatkov grafikona

//… var chartLabels = nov Array (); var chartData = nov niz (); //…

Med njimi se chartLabels uporablja za shranjevanje podatkov o lokaciji, chartData se uporablja za shranjevanje podatkov o srčnem utripu. Ko pridejo sporočila, jim potisnite nove podatke in osvežite grafikon.

//… var map = eon.map ({sporočilo: funkcija (sporočilo, časovni zapis, kanal) {//… chartLabels.push (obj2string (sporočilo [0].latlng)); chartData.push (sporočilo [0].data); var ctx = document.getElementById ("chart"). getContext ('2d'); var chart = new Chart (ctx, {type: 'line', data: {labels: chartLabels, nabori podatkov: [{label: " Srčni utrip ", podatki: chartData}]}}); //…}});

Končano. Naslednjič ga poskusite vzeti s kolesom.

6. korak: Kako delati z drugim senzorjem Grove?

V programu Wio LTE lahko vzamete enega ali več podatkov po meri za prikaz v grafikonu ali naredite več. Naslednji članek prikazuje, kako spremeniti program, da ga dosežete.

Najprej morate vedeti, da mora biti json, ki ga želite objaviti v PubNub, kodiran z URL-jem. Kodirani json je trdo kodiran v razredu BikeTracker, izgleda tako:

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

Tako je enostavno vzeti en podatek po meri ali pa lahko z orodji za kodiranje url ustvarite svoj kodiran json za več podatkov.

Tokrat poskušamo uporabiti I2C High Accracy Temp & Humi Grove za zamenjavo Heart Rate Grove. Ker LCD Grove uporablja tudi I2C, uporabljamo zvezdišče I2C za povezavo Temp & Humi Grove in LCD Grove z Wio LTE.

Nato datoteko head vključite v BickTracker.h ter dodajte spremenljivko in metodo v razred BikeTracker za shranjevanje in merjenje temperature.

/// BikeTracker.h

//… #vključuje aplikacijo razreda "Seeed_SHT35.h":: BikeTracker: application:: interface:: IApplication {//… zaščiteno: //… SHT35 _sht35; plavajoča _temperatura; //… void MeasureTemperature (void); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 je številka pin SCL BikeTracker:: BikeTracker (void): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} //… void BikeTracker:: mjeraTemperature (void) {temperatura plavajoče, vlažnost; if (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & temperatura in vlažnost) == NO_ERROR) {_temperature = temperatura; }} //…

Če želite, lahko spremenite zaslon LCD v metodi Loop ():

// sprintf (vrstica2, "Srčni utrip: %d", _heartRate);

MeasureTemperature (); sprintf (vrstica2, "Temp: %f", _temperatura);

Kako pa ga objaviti v PubNubu? V metodi PublishToPubNub () morate spremeniti kodirane parametre funkcije json in sprintf (), naj bo videti tako:

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

Nato lahko vidite temperaturo v konzoli za odpravljanje napak PubNub.

Priporočena: