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

Οπτικοποίηση δεδομένων μεταφοράς με το Google Map: 6 βήματα
Οπτικοποίηση δεδομένων μεταφοράς με το Google Map: 6 βήματα

Βίντεο: Οπτικοποίηση δεδομένων μεταφοράς με το Google Map: 6 βήματα

Βίντεο: Οπτικοποίηση δεδομένων μεταφοράς με το Google Map: 6 βήματα
Βίντεο: Η ΣΙΝΤΕΡΕΛΑ ΚΑΝΕΙ ΤΑΤΟΥ ΣΕ ΚΡΥΦΟ ΣΗΜΕΙΟ 2024, Ιούλιος
Anonim
Οπτικοποίηση δεδομένων μεταφοράς με το Google Map
Οπτικοποίηση δεδομένων μεταφοράς με το Google Map

Συνήθως θέλουμε να καταγράφουμε διάφορα δεδομένα κατά τη διάρκεια της ποδηλασίας, αυτή τη φορά χρησιμοποιήσαμε νέο Wio LTE για να τα παρακολουθήσουμε.

Βήμα 1: Πράγματα που χρησιμοποιούνται σε αυτό το έργο

Συστατικά Hareware

  • Wio LTE EU Version v1.3- 4G, Cat.1, GNSS, Espruino Compatible
  • Grove - Ear -clip Αισθητήρας καρδιακού ρυθμού
  • Grove - 16 x 2 LCD (Μαύρο σε κίτρινο)

Εφαρμογές λογισμικού και διαδικτυακές υπηρεσίες

  • Arduino IDE
  • PubNub Δημοσίευση/Εγγραφή API
  • Χάρτες Google

Βήμα 2: Ιστορία

Image
Image

Βήμα 3: Σύνδεση υλικού

Διαμόρφωση Ιστού
Διαμόρφωση Ιστού

Εγκαταστήστε κεραίες GPS και LTE στο Wio LTE και συνδέστε την κάρτα SIM σε αυτήν. Συνδέστε τον αισθητήρα καρδιακού ρυθμού και την οθόνη LCD 16x2 με τη θύρα D20 και I2C του Wio LTE.

Μπορείτε να αλλάξετε τον Αισθητήρα καρδιακού παλμού Ear-clip σε άλλους αισθητήρες που σας αρέσουν. Δείτε το τέλος αυτού του άρθρου.

Βήμα 4: Διαμόρφωση Ιστού

Μέρος 1: PubNub

Κάντε κλικ εδώ για σύνδεση ή εγγραφή λογαριασμού PubNub, το PubNub χρησιμοποιείται για τη μετάδοση δεδομένων σε πραγματικό χρόνο στο χάρτη.

Ανοίξτε το έργο επίδειξης στην πύλη διαχειριστή PubNub, θα δείτε ένα κλειδί δημοσίευσης και ένα κλειδί εγγραφής, θυμηθείτε τα για προγραμματισμό λογισμικού.

Μέρος 2: Χάρτης Google

Ακολουθήστε εδώ για να λάβετε ένα Κλειδί API του Χάρτη Google, το οποίο θα χρησιμοποιηθεί και στον προγραμματισμό λογισμικού.

Βήμα 5: Προγραμματισμός λογισμικού

Προγραμματισμός λογισμικού
Προγραμματισμός λογισμικού

Μέρος 1: Wio LTE

Επειδή δεν υπάρχει βιβλιοθήκη PubNub για το Wio LTE, μπορούμε να στείλουμε τα δεδομένα μας από αίτημα HTTP, ανατρέξτε στο PubNub REST API Document.

Για να πραγματοποιήσετε σύνδεση HTTP μέσω της κάρτας SIM που είναι συνδεδεμένη στο Wio LTE, θα πρέπει πρώτα να ορίσετε το APN σας, αν δεν το γνωρίζετε, επικοινωνήστε με τους φορείς κινητής τηλεφωνίας σας.

Στη συνέχεια, ορίστε το PubNub Publish Key, το Subscribe Key και το κανάλι σας. Το κανάλι εδώ χρησιμοποιείται για τη διαφοροποίηση εκδοτών και συνδρομητών. Για παράδειγμα, χρησιμοποιούμε ποδήλατο καναλιού εδώ, όλοι οι Συνδρομητές στο κανάλι ποδήλατο θα λαμβάνουν μηνύματα που δημοσιεύσαμε.

Οι παραπάνω ρυθμίσεις, δεν τα μαζέψαμε στην τάξη, ώστε να μπορείτε να τα τροποποιήσετε στο bike.ino ευκολότερα, μπορείτε να κατεβάσετε αυτούς τους κωδικούς από το τέλος αυτού του άρθρου.

Μέρος 2: PubNub

Πατήστε παρατεταμένα το πλήκτρο Boot0 στο Wio LTE, συνδέστε το στον υπολογιστή σας μέσω καλωδίου USB, ανεβάστε το πρόγραμμα στο Arduino IDE, πατήστε το πλήκτρο Reset στο Wio LTE.

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

Όταν βλέπετε [1, "Εγγραφή", "ποδήλατο"] στην κονσόλα, ο Συνδρομητής προστέθηκε με επιτυχία. Περιμένετε λίγο, θα δείτε τα δεδομένα Wio LTE να εμφανίζονται στην κονσόλα.

Μέρος 3: Χάρτης Google

Οι χάρτες ENO είναι χάρτες σε πραγματικό χρόνο με PubNub και MapBox, μπορούν επίσης να χρησιμοποιηθούν για PubNub και Google Map, μπορείτε να τον κατεβάσετε από το GitHub.

Μπορείτε απλά να χρησιμοποιήσετε ένα παράδειγμα που ονομάζεται google-draw-line.html στο φάκελο παραδείγματα, απλώς τροποποιήστε το Κλειδί δημοσίευσης, το Κλειδί εγγραφής, το Κανάλι και το Κλειδί Google στις γραμμές 29, 30, 33 και 47.

ΕΙΔΟΠΟΙΗΣΗ: Παρακαλώ σχολιάστε τη γραμμή 42, διαφορετικά θα στείλει δεδομένα προσομοίωσης στο PubNub σας.

Εάν θέλετε να εμφανίσετε το γράφημα καρδιακών παλμών στο κάτω δεξιό πρόγραμμα, μπορείτε να χρησιμοποιήσετε το Chart.js, μπορείτε να το κατεβάσετε από τον Ιστότοπό του, να το βάλετε στον ριζικό φάκελο Χάρτες ENO και να το συμπεριλάβετε στην κεφαλή του google-draw-line.html Το

Και προσθέστε έναν καμβά σε ένα div για να εμφανίσετε το γράφημα:

Στη συνέχεια, δημιουργήστε δύο πίνακες για να διατηρήσετε τα δεδομένα γραφήματος

//… var chartLabels = new Array (); var chartData = new Array (); //…

Μεταξύ αυτών, το chartLabels χρησιμοποιείται για τη διατήρηση δεδομένων τοποθεσίας, το chartData χρησιμοποιείται για τη διατήρηση δεδομένων καρδιακών παλμών. Όταν έρχονται μηνύματα, σπρώξτε νέα δεδομένα σε αυτά και ανανεώστε το γράφημα.

//… var map = eon.map ({message: function (message, timetoken, channel) {//… chartLabels.push (obj2string (message [0].latlng)); chartData.push (message [0].data); var ctx = document.getElementById ("γράφημα"). getContext ("2d"); var chart = new Chart (ctx, {type: 'line', data: {labels: chartLabels, σύνολα δεδομένων: [{label: " Καρδιακός ρυθμός ", data: chartData}]}}); //…}});

Ολα τελείωσαν. Προσπαθήστε να το πάρετε με το ποδήλατό σας την επόμενη φορά.

Βήμα 6: Πώς να εργαστείτε με άλλο Sensor Grove;

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

Το πρώτο πράγμα που πρέπει να γνωρίζετε είναι ότι το json που θέλετε να δημοσιεύσετε στο PubNub, πρέπει να είναι κωδικοποιημένο με url. Το κωδικοποιημένο json είναι σκληρό κωδικοποιημένο στην κατηγορία BikeTracker, μοιάζει με αυτό:

%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f %% 5d %% 2c %% 22data %% 22 %% 3a%d %% 7d %% 5d

Έτσι, είναι εύκολο να λάβετε ένα προσαρμοσμένο στοιχείο ή μπορείτε να χρησιμοποιήσετε εργαλεία κωδικοποίησης url για να δημιουργήσετε το δικό σας κωδικοποιημένο json για λήψη περισσότερων δεδομένων.

Αυτή τη φορά προσπαθούμε να χρησιμοποιήσουμε το I2C High Accracy Temp & Humi Grove για να αντικαταστήσουμε το Heart Rate Grove. Επειδή το LCD Grove χρησιμοποιεί επίσης I2C, χρησιμοποιούμε ένα I2C Hub για να συνδέσουμε το Temp & Humi Grove και το LCD Grove στο Wio LTE.

Στη συνέχεια, συμπεριλάβετε το αρχείο κεφαλής στο BickTracker.h και προσθέστε μια μεταβλητή και μια μέθοδο στην κατηγορία BikeTracker για αποθήκευση και μέτρηση θερμοκρασίας.

/// BikeTracker.h

//… #include "Seeed_SHT35.h" application class:: BikeTracker: application:: interface:: IApplication {//… proteced: //… SHT35 _sht35; float _temperature? //… void MeasureTemperature (void); } /// BikeTracker.cpp //… // BikeTracker:: BikeTracker (άκυρο) //: _ethernet (Ethernet ()), _gnss (GNSS ()) {} // 21 είναι ο αριθμός καρφιτσών SCL BikeTracker:: BikeTracker (void): _ethernet (Ethernet ()), _gnss (GNSS ()), _sht35 (SHT35 (21)) {} //… void BikeTracker:: μέτραTemperature (void) {θερμοκρασία πλωτήρα, υγρασία; εάν (_sht35.read_meas_data_single_shot (HIGH_REP_WITH_STRCH, & θερμοκρασία, & υγρασία) == NO_ERROR) {_temperature = θερμοκρασία? }} //…

Εάν θέλετε, μπορείτε να αλλάξετε την οθόνη LCD με τη μέθοδο Loop ():

// sprintf (line2, "Heart Rate: %d", _heartRate);

MeasureTemperature (); sprintf (line2, "Temp: %f", _temperature);

Αλλά πώς να το δημοσιεύσετε στο PubNub; Πρέπει να αλλάξετε τις παραμέτρους της κωδικοποιημένης λειτουργίας json και sprintf () στη μέθοδο PublishToPubNub (), ας μοιάζει με αυτό:

// sprintf (cmd, "GET/Δημοσίευση/%s/%s/0/%s/0/%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f% %5d %% 2c %% 22data %% 22 %% 3a%d %% 7d %% 5d? Store = 0 HTTP/1.0 / n / r / n / r ", // _publishKey, _subscribeKey, _channel, _latitude, _longitude, _heartRate); sprintf (cmd, "ΛΗΗ/δημοσίευση/%s/%s/0/%s/0/%% 5b %% 7b %% 22latlng %% 22 %% 3a %% 5b%f %% 2c%f %% 5d %% 2c %% 22data %% 22 %% 3a%f %% 7d %% 5d? Store = 0 HTTP/1.0 / n / r / n / r ", _publishKey, _subscribeKey, _channel, _latitude, _longitude, _temperature);

Στη συνέχεια, μπορείτε να δείτε τη θερμοκρασία στην κονσόλα εντοπισμού σφαλμάτων PubNub.

Συνιστάται: