Conector de diagnóstico OBD-II como interface para IoT

Era uma vez, em meados dos anos 90, durante o advento do processador Pentium Pro, um dos fundadores da Intel Gordon Moore observou que: “Se a indústria automotiva se desenvolvesse no ritmo da evolução da indústria de semicondutores, hoje a Rolls-Royce poderia movimentar meio milhão milhas por galão de gasolina, e seria mais barato jogá-lo fora do que pagar pelo estacionamento. ” Mas, talvez, já hoje a indústria automotiva esteja dando um passo gigantesco no desenvolvimento, na direção de uma mudança fundamental no tipo de combustível e na tecnologia para dirigir um carro. Quase recentemente, carros elétricos comerciais e carros movidos a hidrogênio são apresentados, e o piloto automático está se tornando o componente desejado do "enchimento" eletrônico do veículo. Na maioria das vezes, apenas um avanço rápido na indústria automotiva se deve ao surgimento de soluções confiáveis ​​e seguras baseadas em eletrônicos inteligentes para sistemas de controle a bordo automotivos. Mas onde está a Internet no carro na vida cotidiana, onde está a tecnologia da Internet das Coisas (IoT), bem como o conceito bem conhecido de um carro conectado à rede (Carro Conectado)?


O Rolls-Royce 103EX. Rolls-Royce lança carro-conceito elétrico sem motorista, completo com assento de seda - The Telegraph .

De fato, todas as tecnologias acima já existem e são usadas, no entanto, apenas em soluções suficientemente separadas. A razão para isso são os rigorosos requisitos de segurança que certamente devem ser implementados no lançamento de qualquer nova tecnologia ou solução em transporte. Portanto, não se pode dizer que, quando você entra em um carro com um smartphone, pode obter automaticamente uma solução IoT ou Connected Car. Na maioria dos países, e isso é muito lógico, há uma proibição do uso de um smartphone ou outros aparelhos durante a condução e, se falamos de assistentes de voz, na maioria dos casos, eles agora são irritantes e perturbadores, tanto para o motorista quanto para os passageiros. Por sua vez, o centro de mídia, telas adicionais de vídeo e excelente acústica, é claro, são componentes muito atraentes de um carro moderno. Mas eu quero entender a palavra e notar que é bom abafar a música e apenas olhar pela janela as ruas ou a natureza passando. Obviamente, existem engarrafamentos, mas nesta publicação o objetivo é observar não alguns componentes éticos ou considerar os problemas de excesso de informações dos usuários da estrada, mas considerar os componentes "invisíveis" das tecnologias IoT que já são usadas em veículos e estão disponíveis para uso generalizado.



Hoje, uma solução interessante e muito promissora para a Internet das coisas automotiva é a plataforma Open Connected Car da Mojio. Essa plataforma com uma interface aberta (API) fornece um serviço em nuvem para carros "conectados" e ofertas comerciais já estão disponíveis. Por exemplo, a gigante de telecomunicações T-Mobile, com base nesta plataforma, fornece o serviço SyncUP DRIVE. Esta é uma solução de software de hardware baseada em um dispositivo portátil conectado ao carro através do conector de diagnóstico OBD-II e do aplicativo móvel correspondente. Graças a essa abordagem, é possível realizar efetivamente o monitoramento contínuo dos parâmetros de operação do seu carro e a qualquer momento para obter sua localização atual. O aplicativo pode falar sobre estilos de direção, alertar sobre manutenção preventiva e também notificar o proprietário sobre problemas com o veículo. Além disso, o SyncUP DRIVE implementa um ponto de acesso Wi-Fi no carro usando o acesso através do protocolo de alta velocidade do padrão LTE móvel.


A plataforma aberta para carros conectados - Mojio

Um conector de diagnóstico OBD-II padrão é usado para conectar ao veículo. A maioria dos carros de produção produzidos após 1996 já possui esse conector. Embora esse conector de diagnóstico seja padronizado, ele suporta vários protocolos de vários sistemas de controle do motor (diferentes contatos no conector são usados ​​fisicamente) que o módulo de comunicação da IoT deve conhecer. Consequentemente, em diferentes marcas de automóveis, pode haver diferentes barramentos internos para obter dados de diagnóstico da unidade de controle do motor (ECU - Electronic control unit). Para trabalhar com o serviço SyncUP DRIVE, é oferecida uma solução baseada no módulo ZTEWelink VM6200S.

O módulo VM6200S suporta conexão via protocolo móvel LTE, contém um sensor de aceleração de 3 eixos integrado e giroscópio de 3 eixos, receptor de sinal GPS, chip OBD-II, com suporte para protocolos ISO 15765-4 (CAN), ISO 14230-4 KWP (Protocolo de palavras-chave 2000), ISO 9141-2 (automóveis Chrysler, Euro e asiáticos), SAE J1850 PWM (veículos Ford), SAE J1850 VPW (veículos GM). Assim, o módulo permite implantar um ponto de acesso Wi-Fi 802.11 b / g / n /, registrar eventos durante a condução, realizar diagnósticos do motor, avaliar a economia de combustível, etc. E como os parceiros da Mojio são projetos Amazon Alexa, serviço IFTTT e outros, todas as perspectivas se abrem para desenvolvedores e integradores de soluções, até a criação de uma IoT social baseada em um carro "conectado", como parte dessa infraestrutura.


Dispositivo OBD VM6200S4G - ZTEWelink Corporation

Mas agora não só o SyncUP DRIVE está no mercado, por exemplo, muitas empresas fornecem algo semelhante. Obviamente, o recém-lançado dispositivo automático Samsung Connect é uma dessas propostas interessantes que transformam o carro em um dispositivo conectado. A solução da Samsung usa a rede móvel da geração 4G LTE da mesma maneira e implementa um ponto de acesso Wi-Fi dentro do carro: 802.11 a / b / g / n. O dispositivo Connect Auto suporta Bluetooth v4.1, contém um receptor GPS, sensor de aceleração, giroscópio e é baseado em um processador de 4 núcleos com uma frequência de 1,2 GHz e no sistema operacional Tizen. Deve-se notar que a gigante eletrônica coreana Samsung fala sobre a segurança do sistema através do uso do Samsung Knox - uma solução móvel com proteção em nível empresarial. De fato, o Samsung Knox é uma solução de software e hardware para aprimorar a proteção do sistema operacional Android.


Samsung Connect auto

Assim, as informações obtidas por meio da leitura dos dados do OBD-II , as coordenadas atuais da localização do receptor GPS e os parâmetros da dinâmica do veículo, obtidos dos sensores giroscópicos, na atualidade e de fato, tornaram-se a base para transformar qualquer veículo em Dispositivo IoT. Além disso, você pode considerar cenários para o uso de informações agregadas recebidas de carros, aplicar várias técnicas de processamento de Big Data e não esquecer as perspectivas de combinar esses dados com informações da infraestrutura de estradas inteligentes. Porém, antes de começar a processar os dados, primeiro é necessário obtê-los; portanto, nesta publicação, focaremos no componente de hardware da implementação de cenários de trabalho no nível do conector de diagnóstico OBD-II.

De uma maneira ou de outra, mas todas as soluções discutidas anteriormente são produtos industriais mais avançados, em comparação com um leitor de código de diagnóstico convencional baseado no chip ELM327 da empresa canadense Elm Electronics. O ELM327 é um conversor universal de protocolos usado em barramentos de diagnóstico de automóveis em um protocolo serial como o RS-232.


Diagrama de blocos de um chip ELM327 v2.2 - Elm Electronics

A interação com o ELM327 é realizada por comandos AT padrão suportados pelo chip. Você só precisa organizar a troca de mensagens de texto usando o protocolo RS-232 , que já se tornou um clássico (ou melhor, UART , porque estamos falando apenas sobre fluxo de dados, não níveis de sinal). E a própria conexão física de baixo nível via USB, Bluetooth ou Wi-Fi é simplesmente implementada usando os chips UART do protocolo de conversão serial. Acontece que, para transformar o carro em um dispositivo IoT, basta esquecer de coordenar os níveis de tensão, conectar o chip ELM327 ao conector de diagnóstico OBD-II e, por exemplo, colocar o conversor de interface serial em Bluetooth ou Wi-Fi na saída desse chip. Em seguida, você pode "ler" o diagnóstico do veículo no seu smartphone. No entanto, existem muitos desses módulos ou blocos prontos no mercado. E o preço no AliExpress varia de US $ 2,50 a US $ 10. Embora o módulo não deva consumir muita energia, será muito conveniente se o botão desligar já estiver presente. A propósito, do ponto de vista da segurança - isso também não é ruim.


Mini-ELM327 Bluetooth OBD-II adaptador de diagnóstico de carro v1.5

Agora você pode conectar o módulo Mini ELM327 Bluetooth OBD-II V1.5 padrão (é interessante que em muitas fontes é recomendável usar módulos com a versão antiga do firmware 1.5, e não novos com a versão 2.2, ou seja, como um argumento de operação mais estável do módulo na versão antiga. firmware e suporte para mais carros, mas isso é muito subjetivo) e experimente conectar o smartphone ao módulo selecionado, por exemplo, para a plataforma Android, você pode usar um dos programas de diagnóstico mais populares Torque Lite (OBD2 e Carro) ou Torque Pro (OBD 2 e Carro) bem como qualquer coisa n mais fácil de usar, ou suas realizações.


O aplicativo Torque Pro é executado no Android.

A propósito, quero observar um serviço MockUPhone muito conveniente, com mock-up gratuito de aparelhos modernos, que foi muito útil para preparar uma captura de tela do programa Torque. Mas esta é uma pequena partida do tópico da publicação. Deve-se notar que, na maioria dos casos, o conector OBD-II, ao qual o módulo de diagnóstico está conectado, está localizado sob a coluna de direção do carro.


Introdução ao OBD-II - SparkFun Electronics

É claro que existem muitas soluções prontas. Mas se estivermos falando sobre o desenvolvimento de um serviço baseado na IoT ou mais especificamente - o conceito de carro conectado está sendo implementado, é bastante conveniente usar o emulador de rede de informações a bordo do carro para não correr sempre para o carro. Por exemplo, a Mojio oferece um simulador de carro on-line para trabalhar com sua API e usando o serviço de nuvem IBM Watson IoT Platform como exemplo, no artigo: “ Enviando dados de veículo para a plataforma IBM Watson IoT - IBM developerWorks Recipes ” é proposto para enviar para a nuvem de dados de um transporte significa usar um aplicativo móvel, por exemplo, “ IBM IoT for Automotive - Aplicativo de gerenciamento de frota OBDII para Android ”, que interage com o serviço de nuvem implementado “ IBM IoT for Automotive (Bluemix) - Fleet Management Starter Application ”, mas se você não se distrair com esses projetos, pode use apenas um emulador de dados: " Car Simulator ". É verdade que todas essas soluções basicamente imitam os dados já recebidos e estamos interessados ​​no emulador da rede de informações a bordo. A solução mais famosa é o ECUsim 2000, cujo custo começa em US $ 200 e depende do número de protocolos emulados suportados.


Simulador ECUsim 2000 OBD - ScanTool

Obviamente, um emulador profissional não pode ser substituído, mas entusiastas e nerds podem muito bem estar interessados ​​na implementação independente de um projeto menos complexo em um Arduino ou Raspberry Pi. Por exemplo, você pode restringir-se à interface CAN (Controller Area Network) mais comum. Ao mesmo tempo, o padrão CAN proposto pela Bosch fez um progresso significativo no desenvolvimento de sistemas para eletrônicos automotivos. Se um carro na Internet apareceu apenas recentemente, o conceito de rede dentro de um carro existe desde meados dos anos 80. A idéia é muito simples e, como a Ethernet fez um avanço nas redes de computadores, a CAN se tornou a base para comunicações confiáveis ​​dentro do carro.


Uma rede de barramento CAN baseada em Arduino - Henry's Bench

Anteriormente, em um carro, via de regra, barramentos e fios de vários módulos e dispositivos conectados "fluíam" para a unidade central de controle do motor. O barramento CAN serial de dois fios tornou possível a implementação de módulos inteligentes já independentes, por exemplo, a unidade de controle central tornou-se apenas um daqueles módulos que “se comunicam” de fato através do protocolo de rede. Isso reduz significativamente a quantidade de fiação dentro do carro.

Ao contrário da Ethernet, a rede CAN é muito mais confiável, o que levou ao seu uso não apenas na indústria automotiva, mas também em sistemas de automação industrial, soluções domésticas inteligentes, etc. No nível físico, o CAN usa uma linha de dois fios, CAN Lo e CAN Hi, que transmitem bit a bit os dados compactados em um pacote. Nas extremidades do barramento, existem resistências correspondentes de 120 ohms, e também o chicote de fios deve ser usado para suprimir a interferência. A taxa de transferência de dados pode atingir 1 Mbps.


Uma rede de área do controlador (barramento CAN)

A transferência de dados para o barramento CAN lembra um pouco o modelo do publicador-assinante, onde cada dispositivo no barramento tem um identificador exclusivo e, quando um dispositivo transmite dados, todos os outros ouvem e tomam uma decisão com base nesse identificador - eles precisam especificamente deles? dados para receber e processar ou não. Em geral, o protocolo é bastante complicado, mas para um microcontrolador ou microprocessador é improvável que seja necessário escrever uma implementação CAN, bem como pensar nos recursos do meio físico de transferência de dados. Para resolver esses problemas, já existem controladores de barramento de hardware prontos e, para correspondência de nível, são frequentemente usados ​​conversores integrados. Por exemplo, o controlador MCP2515 com SPI e o transceptor (chip de nível correspondente) MCP2551. É com base nesses microcircuitos que o projeto Arduino OBD2 Simulator, publicado na plataforma Instructable , foi proposto. Para implementá-lo, você só precisa da placa Arduino UNO e do CAN-BUS Shield, por exemplo, Seeed Technology.


Experimentos usando o Arduino OBD2 Simulator

Em princípio, para o desenvolvimento de um emulador de dados OBD-II, uma fonte de alimentação de 12V DC para o módulo ELM327, bem como um conector OBD-II, não prejudicam. No entanto, o conversor sem nome DC-DC-USB-TO-12V pode muito bem resolver o problema, porque talvez várias fontes de alimentação para 5V estejam à disposição de qualquer desenvolvedor para a Internet das coisas e não apenas. Para conectar-se ao OBD-II, serão necessários dois fios de informação CAN_H e CAN_L, além da presença de energia de 12 V, mas como observado anteriormente, 12 V são necessários apenas para garantir a operacionalidade do módulo ELM327.


CAN-BUS Shield V1.2 - Wiki de Desenvolvimento Apropriado Limitado

Na placa de expansão do CAN-BUS Shield, é muito conveniente usar não o conector D-SUB, mas simplesmente um bloco de terminais para dois contatos (CAN_H, CAN_L). Do ponto de vista do desenvolvimento de código de software, deve-se notar que os entusiastas do protótipo postaram no GitHub . Agora, as placas Seeed foram alteradas e, em qualquer caso, para o controlador MCP2515, é melhor usar novos drivers do mesmo Seeed-Studio . Obviamente, o programa original precisará ser ligeiramente modificado para os novos drivers, mas isso leva alguns minutos.


Trabalhando com CAN-BUS em um Arduino IDE baseado no simulador de ECU OBD2 de baixo custo

No entanto, o exemplo considerado é muito primitivo, já que todos os parâmetros enviados pelo protocolo OBD-II são simplesmente gerados aleatoriamente, não há conexão entre os parâmetros de operação do motor, etc. Como continuação do projeto, é óbvio o desenvolvimento de um aplicativo semelhante à GUI do Freematics OBD-II Emulator. Este é um shell gráfico de código aberto usado na solução de hardware do Freematics OBD-II Emulator .


Freematics OBD-II Emulator GUI - Freematics

Assim, tendo montado um módulo baseado no Arduino que permite trabalhar com o CAN, é bem possível criar um emulador OBD-II, pois o protocolo de diagnóstico é bem descrito e não é difícil implementá-lo. Deve-se observar que a interação entre o microcontrolador e o barramento CAN interno é uma tarefa completamente diferente e você precisa entender que os protocolos internos de alto nível desse barramento não são documentados pelos fabricantes de automóveis e, por outro lado, não devem ser incorporados ao dispositivo interno da eletrônica automotiva, de modo que de maneira alguma reduzir a segurança dos veículos. Se falamos sobre o CAN em geral, é bem possível usar o protocolo CANopen aberto de alto nível para desenvolver seus dispositivos com base nesse barramento.

Continua sendo o caso dos pequenos - um pouco de tempo livre e prazer para realizar o desenvolvimento do seu código. É verdade, onde é esse momento para encontrar no final do ano? Mas seremos otimistas. Mas, falando sobre o uso de um emulador OBD-II, a direção mais direta é o desenvolvimento de seu próprio módulo para o conector de diagnóstico. Por exemplo, você pode tomar o projeto aberto Carloop como ponto de partida, que visa criar um módulo para conectar o carro à nuvem usando as tecnologias 3G, Wi-Fi ou Bluetooth.


Carloop bluetooth

O projeto Carloop se baseia no uso de placas: Particle Photon (baseado no módulo Wi-Fi Cypress BCM43362 que suporta 802.11b / g / n; a família de controladores ARM Cortex M3 - STM32F205 a uma frequência de 120Mhz; 1MB de memória flash; 128KB de RAM) e Electron (placas com suporte para conexão a uma rede móvel 3G / 2G). A plataforma Particle em si é muito interessante porque é baseada no serviço de conexão de dispositivo IoT baseado em nuvem, um IDE baseado em nuvem para desenvolvimento, por exemplo, baseado em placas Photon, que usam uma linguagem semelhante ao C / C ++ para Arduino. De fato, Particle é um tópico separado para publicação, e o projeto Carloop definitivamente merece atenção especial dos entusiastas do carro, como um dispositivo IoT conectado.

Ao conectar o carro aos serviços de Internet e IoT, você pode implementar muitos cenários que, sem dúvida, contribuem para a facilidade de uso dos veículos, aumentam o conforto e, simplesmente, uma solução eficaz para os problemas cotidianos, é claro, incluindo a solução de transporte. Por exemplo, os dados sobre o estilo de direção, a confiabilidade dos componentes do motor e do veículo já podem ser levados em consideração pelas companhias de seguros. A localização atual do carro será relevante para serviços de táxi e aluguel de carros. IoT, , , - .



, – OBD-II, , . . , Connected Car, « » , , , IoT . .

:


Car Hacking: ? –
- 25 ! – Computerworld
T‑Mobile SyncUP DRIVE – T-MOBILE
ZTE Mojio – ZTE Corporation
Samsung Knox – SAMSUNG
CAN – «»
— – IBM developerWorks
Vehicle telematics analytics using Watson IoT Platform Cloud Analytics – IBM developerWorks Recipes
CAN CANopen –
CANopen –
Arduino – Geektimes
Wiring the MCP2515 Controller Area Network CAN BUS Diagnostics – 14CORE
Arduino OBD2 ELM327 I2C-LCD HC05 Bluetooth – Instructables
Android OBDII –

Source: https://habr.com/ru/post/pt408941/


All Articles