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

DragonBoard και OBD2: 12 βήματα
DragonBoard και OBD2: 12 βήματα

Βίντεο: DragonBoard και OBD2: 12 βήματα

Βίντεο: DragonBoard και OBD2: 12 βήματα
Βίντεο: THE ELDER SCROLLS Full Movie (2020) 4K ULTRA HD Werewolf Vs Dragons All Cinematics 2024, Νοέμβριος
Anonim
DragonBoard και OBD2
DragonBoard και OBD2

Διαβάζοντας τα δεδομένα που βγαίνουν από τη θύρα OBD2 στο αυτοκίνητό σας, μπορείτε να συλλέξετε εκπληκτικές πληροφορίες από αυτό. Χρησιμοποιώντας το DragonBoard 410c, δουλέψαμε σε αυτό το έργο και το αναλύσαμε εδώ για να το κάνετε μόνοι σας.

Αυτό το έργο ήταν δυνατό μόνο λόγω της συνεργασίας με την #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora που μας επέτρεψε να έχουμε πρόσβαση στο καλύτερο υλικό της αγοράς, καθώς και την επαφή με τους καλύτερους επαγγελματίες για να υποστηρίξουν την ανάπτυξη.

Η ομάδα απαρτίστηκε από τους εξής τύπους:

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

Παρακαλούμε αξιολογήστε τα Πορτογαλικά, 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 **

Εκτέλεση της αρχικής εγκατάστασης του DragonBoard 410c **
Εκτέλεση της αρχικής εγκατάστασης του DragonBoard 410c **
Εκτέλεση της αρχικής εγκατάστασης του DragonBoard 410c **
Εκτέλεση της αρχικής εγκατάστασης του DragonBoard 410c **
Εκτέλεση της αρχικής εγκατάστασης του DragonBoard 410c **
Εκτέλεση της αρχικής εγκατάστασης του 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 του

Εντοπίστε το DragonBoard 410c σας χρησιμοποιώντας την κεραία GPS του
Εντοπίστε το DragonBoard 410c σας χρησιμοποιώντας την κεραία GPS του
Εντοπίστε το DragonBoard 410c σας χρησιμοποιώντας την κεραία GPS του
Εντοπίστε το 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

Εγκατάσταση του Dongle USB 3G/4G
Εγκατάσταση του Dongle USB 3G/4G
Εγκατάσταση του Dongle USB 3G/4G
Εγκατάσταση του Dongle USB 3G/4G
Εγκατάσταση του Dongle USB 3G/4G
Εγκατάσταση του Dongle USB 3G/4G
Εγκατάσταση του Dongle USB 3G/4G
Εγκατάσταση του 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 σε Wi -Fi Hotspot / Σημείο Πρόσβασης
Μετατροπή του DragonBoard 410c σε Wi -Fi Hotspot / Σημείο Πρόσβασης
Μετατροπή του DragonBoard 410c σε Wi -Fi Hotspot / Σημείο Πρόσβασης
Μετατροπή του DragonBoard 410c σε Wi -Fi Hotspot / Σημείο Πρόσβασης
Μετατροπή του DragonBoard 410c σε Wi -Fi Hotspot / Σημείο Πρόσβασης
Μετατροπή του DragonBoard 410c σε Wi -Fi Hotspot / Σημείο Πρόσβασης

Ο ευκολότερος τρόπος για να διαμορφώσετε το DragonBoard 410c ως δρομολογητή wifi ή hotspot (τώρα που έχετε διαμορφώσει τη σύνδεση στο διαδίκτυο) είναι να χρησιμοποιήσετε το GUI του συστήματος. Για να το κάνετε αυτό, ακολουθήστε τα παρακάτω βήματα:

  • Κάντε δεξί κλικ στο εικονίδιο δικτύου στην κάτω δεξιά γωνία
  • Επιλέξτε "Επεξεργασία συνδέσεων και στη συνέχεια" Προσθήκη"
  • Επιλέξτε "WiFi"
  • Κάντε κλικ στη δημιουργία

Αλλάξτε το όνομα του δικτύου που θέλετε να δημιουργήσετε στο πεδίο "SSID" και αλλάξτε το πεδίο "Mode" σε "Hotspot".

Για να βεβαιωθείτε ότι θα λειτουργήσει, επαληθεύστε τα ακόλουθα:

  • Μεταβείτε στην καρτέλα "Ρυθμίσεις IPv4"
  • Επαληθεύστε εάν η "μέθοδος"

Βήμα 5: Ασύρματη πρόσβαση στο DragonBoard 410c χρησιμοποιώντας SSH, μέσω συνδεσιμότητας Hotspot

Πρόσβαση στο DragonBoard 410c Ασύρματα με χρήση SSH, μέσω συνδεσιμότητας Hotspot
Πρόσβαση στο 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

Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου με χρήση Bluetooth - Μέρος 1/2
Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου με χρήση Bluetooth - Μέρος 1/2
Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου με χρήση Bluetooth - Μέρος 1/2
Σύνδεση του 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

Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου με χρήση Bluetooth - Μέρος 2/2
Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου με χρήση Bluetooth - Μέρος 2/2
Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου με χρήση Bluetooth - Μέρος 2/2
Σύνδεση του 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

Σύνδεση του DragonBoard 410c στο OBD του αυτοκινήτου χρησιμοποιώντας PyOBD
Σύνδεση του 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

Ανάγνωση δεδομένων από το αυτοκίνητο, χρησιμοποιώντας Python
Ανάγνωση δεδομένων από το αυτοκίνητο, χρησιμοποιώντας 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/

Συνιστάται: