Indholdsfortegnelse:
- Trin 1: Anskaffelse af materialer
- Trin 2: Opsætning af enhederne
- Trin 3: Kodning af Arduino for at udtrække data
- Trin 4: Brug af behandling til at lytte
- Trin 5: Visning af data på Tableau Public
- Trin 6: Forfining af Viz
Video: Path Mapper: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
I dette IoT-projekt kører vi et NEO-6M (GPS-modul) op for at levere lokaliseringsdata gennem Arduino til et Excel-ark, der vil blive gemt på computeren. Bagefter med Tableau Public opretter vi en datavisualisering af disse data for at kortlægge den vej, vi tog. Selvom dette er en måde at indsamle og præsentere data i realtid i en stærkt korreleret data, dvs. denne proces kan også anvendes på andre datadrevne projekter.
Trin 1: Anskaffelse af materialer
Til dette projekt skal du bruge følgende:
- NEO-6M GPS-modul
- Arduino Uno
- Han/han -jumpertråde (du skal bruge 4 ledninger)
- USB 2.0 -kabel Type A til B
- Computer med disse programmer: Tableau Public, Arduino IDE (med TinyGPS ++) og behandling
Trin 2: Opsætning af enhederne
Vi skal først konfigurere GPS -modulet med Arduino UNO for at Arduino kan give os en grænseflade til at vise dataene. Hver af de fire ledninger, der er forbundet til NEO-6M, svarer til specifikke porte. Hvis din NEO-6M ikke følger med ledningerne, skal du koble den direkte med jumperkabler. I diagrammet ovenfor svarer rød til strøm (VCC), sort til jord (GND), gul til at overføre data (TxD) og hvid til at modtage data (RxD). Vi forbinder disse ledninger til han-/hanstrømtråde, så vi kan forbinde dem med Arduino. Efter diagrammet ovenfor forbinder vi jordledningen til den digitale GND -pin på Arduino, TxD -ledningen til 4, RxD -ledningen til ~ 3 og VCC -ledningen til 5V for spænding. I et fremtidigt trin skal vi definere TxD og RxD med de korrekte numre i SoftwareSerial.
Når de to enheder er forbundet til hinanden, skal vi levere en strømkilde. Tilslut USB 2.0-kablet til din bærbare computer, og lyset på NEO-6M skal lyse.
Trin 3: Kodning af Arduino for at udtrække data
Nu hvor vi har konfigureret enhederne til at indsamle GPS -data fra satellitterne, skriver vi kode for at analysere de GPS -data, vi ønsker. Forudsat at du har registreret et signal (mit GPS-modul blinker blåt), udskriver NEO-6M som standard rådata på den serielle skærm i form af NMEA-meddelelser, der ligner $ GP efterfulgt af flere bogstaver og en serie af tal. Billedet ovenfor giver en generel idé om, hvad der skal vises på din serielle skærm, når den grundlæggende Arduino -kode er indsat.
For at forklare den kode, jeg har vedhæftet (eller hvis du vil prøve at kode den selv), skal du først inkludere både SoftwareSerial- og TinyGPS ++ -bibliotekerne (for sidstnævnte Sketch> Include> Add. ZIP library). SoftwareSerial giver os mulighed for at have en seriel forbindelse; TinyGPS ++ giver os et let værktøj til at udskrive de målrettede oplysninger i en læsbar form. Sørg for at initialisere SoftwareSerial -objektet til de tilsvarende stifter på Arduino. I opsætningsfunktionen bruger vi 9600 som baudhastighed.
Med henblik på denne instruktive udskriver vi kun syv typer data i loop -funktionen: breddegrad (grader), længdegrad (grader), hastighed (km), kurs (grader), højde (km), antal satellitter i brug og hdop. Du kan søge i syntaksen til udskrivning af disse oplysninger i Arduiniana -biblioteket. Den generelle form er Serial.print (). For eksempel for at udskrive længdegrad ville vi skrive Serial.print (gps.location.lng (), 6). 6 repræsenterer, hvor mange cifre vi ønsker til højre for decimaltegnet.
Min kode har ekstra tegn udskrevet af hensyn til et let formateret regex i det næste trin. Hvis du imidlertid gerne vil stoppe ved dette trin, er du velkommen til at formatere dataene anderledes for at lette visningen på den serielle skærm.
Trin 4: Brug af behandling til at lytte
Selvom vi har konfigureret kode til Arduino IDE, har vi et problem med at gemme disse data. Lige nu kan vi kun se dataene på den serielle skærm, mens vi indsamler dem. Der er mange måder at logge disse data på, men jeg valgte Processing primært fordi dets interface efterligner Arduino IDE, og den bruger Java, et sprog jeg er fortrolig med (bemærk at du også kunne styre Arduino -kortet med Processing, hvis du downloader Firmata). Behandlingen lytter ind på porten, der er forbundet til Arduino og har evnen til at manipulere de data, der læses på den serielle skærm. For at finde navnet på denne port skal du gå tilbage til din Arduino IDE -fil og tjekke i Værktøjer> Port.
Jeg har givet behandlingskoden, men her er en hurtig oversigt over, hvordan koden fungerer.
Inden opsætningsfunktionen skal du sørge for at have variabler til porten, den resulterende tabel, rækken, vi skal arbejde med, og navnet på filen. I opsætningsfunktionen er der parametre til indstilling af størrelsen på dit Run -vindue, men disse tal påvirker ikke vores funktionalitet (f.eks. Sæt dem til (500, 500)). Når du initialiserer porten, skal du bruge portens navn i strengform og en baudhastighed på 9600. Til sidst skal du oprette de ni kolonner (for de syv GPS -kategorier, tid og dato) for at initialisere tabellen.
I tegnefunktionen bruger vi de indbyggede dato- og tidsfunktioner til at holde styr på, hvornår hvert sæt GPS -data udtrækkes. Nu for at læse datastrømmen fra Arduino og sætte den under de relevante overskrifter med den korrekte tid og dato, bruger vi regelmæssige udtryk.
Jeg bruger regex til at analysere de nøjagtige data med matchAll -funktionen, der leder efter ethvert udtryk mellem lighedstegnet og semikolon (afgrænserne, jeg satte i min Arduino -kode). Dette placerer efterfølgende alle de matchede tags, de numeriske data, i et todimensionalt array. Vi kan derefter opfordre disse array -indekser til at sætte dem under overskrifterne på Excel -arket.
For at gemme den nye.csv -fil bruger vi et tastetryk til at lukke vinduet Kør. Jo længere du venter med at trykke på en tast, jo flere data vil du indsamle. Efter en anden vejledning besluttede jeg også at gemme filen i datamappen med dato og klokkeslæt som filnavn.
Trin 5: Visning af data på Tableau Public
Det sidste trin indebærer en vis datavisualisering. Der er mange programmer til at oprette og vise datavisualiseringer, dvs. Plotly, men til dette projekt vil vi bruge Tableau. Åbn Tableau Public, og åbn den gemte Excel -fil som en tekstfil. For at oprette et regneark skal du klikke på Ark 1 nederst til venstre.
Da vi arbejder med GPS -data, bruger vi et kort til at skildre vores oplysninger. I den venstre kolonne, hvor der står Measures, trækker vi længdegrad til kolonner og latitude til rækker øverst. Tableau standardindstiller begge målinger til AVG, så klik på rullemenuen ud for vilkårene og skift begge til Dimension. Nu skal kortet have en sti vist ved hjælp af de indsamlede bredde- og længdegrader.
For at rydde op i dine data for fejl (hvilket også kan gøres, før du åbner Tableau), kan du vælge at ekskludere nogle placeringscirkler ved at klikke på dem og vælge indstillingen. Mit GPS -modul er ikke 100% nøjagtigt, da nogle dele af min sti ikke er blevet fundet, men den generelle sti er blevet registreret.
Trin 6: Forfining af Viz
Den sidste del er at gøre disse data mere læsbare. Hvis du vil have gadekontekst, kan du gå til Kort> Kortlag> Gader og motorveje. Eksperimentér gerne med andre mærker. Jeg trak Speed over Color for at vise, hvordan farveintensiteten stiger, når hastigheden stiger. Jeg brugte også Detalje i stedet for Label for Course, fordi Label ville vise tallene på kortet, mens jeg kun ønskede, at der skulle dukke oplysninger op, når du svæver over placeringspunkterne.
Nu hvor du har oplevet hele processen med at indsamle data og vise, hvad du har på en datavisualisering, kan du anvende dette på andre projekter!
af Pingdi Huang, sommer 2018
Anbefalede:
Synkronisering af mapper med Python: 5 trin
Synkronisering af mapper med Python: Denne instruktør viser dig, hvordan du holder to mapper (og alle mapper i dem) synkroniseret, så den ene er en direkte kopi af den anden. Ideel til sikkerhedskopiering af arbejde både lokalt, til en cloud-/netværksserver eller et USB -drev. Ingen erfaring med programmering er n
ESP32 Scraper-parser-mailer og Live Mapper: 4 trin (med billeder)
ESP32 Scraper-parser-mailer og Live Mapper: Hej verden! Dette er min første instruerbare! Jeg er Marco fra Grosseto Italien, jeg er ikke en udvikler, jeg er ikke en elektronisk ingeniør, men jeg er en miljøguide i vores lokale naturpark (Maremma naturpark). I mit kooperativ arbejder vi meget med kano
Sådan ændres ikoner til mapper (Mac Os X): 3 trin
Sådan ændres ikoner til mapper (Mac Os X): En vejledning til mac -nybegyndere, der ønsker at ændre billedikonet for der mapper
Sådan gendannes åbne mapper, når du logger ind igen, når du logger ud: 5 trin
Sådan gendannes åbne mapper, når du logger ind igen, når du logger ud: Okay, så her er situationen, du bruger computeren med masser af masser af dine mapper åbnet … Så kom din mor hjem tidligere end forventet! Du ved udmærket, at hvis hun fanger dig ved hjælp af computeren, mens du burde være i seng, fordi
Solar LED Tonka Truck Path Light: 8 trin (med billeder)
Solar LED Tonka Truck Path Light: Nyt liv for gammelt legetøj! Væk dine gamle legetøjsvogne tilbage til livet med LED -stier. Jeg har aldrig ønsket at skille mig af med min elskede Tonka dump tuck, men som voksen blev det sværere og sværere at retfærdiggøre at beholde … indtil nu