Sadržaj:

Vizualizacija transportnih podataka pomoću Google karte: 6 koraka
Vizualizacija transportnih podataka pomoću Google karte: 6 koraka

Video: Vizualizacija transportnih podataka pomoću Google karte: 6 koraka

Video: Vizualizacija transportnih podataka pomoću Google karte: 6 koraka
Video: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! 2024, Studeni
Anonim
Vizualizacija transportnih podataka pomoću Google karte
Vizualizacija transportnih podataka pomoću Google karte

Obično želimo zabilježiti različite podatke tijekom vožnje bicikla, ovaj put smo ih koristili za praćenje Wio LTE.

Korak 1: Stvari korištene u ovom projektu

Komponente za posuđe

  • Wio LTE EU verzija v1.3- 4G, kat.1, GNSS, Espruino kompatibilno
  • Grove - Senzor otkucaja srca u ušima
  • Grove - 16 x 2 LCD (crno na žuto)

Softverske aplikacije i mrežne usluge

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

Korak 2: Priča

Image
Image

Korak 3: Povezivanje hardvera

Web konfiguracija
Web konfiguracija

Instalirajte GPS i LTE antene na Wio LTE i priključite svoju SIM karticu na nju. Spojite senzor otkucaja srca sa štipaljkom za uši i LCD zaslon veličine 16x2 na priključke W20 LTE D20 i I2C.

Senzor otkucaja srca u ušici možete promijeniti na druge senzore koji vam se sviđaju. Molimo pogledajte kraj ovog članka.

Korak 4: Web konfiguracija

1. dio: PubNub

Kliknite ovdje da biste se prijavili ili registrirali PubNub račun, PubNub se koristi za prijenos podataka u stvarnom vremenu na mapu.

Otvorite demo projekt na PubNub Admin Portalu, vidjet ćete ključ za objavljivanje i ključ za pretplatu, zapamtite ih za programiranje softvera.

2. dio: Google Map

Slijedite ovdje da biste dobili API ključ Google karte, on će se koristiti i u programiranju softvera.

Korak 5: Programiranje softvera

Softversko programiranje
Softversko programiranje

1. dio: Wio LTE

Budući da ne postoji knjižnica PubNub za Wio LTE, možemo slati naše podatke iz HTTP zahtjeva, pogledajte PubNub REST API dokument.

Da biste uspostavili HTTP vezu putem SIM kartice priključene na Wio LTE, prvo postavite APN. Ako to ne znate, obratite se mobilnim operaterima.

Zatim postavite PubNub ključ za objavljivanje, ključ za pretplatu i kanal. Ovdje se kanal koristi za razlikovanje izdavača i pretplatnika. Na primjer, ovdje koristimo kanal bike, svi pretplatnici na channel bike primit će poruke koje smo objavili.

Gore navedene postavke nismo zapakirali u razredu, tako da ih možete lakše izmijeniti u bike.ino, te kodove možete preuzeti s kraja ovog članka.

2. dio: PubNub

Pritisnite i držite tipku Boot0 u Wio LTE, povežite je s računalom putem USB kabela, prenesite program u Arduino IDE, pritisnite tipku Reset u Wio LTE.

Zatim se obratite PubNub -u, kliknite Debug Console u Demo Project -u, unesite naziv svog kanala u Default Channel, kliknite Add Client.

Kada vidite [1, "Pretplaćen", "bicikl"] na konzoli, Pretplatnik je uspješno dodan. Pričekajte malo, vidjet ćete da se Wio LTE podaci pojavljuju na konzoli.

3. dio: Google Map

ENO karte su karte u stvarnom vremenu s PubNub-om i MapBox-om, a mogu se koristiti i za PubNub i Google Map, možete ih preuzeti s GitHub-a.

Možete jednostavno upotrijebiti primjer s imenom google-draw-line.html u mapi primjera, samo izmijenite ključ za objavljivanje, ključ za pretplatu, kanal i Google ključ u retcima 29, 30, 33 i 47.

OBAVIJEST: Komentirajte red 42 ili će poslati podatke simulacije na vaš PubNub.

Ako želite prikazati grafikon brzine otkucaja srca u donjem desnom konektoru, možete koristiti Chart.js, može se preuzeti sa njegove web stranice, staviti u korijensku mapu ENO karata i uključiti u glavu google-draw-line.html.

I dodajte platno u div za prikaz grafikona:

Zatim stvorite dva niza za čuvanje podataka grafikona

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

Među njima, chartLabels koristi se za čuvanje podataka o lokaciji, chartData se koristi za čuvanje podataka o pulsu. Kad stignu poruke, unesite im nove podatke i osvježite grafikon.

//… var map = eon.map ({message: function (message, timetoken, channel) {//… chartLabels.push (obj2string (poruka [0].latlng)); chartData.push (poruka [0].data); var ctx = document.getElementById ("chart"). getContext ('2d'); var chart = new Chart (ctx, {type: 'line', data: {labels: chartLabels, skupovi podataka: [{label: " Otkucaji srca ", podaci: chartData}]}}); //…}});

Sve gotovo. Sljedeći put pokušajte to uzeti sa sobom.

Korak 6: Kako raditi s drugim senzorskim gajem?

U programu Wio LTE možete uzeti jedan ili više prilagođenih podataka za prikaz na grafikonu ili učiniti više. Sljedeći članak prikazuje kako izmijeniti program kako bi se to postiglo.

Prvo što trebate znati je da json koji želite objaviti u PubNub-u treba biti kodiran url-om. Kodirani json teško je kodiran u klasi BikeTracker, izgleda ovako:

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

Tako je lako uzeti jedan prilagođeni podatak ili možete upotrijebiti alate za kodiranje URL-ova kako biste napravili vlastiti kodirani json za uzimanje više podataka.

Ovaj put pokušavamo koristiti I2C High Accracy Temp & Humi Grove za zamjenu Heart Rate Grove -a. Budući da LCD Grove također koristi I2C, koristimo I2C Hub za povezivanje Temp & Humi Grove i LCD Grove na Wio LTE.

Zatim uključite datoteku glave u BickTracker.h i dodajte varijablu i metodu u klasu BikeTracker za pohranu i mjerenje temperature.

/// BikeTracker.h

//… #uključuje aplikaciju klase "Seeed_SHT35.h":: BikeTracker: application:: sučelje:: IApplication {//… zaštićeno: //… SHT35 _sht35; float _temperature; //… void MjeraTemperatura (void); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 je SCL pin broj BikeTracker:: BikeTracker (void): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} //… void BikeTracker:: mjeraTemperature (void) {temperatura plovka, vlažnost; if (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & temperatura i vlažnost) == NO_ERROR) {_temperature = temperature; }} //…

Ako želite, LCD zaslon možete promijeniti metodom Loop ():

// sprintf (line2, "Otkucaji srca: %d", _heartRate);

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

Ali kako to objaviti u PubNub -u? Morate promijeniti kodirane parametre funkcije json i sprintf () u metodi PublishToPubNub (), neka izgleda ovako:

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

Tada možete vidjeti temperaturu u PubNub konzoli za otklanjanje pogrešaka.

Preporučeni: