Съдържание:
- Стъпка 1: Извършване на първоначалната настройка на DragonBoard 410c **
- Стъпка 2: Намиране на вашия DragonBoard 410c с помощта на неговата GPS антена
- Стъпка 3: Инсталиране на 3G/4G USB Dongle
- Стъпка 4: Трансформиране на DragonBoard 410c в Wifi гореща точка / точка за достъп
- Стъпка 5: Достъп до DragonBoard 410c безжично чрез SSH, чрез Hotspot Connectivity
- Стъпка 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 07:51
Четенето на данните, които излизат от порта OBD2 в колата ви, е възможно да се събере невероятна информация от него. Използвайки DragonBoard 410c, ние работихме по този проект и го описахме подробно тук, за да можете да го направите сами.
Този проект беше възможен само благодарение на партньорството с #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora, което ни позволи да имаме достъп до най -добрия хардуер на пазара, както и на контакта с най -добрите професионалисти в подкрепа на развитието.
Екипът беше съставен от тези момчета:
- Марсел Огандо - Хакер - [email protected]
- Леандро Алверназ - Хакер - [email protected]
- Тиаго Паулино Родригес - Маркетинг - [email protected]
Ние сме много нетърпеливи да ви помогнем да постигнете целта си и да се уверите, че сте завършили проекта си, затова ни уведомете, ако имате нужда от помощ, освен инструкциите по -долу.
Para seguir este projeto em Português, клика aqui:
www.instructables.com/id/DragonBoard-Com-OBD
За този проект използвахме следните елементи:
- Qualcomm DragonBoard 410c
- ELM327 Bluetooth OBD2 интерфейс
- USB ключ 3G/4G
- Инверторно напрежение за автомобилно зарядно устройство (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 устройства за бързо зареждане
Очаквано завръщане:
(шестнадесетично) бързо стартиране
След това въведете:
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 устройства за бързо зареждане
sudo fastboot флаш зареждане boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
Очаквана възвръщаемост (запомнянето на часа може да варира):
завършен. общо време: 100.00s
Свържете мишка, клавиатура и монитор/телевизор, като използвате HDMI порта
Имайте това под ръка:
потребител: linaro
парола: linaro
Отворете приложението Lxterminal и продължете с изтеглянето на списъка с налични актуализации по отношение на инсталираните пакети:
sudo apt-get update
Не забравяйте да инсталирате наличните пакети от списъка:
sudo apt-get надстройка
Съвет: Linaro е избран поради изключително бързо зареждане и общност, много ангажирана и ориентирана към решаване на проблеми, което спестява много време.
Стъпка 2: Намиране на вашия DragonBoard 410c с помощта на неговата GPS антена
Започнете с инсталирането на необходимите приложения, които ще бъдат клиентите на GPS модула. Имената на приложенията са: GNSS-GPSD, GPSD и GPSD-КЛИЕНТИ. За да направите това, следвайте командите:
sudo apt-get инсталирате gnss-gpsd gpsd gpsd-клиенти
С тези инсталирани приложения ще ви трябват още команди, за да го стартирате правилно:
sudo systemctl start 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 Dongle
Има няколко начина за свързване на DragonBoard 410c към 3G/4G/GSM мрежа:
- Използване на Shield / BreakoutBoard с GSM модем, който също има слот за SimCard;
- Използвайте USB 3G/4G Dongle.
За този проект решихме да използваме USB ключа E3272 на Huawei, тъй като беше лесно и бързо да се купи такъв.
За да конфигурирате модема, можете да използвате терминала (с помощта на приложението WVDial), но най -лесният начин да го направите е да използвате графичния потребителски интерфейс (GUI) на Linaro. Към него, както следва:
- Когато USB Dongle е свързан към DragonBoard, щракнете с десния бутон върху иконата „мрежи“в долния десен ъгъл на екрана;
- „Редактиране на връзки“> „Добавяне“;
- Изберете „Мобилен широколентов достъп“от падащото меню;
- Кликнете върху „Създаване“.
Следвайте инструкциите от съветника, като се уверите, че сте избрали подходящия оператор от менюто, което позволява на устройството да се свърже съответно.
Стъпка 4: Трансформиране на DragonBoard 410c в Wifi гореща точка / точка за достъп
Най -лесният начин да конфигурирате DragonBoard 410c като wifi рутер или гореща точка (сега, когато сте конфигурирали интернет връзка) е да използвате GUI на системата. За да направите това, следвайте стъпките по -долу:
- Щракнете с десния бутон върху иконата на мрежата в долния десен ъгъл
- Изберете „Редактиране на връзки и след това„ Добавяне “
- Изберете „WiFi“
- Щракнете върху създаване
Променете името на мрежата, която искате да създадете, в полето „SSID“и полето „Mode“в „Hotspot“.
За да сте сигурни, че ще работи, проверете следното:
- Отидете в раздела „Настройки на IPv4“
- Проверете дали „Методът“
Стъпка 5: Достъп до DragonBoard 410c безжично чрез SSH, чрез Hotspot Connectivity
Успяхме да създадем начин за отдалечен достъп до 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 install
Сега ще генерираме криптографски ключ, използвайки стандарта RSA. Този ключ ще се използва за сигурен достъп до екземпляр на крайна точка на Linux чрез публичния IP на 3G модема. Основната цел на тази стъпка. Следният код ще копира този ключ в хранилището за надеждни ключове на Linux, като се увери, че има още по -голяма сигурност за връзката.
ssh -keygen -t rsa
scp ~/.ssh/id_rsa.pub потребител@отдалечен сървър:.ssh/оторизирани_ключове autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 потребител@отдалечен_сървър
Като следвате тези стъпки, току -що сте преобразували Qualcomm DragonBoard 410c в облачен сървър! / o/
Стъпка 6: Свързване на DragonBoard 410c към OBD на автомобила чрез Bluetooth - Част 1/2
Комуникационният интерфейс на автомобила се осъществява чрез OBD2 порт. Информацията, която се обменя в това пристанище, трябва да бъде преведена и за това се нуждаем от преводаческо устройство. Има две хардуерни алтернативи: ELM327 или STN1170.
За този проект използвахме Bluetooth устройство с чипсет на базата на ELM327.
Важно е да се отбележи, че наличността на ELM327 не означава, че това е ОРИГИНАЛНАТА ВЕРСИЯ на ELM327. Повечето от наличните чипсети са базирани на версия 1.5, тогава информацията за чипа беше клонирана и изтекла на пазара. Оригиналният ELM327 вече е на версия 2.2. Еволюцията на този чипсет носи повече данни за по -новите автомобили. Важно е да знаете това, тъй като в зависимост от тестовете може да имате или да нямате достъп до данни от по -нови превозни средства.
С Bluetooth адаптера OBD2 намерете OBD2 порта на колата си. Може да се намери някъде под волана. Може да е по -лесно да го потърсите с помощта на този инструмент:
Достъп до DragonBoard 410c с помощта на SSH от вашия преносим компютър (не забравяйте, че сега сте в колата и нямате телевизор/монитор, за да включите платката). Веднага след като OBD2 Bluetooth устройството бъде поставено в порта на автомобила, следвайте стъпките по -долу за достъп до Bluetooth връзката.
sudo bluetoothctl
може да се постави на агент при сканиране на агент по подразбиранеНа този етап е важно да копирате MAC адреса, защото ще ви е необходим за следващите стъпки
Въведете тези команди:
доверете се на МАКАДРЕС
чифт МАКАДРЕС
Трябва да бъдете подканени с искане да въведете ПИН кода, за да Сдвоите Bluetooth OBD2 с платката.
Обикновено ПИН кодът е 1234 или 0000 - зависи от вашия хардуер
Сега трябва да видите екрана "връзката е успешна". За да излезете от приложението Bluetooth, използвайте следната команда:
напусна
Следващата стъпка е да СВЪРЗЕТЕ устройството със серийния порт:
sudo rfcomm bind 0 MACADDRESS 1
За да сте сигурни, че операцията е успешна, въведете:
ls /dev
Трябва да се посочи портът „Rfcomm0“.
Стъпка 7: Свързване на DragonBoard 410c към OBD на автомобила чрез Bluetooth - част 2/2
Основната цел на тази стъпка е да гарантира, че комуникацията между трите устройства работи:
ELM327, DragonBoard 410c и колата
Изтеглете приложението „Screen“, за да изпращате серийни съобщения през серийния порт
sudo apt-get екран за инсталиране
Серийният порт ще се използва за изпращане на AT команди и получаване на отговорите между DragonBoard 410c и устройството ELM327.
Достъп до следната връзка за повече информация относно AT команди:
elmelectronics.com/ELM327/AT_Commands.pdf
Внимание:
Бъдете много внимателни с тази стъпка! Цялата информация, която изпращате на устройството, ще бъде интерпретирана и изпратена до колата, ако е изпратено грешно съобщение, тя може да бъде интерпретирана погрешно от колата и да причини проблеми. Обърнете внимание на командите и ги изучете, преди да опитате свой собствен код. Силно препоръчваме да следвате инструкциите по -долу на буквата.
Следвайте командната последователност по -долу, за да започнете комуникацията:
-
Тази функция ще стартира серийната комуникация с помощта на екрана:
screen /dev /rfcomm0
Веднага щом терминалът се зареди, въведете следните команди в тази последователност:
ATZ
ATL1 ATH1 ATS1 ATSP0
Последен тест за комуникация:
Въведете в конзолата:
ATI
Той трябва да връща „ELM327 v1.5“или версията на ELM на вашето устройство
Това е доказателство, че комуникацията на ELM устройството и DragonBoard 410c работи
Бърз съвет
За да излезете от „Екран“е необходимо да въведете 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
-
Wheel - инсталирайте форматиращ пакет
sudo apt-get инсталирайте 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] търсите за [модул] [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.
Следният код има команди BASH и ще трябва да вмъкнете Bluetooth/OBD MAC адрес. Бъдете особено внимателни, за да сте сигурни, че завършвате кода с "exit 0", което е отговорът на системата, че действието е било успешно.
ако [! -f/etc/ssh/ssh_host_rsa_key]
след това systemctl stop ssh.socket || true dpkg-reconfigure openssh-server fi sudo systemctl start qdsp-start.service rfcomm bind 0 MACADDRESS 1 sudo python /home/linaro/Documents/FadaDoCarro/conectaGPS.py & sudo python/home/linaro /Documents/FadaDoCarro/OBD.py & sudo python /home/linaro/Documents/FadaDoCarro/envia_OBD.py & exit 0
Отсега нататък всеки път, когато включите DragonBoard, той ще се свързва с 3G и ще изпраща GPS и OBD данни към избрания сървър.
Стъпка 11: Проблеми по пътя
По -долу изброихме някои от проблемите, които открихме по пътя, преди да напишем тази инструкция, но решихме, че може да ви помогне, ако ви се случи.
-
PyOBD
Трябва да сте много предпазливи, за да изпращате данни, докато общувате с колата. В един от първите ни опити, когато комуникацията не беше стабилна, изпратихме грешна команда, която по същество разби ECU. Превключването на предавките е останало при паркиране и някои от светлините на таблото продължиха да мигат произволно. Намереното решение беше да изключите един от кабелите на батерията за около 15 минути. Това връща ECU към фабрично състояние по подразбиране, поради което се анулират всички команди или промени, които може да сме направили
-
Линаро
Имахме проблем с нашата DragonBoard, която продължаваше да се рестартира от време на време. Проблемът беше решен от екипа на Linaro, който пусна по -нова версия на операционната система. Написахме този урок с обновената версия
-
GPS на DragonBoard
DragonBoard 410c на Qualcomm няма вътрешна GPS антена, така че за да подобрим събирането на GPS сигнал, трябва да инсталираме конектор за външна антена. Този процес е по-добре обяснен на следната връзка:
Стъпка 12: Препратки
Буутлоудър
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Линаро
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Като инсталатор за 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 на Python
github.com/brendan-w/python-OBD
Conectando RaspberryPi като OBD Bluetooth
gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/
Препоръчано:
Тахометър/Манометър за сканиране с помощта на Arduino, OBD2 и CAN шина: 8 стъпки
Тахометър/Манометър за сканиране с помощта на Arduino, OBD2 и CAN Bus: Всеки собственик на Toyota Prius (или друго хибридно/специално превозно средство) ще знае, че на техните табла може да липсват няколко циферблата! Моят prius няма обороти на двигателя или манометър. Ако сте момче за представяне, може да искате да знаете неща като предварително определяне на времето и
Desenvolvendo Приложения за дистанционно управление за Dragonboard 410c Usando IDE Eclipse: 17 стъпки
Desenvolvendo Приложения за дистанционно управление за Dragonboard 410c Usando IDE Eclipse: O обективиране на документи é най -много като етапи, необходими за настройка на ambiente de desenvolvimento, de modo que o HostPC (Computador / Notebook), atrav é s do IDE Eclipse компилиране os c ó digos e експортиране за Alvo (Плъзнете
Как да свържете и управлявате лампа чрез модул ZigBee на Dragonboard: 5 стъпки
Как да свържете и контролирате лампа чрез ZigBee модул на Dragonboard: Тази инструкция учи потребителя как да се свърже и правилно да инсталира модула ZigBee на Dragonboard и да го взаимодейства с лампа, управлявана от ZigBee (OSRAM), създавайки ZigBee IOT мрежа. : Dragonboard 410c; CC2531 USB Dongle; T
Vision 4all - Система Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Приложение Android: 6 стъпки
Vision 4all - Система Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Приложение Android: DESCRI Ç Ã OO intuito do projeto é dar autonomia para defeentes visuais se locomoverem em ambientes indoor como casas ou shopping centres e aeroportos.A locomo ç ã o em ambientes j á mapeados pode ou n ã o s
OBD2 Bluetooth четец: 3 стъпки
OBD2 Bluetooth четец: Добре дошли, това е първият ми Instructable и се надявам, че е лесен за разбиране и можете да направите свой собствен. Ако имате въпроси, не се колебайте да се свържете с мен и може би мога да ви помогна. Ще се опитам да направя това изключително лесно за проследяване с това