Სარჩევი:

DragonBoard და OBD2: 12 ნაბიჯი
DragonBoard და OBD2: 12 ნაბიჯი

ვიდეო: DragonBoard და OBD2: 12 ნაბიჯი

ვიდეო: DragonBoard და OBD2: 12 ნაბიჯი
ვიდეო: Vlad and Niki play with Magic 8 Ball Magical Encounters 2024, ივლისი
Anonim
DragonBoard და OBD2
DragonBoard და OBD2

მონაცემების წაკითხვა, რომელიც გამოდის OBD2 პორტიდან თქვენს მანქანაში, შესაძლებელია მისგან საოცარი ინფორმაციის შეგროვება. DragonBoard 410c– ის გამოყენებით, ჩვენ ვიმუშავეთ ამ პროექტზე და დეტალურად განვიხილეთ იგი აქ, ასე რომ თქვენ თვითონ შეგიძლიათ ამის გაკეთება.

ეს პროექტი შესაძლებელი გახდა მხოლოდ #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora– სთან პარტნიორობის წყალობით, რამაც მოგვცა საშუალება გვექნა ბაზარზე არსებული საუკეთესო აპარატურა და ასევე საუკეთესო პროფესიონალებთან კონტაქტი განვითარებისათვის.

გუნდი შედგებოდა ამ ბიჭებისგან:

  • მარსელ ოგანდო - ჰაკერი - [email protected]
  • ლეანდრო ალვერნაზი - ჰაკერი - [email protected]
  • თიაგო პაულინო როდრიგესი - მარკეტინგი - [email protected]

ჩვენ ძალიან გვსურს დაგეხმაროთ თქვენი მიზნის მიღწევაში და დარწმუნდით, რომ დაასრულებთ თქვენს პროექტს, ასე რომ შეგვატყობინეთ, თუ გჭირდებათ რაიმე დახმარება, ვიდრე ქვემოთ მოცემულ მითითებებს.

ეს არის ჩვენი პორტუგალიური ენა, clique aqui:

www.instructables.com/id/DragonBoard-Com-OBD

ამ პროექტისთვის ჩვენ გამოვიყენეთ შემდეგი ერთეულები:

  • Qualcomm DragonBoard 410c
  • ELM327 Bluetooth OBD2 ინტერფეისი
  • Dongle USB 3G/4G
  • დაძაბულობის ინვერტორული მანქანის დამტენი (110 ვ)

ნაბიჯი 1: DragonBoard 410c პირველადი დაყენების შესრულება **

DragonBoard 410c პირველადი დაყენების შესრულება **
DragonBoard 410c პირველადი დაყენების შესრულება **
DragonBoard 410c პირველადი დაყენების შესრულება **
DragonBoard 410c პირველადი დაყენების შესრულება **
DragonBoard 410c პირველადი დაყენების შესრულება **
DragonBoard 410c პირველადი დაყენების შესრულება **

Qualcomm DragonBoard 410c– ის გამოყენებით, ჩვენ დავიწყეთ პროექტი Linux– ის დისტრიბუციის დაყენებით, სახელწოდებით Linaro, რაც საშუალებას გვაძლევს დავაყენოთ ყველა საჭირო მოწყობილობა.

DragonBoard– ისთვის Linaro– ს გამოსახულების შესაქმნელად გამოიყენეთ 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 მოწყობილობები

მოსალოდნელი დაბრუნება:

(თექვსმეტობითი) სწრაფი გადატვირთვა

შემდეგ ჩაწერეთ:

sudo./flashall

მოსალოდნელი დაბრუნება:

დასრულდა. საერთო დრო 1.000 წ (შეცდომების გარეშე)

ოპერაციული სისტემის ინსტალაცია

builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/

ჩამოტვირთეთ ეს 2 ფაილი:

boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz

ეს არის უახლესი ვერსია დღემდე (17 ივნისი/17), ასე რომ სახელი შეიძლება შეიცვალოს მომავალში. ნიმუში, რომელსაც თქვენ ეძებდით არის "boot-linaro-VersionName". ამ ერთს ჰქვია "Stretch" და წინა იყო "Jessie".

linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz

ეს არის უახლესი ვერსია დღემდე (17 ივნისი/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 განახლება

მინიშნება: ლინარო შეირჩა უკიდურესად სწრაფი ჩატვირთვის და საზოგადოების ძალიან ჩართული და პრობლემის გადაჭრაზე ორიენტირებული, რაც დაზოგავს ბევრ დროს.

ნაბიჯი 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 დააინსტალირეთ gnss-gpsd gpsd gpsd- კლიენტები

ამ პროგრამების დაყენებით, თქვენ დაგჭირდებათ მეტი ბრძანება მისი სწორად დასაწყებად:

sudo systemctl დაწყება qdsp-start.service

sudo systemctl დაწყება gnss-gpsd.service sudo systemctl დაწყება qmi-gps-proxy.service

ახლა გადაიტანეთ DragonBoard 410c ფართო ღია ადგილას, ცის ნათელი ხედებით, რაც მას საშუალებას აძლევს მიიღოს სიგნალი თანამგზავრებისგან. ახლა ჩაწერეთ ტერმინალში:

gpsmon –n

ჩვენი ტესტებიდან, მონაცემები ეკრანზე გამოჩნდება საშუალოდ 10 წუთის შემდეგ. ეს ბევრ რამეს იცვლის ადგილიდან, გარდა DragonBoard– ის პოზიციისა ფანჯარაში, ან შენობაში, სხვა მრავალი ბარიერის გარდა, რომელიც შეიძლება ჩაერიოს GPS სიგნალის მიღებაში.

ნაბიჯი 3: 3G/4G USB დონგის დაყენება

3G/4G USB დონგის დაყენება
3G/4G USB დონგის დაყენება
3G/4G USB დონგის დაყენება
3G/4G USB დონგის დაყენება
3G/4G USB დონგის დაყენება
3G/4G USB დონგის დაყენება
3G/4G USB დონგის დაყენება
3G/4G USB დონგის დაყენება

DragonBoard 410c 3G/4G/GSM ქსელთან დაკავშირების რამდენიმე გზა არსებობს:

  • Shield / BreakoutBoard- ის გამოყენება GSM მოდემით, რომელსაც ასევე აქვს SimCard სლოტი;
  • გამოიყენეთ USB 3G/4G Dongle.

ამ პროექტისთვის ჩვენ გადავწყვიტეთ გამოგვეყენებინა Huawei- ს E3272 USB Dongle, რადგან მისი ყიდვა ადვილი და სწრაფი იყო.

მოდემის კონფიგურაციისთვის შეგიძლიათ გამოიყენოთ ტერმინალი (WVDial აპლიკაციის გამოყენებით), მაგრამ ამის უადვილესი გზა არის Linaro– ს გრაფიკული მომხმარებლის ინტერფეისის (GUI) გამოყენებით. მას შემდეგნაირად:

  • DragonBoard– თან დაკავშირებულ USB დონგლთან ერთად, დააწკაპუნეთ მარჯვენა ღილაკით "ქსელების" ხატზე ეკრანის ქვედა მარჯვენა კუთხეში;
  • "კავშირების რედაქტირება"> "დამატება";
  • აირჩიეთ "მობილური ინტერნეტი" ჩამოსაშლელი მენიუდან;
  • დააჭირეთ "შექმნა".

მიჰყევით ოსტატის მითითებებს, დარწმუნდით, რომ შეარჩიეთ შესაბამისი გადამზიდავი მენიუდან, რაც საშუალებას მისცემს მოწყობილობას დაუკავშირდეს შესაბამისად.

ნაბიჯი 4: DragonBoard 410c- ის გარდაქმნა Wi -Fi ცხელ წერტილში / წვდომის წერტილში

DragonBoard 410c- ის გარდაქმნა Wi -Fi ცხელ წერტილში / წვდომის წერტილში
DragonBoard 410c- ის გარდაქმნა Wi -Fi ცხელ წერტილში / წვდომის წერტილში
DragonBoard 410c- ის გარდაქმნა Wi -Fi ცხელ წერტილში / წვდომის წერტილში
DragonBoard 410c- ის გარდაქმნა Wi -Fi ცხელ წერტილში / წვდომის წერტილში
DragonBoard 410c- ის გარდაქმნა Wi -Fi ცხელ წერტილში / წვდომის წერტილში
DragonBoard 410c- ის გარდაქმნა Wi -Fi ცხელ წერტილში / წვდომის წერტილში

DragonBoard 410c როგორც wifi მარშრუტიზატორის ან ცხელ წერტილის კონფიგურაციის უმარტივესი გზა (ახლა, როდესაც თქვენ ინტერნეტ კავშირი დააკონფიგურირეთ) არის სისტემის GUI გამოყენება. ამისათვის მიჰყევით ქვემოთ მოცემულ ნაბიჯებს:

  • მარჯვენა ღილაკით დააწკაპუნეთ ქსელის ხატზე ქვედა მარჯვენა კუთხეში
  • აირჩიეთ "კავშირების რედაქტირება და შემდეგ" დამატება"
  • აირჩიეთ "WiFi"
  • დააწკაპუნეთ შექმნაზე

შეცვალეთ ქსელის სახელი, რომლის შექმნა გსურთ "SSID" ველში და შეცვალეთ "რეჟიმი" ველი "ცხელ წერტილში".

დარწმუნდით, რომ ის იმუშავებს, გადაამოწმეთ შემდეგი:

  • გადადით ჩანართზე "IPv4 პარამეტრები"
  • შეამოწმეთ არის თუ არა "მეთოდი"

ნაბიჯი 5: DragonBoard 410c უკაბელო წვდომა SSH გამოყენებით, ცხელ წერტილთან დაკავშირების გზით

DragonBoard 410c უკაბელო წვდომა SSH გამოყენებით, ცხელ წერტილთან დაკავშირების გზით
DragonBoard 410c უკაბელო წვდომა SSH გამოყენებით, ცხელ წერტილთან დაკავშირების გზით

ჩვენ შევძელით შევქმნათ გზა DragonBoard– ზე დისტანციურად წვდომისთვის, არ აქვს მნიშვნელობა ახლოს ხართ თუ არა. ჩვეულებრივ, თქვენ უნდა დაუკავშირდეთ თავად დაფას, wifi ან bluetooth– ის გამოყენებით. კიდევ ერთი გზა იქნება მისი წვდომა იმავე Wifi ქსელთან (მაგ.: როუტერიდან). შემდეგი ნაბიჯების შესრულებით, ჩვენ ვქმნით დამოუკიდებელ მოწყობილობას, რომელიც ქმნის საკუთარ ქსელს და იხსნება ინტერნეტში, რათა წვდომა იქონიოს.

თქვენ შეგიძლიათ დაიწყოთ "Auto SSH" - ის დაყენებით, ქვემოთ მოყვანილი კოდის გამოყენებით:

sudo apt-get დააინსტალირეთ 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– ის ბოლო წერტილის უსაფრთხოდ წვდომისათვის, 3G მოდემის საჯარო IP– ს საშუალებით. ამ ნაბიჯის მთავარი მიზანი. შემდეგი კოდი დააკოპირებს ამ გასაღებს Linux– ის სანდო კლავიშების საცავში, რაც დარწმუნდება, რომ კავშირი კიდევ უფრო უსაფრთხო იქნება.

ssh -keygen -t rsa

scp ~/.ssh/id_rsa.pub მომხმარებელი@დისტანციური_სერვერი. -R 2222: localhost: 22 მომხმარებელი@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 მოწყობილობა ჩიპსეტით, რომელიც ემყარება ELM327.

მნიშვნელოვანია აღინიშნოს, რომ ELM327- ის ხელმისაწვდომობა არ ნიშნავს რომ ეს არის ELM327- ის ორიგინალური ვერსია. არსებული ჩიპსეტების უმეტესობა დაფუძნებულია 1.5 ვერსიაზე, სწორედ მაშინ, როდესაც ჩიპის ინფორმაცია კლონირებული იქნა და გაჟონა ბაზარზე. ორიგინალური ELM327 ახლა არის 2.2 ვერსიაზე. ამ ჩიპსეტის ევოლუცია უფრო მეტ მონაცემებს მოაქვს ახალი მანქანების შესახებ. მნიშვნელოვანია იცოდეთ ამის შესახებ, რადგან ტესტებიდან გამომდინარე, თქვენ შეიძლება გქონდეთ ან არ გქონდეთ წვდომა ახალი მანქანების მონაცემებზე.

OBD2 Bluetooth ადაპტერთან ერთად იპოვეთ თქვენი მანქანის OBD2 პორტი. ის შეიძლება იყოს სადმე საჭის ქვეშ. შეიძლება უფრო ადვილი იყოს მისი ძებნა ამ ინსტრუმენტის გამოყენებით:

შედით DragonBoard 410c– ში SSH– ის გამოყენებით, თქვენი რვეულიდან (გახსოვდეთ, რომ თქვენ ახლა მანქანაში ხართ და არ გაქვთ ტელევიზორი/მონიტორი დაფის ჩასართავად). როგორც კი OBD2 Bluetooth მოწყობილობა ჩადებულია მანქანის პორტში, მიჰყევით ქვემოთ მოცემულ ნაბიჯებს 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– ის კომუნიკაცია მუშაობს

სწრაფი რჩევა

"ეკრანიდან" გასასვლელად აუცილებელია ჩაწეროთ Ctrl+A შემდეგ Ctrl+D.

ნაბიჯი 8: DragonBoard 410c– ის დაკავშირება მანქანის OBD– თან PyOBD– ის გამოყენებით

DragonBoard 410c– ის დაკავშირება მანქანის OBD– თან PyOBD– ის გამოყენებით
DragonBoard 410c– ის დაკავშირება მანქანის OBD– თან PyOBD– ის გამოყენებით

PyOBD არის პითონის ბიბლიოთეკა, რომელიც საშუალებას აძლევს კომუნიკაციას OBD2 მოწყობილობებთან, რომელთა დაკავშირება შესაძლებელია მანქანებთან. ამით ჩვენ შეგვიძლია გამოვიღოთ რამდენიმე ინფორმაცია, მათ შორის ავტომობილის სიჩქარე და ელექტრული შეცდომები.

ამ ნაბიჯში ჩვენ უნდა დავრწმუნდეთ, რომ პითონის შემდეგი ბიბლიოთეკები დაინსტალირებულია თქვენი DragonBoard 410c Linaro– ში:

  • PIP - პითონის პაკეტის მენეჯერი

    sudo apt-get დააინსტალირეთ python-pip

  • SetupTools - ფაილის ინსტალაციის მენეჯერი

    sudo pip install -U pip setupstools

  • საჭე - დააინსტალირეთ პაკეტის ფორმატი

    sudo apt-get დააინსტალირეთ პითონის ბორბალი

  • OBD - პითონის ბიბლიოთეკა OBD მოწყობილობასთან კომუნიკაციისთვის

    sudo apt-get დააინსტალირეთ python-obd

  • GPS - პითონის ბიბლიოთეკა GPS– დან მონაცემების მისაღებად

    sudo pip დააინსტალირეთ gps

  • მოთხოვნები - პითონის პაკეტი RESTful– ისთვის

    sudo pip ინსტალაციის მოთხოვნა

იმის დასადასტურებლად, მუშაობს თუ არა OBD პაკეტი სწორად, მიყევით ამ ნაბიჯებს:

სუდო პითონი

ახლა ტერმინალის კურსორი შეიცვლება ">>>" - ით, რაც მიუთითებს იმაზე, რომ პითონი მუშაობს. ახლა თქვენ შეგიძლიათ დაიწყოთ ქვემოთ მოცემული ბრძანებების აკრეფა:

  • დაიწყეთ OBD ბიბლიოთეკის იმპორტით:

    obd იმპორტი

  • სერიულ პორტთან დასაკავშირებლად გამოიყენეთ ბრძანება:

    კავშირი = ძველი. OBD ("dev/rfcomm0")

  • ნორმალურია შეცდომის შეტყობინების ჩვენება, რომ კომუნიკაცია ვერ მოხერხდა, ასე რომ, თუ ეს მოხდება, სცადე კიდევ ერთხელ.
  • იმის გასარკევად, იღებს თუ არა პითონი ინფორმაციას მანქანიდან, რომელიც ELM327– ით გადის bluetooth– ით, ჩაწერეთ შემდეგი:

    connection.protocol_name ()

ნაბიჯი 9: მონაცემების წაკითხვა მანქანიდან, პითონის გამოყენებით

ავტომობილის მონაცემების კითხვა პითონის გამოყენებით
ავტომობილის მონაცემების კითხვა პითონის გამოყენებით

ჩვენ შევქმნით ფაილს სახელწოდებით: OBD.py, ქვემოთ მითითებული ინსტრუქციის შესაბამისად, რასაც მოჰყვება კოდი.

დაიწყეთ OBD ბიბლიოთეკის პითონში იმპორტით კავშირების დასაწყებად.

გაურკვეველი მიზეზების გამო, ჩვენი ტექნიკის გამოყენებით, კავშირის პირველი მცდელობა ყოველთვის ვერ ხერხდება. მეორე მცდელობა, ყოველთვის მუშაობს. ამიტომ კოდზე შეამჩნევთ ბრძანების ორ ხაზს, რომელიც ცდილობს კავშირის დამყარებას.

მას შემდეგ, რაც კავშირი წარმატებულია, ჩვენ დავიწყეთ უსასრულო მარყუჟი, რომელიც ეძებს OBD მონაცემებს, აფორმებს მას წინასწარ განსაზღვრული პარამეტრების მიხედვით. ამის შემდეგ, ის ქმნის URL- ს, Query String- ის გამოყენებით, რაც საშუალებას აძლევს მას სერვერზე გაიგზავნოს POST მეთოდით.

ქვემოთ მოყვანილ მაგალითზე ჩვენ მოვახერხეთ შემდეგი ინფორმაციის მოპოვება:

  • RPM
  • სიჩქარე

მონაცემების გადაღების ფუნქციები იყენებს ორ პარამეტრს. მაგალითად, გამოყენებით [1] [12] თქვენ serching for [მოდული] [PID]. ფუნქციების ჩამონათვალი შეგიძლიათ იხილოთ აქ:

დაბოლოს, შექმენით URL ყველა ფაილით შეკრული და დამატებული, სახელწოდებით "obd_data.dat".

კოდი OBD.py ქვემოთ.

მონაცემების დაკავშირებისა და გადაღების შემდეგ ჩვენ შევქმნით ფაილს სახელწოდებით: envia_OBD.py

კოდის ეს ნაწილი უფრო მარტივი ხდება. იმპორტი ბიბლიოთეკები, რომლებიც დაკავშირებულია მოთხოვნასთან/მონაცემების გაგზავნასთან ერთად, RESTFUL- ის გამოყენებით.

შექმენით 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 ბრძანებები და თქვენ უნდა ჩაწეროთ Bluetooth/OBD MAC მისამართი. იყავით მეტად ფრთხილად, რომ დარწმუნდეთ, რომ კოდი უნდა დასრულდეს "გასვლა 0" - ით, რაც არის სისტემის პასუხი, რომ მოქმედება წარმატებული იყო.

თუ [! -f/etc/ssh/ssh_host_rsa_key]

შემდეგ systemctl stop ssh.socket || true dpkg- ხელახლა კონფიგურაცია opensh-server fi sudo systemctl start qdsp-start.service rfcomm bind 0 MACADDRESS 1 sudo python /home/linaro/Documents/FadaDoCarro/conectaGPS.py & sudo pyo/home/home /Documents/FadaDoCarro/OBD.py & sudo python /home/linaro/Documents/FadaDoCarro/envia_OBD.py & გასვლა 0

ამიერიდან, ყოველ ჯერზე, როდესაც ჩართავთ DragonBoard– ს, ის დაუკავშირდება 3G– ს და აგზავნის GPS და OBD მონაცემებს არჩეულ სერვერზე.

ნაბიჯი 11: პრობლემები გზაზე

უსიამოვნებები გზის გასწვრივ
უსიამოვნებები გზის გასწვრივ

ჩვენ ქვემოთ ჩამოვთვალეთ რამდენიმე საკითხი, რაც ჩვენ ვიპოვნეთ ამ ინსტრუქციის დაწერის წინ, მაგრამ ჩვენ ვფიქრობდით, რომ ეს დაგეხმარებოდათ, თუ ეს თქვენ შეგემთხვევათ.

  • PyOBD

    მანქანასთან კომუნიკაციისას მონაცემების გაგზავნისას ძალიან ფრთხილად უნდა იყოთ. ჩვენს ერთ -ერთ პირველ მცდელობაში, როდესაც კომუნიკაცია არ იყო სტაბილური, ჩვენ გამოგვიგზავნეს არასწორი ბრძანება, რამაც ძირითადად შეწყვიტა ECU. გადაცემათა კოლოფი პარკინგში იყო ჩარჩენილი და დაფის ზოგიერთი შუქი შემთხვევით აციმციმებდა. ნაპოვნი გამოსავალი იყო ბატარეის ერთ -ერთი კაბელის გათიშვა დაახლოებით 15 წუთის განმავლობაში. ეს დააბრუნებს ECU– ს ქარხნულ ნაგულისხმევ მდგომარეობას, ამიტომ გაუქმდება ნებისმიერი ბრძანება ან ცვლილება, რაც შეიძლება ჩვენ შევიტანეთ

  • ლინარო

    ჩვენ გვქონდა პრობლემა ჩვენს DragonBoard– თან, რომელიც განაგრძობდა სპორადულად გადატვირთვას. საკითხი გადაწყდა ლინაროს გუნდმა, რომელმაც გამოუშვა ოპერაციული სისტემის ახალი ვერსია. ჩვენ დავწერეთ ეს გაკვეთილი განახლებული ვერსიით

  • DragonBoard– ის GPS

    Qualcomm– ის DragonBoard 410c– ს არ აქვს შიდა GPS ანტენა, ამიტომ GPS სიგნალის მოპოვების გასაძლიერებლად, ჩვენ გვჭირდება გარე ანტენის კონექტორის დაყენება. ეს პროცესი უკეთესად არის ახსნილი შემდეგ ბმულზე:

ნაბიჯი 12: მითითებები

ცნობები
ცნობები

ჩამტვირთავი

builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/

ლინარო

builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/

Coma 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

პითონი OBD

github.com/brendan-w/python-OBD

Conectando RaspberryPi O um OBD Bluetooth

gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/

გირჩევთ: