Sadržaj:

Mapa putanja: 6 koraka
Mapa putanja: 6 koraka

Video: Mapa putanja: 6 koraka

Video: Mapa putanja: 6 koraka
Video: Предлагают вправить копчик ? Посмотри это видео 2024, Novembar
Anonim
Mapa putanja
Mapa putanja
Mapa putanja
Mapa putanja
Mapa putanja
Mapa putanja

U ovom IoT projektu povezujemo NEO-6M (GPS modul) za isporuku lokacijskih podataka putem Arduina na Excel listu koja će biti spremljena na računaru. Nakon toga sa Tableau Public -om kreiramo vizualizaciju podataka ovih podataka kako bismo zacrtali put kojim smo krenuli. Iako je ovo jedan od načina prikupljanja i predstavljanja podataka u stvarnom vremenu u visoko koreliranim podacima, ovaj proces se može primijeniti i na druge projekte vođene podacima.

Korak 1: Nabavka materijala

Nabavka materijala
Nabavka materijala

Za ovaj projekat trebat će vam sljedeće:

  • NEO-6M GPS modul
  • Arduino Uno
  • Muške/muške kratkospojne žice (trebat će vam 4 žice)
  • USB 2.0 kabel tipa A do B
  • Računar sa ovim programima: Tableau Public, Arduino IDE (sa TinyGPS ++) i Processing

Korak 2: Postavljanje uređaja

Postavljanje uređaja
Postavljanje uređaja
Postavljanje uređaja
Postavljanje uređaja

Prvo moramo postaviti GPS modul s Arduino UNO kako bi nam Arduino dao sučelje za prikaz podataka. Svaka od četiri žice spojene na NEO-6M odgovara određenim portovima. Ako vaš NEO-6M ne dolazi sa žicama, morat ćete ga spojiti direktno pomoću kratkospojnika. Na gornjem dijagramu, crvena odgovara snazi (VCC), crna zemlji (GND), žuta za prijenos podataka (TxD), a bijela za prijem podataka (RxD). Ove žice povezujemo sa muškim/muškim kratkospojnicima tako da ih možemo spojiti na Arduino. Slijedeći gornji dijagram, povezujemo žicu za uzemljenje s GND digitalnim pinom na Arduinu, TxD žicom na 4, RxD žicom na ~ 3 i VCC žicom na 5V za napon. U narednom koraku morat ćemo definirati TxD i RxD s ispravnim brojevima u SoftwareSerial -u.

Nakon što su dva uređaja međusobno povezana, moramo osigurati izvor napajanja. Priključite USB 2.0 kabel na prijenosno računalo i lampica na NEO-6M bi trebala zasvijetliti.

Korak 3: Kodiranje Arduina za ekstrakciju podataka

Kodiranje Arduina za ekstrakciju podataka
Kodiranje Arduina za ekstrakciju podataka

Sada kada imamo uređaje postavljene za prikupljanje GPS podataka sa satelita, napisat ćemo kôd za raščlanjivanje GPS podataka koje želimo. Pod pretpostavkom da ste uhvatili signal (moj GPS modul će treperiti plavo), NEO-6M prema zadanim postavkama ispisuje neobrađene podatke na serijskom monitoru u obliku poruka NMEA, koje izgledaju poput USD, nakon čega slijede još slova i niz brojeva. Gornja slika daje opću ideju o tome što bi trebalo biti prikazano na vašem serijskom monitoru nakon umetanja osnovnog Arduino koda.

Da biste objasnili kôd koji sam priložio (ili ako želite sami pokušati kodirati), morate prvo uključiti i biblioteke SoftwareSerial i TinyGPS ++ (za potonju Sketch> Include> Add. ZIP library). SoftwareSerial nam omogućava serijsku vezu; TinyGPS ++ daje nam jednostavan alat za ispis ciljanih informacija u čitljivom obliku. Pobrinite se da inicijalizirate objekt SoftwareSerial na odgovarajuće pinove na Arduinu. U funkciji postavljanja koristimo 9600 kao brzinu prijenosa.

Za potrebe ovog uputstva, mi ćemo ispisati samo sedam vrsta podataka u funkciji petlje: zemljopisna širina (stepeni), dužina (stepeni), brzina (km), kurs (stepeni), nadmorska visina (km), broj satelita u use i hdop. Možete pretraživati sintaksu za ispis ovih podataka u biblioteci Arduiniana. Opći oblik je Serial.print (). Na primjer, za ispis geografske dužine, otkucali bismo Serial.print (gps.location.lng (), 6). 6 predstavlja koliko cifara želimo desno od decimalne točke.

Moj kôd ima dodatne znakove ispisane radi lako formatiranog regularnog izraza u sljedećem koraku. Međutim, ako želite stati na ovom koraku, slobodno formatirajte podatke na drugačiji način radi lakšeg pregleda na serijskom monitoru.

Korak 4: Korištenje obrade za slušanje

Korištenje obrade za slušanje
Korištenje obrade za slušanje

Iako imamo kod za Arduino IDE postavljen, imamo problem sa spremanjem ovih podataka. Zasad možemo samo vidjeti podatke na serijskom monitoru dok ih prikupljamo. Postoji mnogo načina za evidentiranje ovih podataka, ali odabrao sam Processing prvenstveno jer njegovo sučelje oponaša Arduino IDE i koristi Javu, jezik koji mi je poznat (imajte na umu da biste Arduino ploču mogli kontrolirati i pomoću Processing ako preuzmete Firmatu). Obrada osluškuje port priključen na Arduino i ima mogućnost manipuliranja podacima koji se čitaju na serijskom monitoru. Da biste pronašli naziv ovog porta, vratite se na svoju Arduino IDE datoteku i provjerite Alati> Port.

Dao sam kod za obradu, ali evo kratkog pregleda kako kôd radi.

Prije funkcije postavljanja provjerite imate li varijable za port, rezultirajuću tablicu, red s kojim ćemo raditi i naziv datoteke. Zatim u funkciji postavljanja postoje parametri za postavljanje veličine vašeg prozora Run, ali ti brojevi ne utječu na našu funkcionalnost (na primjer, postavite ih na (500, 500)). Prilikom inicijalizacije porta, koristite naziv porta u obliku String i brzinu prijenosa od 9600. Na kraju, stvorite devet stupaca (za sedam GPS kategorija, vrijeme i datum) za inicijalizaciju tablice.

U funkciji crtanja koristimo ugrađene funkcije datuma i vremena kako bismo pratili kada se izvlači svaki skup GPS podataka. Sada za čitanje toka podataka s Arduina i stavljanje pod odgovarajuća zaglavlja s točnim vremenom i datumom, koristimo regularne izraze.

Koristim regex za raščlanjivanje točnih podataka funkcijom matchAll koja traži bilo koji izraz između znaka jednakosti i točke -zareza (graničnici koje sam stavio u svoj Arduino kôd). Ovo kasnije stavlja sve podudarne oznake, numeričke podatke, u dvodimenzionalni niz. Zatim možemo pozvati ove indekse niza da ih stave pod zaglavlja Excel lista.

Da bismo spremili novu.csv datoteku, pritiskom na tipku zatvaramo prozor Run. Što duže čekate da pritisnete tipku, prikupit ćete više podataka. Slijedeći način drugog vodiča, odlučio sam i spremiti datoteku u mapu s podacima s datumom i vremenom kao imenom datoteke.

Korak 5: Prikaz podataka na Tableau Public

Prikazivanje podataka na Tableau Public
Prikazivanje podataka na Tableau Public
Prikazivanje podataka na Tableau Public
Prikazivanje podataka na Tableau Public
Prikazivanje podataka na Tableau Public
Prikazivanje podataka na Tableau Public

Posljednji korak uključuje vizualizaciju podataka. Postoji mnogo programa za stvaranje i prikaz vizualizacija podataka, odnosno Plotly, ali za ovaj projekt koristit ćemo Tableau. Otvorite Tableau Public i otvorite spremljenu Excel datoteku kao tekstualnu datoteku. Da biste stvorili radni list, kliknite na List 1 u donjem lijevom kutu.

Budući da radimo s GPS podacima, koristit ćemo kartu za prikaz naših podataka. U lijevu kolonu gdje piše Mjere, povući ćemo geografsku dužinu u stupce, a zemljopisnu širinu u redove na vrhu. Tablica je za obje mjere zadane vrijednosti AVG, pa kliknite na padajući izbornik pored izraza i promijenite obje u Dimenzija. Sada bi na karti trebala biti prikazana putanja koristeći prikupljene vrijednosti zemljopisne širine i dužine.

Da biste očistili svoje podatke od grešaka (što se može učiniti i prije otvaranja Tableau -a), možete izabrati da neke krugove lokacije isključite klikom na njih i odabirom opcije. Moj GPS modul nije 100% tačan jer neki dijelovi moje staze nisu locirani, ali općenita putanja je snimljena.

Korak 6: Poboljšajte Viz

Dorada Viz -a
Dorada Viz -a

Posljednji dio je učiniti ove podatke vidljivijima. Ako želite kontekst ulice, idite na Karta> Sloj karte> Ulice i autoputevi. Slobodno eksperimentirajte s drugim oznakama. Prevukao sam Brzinu preko Boje da pokažem kako se intenzitet boje povećava sa povećanjem brzine. Također sam koristio detalj umjesto oznake za kurs jer bi oznaka prikazala brojeve na karti, dok sam želio da se informacije pojavljuju samo kada zadržite pokazivač iznad točaka lokacije.

Sada kada ste iskusili cijeli proces prikupljanja podataka i prikazivanja onoga što imate na vizualizaciji podataka, možete to primijeniti na druge projekte!

autor Pingdi Huang, ljeto 2018

Preporučuje se: