Πίνακας περιεχομένων:
- Βήμα 1: Εκτέλεση της αρχικής εγκατάστασης του DragonBoard 410c **
- Βήμα 2: Εντοπίστε το DragonBoard 410c σας χρησιμοποιώντας την κεραία GPS του
- Βήμα 3: Εγκατάσταση του Dongle USB 3G/4G
- Βήμα 4: Μετατροπή του DragonBoard 410c σε Wi -Fi Hotspot / Σημείο Πρόσβασης
- Βήμα 5: Ασύρματη πρόσβαση στο DragonBoard 410c χρησιμοποιώντας SSH, μέσω συνδεσιμότητας Hotspot
- Βήμα 6: Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου με χρήση Bluetooth - Μέρος 1/2
- Βήμα 7: Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου χρησιμοποιώντας Bluetooth - Μέρος 2/2
- Βήμα 8: Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου χρησιμοποιώντας PyOBD
- Βήμα 9: Ανάγνωση δεδομένων από το αυτοκίνητο, χρησιμοποιώντας Python
- Βήμα 10: Επαναλαμβανόμενες δέσμες ενεργειών και διαδικασία αποθήκευσης δεδομένων για τα δεδομένα που συλλαμβάνονται
- Βήμα 11: Προβλήματα στην πορεία
- Βήμα 12: Αναφορές
Βίντεο: DragonBoard και OBD2: 12 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Διαβάζοντας τα δεδομένα που βγαίνουν από τη θύρα OBD2 στο αυτοκίνητό σας, μπορείτε να συλλέξετε εκπληκτικές πληροφορίες από αυτό. Χρησιμοποιώντας το DragonBoard 410c, δουλέψαμε σε αυτό το έργο και το αναλύσαμε εδώ για να το κάνετε μόνοι σας.
Αυτό το έργο ήταν δυνατό μόνο λόγω της συνεργασίας με την #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora που μας επέτρεψε να έχουμε πρόσβαση στο καλύτερο υλικό της αγοράς, καθώς και την επαφή με τους καλύτερους επαγγελματίες για να υποστηρίξουν την ανάπτυξη.
Η ομάδα απαρτίστηκε από τους εξής τύπους:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Μάρκετινγκ - [email protected]
Είμαστε πολύ πρόθυμοι να σας βοηθήσουμε να επιτύχετε τον στόχο σας και βεβαιωθείτε ότι έχετε ολοκληρώσει το έργο σας, οπότε ενημερώστε μας εάν χρειάζεστε βοήθεια πέρα από τις παρακάτω οδηγίες.
Παρακαλούμε αξιολογήστε τα Πορτογαλικά, clique aqui:
www.instructables.com/id/DragonBoard-Com-OBD
Για αυτό το έργο χρησιμοποιήσαμε τα ακόλουθα στοιχεία:
- Qualcomm DragonBoard 410c
- ELM327 Διασύνδεση Bluetooth OBD2
- Dongle USB 3G/4G
- Tension Inverter Car Charger (110v)
Βήμα 1: Εκτέλεση της αρχικής εγκατάστασης του DragonBoard 410c **
Χρησιμοποιώντας το Qualcomm DragonBoard 410c, ξεκινήσαμε το έργο εγκαθιστώντας τη διανομή Linux που ονομάζεται Linaro, επιτρέποντάς μας να ρυθμίσουμε όλες τις απαραίτητες συσκευές.
Για να δημιουργήσετε μια εικόνα του Linaro για το DragonBoard, χρησιμοποιήστε το Ubunto στο VirtualBox, ώστε να μπορείτε να χρησιμοποιήσετε το FastBoot (δηλαδή μια εφαρμογή που βασίζεται σε Linux). Ουσιαστικά, αυτό που πρέπει να κάνετε είναι να ανοίξετε το τερματικό στο VM Ubuntu και να εισαγάγετε:
sudo apt-get android-tools-fastboot
Για να εγκαταστήσουμε το Linaro, πρέπει να περάσουμε από 2 σημαντικά βήματα:
1) Εγκατάσταση του BOOTLOADER
Όνομα αρχείου: dragonboard410c_bootloader_emmc_linux-79.zip
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Αποσυμπιέστε τα αρχεία και επιλέξτε το φάκελο:
cd /FolderName (διαδρομή προς τον αποσυμπιεσμένο φάκελο)
Εισαγάγετε τον ακόλουθο κωδικό:
sudo fastboot συσκευές
Αναμενόμενη επιστροφή:
(δεκαεξαδικό) fastboot
Στη συνέχεια πληκτρολογήστε:
sudo./flashall
Αναμενόμενη επιστροφή:
πεπερασμένος. συνολικός χρόνος 1.000s (χωρίς σφάλματα)
Εγκατάσταση του ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Κατεβάστε αυτά τα 2 αρχεία:
boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz
Αυτή είναι η τελευταία έκδοση που είναι διαθέσιμη μέχρι σήμερα (Ιούνιος/17), οπότε το όνομα ενδέχεται να αλλάξει στο μέλλον. Το μοτίβο που θα ψάχνατε είναι "boot-linaro-VersionName". Αυτό ονομάζεται "Stretch" και το προηγούμενο ήταν "Jessie".
linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz
Αυτή είναι η τελευταία έκδοση μέχρι σήμερα (Ιούνιος/17) και το όνομα ενδέχεται να αλλάξει στο μέλλον. Αναζητήστε το μοτίβο "linaro-VersionName-alip".
Αποσυμπιέστε τα αρχεία από το. GZ
Αποκτήστε πρόσβαση στον φάκελο "root", σε σχέση με τα αρχεία που δεν έχετε αποσυμπιέσει
παράδειγμα: "/Λήψεις" που είναι το μέρος όπου αποθηκεύονται τα αρχεία που έχουν ληφθεί.
Τώρα ξεκινήστε με τις ακόλουθες εντολές:
sudo fastboot συσκευές
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
Αναμενόμενη επιστροφή (θυμόμαστε ότι ο χρόνος μπορεί να διαφέρει):
πεπερασμένος. συνολικός χρόνος: 100.00
Συνδέστε ένα ποντίκι, ένα πληκτρολόγιο και μια οθόνη/τηλεόραση χρησιμοποιώντας τη θύρα HDMI
Έχετε αυτό στο χέρι:
χρήστης: linaro
κωδικός πρόσβασης: linaro
Ανοίξτε την εφαρμογή Lxterminal και προχωρήστε στη λήψη της διαθέσιμης λίστας ενημερώσεων, σχετικά με τα εγκατεστημένα πακέτα:
sudo apt-get ενημέρωση
Βεβαιωθείτε ότι έχετε εγκαταστήσει τα διαθέσιμα πακέτα από τη λίστα:
sudo apt-get αναβάθμιση
Υπόδειξη: Η Linaro επιλέχθηκε λόγω μιας εξαιρετικά γρήγορης εκκίνησης και μιας κοινότητας πολύ προσανατολισμένης και προσανατολισμένης στην επίλυση προβλημάτων, η οποία εξοικονομεί πολύ χρόνο.
Βήμα 2: Εντοπίστε το DragonBoard 410c σας χρησιμοποιώντας την κεραία GPS του
Ξεκινήστε εγκαθιστώντας τις απαραίτητες εφαρμογές που θα είναι οι πελάτες της μονάδας GPS. Τα ονόματα των εφαρμογών είναι: GNSS-GPSD, GPSD και GPSD-CLIENTS. Για να το κάνετε, ακολουθήστε τις εντολές:
sudo apt-get install gnss-gpsd gpsd gpsd-clients
Με αυτές τις εφαρμογές εγκατεστημένες, θα χρειαστείτε περισσότερες εντολές για να το ξεκινήσετε σωστά:
sudo systemctl εκκίνηση qdsp-start.service
sudo systemctl εκκίνηση gnss-gpsd.service sudo systemctl εκκίνηση qmi-gps-proxy.service
Τώρα μεταφέρετε το DragonBoard 410c σε μια ευρύχωρη περιοχή, με καθαρή θέα στον ουρανό, επιτρέποντάς του να λαμβάνει το σήμα από τους δορυφόρους. Πληκτρολογήστε τώρα στο τερματικό:
gpsmon –ν
Από τις δοκιμές μας, τα δεδομένα θα αρχίσουν να εμφανίζονται στην οθόνη μετά από 10 λεπτά, κατά μέσο όρο. Αυτό αλλάζει πολύ από τόπο σε τόπο, εκτός από τη θέση του DragonBoard στο παράθυρο ή σε εσωτερικούς χώρους, καθώς και πολλά άλλα εμπόδια που μπορεί να παρεμβαίνουν στη λήψη σήματος GPS.
Βήμα 3: Εγκατάσταση του Dongle USB 3G/4G
Υπάρχουν μερικοί τρόποι για να συνδέσετε το DragonBoard 410c στο δίκτυο 3G/4G/GSM:
- Χρήση Shield / BreakoutBoard με μόντεμ GSM που διαθέτει επίσης υποδοχή SimCard.
- Χρησιμοποιήστε ένα Dongle USB 3G/4G.
Για αυτό το έργο αποφασίσαμε να χρησιμοποιήσουμε το E3272 USB Dongle της Huawei, επειδή ήταν εύκολο και γρήγορο να αγοράσουμε ένα.
Για να ρυθμίσετε τις παραμέτρους του μόντεμ, μπορείτε να χρησιμοποιήσετε το τερματικό (χρησιμοποιώντας την εφαρμογή WVDial), αλλά ο ευκολότερος τρόπος είναι να χρησιμοποιήσετε το Γραφικό περιβάλλον εργασίας χρήστη (GUI) της Linaro. Σε αυτό ως εξής:
- Με το Dongle USB συνδεδεμένο στο DragonBoard, κάντε δεξί κλικ στο εικονίδιο "δίκτυα" στην κάτω δεξιά γωνία της οθόνης.
- "Επεξεργασία συνδέσεων"> "Προσθήκη".
- Επιλέξτε "Mobile Broadband" από το αναπτυσσόμενο μενού.
- Κάντε κλικ στο "Δημιουργία".
Ακολουθήστε τις οδηγίες του οδηγού, βεβαιωθείτε ότι έχετε επιλέξει τον κατάλληλο φορέα από το μενού, επιτρέποντας στη συσκευή να συνδεθεί ανάλογα.
Βήμα 4: Μετατροπή του DragonBoard 410c σε Wi -Fi Hotspot / Σημείο Πρόσβασης
Ο ευκολότερος τρόπος για να διαμορφώσετε το DragonBoard 410c ως δρομολογητή wifi ή hotspot (τώρα που έχετε διαμορφώσει τη σύνδεση στο διαδίκτυο) είναι να χρησιμοποιήσετε το GUI του συστήματος. Για να το κάνετε αυτό, ακολουθήστε τα παρακάτω βήματα:
- Κάντε δεξί κλικ στο εικονίδιο δικτύου στην κάτω δεξιά γωνία
- Επιλέξτε "Επεξεργασία συνδέσεων και στη συνέχεια" Προσθήκη"
- Επιλέξτε "WiFi"
- Κάντε κλικ στη δημιουργία
Αλλάξτε το όνομα του δικτύου που θέλετε να δημιουργήσετε στο πεδίο "SSID" και αλλάξτε το πεδίο "Mode" σε "Hotspot".
Για να βεβαιωθείτε ότι θα λειτουργήσει, επαληθεύστε τα ακόλουθα:
- Μεταβείτε στην καρτέλα "Ρυθμίσεις IPv4"
- Επαληθεύστε εάν η "μέθοδος"
Βήμα 5: Ασύρματη πρόσβαση στο DragonBoard 410c χρησιμοποιώντας SSH, μέσω συνδεσιμότητας Hotspot
Καταφέραμε να δημιουργήσουμε έναν τρόπο απομακρυσμένης πρόσβασης στο DragonBoard, ανεξάρτητα από το αν βρίσκεστε κοντά του ή όχι. Συνήθως θα χρειαστεί να συνδεθείτε στον ίδιο τον πίνακα, χρησιμοποιώντας wifi ή bluetooth. Ένας άλλος τρόπος, θα ήταν η πρόσβαση σε αυτό μέσω σύνδεσης στο ίδιο δίκτυο Wifi (π.χ.: από δρομολογητή). Εκτελώντας τα επόμενα βήματα, δημιουργούμε μια αυτόνομη συσκευή, η οποία δημιουργεί το δικό της δίκτυο και ανοίγει στον ιστό, προκειμένου να έχει πρόσβαση σε αυτήν.
Μπορείτε να ξεκινήσετε εγκαθιστώντας το "Auto SSH", χρησιμοποιώντας τον παρακάτω κώδικα:
sudo apt-get install gcc make
wget https://www.harding.motd.ca/autossh/autossh-1.4e.tgz tar -xf autossh-1.4e.tgz cd autossh-1.4e./configure make sudo make install
Τώρα θα δημιουργήσουμε ένα κρυπτογραφικό κλειδί, χρησιμοποιώντας το πρότυπο RSA. Αυτό το κλειδί πρόκειται να χρησιμοποιηθεί για την ασφαλή πρόσβαση σε ένα τελικό σημείο Linux, μέσω της δημόσιας IP του 3G Modem. Ο κύριος στόχος αυτού του βήματος. Ο παρακάτω κώδικας θα αντιγράψει αυτό το κλειδί στο αποθετήριο αξιόπιστων κλειδιών του Linux, διασφαλίζοντας ότι υπάρχει ακόμα μεγαλύτερη ασφάλεια στη σύνδεση.
ssh -keygen -t rsa
scp ~/.ssh/id_rsa.pub user@remote_server:.ssh/εξουσιοδοτημένα κλειδιά autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 user@remote_server
Ακολουθώντας αυτά τα βήματα, μόλις μεταμορφώσατε το Qualcomm DragonBoard 410c σε διακομιστή Cloud! / o/
Βήμα 6: Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου με χρήση Bluetooth - Μέρος 1/2
Η διεπαφή επικοινωνίας του αυτοκινήτου γίνεται μέσω μιας θύρας OBD2. Οι πληροφορίες που ανταλλάσσονται σε αυτήν τη θύρα πρέπει να μεταφραστούν και για αυτό χρειαζόμαστε μια συσκευή διερμηνέα. Υπάρχουν δύο εναλλακτικές λύσεις υλικού: ELM327 ή STN1170.
Για αυτό το έργο, χρησιμοποιήσαμε μια συσκευή Bluetooth με chipset βασισμένο στο ELM327.
Είναι σημαντικό να σημειωθεί ότι η διαθεσιμότητα του ELM327 δεν σημαίνει ότι είναι η ΠΡΩΤΗ ΕΚΔΟΣΗ του ELM327. Το μεγαλύτερο μέρος των διαθέσιμων chipsets βασίζεται στην έκδοση 1.5, όταν οι πληροφορίες του τσιπ κλωνοποιήθηκαν και διέρρευσαν στην αγορά. Το αρχικό ELM327 είναι τώρα στην έκδοση 2.2. Η εξέλιξη αυτού του chipset φέρνει περισσότερα δεδομένα για νεότερα αυτοκίνητα. Είναι σημαντικό να το γνωρίζετε, επειδή ανάλογα με τις δοκιμές, ενδέχεται να μην έχετε πρόσβαση στα δεδομένα από νεότερα οχήματα ή όχι.
Με τον προσαρμογέα Bluetooth OBD2, βρείτε τη θύρα OBD2 του αυτοκινήτου σας. Μπορεί να βρίσκεται κάπου κάτω από το τιμόνι. Mayσως είναι πιο εύκολο να το αναζητήσετε χρησιμοποιώντας αυτό το εργαλείο:
Αποκτήστε πρόσβαση στο DragonBoard 410c χρησιμοποιώντας SSH, από το φορητό σας υπολογιστή (θυμηθείτε ότι τώρα είστε στο αυτοκίνητο και δεν έχετε τηλεόραση/οθόνη για να συνδέσετε την πλακέτα). Μόλις η συσκευή Bluetooth OBD2 εισαχθεί στη θύρα αυτοκινήτου, ακολουθήστε τα παρακάτω βήματα για να αποκτήσετε πρόσβαση στη συνδεσιμότητα bluetooth.
sudo bluetoothctl
είναι δυνατή η ενεργοποίηση του πράκτορα στην προεπιλεγμένη σάρωση παράγονταΣε αυτό το στάδιο είναι σημαντικό να αντιγράψετε τη διεύθυνση MAC επειδή θα τη χρειαστείτε για τα επόμενα βήματα
Πληκτρολογήστε αυτές τις εντολές:
εμπιστοσύνη MACADDRESS
ζευγάρι MACADDRESS
Θα πρέπει να σας ζητηθεί να πληκτρολογήσετε τον κωδικό PIN για να αντιστοιχίσετε το Bluetooth OBD2 με την πλακέτα.
Συνήθως ο κωδικός PIN είναι είτε 1234 είτε 0000 - εξαρτάται από το υλικό σας
Τώρα θα πρέπει να δείτε την οθόνη "επιτυχής σύνδεση". Για να κλείσετε την εφαρμογή Bluetooth, χρησιμοποιήστε την ακόλουθη εντολή:
εγκαταλείπω
Το επόμενο βήμα είναι να συνδέσετε τη συσκευή με τη σειριακή θύρα:
sudo rfcomm bind 0 MACADDRESS 1
Για να βεβαιωθείτε ότι η λειτουργία πέτυχε, πληκτρολογήστε:
ls /dev
Η θύρα "Rfcomm0" πρέπει να αναφέρεται.
Βήμα 7: Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου χρησιμοποιώντας Bluetooth - Μέρος 2/2
Ο κύριος στόχος αυτού του βήματος είναι να διασφαλιστεί ότι η επικοινωνία μεταξύ των 3 συσκευών λειτουργεί:
ELM327, DragonBoard 410c και το αυτοκίνητο
Κατεβάστε την εφαρμογή "Οθόνη" για να στείλετε σειριακά μηνύματα μέσω της σειριακής θύρας
sudo apt-get οθόνη εγκατάστασης
Η σειριακή θύρα θα χρησιμοποιηθεί για την αποστολή εντολών AT και τη λήψη των απαντήσεων μεταξύ του DragonBoard 410c και της συσκευής ELM327.
Αποκτήστε πρόσβαση στον παρακάτω σύνδεσμο για περισσότερες πληροφορίες σχετικά με τις εντολές AT:
elmelectronics.com/ELM327/AT_Commands.pdf
Προειδοποίηση:
Να είστε πολύ προσεκτικοί με αυτό το βήμα! Όλες οι πληροφορίες που στέλνετε στη συσκευή θα ερμηνεύονται και θα αποστέλλονται στο αυτοκίνητο, εάν αποσταλεί λάθος μήνυμα, μπορεί να παρερμηνευθεί από το αυτοκίνητο και να προκαλέσει προβλήματα. Δώστε προσοχή στις εντολές και μελετήστε τις προτού επιχειρήσετε τον δικό σας κώδικα. Συνιστούμε ανεπιφύλακτα να ακολουθήσετε τις παρακάτω οδηγίες.
Ακολουθήστε την παρακάτω ακολουθία εντολών για να ξεκινήσετε την επικοινωνία:
-
Αυτή η λειτουργία θα ξεκινήσει τη σειριακή επικοινωνία χρησιμοποιώντας την οθόνη:
οθόνη /dev /rfcomm0
Μόλις φορτωθεί το τερματικό, πληκτρολογήστε τις ακόλουθες εντολές σε αυτήν την ακολουθία:
ATZ
ATL1 ATH1 ATS1 ATSP0
Τελικό τεστ επικοινωνίας:
Πληκτρολογήστε την κονσόλα:
ATI
Θα πρέπει να επιστρέψει "ELM327 v1.5" ή την έκδοση ELM της συσκευής σας
Αυτό είναι απόδειξη ότι η επικοινωνία της συσκευής ELM και του DragonBoard 410c λειτουργεί
Γρήγορη συμβουλή
Για να κλείσετε το "Screen" είναι απαραίτητο να πληκτρολογήσετε Ctrl+A ακολουθούμενο από Ctrl+D.
Βήμα 8: Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου χρησιμοποιώντας PyOBD
Το PyOBD είναι μια βιβλιοθήκη Python που επιτρέπει την επικοινωνία με συσκευές OBD2 που μπορούν να συνδεθούν με αυτοκίνητα. Με αυτό, μπορούμε να εξαγάγουμε αρκετές πληροφορίες, συμπεριλαμβανομένης της ταχύτητας του οχήματος και των ηλεκτρικών σφαλμάτων.
Σε αυτό το βήμα πρέπει να διασφαλίσουμε ότι οι ακόλουθες βιβλιοθήκες python είναι εγκατεστημένες στο Linaro του DragonBoard 410c:
-
PIP - Διαχειριστής πακέτων Python
sudo apt-get install python-pip
-
SetupTools - διαχειριστής εγκατάστασης αρχείων
sudo pip install -U pip setupstools
-
Τροχός - εγκατάσταση μορφοποιητή πακέτων
sudo apt-get install python-wheel
-
OBD - βιβλιοθήκη Python για επικοινωνία με συσκευή OBD
sudo apt-get install python-obd
-
GPS - Βιβλιοθήκη Python για λήψη δεδομένων από GPS
sudo pip εγκατάσταση gps
-
Αιτήματα - Πακέτο Python για RESTful
αιτήματα εγκατάστασης sudo pip
Για να επαληθεύσετε εάν το πακέτο του OBD λειτουργεί σωστά, ακολουθήστε τα εξής βήματα:
sudo python
Τώρα ο δρομέας του τερματικού θα αλλάξει σε ">>>" υποδεικνύοντας ότι η Python λειτουργεί. Τώρα μπορείτε να αρχίσετε να πληκτρολογείτε τις παρακάτω εντολές:
-
Ξεκινήστε με την εισαγωγή της βιβλιοθήκης OBD:
εισαγωγή obd
-
Για να συνδεθείτε στη σειριακή θύρα χρησιμοποιήστε την εντολή:
σύνδεση = old. OBD ("dev/rfcomm0")
- Είναι φυσιολογικό να εμφανίζεται ένα μήνυμα σφάλματος, λέγοντας ότι η επικοινωνία απέτυχε, οπότε αν συμβεί αυτό, δοκιμάστε άλλη μια φορά.
-
Για να μάθετε εάν η Python λαμβάνει πληροφορίες από το αυτοκίνητο που περνάει μέσω ELM327 μέσω bluetooth, πληκτρολογήστε τα εξής:
connection.protocol_name ()
Βήμα 9: Ανάγνωση δεδομένων από το αυτοκίνητο, χρησιμοποιώντας Python
Θα δημιουργήσουμε ένα αρχείο που ονομάζεται: OBD.py, ως οδηγίες παρακάτω, ακολουθούμενο από τον κωδικό.
Ξεκινήστε εισάγοντας τη βιβλιοθήκη OBD στην Python για να ξεκινήσετε τις συνδέσεις.
Για άγνωστους λόγους, χρησιμοποιώντας το υλικό μας, η πρώτη προσπάθεια σύνδεσης αποτυγχάνει πάντα. Δεύτερη προσπάθεια, πάντα λειτουργεί. Γι 'αυτό στον κώδικα, θα παρατηρήσετε δύο γραμμές εντολών που προσπαθούν να κάνουν τη σύνδεση.
Αφού η σύνδεση είναι επιτυχής, ξεκινήσαμε έναν άπειρο βρόχο, που αναζητά δεδομένα OBD, τα μορφοποιεί σύμφωνα με τις προκαθορισμένες παραμέτρους. Μετά από αυτό, δημιουργεί ένα URL, χρησιμοποιώντας το Query String, επιτρέποντάς του να σταλεί στον διακομιστή χρησιμοποιώντας τη μέθοδο POST.
Στο παρακάτω παράδειγμα, καταφέραμε να λάβουμε τις ακόλουθες πληροφορίες:
- RPM
- Ταχύτητα
Οι λειτουργίες για τη λήψη δεδομένων χρησιμοποιούν δύο παραμέτρους. Για παράδειγμα, χρησιμοποιώντας το [1] [12] κάνετε σέρβις για το [module] [PID]. Μπορείτε να βρείτε τη λίστα των λειτουργιών στη διεύθυνση:
Τέλος, δημιουργήστε τη διεύθυνση URL με όλες τις πληροφορίες συνδεδεμένες και προστιθέμενες στο αρχείο, που ονομάζεται "obd_data.dat".
Ο κωδικός για το OBD.py είναι παρακάτω.
Αφού συνδέσουμε και καταγράψουμε τα δεδομένα, θα δημιουργήσουμε ένα αρχείο που ονομάζεται: envia_OBD.py
Αυτό το μέρος του κώδικα γίνεται πιο απλό. Εισαγάγετε τις βιβλιοθήκες που σχετίζονται με το αίτημα/αποστολή δεδομένων, χρησιμοποιώντας το RESTFUL.
Δημιουργήστε ένα WHILE για να χρησιμοποιήσετε το POST και στείλτε τη διεύθυνση URL της πρώτης γραμμής του αρχείου, που συμπληρώθηκε προηγουμένως από το OBD.py. Μετά από αυτό, για να αποφευχθεί η αποστολή δεδομένων, διαγράφει αυτήν τη γραμμή από το αρχείο.
Ο κωδικός για το αρχείο OBD.py είναι παρακάτω.
Βήμα 10: Επαναλαμβανόμενες δέσμες ενεργειών και διαδικασία αποθήκευσης δεδομένων για τα δεδομένα που συλλαμβάνονται
Όλα όσα έχουμε κάνει μέχρι τώρα ήταν προσανατολισμένα για να βεβαιωθούμε ότι το DragonBoard επικοινωνούσε σωστά με τα εξαρτήματα, όπως 3G, Wifi, Bluetooth, δεδομένα GPS και άλλα.
Χρησιμοποιήστε τον παρακάτω κώδικα για να επεξεργαστείτε το αρχείο "rc.local", το οποίο έχει ήδη ορισμένες λειτουργίες και προκαθορισμένες εντολές. Βρίσκεται στο '/etc'. Για επεξεργασία, χρησιμοποιήστε την εντολή:
sudo nano /etc/rc.local
Τώρα πρέπει να διαμορφώσουμε όλες τις υπηρεσίες και τις λειτουργίες, δημιουργώντας ρουτίνες που αρχικοποιούνται αυτόματα κατά την εκκίνηση του DragonBoard. Ας χρησιμοποιήσουμε το BASH για να το κάνουμε αυτό. Το BASH (Bourne-Again-SHell) είναι μια εφαρμογή διερμηνέα Linux Command.
Ο παρακάτω κώδικας έχει εντολές BASH και θα χρειαστεί να εισαγάγετε τη διεύθυνση MAC Bluetooth/OBD. Να είστε ιδιαίτερα προσεκτικοί για να βεβαιωθείτε ότι τερματίζετε τον κωδικό με "έξοδο 0", που είναι η απάντηση του συστήματος ότι η ενέργεια ήταν επιτυχής.
αν [! -f/etc/ssh/ssh_host_rsa_key]
στη συνέχεια systemctl stop ssh.socket || true dpkg-επαναδιαμόρφωση ανοίγματος-διακομιστή fi sudo systemctl εκκίνηση qdsp-start.service rfcomm bind 0 MACADDRESS 1 sudo python /home/linaro/Documents/FadaDoCarro/conectaGPS.py & sudo python/home/home /Documents/FadaDoCarro/OBD.py & sudo python /home/linaro/Documents/FadaDoCarro/envia_OBD.py & exit 0
Στο εξής, κάθε φορά που ενεργοποιείτε το DragonBoard, θα συνδέεται με 3G και θα στέλνει δεδομένα GPS και OBD στον επιλεγμένο διακομιστή.
Βήμα 11: Προβλήματα στην πορεία
Παραθέσαμε παρακάτω μερικά από τα ζητήματα που εντοπίσαμε στην πορεία πριν γράψουμε αυτό το Instructable, αλλά πιστεύαμε ότι θα μπορούσε να σας βοηθήσει αν σας συμβεί.
-
PyOBD
Πρέπει να είστε πολύ προσεκτικοί για την αποστολή δεδομένων ενώ επικοινωνείτε με το αυτοκίνητο. Σε μια από τις πρώτες προσπάθειές μας, όταν η επικοινωνία δεν ήταν σταθερή, στείλαμε λάθος εντολή που ουσιαστικά κατέρρευσε το ECU. Η αλλαγή ταχυτήτων είχε κολλήσει στο πάρκινγκ και μερικά από τα φώτα του ταμπλό συνεχώς αναβοσβήνουν τυχαία. Η λύση που βρέθηκε ήταν να αποσυνδέσετε ένα από τα καλώδια της μπαταρίας για περίπου 15 λεπτά. Αυτό επαναφέρει το ECU στην προεπιλεγμένη εργοστασιακή του κατάσταση, συνεπώς ακυρώνοντας τυχόν εντολές ή αλλαγές που μπορεί να είχαμε κάνει
-
Λιναρό
Είχαμε ένα πρόβλημα με το DragonBoard, το οποίο συνέχισε να ξεκινά σποραδικά. Το πρόβλημα επιλύθηκε από την ομάδα του Linaro που κυκλοφόρησε μια νεότερη έκδοση του λειτουργικού συστήματος. Γράψαμε αυτό το σεμινάριο με την ενημερωμένη έκδοση
-
Το GPS του DragonBoard
Το DragonBoard 410c της Qualcomm δεν διαθέτει εσωτερική κεραία GPS, οπότε για να βελτιώσουμε την απόκτηση σήματος GPS, πρέπει να εγκαταστήσουμε μια υποδοχή για μια εξωτερική κεραία. Αυτή η διαδικασία εξηγείται καλύτερα στον ακόλουθο σύνδεσμο:
Βήμα 12: Αναφορές
Bootloader
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Λιναρό
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Como instalar o Linaro και DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Έγγραφο του GPS για το DragonBoard
discuss.96boards.org/t/gps-software/170/16
Επίδειξη GPS
gist.github.com/wolfg1969/4653340
Python OBD
github.com/brendan-w/python-OBD
Conectando RaspberryPi um um OBD Bluetooth
gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/
Συνιστάται:
Μετρητής στροφόμετρου/σάρωσης χρησιμοποιώντας Arduino, OBD2 και CAN Bus: 8 βήματα
Μετρητής στροφόμετρου/σάρωσης με χρήση Arduino, OBD2 και CAN Bus: Οποιοσδήποτε ιδιοκτήτης Toyota Prius (ή άλλου υβριδικού/ειδικού οχήματος) θα γνωρίζει ότι ενδέχεται να λείπουν μερικοί πίνακες από τα ταμπλό τους! Το prius μου δεν έχει στροφές στροφών κινητήρα ή δείκτη θερμοκρασίας. Εάν είστε τύπος απόδοσης, μπορεί να θέλετε να μάθετε πράγματα όπως η προώθηση του χρόνου και
Πώς να δημιουργήσετε και να εισαγάγετε έναν πίνακα και να προσθέσετε επιπλέον στήλες και/ή σειρές σε αυτόν τον πίνακα στο Microsoft Office Word 2007: 11 βήματα
Πώς να δημιουργήσετε και να εισαγάγετε έναν πίνακα και να προσθέσετε επιπλέον στήλες και/ή σειρές σε αυτόν τον πίνακα στο Microsoft Office Word 2007: Είχατε ποτέ πολλά δεδομένα με τα οποία εργάζεστε και σκεφτήκατε τον εαυτό σας … " πώς μπορώ να κάνω όλα αυτά τα δεδομένα φαίνονται καλύτερα και είναι πιο εύκολα κατανοητά; " Αν ναι, τότε η απάντησή σας μπορεί να είναι ένας πίνακας στο Microsoft Office Word 2007
Σύνδεση επεξεργασίας και Arduino και Make 7 Segment και Servo GUI Controller: 4 βήματα
Connecting Processing and Arduino and Make 7 Segment and Servo GUI Controller: Για ορισμένα έργα που κάνατε πρέπει να χρησιμοποιήσετε το Arduino καθώς παρέχει μια εύκολη πλατφόρμα πρωτοτύπων, αλλά η εμφάνιση γραφικών σε σειριακή οθόνη του Arduino μπορεί να διαρκέσει πολύ και είναι ακόμη και δύσκολο να γίνει. Μπορείτε να εμφανίσετε γραφήματα στο Arduino Serial Monitor bu
8 Έλεγχος ρελέ με NodeMCU και δέκτη IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: 5 βήματα (με εικόνες)
8 Έλεγχος ρελέ με δέκτη NodeMCU και IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: Έλεγχος 8 διακοπτών ρελέ χρησιμοποιώντας nodemcu και δέκτη ir μέσω wifi και ir απομακρυσμένης και εφαρμογής Android. Το ir remote λειτουργεί ανεξάρτητα από τη σύνδεση wifi. ΕΔΩ ΕΙΝΑΙ ΕΝΗΜΕΡΩΜΕΝΗ ΚΛΙΚ ΕΔΩ
Ένδειξη θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: 13 βήματα (με εικόνες)
Εμφάνιση θερμοκρασίας και υγρασίας και συλλογή δεδομένων με Arduino και επεξεργασία: Εισαγωγή: Πρόκειται για ένα έργο που χρησιμοποιεί έναν πίνακα Arduino, έναν αισθητήρα (DHT11), έναν υπολογιστή Windows και ένα πρόγραμμα επεξεργασίας (δωρεάν λήψη) για την εμφάνιση δεδομένων θερμοκρασίας, υγρασίας σε ψηφιακή και φόρμα γραφήματος, εμφάνιση ώρας και ημερομηνίας και εκτέλεση χρόνου αντίστροφης μέτρησης