Πίνακας περιεχομένων:
- Βήμα 1: Απόκτηση υλικών
- Βήμα 2: Ρύθμιση των συσκευών
- Βήμα 3: Κωδικοποίηση του Arduino για εξαγωγή δεδομένων
- Βήμα 4: Χρήση επεξεργασίας για ακρόαση
- Βήμα 5: Εμφάνιση δεδομένων στο Tableau Public
- Βήμα 6: Βελτίωση του Viz
Βίντεο: The Path Mapper: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Σε αυτό το έργο 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 για εξαγωγή δεδομένων
Τώρα που έχουμε ρυθμίσει τις συσκευές για τη συλλογή δεδομένων 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
Το τελευταίο βήμα περιλαμβάνει οπτικοποίηση δεδομένων. Υπάρχουν πολλά προγράμματα για τη δημιουργία και την εμφάνιση οπτικοποιήσεων δεδομένων, δηλαδή Plotly, αλλά για αυτό το έργο θα χρησιμοποιήσουμε το Tableau. Ανοίξτε το Tableau Public και ανοίξτε το αποθηκευμένο αρχείο Excel ως αρχείο κειμένου. Για να δημιουργήσετε ένα φύλλο εργασίας, κάντε κλικ στο Φύλλο 1 στην κάτω αριστερή πλευρά.
Δεδομένου ότι εργαζόμαστε με δεδομένα GPS, θα χρησιμοποιήσουμε έναν χάρτη για να απεικονίσουμε τις πληροφορίες μας. Στην αριστερή στήλη όπου λέει Μέτρα, θα σύρουμε το Γεωγραφικό μήκος στις Στήλες και το Γεωγραφικό πλάτος σε Σειρές στο επάνω μέρος. Το Tableau προεπιλέγει και τα δύο μέτρα σε AVG, οπότε κάντε κλικ στο αναπτυσσόμενο μενού δίπλα στους όρους και αλλάξτε και τα δύο σε Διάσταση. Τώρα ο χάρτης πρέπει να έχει μια διαδρομή που εμφανίζεται χρησιμοποιώντας τις τιμές γεωγραφικού πλάτους και γεωγραφικού μήκους που συλλέγονται.
Για να καθαρίσετε τα δεδομένα σας για σφάλματα (κάτι που μπορεί να γίνει και πριν ανοίξετε το Tableau), μπορείτε να επιλέξετε να εξαιρέσετε ορισμένους κύκλους τοποθεσίας κάνοντας κλικ σε αυτούς και επιλέγοντας την επιλογή. Η μονάδα GPS μου δεν είναι 100% ακριβής, καθώς ορισμένα τμήματα της διαδρομής μου δεν έχουν εντοπιστεί, αλλά η γενική διαδρομή έχει καταγραφεί.
Βήμα 6: Βελτίωση του Viz
Το τελευταίο μέρος είναι να καταστήσουμε αυτά τα δεδομένα πιο ευανάγνωστα. Αν θέλετε περιβάλλον δρόμου, μπορείτε να μεταβείτε στο Χάρτης> Επίπεδο χάρτη> Δρόμοι και αυτοκινητόδρομοι. Μη διστάσετε να πειραματιστείτε με άλλα σήματα. Έσυρα το Speed over Color για να δείξω πώς αυξάνεται η ένταση του χρώματος όταν αυξάνεται η ταχύτητα. Χρησιμοποίησα επίσης Λεπτομέρεια αντί για Ετικέτα για μάθημα, επειδή η Ετικέτα θα εμφανίζει τους αριθμούς στο χάρτη, ενώ ήθελα να εμφανίζονται πληροφορίες μόνο όταν τοποθετείτε το δείκτη του ποντικιού πάνω στις κουκκίδες τοποθεσίας.
Τώρα που έχετε βιώσει όλη τη διαδικασία συλλογής δεδομένων και προβολής αυτού που έχετε σε μια απεικόνιση δεδομένων, μπορείτε να το εφαρμόσετε σε άλλα έργα!
από τον Pingdi Huang, Καλοκαίρι 2018
Συνιστάται:
Πώς να φτιάξετε 4G LTE Double BiQuade Antenna Εύκολα Βήματα: 3 Βήματα
Πώς να κάνετε εύκολα 4G LTE διπλή κεραία BiQuade Antenna: Τις περισσότερες φορές αντιμετώπισα, δεν έχω καλή ισχύ σήματος στις καθημερινές μου εργασίες. Ετσι. Searchάχνω και δοκιμάζω διάφορους τύπους κεραίας αλλά δεν δουλεύω. Μετά από σπατάλη χρόνου βρήκα μια κεραία που ελπίζω να φτιάξω και να δοκιμάσω, γιατί δεν είναι η βασική αρχή
Σχεδιασμός παιχνιδιών στο Flick σε 5 βήματα: 5 βήματα
Σχεδιασμός παιχνιδιών στο Flick σε 5 βήματα: Το Flick είναι ένας πραγματικά απλός τρόπος δημιουργίας ενός παιχνιδιού, ειδικά κάτι σαν παζλ, οπτικό μυθιστόρημα ή παιχνίδι περιπέτειας
Σύστημα ειδοποίησης αντίστροφης στάθμευσης αυτοκινήτου Arduino - Βήματα βήμα προς βήμα: 4 βήματα
Σύστημα ειδοποίησης αντίστροφης στάθμευσης αυτοκινήτου Arduino | Βήματα βήμα προς βήμα: Σε αυτό το έργο, θα σχεδιάσω ένα απλό κύκλωμα αισθητήρα στάθμευσης αντίστροφης στάθμευσης αυτοκινήτου Arduino χρησιμοποιώντας Arduino UNO και υπερηχητικό αισθητήρα HC-SR04. Αυτό το σύστημα ειδοποίησης αυτοκινήτου με βάση το Arduino μπορεί να χρησιμοποιηθεί για αυτόνομη πλοήγηση, κλίμακα ρομπότ και άλλα εύρη
ESP32 Scraper-parser-mailer και Live Mapper: 4 βήματα (με εικόνες)
ESP32 Scraper-parser-mailer και Live Mapper: Hello World! Αυτό είναι το πρώτο μου εκπαιδευτικό! Είμαι ο Marco από το Grosseto Ιταλίας, δεν είμαι προγραμματιστής, δεν είμαι ηλεκτρονικός μηχανικός, αλλά είμαι περιβαλλοντικός οδηγός στο τοπικό μας φυσικό πάρκο (φυσικό πάρκο Maremma). Στον συνεταιρισμό μου δουλεύουμε πολύ με κανό
Ηλιακό LED Tonka Truck Path Light: 8 βήματα (με εικόνες)
Ηλιακό LED Tonka Truck Path Light: Νέα ζωή για παλιά παιχνίδια! Δώστε ζωή στα παλιά σας φορτηγά παιχνίδια με φώτα διαδρομής LED. Ποτέ δεν ήθελα να χωρίσω την αγαπημένη μου Tonka dump tuck, αλλά ως ενήλικας έγινε όλο και πιο δύσκολο να δικαιολογήσω τη διατήρηση … μέχρι τώρα