Innholdsfortegnelse:
- Trinn 1: Innhenting av materialer
- Trinn 2: Sette opp enhetene
- Trinn 3: Koding av Arduino for å trekke ut data
- Trinn 4: Bruke prosessering for å lytte
- Trinn 5: Vise data på Tableau Public
- Trinn 6: Raffinering av Viz
Video: The Path Mapper: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
I dette IoT-prosjektet kobler vi opp en NEO-6M (GPS-modul) for å levere lokaliseringsdata gjennom Arduino til et Excel-ark som vil bli lagret på datamaskinen. Etterpå, med Tableau Public, lager vi en datavisualisering av disse dataene for å kartlegge banen vi tok. Selv om dette er en måte å samle og presentere sanntidsdata i en sterkt korrelert data, dvs. denne prosessen kan også brukes på andre datadrevne prosjekter.
Trinn 1: Innhenting av materialer
For dette prosjektet trenger du følgende:
- NEO-6M GPS-modul
- Arduino Uno
- Stikkontakter for menn/hanner (du trenger 4 ledninger)
- USB 2.0 -kabel Type A til B
- Datamaskin med disse programmene: Tableau Public, Arduino IDE (med TinyGPS ++) og behandling
Trinn 2: Sette opp enhetene
Vi må først sette opp GPS -modulen med Arduino UNO for at Arduino skal gi oss et grensesnitt for å vise dataene. Hver av de fire ledningene som er koblet til NEO-6M, tilsvarer spesifikke porter. Hvis NEO-6M ikke følger med ledningene, må du koble den direkte med jumperkabler. I diagrammet ovenfor tilsvarer rødt strøm (VCC), svart til bakken (GND), gult for å overføre data (TxD) og hvitt for å motta data (RxD). Vi kobler disse ledningene til han/mann -jumper -ledninger slik at vi kan koble dem til Arduino. Etter diagrammet ovenfor kobler vi jordledningen til den digitale GND -pinnen på Arduino, TxD -ledningen til 4, RxD -ledningen til ~ 3, og VCC -ledningen til 5V for spenning. I et fremtidig trinn må vi definere TxD og RxD med riktige tall i SoftwareSerial.
Når de to enhetene er koblet til hverandre, må vi skaffe en strømkilde. Koble USB 2.0-kabelen til den bærbare datamaskinen, og lyset på NEO-6M skal lyse.
Trinn 3: Koding av Arduino for å trekke ut data
Nå som vi har enhetene satt opp for å samle GPS -data fra satellittene, skriver vi kode for å analysere GPS -dataene vi ønsker. Forutsatt at du har mottatt et signal (GPS-modulen min blinker blått), skriver NEO-6M som standard ut rådata på den serielle skjermen i form av NMEA-meldinger, som ser ut som $ GP etterfulgt av flere bokstaver og en serie av tall. Bildet ovenfor gir en generell ide om hva som skal vises på den serielle skjermen når den grunnleggende Arduino -koden er satt inn.
For å forklare koden jeg har vedlagt (eller hvis du vil prøve å kode den selv), må du først inkludere både SoftwareSerial og TinyGPS ++ biblioteker (for sistnevnte, Sketch> Include> Add. ZIP library). SoftwareSerial lar oss ha en seriell tilkobling; TinyGPS ++ gir oss et enkelt verktøy for å skrive ut målrettet informasjon i en lesbar form. Pass på at du initialiserer SoftwareSerial -objektet til de tilsvarende pinnene på Arduino. I oppsettfunksjonen bruker vi 9600 som overføringshastighet.
For dette formålet vil vi bare skrive ut syv typer data i sløyfefunksjonen: breddegrad (grader), lengdegrad (grader), hastighet (km), kurs (grader), høyde (km), antall satellitter i bruk og hdop. Du kan søke opp syntaksen for å skrive ut denne informasjonen i Arduiniana -biblioteket. Den generelle formen er Serial.print (). For eksempel for å skrive ut lengdegrad, ville vi skrive ut Serial.print (gps.location.lng (), 6). 6 representerer hvor mange sifre vi vil ha til høyre for desimaltegnet.
Koden min har ekstra tegn skrevet ut av hensyn til et lett formatert regex i neste trinn. Hvis du imidlertid ønsker å stoppe på dette trinnet, kan du formatere dataene annerledes for enkel visning på den serielle skjermen.
Trinn 4: Bruke prosessering for å lytte
Selv om vi har kode for Arduino IDE satt opp, har vi et problem med å lagre disse dataene. For øyeblikket kan vi bare se dataene på den serielle skjermen mens vi samler dem. Det er mange måter å logge disse dataene på, men jeg valgte Processing først og fremst fordi grensesnittet etterligner Arduino IDE og det bruker Java, et språk jeg er kjent med (merk at du også kan kontrollere Arduino -kortet med Processing hvis du laster ned Firmata). Behandlingen lytter inn på porten som er koblet til Arduino og har muligheten til å manipulere dataene som leses inn på den serielle skjermen. For å finne navnet på denne porten, gå tilbake til Arduino IDE -filen og sjekk i Verktøy> Port.
Jeg har oppgitt behandlingskoden, men her er en rask oversikt over hvordan koden fungerer.
Før installasjonsfunksjonen må du kontrollere at du har variabler for porten, den resulterende tabellen, raden vi skal jobbe med, og navnet på filen. I oppsettfunksjonen er det parametere for å angi størrelsen på Run -vinduet, men disse tallene påvirker ikke funksjonaliteten vår (for eksempel, sett dem til (500, 500)). Når du initialiserer porten, bruker du portens navn i strengform og en overføringshastighet på 9600. Opprett til slutt de ni kolonnene (for de syv GPS -kategoriene, klokkeslettet og datoen) for å initialisere tabellen.
I trekkfunksjonen bruker vi de innebygde dato- og klokkeslettfunksjonene for å holde oversikt over når hvert sett med GPS -data hentes ut. For å lese datastrømmen fra Arduino og sette den under de riktige overskriftene med riktig tid og dato, bruker vi vanlige uttrykk.
Jeg bruker regex for å analysere de eksakte dataene med matchAll -funksjonen som ser etter et uttrykk mellom likhetstegnet og semikolonet (skilletegnene jeg satte i min Arduino -kode). Dette plasserer deretter alle de matchede kodene, de numeriske dataene, i en todimensjonal matrise. Vi kan deretter be om disse matriseindeksene for å sette dem under overskriftene på Excel -arket.
For å lagre den nye CSV -filen bruker vi et tastetrykk for å lukke vinduet Kjør. Jo lenger du venter med å trykke på en tast, desto mer data samler du inn. Etter å ha brukt en annen guide bestemte jeg meg også for å lagre filen i datamappen med dato og klokkeslett som filnavn.
Trinn 5: Vise data på Tableau Public
Det siste trinnet innebærer litt datavisualisering. Det er mange programmer for å lage og vise datavisualiseringer, dvs. Plotly, men for dette prosjektet vil vi bruke Tableau. Åpne Tableau Public og åpne den lagrede Excel -filen som en tekstfil. For å lage et regneark, klikk på Ark 1 nederst til venstre.
Siden vi jobber med GPS -data, bruker vi et kart for å skildre informasjonen vår. I den venstre kolonnen der det står Measures, drar vi lengdegrad til kolonner og breddegrad til rader øverst. Tableau standardiserer begge målingene til AVG, så klikk på rullegardinmenyen ved siden av vilkårene og endre begge til Dimensjon. Nå skal kartet ha en bane vist ved hjelp av innsamlede breddegrad og lengdegrad.
For å rydde opp i dataene dine for feil (som også kan gjøres før du åpner Tableau), kan du velge å ekskludere noen posisjonssirkler ved å klikke på dem og velge alternativet. GPS -modulen min er ikke 100% nøyaktig, ettersom noen deler av stien min ikke har blitt funnet, men den generelle banen er registrert.
Trinn 6: Raffinering av Viz
Den siste delen er å gjøre disse dataene mer lesbare. Hvis du vil ha gatekontekst, kan du gå til Kart> Kartlag> Gater og motorveier. Eksperimenter gjerne med andre merker. Jeg dro Speed over Color for å vise hvordan intensiteten til fargen øker når hastigheten øker. Jeg brukte også Detalj i stedet for Etikett for kurs fordi Etikett ville vise tallene på kartet, mens jeg bare ønsket at informasjon skulle dukke opp når du holder markøren over plasseringspunktene.
Nå som du har opplevd hele prosessen med å samle inn data og vise det du har på en datavisualisering, kan du bruke dette på andre prosjekter!
av Pingdi Huang, sommeren 2018
Anbefalt:
Synkronisering av mapper med Python: 5 trinn
Synkronisere mapper med Python: Denne instruksjonen viser deg hvordan du holder to mapper (og alle mappene i dem) synkronisert, så den ene er en direkte kopi av den andre. Ideell for sikkerhetskopiering av arbeid både lokalt, til en sky-/nettverksserver eller en USB -stasjon. Ingen erfaring med programmering er
ESP32 Scraper-parser-mailer og Live Mapper: 4 trinn (med bilder)
ESP32 Scraper-parser-mailer og Live Mapper: Hei verden! Dette er min første instruks! Jeg er Marco fra Grosseto Italia, jeg er ikke en utvikler, jeg er ikke en elektronisk ingeniør, men jeg er en miljøguide i vår lokale naturpark (Maremma naturpark). I mitt kooperativ jobber vi mye med kano
Slik endrer du ikoner for mapper (Mac Os X): 3 trinn
Slik endrer du ikoner for mapper (Mac Os X): En opplæring for mac -nybegynnere som ønsker å endre bildeikonet for mappene
Slik gjenoppretter du åpne mapper når du logger på igjen etter at du har logget av: 5 trinn
Slik gjenoppretter du åpne mapper når du logger på igjen etter at du har logget av: Ok, så her er situasjonen, du bruker datamaskinen med mange og mange mapper åpne … Så kom moren din hjem tidligere enn forventet! Du vet helt at hvis hun fanger deg ved hjelp av datamaskinen, mens du burde ligge i sengen
Solar LED Tonka Truck Path Light: 8 trinn (med bilder)
Solar LED Tonka Truck Path Light: Nytt liv for gamle leker! Gi liv til de gamle lekebilene dine med LED -banelys. Jeg har aldri ønsket å dele med min elskede Tonka dump tuck, men som voksen ble det vanskeligere og vanskeligere å rettferdiggjøre å beholde … til nå