Оглавление:

DragonBoard и OBD2: 12 шагов
DragonBoard и OBD2: 12 шагов

Видео: DragonBoard и OBD2: 12 шагов

Видео: DragonBoard и OBD2: 12 шагов
Видео: DIAGNOSTICO DE CONECTOR OBD2, no enciende el Scanner 2024, Ноябрь
Anonim
DragonBoard и OBD2
DragonBoard и OBD2

Считывая данные, которые поступают из порта OBD2 в вашем автомобиле, можно получить из них потрясающую информацию. Используя DragonBoard 410c, мы работали над этим проектом и подробно описали его здесь, чтобы вы могли сделать это самостоятельно.

Этот проект стал возможен только благодаря партнерству с #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora, которое позволило нам получить доступ к лучшему оборудованию на рынке, а также связаться с лучшими профессионалами для поддержки разработки.

В состав команды вошли такие ребята:

Мы очень хотим помочь вам в достижении вашей цели и убедиться, что вы завершили свой проект, поэтому дайте нам знать, если вам потребуется дополнительная помощь, помимо приведенных ниже инструкций.

Para seguir este projeto em Português, clique aqui:

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

Для этого проекта мы использовали следующие предметы:

  • Qualcomm DragonBoard 410c
  • ELM327 Bluetooth OBD2 интерфейс
  • Ключ USB 3G / 4G
  • Автомобильное зарядное устройство с инвертором напряжения (110 В)

Шаг 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). Итак, в основном вам нужно открыть Терминал на виртуальной машине Ubuntu и ввести:

sudo apt-get android-tools-fastboot

Чтобы установить Linaro, нам нужно выполнить 2 важных шага:

1) Установка ЗАГРУЗЧИКА

Имя файла: dragonboard410c_bootloader_emmc_linux-79.zip

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

Разархивируйте файлы и выберите папку:

cd / FolderName (путь к распакованной папке)

Введите следующий код:

устройства sudo fastboot

Ожидаемый результат:

(шестнадцатеричный) fastboot

Затем введите:

sudo./flashall

Ожидаемый результат:

законченный. общее время 1.000 с (без ошибок)

Установка ОПЕРАЦИОННОЙ СИСТЕМЫ

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

Загрузите эти 2 файла:

загрузка-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz

Это последняя доступная на сегодняшний день версия (17 июня), поэтому название может измениться в будущем. Шаблон, который вы будете искать, - это "boot-linaro-VersionName". Этот называется «Растяжка», а предыдущий - «Джесси».

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

Это последняя версия на сегодняшний день (17 июня), и название может измениться в будущем. Найдите шаблон "linaro-VersionName-alip".

Разархивируйте файлы из. GZ

Доступ к "корневой" папке, относящейся к разархивированным файлам.

пример: «/ Downloads» - место, где хранятся загруженные файлы.

Теперь начнем со следующих команд:

устройства sudo fastboot

sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img

Ожидаемая доходность (учитывая время может отличаться):

законченный. общее время: 100.00 с

Подключите мышь, клавиатуру и монитор / телевизор через порт HDMI.

Имейте это под рукой:

пользователь: linaro

пароль: linaro

Откройте приложение Lxterminal и продолжите загрузку списка доступных обновлений, касающихся установленных пакетов:

sudo apt-get update

Обязательно установите доступные пакеты из списка:

sudo apt-get upgrade

Подсказка: 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 start qdsp-start.service

sudo systemctl start gnss-gpsd.service sudo systemctl start qmi-gps-proxy.service

Теперь выведите DragonBoard 410c на широкую открытую площадку с хорошим обзором неба, что позволит ему принимать сигнал со спутников. Теперь введите в терминал:

gpsmon –n

Согласно нашим тестам, данные начинают появляться на экране в среднем через 10 минут. Это сильно меняется от места к месту, помимо положения DragonBoard на окне или в помещении, помимо многих других препятствий, которые могут мешать приему сигнала GPS.

Шаг 3. Установка 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-ключа 3G / 4G

Есть несколько способов подключить DragonBoard 410c к сети 3G / 4G / GSM:

  • Использование Shield / BreakoutBoard с GSM-модемом, у которого также есть слот для SimCard;
  • Используйте USB-ключ 3G / 4G.

Для этого проекта мы решили использовать USB-ключ Huawei E3272, потому что его было легко и быстро купить.

Для настройки модема вы можете использовать терминал (с помощью приложения WVDial), но самый простой способ сделать это - использовать графический интерфейс пользователя (GUI) Linaro. К нему в следующем:

  • Подключив USB-ключ к DragonBoard, щелкните правой кнопкой мыши значок «сети» в правом нижнем углу экрана;
  • «Редактировать подключения»> «Добавить»;
  • В раскрывающемся меню выберите «Мобильный широкополосный доступ»;
  • Щелкните «Создать».

Следуйте инструкциям мастера и убедитесь, что в меню выбран правильный оператор связи, что позволит устройству подключиться соответствующим образом.

Шаг 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 в качестве маршрутизатора Wi-Fi или точки доступа (теперь, когда вы настроили подключение к Интернету) - использовать графический интерфейс системы. Для этого выполните следующие действия:

  • Щелкните правой кнопкой мыши значок сети в правом нижнем углу.
  • Выберите «Изменить подключения, а затем« Добавить ».
  • Выберите «WiFi»
  • Нажмите "Создать"

Измените имя сети, которую вы хотите создать, в поле «SSID» и измените поле «Mode» на «Hotspot».

Чтобы убедиться, что это работает, проверьте следующее:

  • Перейдите на вкладку «Настройки IPv4».
  • Убедитесь, что «Метод»

Шаг 5. Доступ к DragonBoard 410c по беспроводной сети через SSH через точку доступа

Беспроводной доступ к DragonBoard 410c через SSH через точку доступа
Беспроводной доступ к DragonBoard 410c через SSH через точку доступа

Нам удалось создать способ удаленного доступа к DragonBoard, независимо от того, находитесь вы рядом с ним или нет. Обычно вам нужно подключиться к самой плате, используя Wi-Fi или Bluetooth. Другой способ - получить к нему доступ, подключившись к той же сети Wi-Fi (например, с маршрутизатора). Выполняя следующие шаги, мы создаем автономное устройство, которое генерирует свою собственную сеть и открывается в Интернет для доступа.

Вы можете начать с установки «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-модема. Основная цель этого шага. Следующий код скопирует этот ключ в репозиторий доверенных ключей Linux, чтобы обеспечить еще большую безопасность соединения.

ssh-keygen -t rsa

scp ~ /.ssh / id_rsa.pub user @ remote_server:.ssh / authorized_keys autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: локальный хост: 22 пользователя @ удаленный_сервер

Выполнив эти шаги, вы только что превратили Qualcomm DragonBoard 410c в облачный сервер! / o /

Шаг 6: Подключение DragonBoard 410c к OBD автомобиля с помощью Bluetooth - Часть 1/2

Подключение DragonBoard 410c к бортовой системе диагностики автомобиля с помощью Bluetooth - Часть 1/2
Подключение DragonBoard 410c к бортовой системе диагностики автомобиля с помощью Bluetooth - Часть 1/2
Подключение DragonBoard 410c к бортовой системе диагностики автомобиля с помощью Bluetooth - Часть 1/2
Подключение DragonBoard 410c к бортовой системе диагностики автомобиля с помощью Bluetooth - Часть 1/2

Интерфейс связи автомобиля осуществляется через порт OBD2. Информация, которой обмениваются в этом порте, должна быть переведена, и для этого нам нужно устройство интерпретатора. Есть две аппаратные альтернативы: ELM327 или STN1170.

Для этого проекта мы использовали Bluetooth-устройство с чипсетом на базе ELM327.

Важно отметить, что наличие ELM327 не означает, что это ОРИГИНАЛЬНАЯ ВЕРСИЯ ELM327. Большая часть доступных чипсетов основана на версии 1.5, когда информация о чипе была клонирована и просочилась на рынок. Оригинальный ELM327 теперь находится на версии 2.2. Развитие этого набора микросхем приносит больше данных о новых автомобилях. Это важно знать, потому что в зависимости от тестов вы можете или не сможете получить доступ к данным с более новых автомобилей.

С помощью адаптера OBD2 Bluetooth найдите порт OBD2 вашего автомобиля. Возможно, он находится где-то под рулевым колесом. Возможно, его будет проще найти с помощью этого инструмента:

Получите доступ к DragonBoard 410c, используя SSH, со своего ноутбука (помните, что теперь вы находитесь в машине и у вас нет телевизора / монитора для подключения платы). Как только устройство Bluetooth OBD2 вставлено в автомобильный порт, выполните следующие действия, чтобы получить доступ к подключению Bluetooth.

sudo bluetoothctl

pairable на агенте при сканировании агента по умолчанию наНа этом этапе важно скопировать MAC-адрес, потому что он понадобится вам для следующих шагов.

Введите эти команды:

доверять MACADDRESS

пара MACADDRESS

Вам будет предложено ввести ПИН-код для сопряжения Bluetooth OBD2 с платой.

Обычно PIN-код - 1234 или 0000 - в зависимости от вашего оборудования.

Теперь вы должны увидеть экран «соединение успешно». Чтобы выйти из приложения Bluetooth, используйте следующую команду:

покидать

Следующим шагом является привязка устройства к последовательному порту:

sudo rfcomm bind 0 MACADDRESS 1

Чтобы убедиться, что операция прошла успешно, введите:

ls / dev

В списке должен быть указан порт «Rfcomm0».

Шаг 7: Подключение DragonBoard 410c к OBD автомобиля с помощью Bluetooth - Часть 2/2

Подключение DragonBoard 410c к бортовой системе диагностики автомобиля с помощью Bluetooth - Часть 2/2
Подключение DragonBoard 410c к бортовой системе диагностики автомобиля с помощью Bluetooth - Часть 2/2
Подключение DragonBoard 410c к бортовой системе диагностики автомобиля с помощью Bluetooth - Часть 2/2
Подключение DragonBoard 410c к бортовой системе диагностики автомобиля с помощью 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 - это библиотека 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 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-адрес, используя строку запроса, позволяя отправить его на сервер с помощью метода POST.

На примере ниже нам удалось получить следующую информацию:

  • Об / мин
  • Скорость

Функции для сбора данных используют два параметра. Например, используя [1] [12], вы ищите [модуль] [PID]. Список функций можно найти по адресу:

Наконец, сгенерируйте URL-адрес со всей информацией, объединенной и добавленной в файл под названием «obd_data.dat».

Код для OBD.py ниже.

После подключения и сбора данных мы создадим файл с именем envia_OBD.py

Эта часть кода становится проще. Импортируйте библиотеки, связанные с данными запроса / отправки, используя RESTFUL.

Создайте WHILE для использования POST и отправьте URL-адрес первой строки файла, предварительно заполненной OBD.py. После этого, чтобы избежать повторной отправки данных, он стирает эту строку из файла.

Код для файла OBD.py приведен ниже.

Шаг 10: Повторяющиеся сценарии и процедура хранения данных для собранных данных

Повторяющиеся сценарии и процедура хранения собранных данных
Повторяющиеся сценарии и процедура хранения собранных данных

Все, что мы сделали до сих пор, было ориентировано на то, чтобы DragonBoard правильно взаимодействовал с такими компонентами, как 3G, Wi-Fi, Bluetooth, данные GPS и т. Д.

Используйте приведенный ниже код для редактирования файла «rc.local», в котором уже есть некоторые функции и предопределенные команды. Он находится в '/ etc'. Для редактирования используйте команду:

sudo nano /etc/rc.local

Теперь нам нужно настроить все службы и функции, создав процедуры, которые автоматически инициализируются при запуске DragonBoard. Для этого воспользуемся BASH. BASH (Bourne-Again-SHell) - это приложение-интерпретатор команд Linux.

В следующем коде есть команды BASH, и вам нужно будет вставить MAC-адрес Bluetooth / OBD. Будьте особенно осторожны и убедитесь, что в конце кода указано «exit 0», то есть ответ системы о том, что действие было успешным.

если [! -f / и т.д. / 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 и выход 0

С этого момента каждый раз, когда вы включаете DragonBoard, он будет подключаться к 3G и отправлять данные GPS и OBD на выбранный сервер.

Шаг 11: Проблемы на пути

Проблемы в пути
Проблемы в пути

Мы перечислили ниже некоторые проблемы, которые мы обнаружили в процессе написания этого руководства, но мы думали, что это может помочь вам, если это произойдет с вами.

  • PyOBD

    Вы должны быть очень осторожны, чтобы отправлять данные при общении с автомобилем. В одной из наших первых попыток, когда связь была нестабильной, мы отправили неправильную команду, в результате чего произошел сбой ЭБУ. Переключатель передач застрял на парковке, и некоторые индикаторы на приборной панели продолжали беспорядочно мигать. Было найдено решение: отсоединить один из кабелей аккумуляторной батареи примерно на 15 минут. Это сбрасывает ЭБУ до заводского состояния по умолчанию, таким образом отменяя любые команды или изменения, которые мы могли сделать

  • Линаро

    У нас возникла проблема с нашей DragonBoard, которая периодически перезагружалась. Проблема была решена командой Линаро, которая выпустила новую версию ОС. Мы написали этот учебник в обновленной версии

  • 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 na 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

Подключение RaspberryPi к OBD Bluetooth

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

Рекомендуемые: