Оглавление:
- Шаг 1. Выполнение начальной настройки DragonBoard 410c **
- Шаг 2: Определение местоположения DragonBoard 410c с помощью антенны GPS
- Шаг 3. Установка USB-ключа 3G / 4G
- Шаг 4. Преобразование DragonBoard 410c в точку доступа Wi-Fi / точку доступа
- Шаг 5. Доступ к DragonBoard 410c по беспроводной сети через SSH через точку доступа
- Шаг 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 11:51
Считывая данные, которые поступают из порта OBD2 в вашем автомобиле, можно получить из них потрясающую информацию. Используя DragonBoard 410c, мы работали над этим проектом и подробно описали его здесь, чтобы вы могли сделать это самостоятельно.
Этот проект стал возможен только благодаря партнерству с #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora, которое позволило нам получить доступ к лучшему оборудованию на рынке, а также связаться с лучшими профессионалами для поддержки разработки.
В состав команды вошли такие ребята:
- Марсель Огандо - Хакер - [email protected]
- Леандро Альверназ - Хакер - [email protected]
- Тьяго Паулино Родригес, маркетинг - [email protected]
Мы очень хотим помочь вам в достижении вашей цели и убедиться, что вы завершили свой проект, поэтому дайте нам знать, если вам потребуется дополнительная помощь, помимо приведенных ниже инструкций.
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 **
Используя 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
Начните с установки необходимых приложений, которые будут клиентами модуля 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
Есть несколько способов подключить 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 или точки доступа (теперь, когда вы настроили подключение к Интернету) - использовать графический интерфейс системы. Для этого выполните следующие действия:
- Щелкните правой кнопкой мыши значок сети в правом нижнем углу.
- Выберите «Изменить подключения, а затем« Добавить ».
- Выберите «WiFi»
- Нажмите "Создать"
Измените имя сети, которую вы хотите создать, в поле «SSID» и измените поле «Mode» на «Hotspot».
Чтобы убедиться, что это работает, проверьте следующее:
- Перейдите на вкладку «Настройки IPv4».
- Убедитесь, что «Метод»
Шаг 5. Доступ к 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
Интерфейс связи автомобиля осуществляется через порт 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
Основная цель этого шага - гарантировать, что связь между 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
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
Мы создадим файл с именем: 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/
Рекомендуемые:
Тахометр / сканер с использованием Arduino, OBD2 и шины CAN: 8 шагов
Тахометр / датчик сканирования с использованием Arduino, OBD2 и CAN-шины: любой владелец Toyota Prius (или другого гибридного / специального транспортного средства) будет знать, что на их приборных панелях может отсутствовать несколько циферблатов! У моего Prius нет ни оборотов двигателя, ни датчика температуры. Если вы любитель производительности, вам может быть интересно узнать о таких вещах, как опережение по времени и
Удаленное использование приложений для Dragonboard 410c Usando IDE Eclipse: 17 шагов
Удаленное использование приложений для Dragonboard 410c с использованием IDE Eclipse, используемого в IDE: цель и все документы; наиболее часто, поскольку этапы необходимы á rias для конфигурации или Ambiente de desenvolvimento, de modo que o HostPC (Computador / Notebook), как сделать, чтобы IDE Eclipse скомпилировал или c ó digos и экспортер для Alvo (перетащите
Как подключить лампу и управлять ею через модуль ZigBee на Dragonboard: 5 шагов
Как подключить и управлять лампой через модуль ZigBee на Dragonboard: это руководство учит пользователя, как подключить и правильно установить модуль ZigBee на Dragonboard и взаимодействовать с ним с лампой, управляемой ZigBee (OSRAM), создавая сеть ZigBee IOT. : Dragonboard 410c; CC2531 USB-ключ; Т
Vision 4all - Система Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 шагов
Vision 4all - Система Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: DESCRI Ç Ã OO intuito do projeto é Дар автономия для дефицита визуальных средств в помещении с локомотивом в помещениях с торговыми центрами и аэропортами. mapeados pode ou n ã o s
Считыватель OBD2 Bluetooth: 3 шага
OBD2 Bluetooth Reader: Добро пожаловать, это мое первое руководство, и, надеюсь, его легко понять, и вы можете сделать его самостоятельно. Если у вас есть какие-либо вопросы, свяжитесь со мной, и, возможно, я смогу вам помочь. Я постараюсь сделать это очень простым и понятным с помощью этого