Πίνακας περιεχομένων:

The Path Mapper: 6 βήματα
The Path Mapper: 6 βήματα

Βίντεο: The Path Mapper: 6 βήματα

Βίντεο: The Path Mapper: 6 βήματα
Βίντεο: Path of Exile 3.18: SENTINEL DAY # 20-21 Highlights +6 BOW CRAFT, MIRROR RING, 2 MIRRORS IN 2 DAYS.. 2024, Νοέμβριος
Anonim
Ο χαρτογράφος διαδρομής
Ο χαρτογράφος διαδρομής
Ο χαρτογράφος διαδρομής
Ο χαρτογράφος διαδρομής
Ο χαρτογράφος διαδρομής
Ο χαρτογράφος διαδρομής

Σε αυτό το έργο IoT, συνδέουμε ένα NEO-6M (μονάδα GPS) για να παραδώσουμε δεδομένα τοποθεσίας μέσω του Arduino σε ένα φύλλο Excel που θα αποθηκευτεί στον υπολογιστή. Στη συνέχεια, με το Tableau Public, δημιουργούμε μια οπτικοποίηση δεδομένων αυτών των δεδομένων για να χαράξουμε την πορεία που ακολουθήσαμε. Παρόλο που αυτός είναι ένας τρόπος συλλογής και παρουσίασης δεδομένων σε πραγματικό χρόνο σε δεδομένα υψηλής συσχέτισης, συγκεκριμένα, αυτή η διαδικασία μπορεί επίσης να εφαρμοστεί σε άλλα έργα που βασίζονται σε δεδομένα.

Βήμα 1: Απόκτηση υλικών

Απόκτηση Υλικών
Απόκτηση Υλικών

Για αυτό το έργο, θα χρειαστείτε τα ακόλουθα:

  • Μονάδα GPS NEO-6M
  • Arduino Uno
  • Ανδρικά/αρσενικά καλώδια άλματος (θα χρειαστείτε 4 σύρματα)
  • Καλώδιο USB 2.0 τύπου Α έως Β
  • Υπολογιστής με αυτά τα προγράμματα: Tableau Public, Arduino IDE (με TinyGPS ++) και Επεξεργασία

Βήμα 2: Ρύθμιση των συσκευών

Ρύθμιση των συσκευών
Ρύθμιση των συσκευών
Ρύθμιση των συσκευών
Ρύθμιση των συσκευών

Πρέπει πρώτα να ρυθμίσουμε τη μονάδα GPS με το Arduino UNO, προκειμένου το Arduino να μας δώσει μια διεπαφή για την εμφάνιση των δεδομένων. Κάθε ένα από τα τέσσερα καλώδια που συνδέονται με το NEO-6M αντιστοιχεί σε συγκεκριμένες θύρες. Εάν το NEO-6M δεν έρχεται με τα καλώδια, θα πρέπει να το συνδέσετε απευθείας με καλώδια βραχυκυκλωτήρων. Στο παραπάνω διάγραμμα, το κόκκινο αντιστοιχεί στην ισχύ (VCC), το μαύρο στη γείωση (GND), το κίτρινο στη μετάδοση δεδομένων (TxD) και το λευκό στη λήψη δεδομένων (RxD). Συνδέουμε αυτά τα καλώδια με αρσενικά/αρσενικά καλώδια, για να τα συνδέσουμε στο Arduino. Ακολουθώντας το παραπάνω διάγραμμα, συνδέουμε το καλώδιο γείωσης με την ψηφιακή ακίδα GND στο Arduino, το σύρμα TxD σε 4, το σύρμα RxD σε ~ 3 και το καλώδιο VCC σε 5V για τάση. Σε ένα μελλοντικό βήμα, θα πρέπει να ορίσουμε το TxD και το RxD με τους σωστούς αριθμούς στο SoftwareSerial.

