Turinys:

Transporto duomenų vizualizavimas naudojant „Google“žemėlapį: 6 žingsniai
Transporto duomenų vizualizavimas naudojant „Google“žemėlapį: 6 žingsniai

Video: Transporto duomenų vizualizavimas naudojant „Google“žemėlapį: 6 žingsniai

Video: Transporto duomenų vizualizavimas naudojant „Google“žemėlapį: 6 žingsniai
Video: Вычислительное мышление – информатика для руководителей бизнеса 2016 2024, Liepa
Anonim
Transporto duomenų vizualizavimas naudojant „Google“žemėlapį
Transporto duomenų vizualizavimas naudojant „Google“žemėlapį

Važiuodami dviračiu dažniausiai norime įrašyti įvairius duomenis, šį kartą jų stebėjimui naudojome naują „Wio LTE“.

1 žingsnis: šiame projekte naudojami dalykai

Hareware komponentai

  • Suderinama su „Wio LTE EU“versija 1.3–4G, Cat.1, GNSS, „Espruino“
  • Grove - ausų spaustuko širdies ritmo jutiklis
  • Grove - 16 x 2 LCD (juoda geltona)

Programinės įrangos programos ir internetinės paslaugos

  • „Arduino IDE“
  • PubNub Publish/Subscribe API
  • Google žemėlapiai

2 žingsnis: istorija

Image
Image

3 žingsnis: aparatinės įrangos prijungimas

Žiniatinklio konfigūracija
Žiniatinklio konfigūracija

Įdiekite GPS ir LTE antenas prie „Wio LTE“ir prijunkite prie jos SIM kortelę. Prijunkite ausies spaustuko širdies ritmo jutiklį ir 16x2 skystųjų kristalų ekraną prie „Wio LTE“D20 ir I2C prievadų.

Ausų spaustuko širdies ritmo jutiklį galite pakeisti į kitus jums patinkančius jutiklius. Žiūrėkite šio straipsnio pabaigą.

4 veiksmas: žiniatinklio konfigūravimas

1 dalis: PubNub

Spustelėkite čia, prisijunkite arba užregistruokite „PubNub“paskyrą, „PubNub“naudojama realaus laiko duomenims perduoti į žemėlapį.

„PubNub“administravimo portale atidarykite demonstracinį projektą, pamatysite paskelbimo raktą ir prenumeratos raktą, prisiminkite juos programuojant.

2 dalis: „Google“žemėlapis

Sekite čia norėdami gauti „Google“žemėlapio API raktą, jis taip pat bus naudojamas programinei įrangai programuoti.

5 žingsnis: programinės įrangos programavimas

Programinės įrangos programavimas
Programinės įrangos programavimas

1 dalis: „Wio LTE“

Kadangi nėra „Wio LTE“„PubNub“bibliotekos, galime siųsti duomenis iš HTTP užklausos, žr. PubNub REST API dokumentą.

Jei norite užmegzti HTTP ryšį per SIM kortelę, įjungtą „Wio LTE“, pirmiausia turite nustatyti APN, jei to nežinote, susisiekite su savo mobiliojo ryšio operatoriais.

Tada nustatykite „PubNub“paskelbimo raktą, prenumeratos raktą ir kanalą. Čia esantis kanalas naudojamas norint atskirti leidėjus ir prenumeratorius. Pavyzdžiui, čia naudojame kanalo dviratį, visi kanalo dviračio abonentai gaus mūsų paskelbtus pranešimus.

Aukščiau pateikti nustatymai nebuvo supakuoti į klasę, kad galėtumėte lengviau juos pakeisti „bike.ino“, galite atsisiųsti šiuos kodus iš šio straipsnio pabaigos.

2 dalis: PubNub

Paspauskite ir palaikykite „Boot0“klavišą „Wio LTE“, prijunkite jį prie kompiuterio per USB kabelį, įkelkite programą į „Arduino IDE“, paspauskite „Reset“klavišą „Wio LTE“.

Tada įjunkite „PubNub“, demonstraciniame projekte spustelėkite „Derinimo pultas“, įveskite savo kanalo pavadinimą į numatytąjį kanalą, spustelėkite „Pridėti klientą“.

Kai konsolėje matote [1, „Prenumeruotas“, „dviratis“], abonentas sėkmingai pridėtas. Palaukite, kol konsolėje pasirodys „Wio LTE“duomenys.

3 dalis: „Google“žemėlapis

„ENO Maps“yra žemėlapiai realiuoju laiku su „PubNub“ir „MapBox“, jie taip pat gali būti naudojami „PubNub“ir „Google Map“, galite juos atsisiųsti iš „GitHub“.

Pavyzdžių aplanke galite tiesiog naudoti pavyzdį, pavadintą google-draw-line.html, tiesiog pakeiskite paskelbimo raktą, prenumeratos raktą, kanalą ir „Google“raktą 29, 30, 33 ir 47 eilutėse.

PASTABA: komentuokite 42 eilutę, kitaip ji atsiųs modeliavimo duomenis į jūsų „PubNub“.

Jei širdies ritmo diagramą norite rodyti apatiniame dešiniajame skydelyje, galite naudoti Chart.js, ją galima atsisiųsti iš savo svetainės, įdėti į „ENO Maps“šakninį aplanką ir įtraukti į „google-draw-line.html“galvą.

Ir pridėkite drobę prie div, kad būtų rodoma diagrama:

Tada sukurkite du masyvus, kad išsaugotumėte diagramos duomenis

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

Tarp jų „chartLabels“naudojamas vietos duomenims saugoti, „chartData“- širdies ritmo duomenims saugoti. Kai ateina pranešimai, perkelkite jiems naujus duomenis ir atnaujinkite diagramą.

//… var map = eon.map ({pranešimas: funkcija (pranešimas, laikas, kanalas) {//… chartLabels.push (obj2string (pranešimas [0].latlng)); chartData.push (pranešimas [0].data); var ctx = document.getElementById ("chart"). getContext ('2d'); var chart = new Diagrama (ctx, {type: 'line', data: {labels: chartLabels, datasets: [{label: " Širdies ritmas ", duomenys: chartData}]}}); //…}});

Viskas padaryta. Kitą kartą pabandykite važiuoti dviračiu.

6 žingsnis: Kaip dirbti su kitomis jutiklių gira?

„Wio LTE“programoje galite pasiimti vieną ar daugiau pasirinktinių duomenų, kad jie būtų rodomi diagramoje, arba padaryti daugiau. Šiame straipsnyje parodyta, kaip pakeisti programą, kad ji būtų pasiekta.

Pirmas dalykas, kurį reikia žinoti, yra tai, kad json, kurį norite paskelbti „PubNub“, turėtų būti užkoduotas URL. „BikeTracker“klasėje užkoduotas „json“yra užkoduotas, atrodo taip:

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

Taigi nesunku paimti vieną pasirinktą informaciją arba galite naudoti URL kodavimo įrankius, kad sukurtumėte savo užkoduotą „json“, kad gautumėte daugiau duomenų.

Šį kartą širdies ritmo giraitę bandome naudoti naudojant „I2C High Accracy Temp & Humi Grove“. Kadangi „LCD Grove“taip pat naudoja I2C, mes naudojame „I2C Hub“, kad prijungtume „Temp & Humi Grove“ir „LCD Grove“prie „Wio LTE“.

Tada įtraukite galvos failą į „BickTracker.h“ir pridėkite kintamąjį bei metodą prie „BikeTracker“klasės, kad išsaugotumėte ir matuotumėte temperatūrą.

/// BikeTracker.h

//… #include "Seeed_SHT35.h" klasės programa:: BikeTracker: application:: interface:: IApplication {//… apsaugota: //… SHT35 _sht35; plūdė _temperatūra; //… void MeasureTemperature (void); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 yra SCL PIN kodas BikeTracker:: BikeTracker (void): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} //… void BikeTracker:: meetTemperature (void) {plūdės temperatūra, drėgmė; if (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & temperatūra ir drėgmė) == NO_ERROR) {_temperatūra = temperatūra; }} //…

Jei norite, galite pakeisti LCD ekraną ciklo () metodu:

// sprintf (2 eilutė, "Širdies ritmas: %d", _heartRate);

Matuoti temperatūrą (); sprintf (2 eilutė, "Temp: %f", _temperatūra);

Bet kaip jį paskelbti „PubNub“? Turite pakeisti koduotų „json“ir „sprintf“() funkcijų parametrus „PublishToPubNub“() metodu, leiskite tai atrodyti taip:

// sprintf (cmd, "GET/paskelbti/%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/paskelbti/%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 galite matyti temperatūrą „PubNub“derinimo pulte.

Rekomenduojamas: