Cuprins:

Vizualizarea datelor de transport cu Google Map: 6 pași
Vizualizarea datelor de transport cu Google Map: 6 pași

Video: Vizualizarea datelor de transport cu Google Map: 6 pași

Video: Vizualizarea datelor de transport cu Google Map: 6 pași
Video: Găsirea Adresei și Obținerea Coordonatelor cu Google Maps pe Android: Un Ghid Rapid 2024, Noiembrie
Anonim
Vizualizarea datelor de transport cu Google Map
Vizualizarea datelor de transport cu Google Map

De obicei, vrem să înregistrăm diferite date în timpul ciclismului, de data aceasta am folosit noul Wio LTE pentru a le urmări.

Pasul 1: Lucruri utilizate în acest proiect

Componente Hareware

  • Compatibil cu Wio LTE versiunea UE v1.3- 4G, Cat.1, GNSS, Espruino
  • Grove - Senzor de ritm cardiac cu clip pentru urechi
  • Grove - LCD 16 x 2 (negru pe galben)

Aplicații software și servicii online

  • IDE Arduino
  • API PubNub Publish / Subscribe
  • Hărți Google

Pasul 2: Poveste

Image
Image

Pasul 3: Conexiune hardware

Configurare web
Configurare web

Instalați antene GPS și LTE pe Wio LTE și conectați-vă cartela SIM la acesta. Conectați senzorul de ritm cardiac al clipului pentru urechi și ecranul LCD 16x2 la porturile D20 și I2C ale Wio LTE.

Puteți schimba senzorul de ritm cardiac al clipului pentru urechi cu alți senzori care vă plac. Vă rugăm să consultați sfârșitul acestui articol.

Pasul 4: Configurare web

Partea 1: PubNub

Faceți clic aici conectați-vă sau înregistrați un cont PubNub, PubNub este utilizat pentru a transmite date în timp real pe hartă.

Deschideți Demo Project în Portalul de administrare PubNub, veți vedea o cheie de publicare și o cheie de abonare, rețineți-le pentru programarea software-ului.

Partea 2: Google Map

Urmați aici pentru a obține o cheie API Google Map, aceasta va fi folosită și în programarea software.

Pasul 5: Programare software

Programare software
Programare software

Partea 1: Wio LTE

Deoarece nu există o bibliotecă PubNub pentru Wio LTE, putem trimite datele noastre din cererea HTTP, consultați Documentul API REST PubNub.

Pentru a face o conexiune HTTP prin intermediul cartelei SIM conectate la Wio LTE, ar trebui să setați mai întâi APN-ul dvs., dacă nu știți acest lucru, vă rugăm să contactați operatorii de telefonie mobilă.

Apoi, setați cheia de publicare PubNub, cheia de abonare și canalul. Canalul de aici este folosit pentru a diferenția editorii și abonații. De exemplu, folosim canalul bicicletei aici, toți Subcriberii din canalul canalului vor primi mesajele pe care le-am publicat.

Setările de mai sus, nu le-am împachetat în clasă, astfel încât să le puteți modifica mai ușor în bike.ino, puteți descărca aceste coduri de la sfârșitul acestui articol.

Partea 2: PubNub

Apăsați și mențineți apăsată tasta Boot0 în Wio LTE, conectați-o la computer printr-un cablu USB, încărcați programul în Arduino IDE, apăsați tasta Reset în Wio LTE.

Apoi, accesați PubNub, faceți clic pe Consola de depanare în Proiectul demonstrativ, completați numele canalului dvs. în canalul implicit, faceți clic pe Adăugare client.

Când vedeți [1, „Abonat”, „bicicletă”] în consolă, Abonatul a fost adăugat cu succes. Așteptați un timp, veți vedea datele Wio LTE apărând în consolă.

Partea 3: Harta Google

Hărțile ENO sunt hărți în timp real cu PubNub și MapBox, pot fi folosite și pentru PubNub și Google Map, o puteți descărca de pe GitHub.

Puteți utiliza pur și simplu un exemplu numit google-draw-line.html în folderul de exemple, doar să modificați cheia de publicare, cheia de abonare, canalul și cheia Google în rândurile 29, 30, 33 și 47.

ANUNȚ: Vă rugăm să comentați linia 42, sau va trimite datele de simulare la PubNub.

Dacă doriți să afișați graficul ritmului cardiac în coenerul din dreapta jos, puteți utiliza Chart.js, acesta poate fi descărcat de pe site-ul web, îl puteți pune în folderul rădăcină ENO Maps și îl puteți include în capul google-draw-line.html.

Și adăugați o pânză într-un div pentru a afișa graficul:

Apoi creați două tablouri pentru a păstra datele graficului

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

Printre acestea, chartLabels este utilizat pentru păstrarea datelor de localizare, chartData este utilizat pentru păstrarea datelor despre ritmul cardiac. Când vin mesaje, împingeți date noi către ele și reîmprospătați graficul.

//… var map = eon.map ({mesaj: funcție (mesaj, calendar, canal) {//… chartLabels.push (obj2string (mesaj [0].latlng)); chartData.push (mesaj [0].data); var ctx = document.getElementById ("diagramă"). getContext ('2d'); var diagramă = diagramă nouă (ctx, {type: 'line', date: {labels: chartLabels, datasets: [{label: " Ritmul cardiac ", date: chartData}]}}); // …}});

Totul este gata. Încearcă să o iei cu bicicleta data viitoare.

Pasul 6: Cum să lucrați cu alt senzor Grove?

În programul Wio LTE, puteți lua una și mai multe date personalizate pentru a le afișa în diagramă sau puteți face mai multe. Următorul articol arată cum să modificați programul pentru a-l realiza.

Primul lucru pe care trebuie să-l știți este, json-ul pe care doriți să-l publicați în PubNub, ar trebui să fie codificat la adresa URL. Json codat este codat greu în clasa BikeTracker, arată astfel:

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

Deci, este ușor să luați o singură dată personalizată sau puteți utiliza instrumente de codificare URL pentru a vă crea propriul json codificat pentru a lua mai multe date.

De această dată încercăm să folosim I2C High Accracy Temp & Humi Grove pentru a înlocui Heart Rate Grove. Deoarece LCD Grove folosește și I2C, folosim un hub I2C pentru a conecta Temp & Humi Grove și LCD Grove la Wio LTE.

Apoi includeți fișierul principal în BickTracker.h și adăugați o variabilă și o metodă la clasa BikeTracker pentru a stoca și măsura temperatura.

/// BikeTracker.h

// … #include aplicația din clasa „Seeed_SHT35.h”:: BikeTracker: application:: interface:: IApplication {//… protected: //… SHT35 _sht35; float _temperature; // … void MeasureTemperature (nul); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (void) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 este numărul PIN SCL BikeTracker:: BikeTracker (void): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} // … void BikeTracker:: measureTemperature (void) {temperatura de plutire, umiditate; if (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & temperature, & umiditate) == NO_ERROR) {_temperature = temperature; }} // …

Dacă doriți, puteți schimba afișajul LCD în metoda Loop ():

// sprintf (linia2, „Ritm cardiac:% d”, _heartRate);

MeasureTemperature (); sprintf (linia2, "Temp:% f", _temperatură);

Dar cum să-l public pe PubNub? Trebuie să schimbați parametrii codați ai funcției json și sprintf () în metoda PublishToPubNub (), să arate astfel:

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

Apoi, puteți vedea temperatura în consola de depanare PubNub.

Recomandat: