Érase una vez, a mediados de los 90, durante el advenimiento del procesador Pentium Pro, uno de los fundadores de Intel Gordon Moore señaló que: “Si la industria automotriz se desarrollara al ritmo de la evolución de la industria de semiconductores, hoy Rolls-Royce podría conducir medio millón millas por galón de gasolina, y sería más barato tirarlo que pagar el estacionamiento ". Pero, tal vez, ya hoy la industria automotriz está dando un paso de desarrollo gigante en la dirección de un cambio fundamental en el tipo de combustible y la tecnología para conducir un automóvil. Casi recientemente, se presentan automóviles eléctricos comerciales y automóviles impulsados por hidrógeno, y el piloto automático se está convirtiendo en el componente deseado del "llenado" electrónico del vehículo. En su mayor parte, solo un avance rápido en la industria automotriz se debe al surgimiento de soluciones confiables y seguras basadas en electrónica inteligente para sistemas de control a bordo de automóviles. Pero, ¿dónde está Internet en el automóvil en la vida cotidiana, dónde está la tecnología de Internet de las cosas (IoT), así como el conocido concepto de un automóvil conectado a la red (Connected Car)?
El Rolls-Royce 103EX. Rolls-Royce presenta un auto conceptual eléctrico sin conductor, completo con un sillón de seda - The Telegraph .De hecho, todas las tecnologías anteriores ya existen y se utilizan, sin embargo, solo en soluciones suficientemente separadas. La razón de esto son los estrictos requisitos de seguridad que ciertamente deben implementarse al lanzar cualquier nueva tecnología o solución en el transporte. Por lo tanto, no se puede decir que cuando se sube a un automóvil con un teléfono inteligente, puede obtener automáticamente una solución IoT o Connected Car. En la mayoría de los países, y esto es muy lógico, existe una prohibición del uso de un teléfono inteligente u otros dispositivos mientras se conduce, y si hablamos de asistentes de voz, en la mayoría de los casos ahora son molestos y distraen, tanto al conductor como a los pasajeros. A su vez, el centro de medios, pantallas de video adicionales y excelente acústica, por supuesto, son componentes muy atractivos de un automóvil moderno. Pero quiero ponerme al día con la palabra, y notar que es bueno amortiguar la música y solo mirar por la ventana las calles o la naturaleza que pasa. Por supuesto, hay atascos de tráfico, pero en esta publicación el objetivo es tener en cuenta no solo algunos componentes éticos o considerar los problemas de exceso de información de los usuarios de la carretera, sino considerar los componentes "invisibles" de las tecnologías de IoT que ya se utilizan en vehículos y están disponibles para un uso generalizado.
Hoy, una solución interesante y muy prometedora para IoT automotriz es la plataforma Open Connected Car de Mojio. Esta plataforma con una interfaz abierta (API) proporciona un servicio en la nube para automóviles "conectados" y las ofertas comerciales ya están disponibles. Por ejemplo, el gigante de telecomunicaciones T-Mobile, basado en esta plataforma, ofrece el servicio SyncUP DRIVE. Esta es una solución de hardware y software basada en un dispositivo portátil conectado al automóvil a través del conector de diagnóstico
OBD-II y la aplicación móvil correspondiente. Gracias a este enfoque, es posible realizar de manera efectiva un monitoreo continuo de los parámetros de operación de su automóvil y en cualquier momento obtener su ubicación actual. La aplicación puede hablar sobre estilos de conducción, advertir sobre el mantenimiento preventivo y también notificar al propietario sobre problemas con el vehículo. Además, SyncUP DRIVE implementa un punto de acceso Wi-Fi en el automóvil utilizando el acceso a través del protocolo de alta velocidad del estándar LTE móvil.
La plataforma abierta de automóviles conectados - MojioSe utiliza un conector de diagnóstico OBD-II estándar para conectarse al vehículo. La mayoría de los automóviles de producción producidos después de 1996 ya tienen este conector. Aunque dicho conector de diagnóstico está estandarizado, admite varios protocolos de varios sistemas de control del motor (se utilizan físicamente diferentes contactos en el conector) que el módulo de comunicación IoT debe conocer. En consecuencia, en diferentes marcas de automóviles puede haber diferentes buses internos para obtener datos de diagnóstico de la unidad de control del motor (ECU - Unidad de control electrónico). Para trabajar con el servicio SyncUP DRIVE, se ofrece una solución basada en el módulo ZTEWelink VM6200S.
El módulo VM6200S admite la conexión a través del protocolo móvil LTE, contiene un sensor de aceleración integrado de 3 ejes y un giroscopio de 3 ejes, receptor de señal GPS, chip OBD-II, con soporte para los protocolos ISO 15765-4 (CAN), ISO 14230-4 KWP (Keyword Protocol 2000), ISO 9141-2 (automóviles Chrysler, Euro y Asia), SAE J1850 PWM (vehículos Ford), SAE J1850 VPW (vehículos GM). Por lo tanto, el módulo le permite implementar un punto de acceso Wi-Fi 802.11 b / g / n /, registrar eventos mientras conduce, realizar diagnósticos del motor, evaluar el ahorro de combustible, etc. Y dado que los socios de Mojio son proyectos de Amazon Alexa, el servicio IFTTT y otros, todas las perspectivas se abren para los desarrolladores e integradores de soluciones hasta crear una IoT social basada en un automóvil "conectado", como parte de dicha infraestructura.
Dispositivo OBD VM6200S4G - ZTEWelink CorporationPero no solo SyncUP DRIVE está ahora en el mercado, por ejemplo, muchas compañías ofrecen algo similar. Por supuesto, el dispositivo automático Samsung Connect presentado recientemente es una de esas propuestas interesantes que convierten el automóvil en un dispositivo conectado. La solución de Samsung utiliza la red móvil de generación 4G LTE de la misma manera e implementa un punto de acceso Wi-Fi dentro del automóvil: 802.11 a / b / g / n. El dispositivo automático Connect es compatible con Bluetooth v4.1, contiene un receptor GPS, sensor de aceleración, giroscopio y se basa en un procesador de 4 núcleos con una frecuencia de 1.2GHz y el sistema operativo Tizen. Cabe señalar que el gigante electrónico coreano Samsung habla sobre la seguridad del sistema a través del uso de Samsung Knox, una solución móvil con protección de nivel empresarial. De hecho, Samsung Knox es una solución de software y hardware para mejorar la protección del sistema operativo Android.
Samsung Connect autoPor lo tanto, la información obtenida mediante la lectura de datos del
OBD-II , las coordenadas actuales de la ubicación del receptor GPS y los parámetros de la dinámica del vehículo, obtenidos de los sensores giroscópicos, en el momento actual y de hecho, se convirtieron en la base para convertir cualquier vehículo en Dispositivo IoT. Además, puede considerar escenarios para utilizar la información agregada recibida de los automóviles, aplicar diversas técnicas de procesamiento de Big Data y no debe olvidarse de las posibilidades de combinar dichos datos con la información de la infraestructura de las carreteras inteligentes. Pero antes de comenzar a procesar los datos, primero debe obtenerlos, por lo que en esta publicación nos centraremos en el componente de hardware de la implementación de escenarios de trabajo a nivel del conector de diagnóstico OBD-II.
De una forma u otra, pero todas las soluciones discutidas anteriormente son productos industriales más avanzados, en comparación con un lector de códigos de diagnóstico convencional basado en el chip
ELM327 de la compañía canadiense Elm Electronics.
ELM327 es un convertidor universal de protocolos utilizado en autobuses de diagnóstico de automóviles en un protocolo en serie como RS-232.
Diagrama de bloques de un chip ELM327 v2.2 - Elm ElectronicsLa interacción con ELM327 se lleva a cabo mediante comandos AT estándar admitidos por el chip. Solo necesita organizar el intercambio de mensajes de texto utilizando el protocolo
RS-232 , que ya se ha convertido en un clásico (o más bien
UART , porque estamos hablando solo del flujo de datos, no de los niveles de señal). Y la conexión física de bajo nivel en sí a través de USB, Bluetooth o Wi-Fi simplemente se implementa utilizando el protocolo de conversión en serie de chips UART. Resulta que para convertir el automóvil en un dispositivo IoT, es suficiente, sin olvidar coordinar los niveles de voltaje, conectar el chip ELM327 al conector de diagnóstico OBD-II y, por ejemplo, poner el convertidor de interfaz serial en Bluetooth o Wi-Fi en la salida de este chip. Luego, puede "leer" los diagnósticos del vehículo desde su teléfono inteligente. Sin embargo, hay muchos módulos o bloques listos para usar en el mercado. Y su precio en AliExpress oscila entre US $ 2.50 y US $ 10. Aunque el módulo no debe consumir mucha energía, será muy conveniente si el botón de apagado ya está presente. Por cierto, desde el punto de vista de la seguridad, esto tampoco es malo.
Adaptador de diagnóstico de coche Mini ELM327 Bluetooth OBD-II V1.5Ahora puede conectar el módulo estándar Mini ELM327 Bluetooth OBD-II V1.5 (es interesante que en muchas fuentes se recomienda usar módulos con la versión anterior del firmware 1.5, y no nuevos con la versión 2.2, es decir, como un argumento de operación más estable del módulo en el antiguo firmware y soporte para más autos, pero esto es muy subjetivo) y experimente conectando el teléfono inteligente al módulo seleccionado, por ejemplo, para la plataforma Android, puede usar uno de los programas de diagnóstico más populares Torque Lite (OBD2 y Car) o Torque Pro (OBD 2 y Car) así como cualquier cosa n más fácil de usar, o sus logros.
La aplicación Torque Pro se ejecuta en Android.Por cierto, quiero señalar un servicio
MockUPhone muy conveniente con una maqueta gratuita de dispositivos modernos, que fue muy útil para preparar una captura de pantalla del programa Torque. Pero esta es una ligera desviación del tema de la publicación. Cabe señalar que, en la mayoría de los casos, el conector OBD-II, al que está conectado el módulo de diagnóstico, se encuentra debajo de la columna de dirección del automóvil.
Comenzando con OBD-II - SparkFun ElectronicsEstá claro que hay muchas soluciones preparadas. Pero si estamos hablando de desarrollar un servicio basado en IoT o más específicamente: se está implementando el concepto Connected Car, entonces es bastante conveniente usar el emulador de red de información a bordo del auto para no correr siempre hacia el auto. Por ejemplo, Mojio ofrece un simulador de automóviles en línea para trabajar con su API, y utilizando el servicio en la nube IBM Watson IoT Platform como ejemplo, en el artículo: "
Envío de datos del vehículo a la plataforma IBM Watson IoT - IBM developerWorks Recipes " se propone para enviar a la nube de datos desde un transporte significa utilizar una aplicación móvil, por ejemplo, "
IBM IoT for Automotive - OBDII Fleet Management App para Android ", que interactúa con el servicio en la nube desplegado "
IBM IoT for Automotive (Bluemix) - Fleet Management Starter Application ", pero si no se distrae con estos proyectos, puede use solo un emulador de datos: "
Car Simulator ". Es cierto que todas estas soluciones, básicamente, emulan los datos ya recibidos, y estamos interesados en el emulador de la red de información a bordo. La solución más famosa es ECUsim 2000, cuyo costo comienza en US $ 200 y depende de la cantidad de protocolos emulados compatibles.
Simulador OBD ECUsim 2000 - ScanToolPor supuesto, un emulador profesional no puede ser reemplazado, pero los entusiastas y geeks pueden estar interesados en la implementación independiente de un proyecto menos complejo en un Arduino o Raspberry Pi. Por ejemplo, puede restringirse a la interfaz CAN (Controller Area Network) más común. En un momento, el estándar
CAN propuesto por Bosch hizo un progreso significativo en el desarrollo de sistemas para electrónica automotriz. Si un automóvil en Internet apareció recientemente, entonces el concepto de una red dentro de un automóvil ha existido desde mediados de los años 80. La idea es muy simple, y como Ethernet hizo un gran avance en las redes de computadoras, CAN se convirtió en la base para comunicaciones confiables dentro del automóvil.
Una red de autobuses CAN basada en Arduino - Henry's BenchAnteriormente, en un automóvil, por regla general, los autobuses y cables de varios módulos y dispositivos conectados "fluían" a la unidad central de control del motor. El bus CAN de dos hilos en serie permitió implementar módulos inteligentes ya independientes, por ejemplo, la unidad de control central se convirtió en uno de esos módulos que "se comunican" entre sí a través del protocolo de red. Esto reduce significativamente la cantidad de cableado dentro del automóvil.
A diferencia de Ethernet, la red CAN es mucho más confiable, lo que llevó a su uso no solo en la industria automotriz, sino también en sistemas de automatización industrial, soluciones para el hogar inteligente, etc. En el nivel físico, CAN utiliza una línea de dos hilos, CAN Lo y CAN Hi, que transmiten los datos empaquetados en un paquete. En los extremos del bus hay resistencias coincidentes de 120 ohmios, y también se debe usar un mazo de cables para suprimir la interferencia. La velocidad de transferencia de datos puede alcanzar 1 Mbps.
Una red de área del controlador (bus CAN)La transferencia de datos al bus CAN recuerda un poco al modelo de editor-suscriptor, donde cada dispositivo en el bus tiene un identificador único y cuando un dispositivo transmite datos, todos los demás escuchan y toman una decisión basada en este identificador: ¿los necesitan específicamente? datos a recibir y procesar o no. En general, el protocolo es bastante complicado, pero para un microcontrolador o microprocesador es poco probable que tenga que escribir una implementación CAN, así como pensar en las características del medio físico de transferencia de datos. Para resolver estos problemas, ya hay controladores de bus de hardware ya preparados, y para la coincidencia de nivel, a menudo se utilizan convertidores integrados. Por ejemplo, el controlador MCP2515 con SPI y el transceptor (chip de nivel correspondiente) MCP2551. Es sobre la base de estos microcircuitos que se propuso el proyecto Arduino OBD2 Simulator, publicado en la plataforma
Instructable . Para implementarlo, solo necesita la placa Arduino UNO y el escudo CAN-BUS, por ejemplo, Seeed Technology.
Experimentos con el simulador Arduino OBD2En principio, para el desarrollo de un emulador de datos OBD-II, una fuente de alimentación de CC 12V para el módulo ELM327, así como un conector OBD-II, no dañarán. Sin embargo, el convertidor sin nombre DC-DC-USB-TO-12V bien puede resolver el problema, porque Tal vez haya disponibles varias fuentes de alimentación para 5V para cualquier desarrollador de Internet de las cosas y no solo. Para conectarse al OBD-II, se requerirán dos cables de información CAN_H y CAN_L, así como la presencia de 12 V de potencia, pero como se señaló anteriormente, 12 V solo es necesario para garantizar la operabilidad del módulo ELM327.
CAN-BUS Shield V1.2 - Wiki de desarrollo limitadoEn la placa de expansión Shield CAN-BUS, es muy conveniente no usar el conector D-SUB, sino simplemente un bloque de terminales para dos contactos (CAN_H, CAN_L). Desde el punto de vista del desarrollo de código de software, debe tenerse en cuenta que los entusiastas de los prototipos publicaron en
GitHub . Ahora las placas Seeed han cambiado y, en cualquier caso, para el controlador MCP2515, es mejor usar nuevos controladores del mismo
Seeed-Studio . Por supuesto, el programa original deberá modificarse ligeramente para los nuevos controladores, pero esto es un par de minutos.
Trabajando con CAN-BUS en un Arduino IDE basado en un simulador de ECU OBD2 de bajo costoSin embargo, el ejemplo considerado es muy primitivo, ya que todos los parámetros enviados a través del protocolo OBD-II simplemente se generan aleatoriamente, no hay conexión entre los parámetros de operación del motor, etc. Como continuación del proyecto, el desarrollo de una aplicación similar a la GUI del emulador OBD-II de Freematics es obvio. Este es un shell gráfico de código abierto que se utiliza en la solución de hardware
Freematics OBD-II Emulator .
Freematics OBD-II Emulator GUI - FreematicsPor lo tanto, habiendo ensamblado un módulo basado en Arduino que permite trabajar con CAN, es muy posible crear un emulador OBD-II, ya que el protocolo de diagnóstico está bien descrito y no es difícil implementarlo. Cabe señalar que la interacción entre el microcontrolador y el bus CAN a bordo es una tarea completamente diferente y debe comprender que los protocolos internos de alto nivel de este bus no están documentados por los fabricantes de automóviles y, por otro lado, no deben integrarse en el dispositivo interno de la electrónica del automóvil, de modo que de ninguna manera Reducir la seguridad de los vehículos. Si hablamos de CAN en general, es bastante posible utilizar el protocolo CANopen abierto de alto nivel para desarrollar sus dispositivos basados en este bus.
Sigue siendo el caso para los pequeños: un poco de tiempo libre y placer para llevar a cabo el desarrollo de su código. Es cierto, ¿dónde está este momento para encontrar al final del año? Pero seremos optimistas. Pero hablando del uso de dicho emulador OBD-II, la dirección más directa es el desarrollo de su propio módulo para el conector de diagnóstico. Por ejemplo, puede tomar el proyecto abierto Carloop como punto de partida, que tiene como objetivo crear un módulo para conectar el automóvil a la nube utilizando tecnologías 3G, Wi-Fi o Bluetooth.
Bluetooth CarloopEl proyecto Carloop se basa en el uso de placas: Particle Photon (basado en el módulo Wi-Fi Cypress BCM43362 que admite 802.11b / g / n; la familia de controladores ARM Cortex M3 - STM32F205 a una frecuencia de 120Mhz; memoria flash de 1MB; 128KB de RAM) y Electrón (placas con soporte para conectarse a una red móvil 3G / 2G). La plataforma Particle en sí es muy interesante porque se basa en el servicio de conexión de dispositivos IoT basado en la nube, un IDE basado en la nube para el desarrollo, por ejemplo, basado en placas Photon, que usan un lenguaje similar a C / C ++ para Arduino. De hecho, Particle es un tema separado para publicación, y el proyecto Carloop definitivamente merece una atención especial por parte de los entusiastas del automóvil, como un dispositivo IoT conectado.
Al conectar el automóvil a Internet y a los servicios de IoT, puede implementar muchos escenarios que sin duda contribuirán a la facilidad de uso de los vehículos, aumentarán la comodidad y, simplemente, una solución efectiva a los problemas cotidianos, por supuesto, incluida la solución de transporte. Por ejemplo, las compañías de seguros ya pueden tener en cuenta los datos sobre el estilo de conducción, la fiabilidad del motor y los componentes del vehículo. La ubicación actual del automóvil será relevante para los servicios de taxi y alquiler de automóviles. 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 –