Μόλις οι δύο συσκευές συνδεθούν μεταξύ τους, πρέπει να παρέχουμε μια πηγή ενέργειας. Συνδέστε το καλώδιο USB 2.0 στον φορητό υπολογιστή σας και το φως στο NEO-6M θα ανάψει.

Βήμα 3: Κωδικοποίηση του Arduino για εξαγωγή δεδομένων

Κωδικοποίηση του Arduino για εξαγωγή δεδομένων
Κωδικοποίηση του Arduino για εξαγωγή δεδομένων

Τώρα που έχουμε ρυθμίσει τις συσκευές για τη συλλογή δεδομένων GPS από τους δορυφόρους, θα γράψουμε κώδικα για την ανάλυση των δεδομένων GPS που θέλουμε. Υποθέτοντας ότι έχετε πάρει σήμα (η μονάδα GPS μου θα αναβοσβήνει μπλε), το NEO-6M από προεπιλογή εκτυπώνει ακατέργαστα δεδομένα στη σειριακή οθόνη με τη μορφή μηνυμάτων NMEA, τα οποία μοιάζουν με $ GP ακολουθούμενα από περισσότερα γράμματα και μια σειρά των αριθμών. Η παραπάνω εικόνα δίνει μια γενική ιδέα για το τι πρέπει να εμφανίζεται στη σειριακή οθόνη σας μόλις τοποθετηθεί ο βασικός κώδικας Arduino.

Για να εξηγήσετε τον κώδικα που έχω επισυνάψει (ή εάν θέλετε να προσπαθήσετε να τον κωδικοποιήσετε μόνοι σας), πρέπει πρώτα να συμπεριλάβετε τόσο τις βιβλιοθήκες SoftwareSerial όσο και τις βιβλιοθήκες TinyGPS ++ (για την τελευταία, Σκίτσο> Συμπερίληψη> Προσθήκη βιβλιοθήκης. ZIP). Το SoftwareSerial μας επιτρέπει να έχουμε σειριακή σύνδεση. Το TinyGPS ++ μας δίνει ένα εύκολο εργαλείο για την εκτύπωση των στοχευμένων πληροφοριών σε ευανάγνωστη μορφή. Βεβαιωθείτε ότι έχετε προετοιμάσει το αντικείμενο SoftwareSerial στις αντίστοιχες ακίδες του Arduino. Στη λειτουργία ρύθμισης, χρησιμοποιούμε 9600 ως ρυθμό baud.

Για τους σκοπούς αυτού του οδηγού, θα εκτυπώσουμε μόνο επτά τύπους δεδομένων στη λειτουργία βρόχου: γεωγραφικό πλάτος (μοίρες), γεωγραφικό μήκος (μοίρες), ταχύτητα (χλμ), πορεία (μοίρες), υψόμετρο (χλμ), αριθμός δορυφόρων σε χρήση, και hdop. Μπορείτε να αναζητήσετε τη σύνταξη για εκτύπωση αυτών των πληροφοριών στη βιβλιοθήκη Arduiniana. Η γενική μορφή είναι Serial.print (). Για παράδειγμα, για να εκτυπώσουμε γεωγραφικό μήκος, θα πληκτρολογήσουμε Serial.print (gps.location.lng (), 6). Το 6 αντιπροσωπεύει πόσα ψηφία θέλουμε στα δεξιά της υποδιαστολής.

Ο κωδικός μου έχει επιπλέον χαρακτήρες τυπωμένους για χάρη ενός εύκολα μορφοποιημένου regex στο επόμενο βήμα. Ωστόσο, εάν θέλετε να σταματήσετε σε αυτό το βήμα, μη διστάσετε να διαμορφώσετε διαφορετικά τα δεδομένα για ευκολία προβολής στη σειριακή οθόνη.

Βήμα 4: Χρήση επεξεργασίας για ακρόαση

Χρησιμοποιώντας την επεξεργασία για να ακούσετε
Χρησιμοποιώντας την επεξεργασία για να ακούσετε

Ενώ έχουμε κώδικα για το Arduino IDE που έχουμε ρυθμίσει, έχουμε πρόβλημα αποθήκευσης αυτών των δεδομένων. Προς το παρόν, μπορούμε να δούμε μόνο τα δεδομένα στη σειριακή οθόνη καθώς τα συλλέγουμε. Υπάρχουν πολλοί τρόποι για να καταγράψετε αυτά τα δεδομένα, αλλά επέλεξα την επεξεργασία κυρίως επειδή η διεπαφή του μιμείται το Arduino IDE και χρησιμοποιεί Java, μια γλώσσα που είμαι εξοικειωμένη (σημειώστε ότι θα μπορούσατε επίσης να ελέγξετε τον πίνακα Arduino με την επεξεργασία εάν κάνετε λήψη Firmata). Η επεξεργασία ακούει τη θύρα που είναι συνδεδεμένη στο Arduino και έχει τη δυνατότητα να χειρίζεται τα δεδομένα που διαβάζονται στη σειριακή οθόνη. Για να βρείτε το όνομα αυτής της θύρας, ανατρέξτε στο αρχείο Arduino IDE και ελέγξτε στο Εργαλεία> Θύρα.

Έχω παράσχει τον κωδικό επεξεργασίας, αλλά εδώ είναι μια γρήγορη επισκόπηση για το πώς λειτουργεί ο κώδικας.

Πριν από τη λειτουργία ρύθμισης, βεβαιωθείτε ότι έχετε μεταβλητές για τη θύρα, τον πίνακα που προκύπτει, τη σειρά με την οποία θα δουλέψουμε και το όνομα του αρχείου. Στη συνέχεια, στη συνάρτηση ρύθμισης, υπάρχουν παράμετροι για να ορίσετε το μέγεθος του παραθύρου Εκτέλεση, αλλά αυτοί οι αριθμοί δεν επηρεάζουν τη λειτουργικότητά μας (για παράδειγμα, ορίστε τους σε (500, 500)). Όταν προετοιμάζετε τη θύρα, χρησιμοποιήστε το όνομα της θύρας σε μορφή συμβολοσειράς και ρυθμό baud 9600. Τέλος, δημιουργήστε τις εννέα στήλες (για τις επτά κατηγορίες GPS, ώρα και ημερομηνία) για να προετοιμάσετε τον πίνακα.

Στη λειτουργία σχεδίασης, χρησιμοποιούμε τις ενσωματωμένες συναρτήσεις ημερομηνίας και ώρας για να παρακολουθούμε πότε εξάγεται κάθε σύνολο δεδομένων GPS. Τώρα για να διαβάσετε τη ροή δεδομένων από το Arduino και να το βάλετε κάτω από τις κατάλληλες κεφαλίδες με τη σωστή ώρα και ημερομηνία, χρησιμοποιούμε κανονικές εκφράσεις.

Χρησιμοποιώ το regex για να αναλύσω τα ακριβή δεδομένα με τη συνάρτηση matchAll που αναζητά οποιαδήποτε έκφραση μεταξύ του σημείου ίσου και του ερωτηματικού (οι οριοθέτες που έβαλα στον κώδικα Arduino μου). Αυτό στη συνέχεια τοποθετεί όλες τις αντιστοιχισμένες ετικέτες, τα αριθμητικά δεδομένα, σε έναν δισδιάστατο πίνακα. Στη συνέχεια, μπορούμε να καλέσουμε αυτούς τους δείκτες πίνακα για να τους βάλουμε κάτω από τις κεφαλίδες του φύλλου Excel.

Για να αποθηκεύσετε το νέο αρχείο.csv, χρησιμοποιούμε ένα πλήκτρο για να κλείσουμε το παράθυρο Εκτέλεση. Όσο περισσότερο περιμένετε να πατήσετε ένα πλήκτρο, τόσο περισσότερα δεδομένα θα συλλέξετε. Ακολουθώντας τον τρόπο ενός άλλου οδηγού, αποφάσισα επίσης να αποθηκεύσω το αρχείο στο φάκελο δεδομένων με την ημερομηνία και την ώρα ως όνομα αρχείου.

Βήμα 5: Εμφάνιση δεδομένων στο Tableau Public

Εμφάνιση δεδομένων στο Tableau Public
Εμφάνιση δεδομένων στο Tableau Public
Εμφάνιση δεδομένων στο Tableau Public
Εμφάνιση δεδομένων στο Tableau Public
Εμφάνιση δεδομένων στο Tableau Public
Εμφάνιση δεδομένων στο Tableau Public

Το τελευταίο βήμα περιλαμβάνει οπτικοποίηση δεδομένων. Υπάρχουν πολλά προγράμματα για τη δημιουργία και την εμφάνιση οπτικοποιήσεων δεδομένων, δηλαδή Plotly, αλλά για αυτό το έργο θα χρησιμοποιήσουμε το Tableau. Ανοίξτε το Tableau Public και ανοίξτε το αποθηκευμένο αρχείο Excel ως αρχείο κειμένου. Για να δημιουργήσετε ένα φύλλο εργασίας, κάντε κλικ στο Φύλλο 1 στην κάτω αριστερή πλευρά.

Δεδομένου ότι εργαζόμαστε με δεδομένα GPS, θα χρησιμοποιήσουμε έναν χάρτη για να απεικονίσουμε τις πληροφορίες μας. Στην αριστερή στήλη όπου λέει Μέτρα, θα σύρουμε το Γεωγραφικό μήκος στις Στήλες και το Γεωγραφικό πλάτος σε Σειρές στο επάνω μέρος. Το Tableau προεπιλέγει και τα δύο μέτρα σε AVG, οπότε κάντε κλικ στο αναπτυσσόμενο μενού δίπλα στους όρους και αλλάξτε και τα δύο σε Διάσταση. Τώρα ο χάρτης πρέπει να έχει μια διαδρομή που εμφανίζεται χρησιμοποιώντας τις τιμές γεωγραφικού πλάτους και γεωγραφικού μήκους που συλλέγονται.

Για να καθαρίσετε τα δεδομένα σας για σφάλματα (κάτι που μπορεί να γίνει και πριν ανοίξετε το Tableau), μπορείτε να επιλέξετε να εξαιρέσετε ορισμένους κύκλους τοποθεσίας κάνοντας κλικ σε αυτούς και επιλέγοντας την επιλογή. Η μονάδα GPS μου δεν είναι 100% ακριβής, καθώς ορισμένα τμήματα της διαδρομής μου δεν έχουν εντοπιστεί, αλλά η γενική διαδρομή έχει καταγραφεί.

Βήμα 6: Βελτίωση του Viz

Επεξεργασία του Viz
Επεξεργασία του Viz

Το τελευταίο μέρος είναι να καταστήσουμε αυτά τα δεδομένα πιο ευανάγνωστα. Αν θέλετε περιβάλλον δρόμου, μπορείτε να μεταβείτε στο Χάρτης> Επίπεδο χάρτη> Δρόμοι και αυτοκινητόδρομοι. Μη διστάσετε να πειραματιστείτε με άλλα σήματα. Έσυρα το Speed over Color για να δείξω πώς αυξάνεται η ένταση του χρώματος όταν αυξάνεται η ταχύτητα. Χρησιμοποίησα επίσης Λεπτομέρεια αντί για Ετικέτα για μάθημα, επειδή η Ετικέτα θα εμφανίζει τους αριθμούς στο χάρτη, ενώ ήθελα να εμφανίζονται πληροφορίες μόνο όταν τοποθετείτε το δείκτη του ποντικιού πάνω στις κουκκίδες τοποθεσίας.

Τώρα που έχετε βιώσει όλη τη διαδικασία συλλογής δεδομένων και προβολής αυτού που έχετε σε μια απεικόνιση δεδομένων, μπορείτε να το εφαρμόσετε σε άλλα έργα!

από τον Pingdi Huang, Καλοκαίρι 2018

Συνιστάται: