Diagnosis de su coche con Raspberry Pi


OBD-II PID ( Diagnóstico a bordo de parámetros IDs ) son códigos utilizados para solicitar datos de un vehículo, que se utiliza como herramienta de diagnóstico  que tradicionalmente se ha reservado a los  técnicos automotrices que usan PID con una herramienta de análisis conectado al conector OBD-II del vehículo.

  • El técnico entra en el PID
  • La herramienta de análisis lo envía al del vehículo red controlador-área (CAN) la parada de microbus, VPW, PWM, ISO, KWP . (Después de 2008, sólo CAN)
  • Un dispositivo en el bus reconoce el PID como uno es responsable de, y reporta el valor para ese PID al bus
  • La herramienta de análisis lee la respuesta, y lo muestra al técnico

Un  adaptador   OBD-II  funciona  en cierta manera  como el USB de un ratón que usamos con el ordenador, ya que se conecta a la centralita del coche y convierte los datos que lee en información que podemos procesar desde nuestro móvil.

Estos adaptadores se puede encontrar  fácilmente en internet y a precios que empiezan en los 6 euros y van subiendo hasta los varios cientos, dependiendo de la calidad y cantidad de opciones que necesitemos. Pero para un uso completamente ‘amateur‘, tenemos suficiente con los más económicos. Eso sí, antes de comprarlo debe   compruebe que la centralita de su coche tiene la conexión de 16 pines del estándar y es compatible  con dicho  interfaz.

 

 

Adaptadores ODB2 bluetooth

elm37

Algunas centralitas de vehículos puede soportar más o menos funciones que otros.,pero en todo caso  no olvide  que la aplicación necesita un adaptador Bluetooth OBD2 para trabajar.

Estos  adaptadores  son  pequeños y se conectan a la toma de diagnóstico en el coche que le da a su acceso a los teléfonos.Uno de los adaptadores mas usados  es el modelo el ELM327 OBD2 el cual funciona igual de bien que otros aparatos similares de tamaño mucho mayor y   aún precio bastante menor (como por ejemplo el  adaptador Scantool.net, el adaptador de OBDKey y PLX Kiwi ).

El modelo ELM 327  es el clásico lector de parámetros del motor y de códigos de error OBD II mini, en carcasa de plástico transparente  de  reducido tamaño(otros modelos mayores  estorban en la zona de los pedales)   que es capaz de enviar los datos vía Bluetooth   y que se puede adquirir  a muy buen precio.

Para usarlo, hay que enchufar el dispositivo  al conector que suelen traer casi todos los coches modernos  junto a la fusiblera principal que suele estar  debajo del volante.

Después hay que instalar  la aplicación  Torque en su smartphone   ( en su versión gratuita o de pago )  y automáticamente al ejecutarla  debería empezar a ver en la app  una cantidad ingente  de información sobre el funcionamiento de su vehículo.

Los usuarios  se abruman   del  impresionante volumen de datos aportado pues aplicación es 100% configurable para mostrar los parámetros que prefiera. De hecho los datos ofrecidos son prácticamente similares a una maquina de diagnosis de cualquier taller en sus manos, aportando ademas de un sinfin de parámetros informativos sobre el estado de motor, consumos, temperaturas, posibles averías etc

Resumidamente  estas son algunas de las utilidades  de la combinación  del adaptador  ELM327 OBD2 junto con el programa  Torque:

  • Leer los códigos diagnóstico, genéricos y específicos del fabricante, y mostrar su significado (sobre 3000 definiciones genéricas del código en la base de datos).
  • Borrar los códigos de problemas y apagar el MIL (“Check Engine” de luz)
  • Mostrar los datos actuales del sensor

Según el modelo de coche podrá ver más o menos datos, pues eso no depende de este aparato  en su .De hecho ,hay usuarios que no han conseguido hacerlos funcionar con determinados modelos de vehículos, pero en cambio en otros modelos  funciona perfectamente:

 

Por cierto ,esta versión  del  ELM327  se puede comprar por menos de 6€  con gastos de envió incluidos  aqui (Amazon.es)

Adaptadores ODB2 USB

Hay muchos ejemplos de entusiastas que  están usando estos adaptadores ODB2 no solo desde dispositivos Android sino incluso desde PC standard ,pero ¿ y si se pudiera usar desde otros dispositivos  como por ejemplo desde una Raspbery Pi?

Pues en  efecto desde pistonheads.com  nos demuestra como es posible desde una RPi de  leer datos de su moto a través de un lector USB OBD-II  usando  como registrador de datos para una moto gracias  a que cabe perfectamente  debajo del asiento

Para ello , se usa un   cable USB -> OBD2 , el cual  soporta muchas versiones diferentes del puerto estándar OBD2

La RPi toma la  alimentación  una conexión micro del USB que se alimenta a su vez  de la batería (lo ideal es desde luego hacerlo desde  la llave de encendido / apagado, pero esto llevar mucho más trabajo y se corre el peligro de  dañar el cableado de la moto) así que el usuario opto  por compro un interruptor y un fusible  que  termina en un puerto USB hembra lo cual permite  apagar la RPpi al final de un viaje

Lo siguiente es  el código, basado en  la  librería python  desarrolla en 2009 llamado pyobd. Esta fue  la  base para lo que quería hacer, encontrando algunos errores en el código pues , en general, estaba escrito para ser utilizado por una aplicación  grafica GUI que venía con ella. Como el autor no quería una aplicación GUI, obviamente, bajo su asiento se bajo su repositorio y comenzó a trabajar en hacerlo más parecido a un datalogger

El trabajo esta en su  repositorio : https://github.com/roflson/pyobd

 

Gracias al trabajo excelente de Salgar , Martin quiso ir mas lejos  conectando ademas una cámara ,    utilizando  los datos OBD para superponer mph, rpm, temperatura y la posición del acelerador sobre el vídeo tomado con la placa de la cámara construyendo realmente un dispositivo bastante interesante

Resumidamente  el  proceso de desarrollo de  la nueva herramienta fue muy similar a la anterior adaptación de Salgar , basándose también en un  adaptador  USB al cable de interfaz de OBD2 del tipo ELM 327 1.5V USB CAN-BUS Scanner ELM327 , por cerca de £ 10 disponibles en  amazon.com o amazon.co.uk .( en España un no esta )

Otro elemento importante es conectar la cámara a su Raspberry Pi 2 usando el conector propietario especifico

Un modelo asequible compatible con la Raspberry Pi2   es el Módulo de cámara Raspberry Pi de SainSmart  que cuesta unos 14€ 

 

Luego  una vez adquirido el hardware , descargo el  software de salgar de su repositorio github, https://github.com/roflson/pyobd , como base para el nuevo programa (el software de salgar es una bifurcación de un proyecto llamado pyobd, https://github.com/peterh/pyobd , que es una aplicación basada en GUI para leer datos OBD-II).

Utilizo el autor  este  nuevo software  como base para un programa que se conectaría a través de la interfaz OBD-II, interrogando al coche qué sensores soportaba y luego leyendo los sensores de datos en un bucle cada 0,5 segundos  escribiéndolos en la pantalla de modo que la RP2 no solo registra el video , también registra  los  datos dinámicos superponiendolos al video cumpliendo pues una doble función

Descargar y ejecutar

El autor   finalmente  ha puesto a la disposición de todos los usuarios su  sw  de modo que puede descargar el código directamente desde github  en ,https://github.com/martinohanlon/pyobd ,

 

Resumidamente estas son las instrucciones de instalación:

 

Si le «pica»la curiosidad en el vídeo podemos ver la Rp2 con el sw en acción

IoT con Raspberry Pi sin escribir código


 

En este ejemplo vamos a ver lo facil qeu es configurar un sensor de temperatura:el DS18B20  usando el agente de Cayenne .

Todo lo que necesita hacer es configurar el circuito y tenerlo conectado a la Pi,el cual es bastante sencillo pues  se usa un bus de 1hilo cuyo diagrama del circuito viene a continuación. También se puede agregar un LED al pin # 17 con una resistencia de 100 ohmios al carril de tierra.
Raspberry Pi Diagrama de Sensor de Temperatura
Ahora cuando lo conecte  si tiene instalado el agente de Cayenne  el sensor sera detectado automáticamente y agregado al  tablero de mandos. Lo que es bastante bueno sin embargo, si no se agrega automáticamente, entonces tendrá que agregar manualmente. Para agregarlo manualmente, haga lo siguiente.

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccione el dispositivo en el cuadro desplegable.
  3. Encuentre el dispositivo, en este caso es un sensor de temperatura DS18B20.
  4. Agrega todos los detalles del dispositivo. En este caso necesitará la dirección de esclavo para el sensor. Para obtener la dirección de esclavo introduzca lo siguiente en el terminal de Pi.
    cd /sys/bus/w1/devices ls
  5. La dirección del esclavo será similar a esta 28-000007602ffa . Simplemente copie y pegue esto en el campo de esclavo dentro del panel de Cayenne.
  6. Una vez introducida seleccione sensor de complemento.
  7. El sensor debe aparecer ahora en el tablero de instrumentos.
  8. Si necesita personalizar el sensor, presione el diente y aparecerá algunas opciones.
  9. También puede ver estadísticas / gráficos. Por ejemplo, el sensor de temperatura puede trazar datos en tiempo real y mantendrá los datos históricos también.

Si también desea agregar un LED que pueda encender y apagar a través del tablero de instrumentos, siga las siguientes instrucciones.

  1. Ahora vamos a agregar un dispositivo más. Excepto que éste será un LED.
  2. Vuelva tan para agregar el nuevo dispositivo.
  3. Ahora busque la salida digital y selecciónela.
  4. Para este dispositivo seleccione su Pi, tipo de widget es el botón, el icono puede ser lo que quieras, y luego seleccione integrado GPIO. Finalmente, el canal es el pin / canal al que está conectado nuestro LED. Para este ejemplo es el pin # 17. (Esta es la numeración GPIO de los pines).
  5. Ahora presione el botón add sensor.
  6. Ahora puede girar el pin GPIO alto y bajo desde el tablero de mandos y también utilizarlo en un disparador.
  7. Ahora estamos listos para crear nuestro primer gatillo.

Ahora debería tener dos dispositivos en el tablero de mandos que deberían verse así.
Dispositivos añadidos

Configuración de su primer  trigger

Los disparadores en Cayenne son una forma de hacer que tu pi reaccione a un cambio en el Pi mismo oa través de un sensor conectado a él. Esto podría ser algo tan simple como una temperatura superior a un cierto valor o incluso sólo su Pi va fuera de línea. Como se podría imaginar esto puede ser muy poderoso en la creación de dispositivos inteligentes que reaccionan a los alrededores. Por ejemplo, si la habitación se pone demasiado fría, encienda el calentador.

El proceso de agregar un disparador es súper simple como vamos a ver aontunuacion:

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar un trigger desde el cuadro de abajo.
  3. El nombre de su gatillo, voy a llamar a la mía «demasiado caliente».
  4. Ahora arrastrar y soltar su Frambuesa Pi desde la esquina izquierda en el caso de la caja.
  5. Por debajo de esto seleccionar el sensor de temperatura y tienen casilla junto a «por encima de la temperatura» seleccionado. (Si las opciones del dispositivo no se muestran simplemente actualizar la página)
  6. Ahora en el cuadro de selección a continuación, notificación y agregar una dirección de correo electrónico o número de teléfono de un mensaje de texto (puede agregar ambos).Asegúrese de marcar las casillas de verificación también.

Dispara demasiado caliente

  1. Ahora haga clic en «Save trigger».
  2. Ahora se debe guardar y le enviará una alerta cada vez que el sensor de temperatura es más de 40 grados Celsius.
  3. También puede arrastrar el Raspberry Pi en el cuadro a continuación, y tienen que hacer muchas cosas, incluyendo el control de los dispositivos de salida. Por ejemplo, en mi circuito tengo un LED que se activará cuando la temperatura supere los 40 grados Celsius.
  4. Para hacer clic en el gatillo de disparo LED de nueva situada en la parte superior de la página. Nombre esta activar el gatillo LED.
  5. Ahora arrastrar el Pi en el caso de la caja y luego seleccione el sensor de temperatura de nuevo con 40 grados centígrados por encima.
  6. Ahora arrastrar el Raspberry Pi en cuadro a continuación. Seleccione nuestra salida digital y marque la casilla de verificación activada.
  7. Ahora haga clic en Save trigger.
  8. Ahora, cada vez que nuestro sensor de temperatura conectado al Pi informe una temperatura superior a 40 grados Celsius, enviará un correo electrónico y encenderá el LED.También necesitarás agregar otro disparador para apagar el LED cuando caiga por debajo de los 40 pero lo dejaré por ahora y pasaré a eventos.

Mydevices cayennem Disparadores

Eventos

Los eventos en Raspberry Pi Cayenne son algo similar a los desencadenantes, pero son dependientes del tiempo en lugar de confiar en un cambio en un sensor o el propio dispositivo. La configuración de un evento es bastante fácil,asi que por ejemplo vamos a ver cómo configurar su Pi para reiniciarla una vez al mes.

  1. Ir a añadir en la esquina superior izquierda del tablero de instrumentos.
  2. Seleccionar evento en el cuadro de abajo.
  3. Ahora debería ver una pantalla con un calendario y un popup llamado nuevo evento.
  4. Ingrese los detalles de su evento. Por ejemplo, la mina se llama reinicio mensual y sucederá el primero de cada mes a las 2am. A continuación se muestra un ejemplo de la pantalla.

Cayenne eventos con detalles

  1. Una vez hecho esto, haga clic en Guardar.
  2. Ahora debería poder ver su evento en el calendario. Simplemente haga clic en él si desea editarlo.

Como usted podría imaginar los acontecimientos pueden ser bastante poderosos así que valdría la pena de mirar en éstos más. Un buen ejemplo de uso de eventos sería si necesita algo para ejecutar o encender. Otro ejemplo es algo como luces que necesitan ser encendidas en un momento específico.

Panel GPIO

El panel GPIO en Cayenne  le permite controlar y alterar los pines en el Pi.Por ejemplo, puede convertir un pin de ser una entrada a una salida y viceversa. También puede activar los pines de salida bajos y altos.
Panel Cayenne GPIO
Como se puede ver también hace que una gran hoja de referencia si necesita volver a ver y ver qué pins son los que necesita. También puede ver los dispositivos que están actualmente asignados a pines específicos. También puede ver el estado actual de un pin. (Por ejemplo, entrada o salida y baja o alta)

Escritorio remoto

Se puede conectar a la  Pi a través de Secure Shell o tambien   con VNC. Si ha  instalado cayenne también puede escritorio remoto a su Raspberry Pi a través del navegador web o a través de la aplicación móvil. Puede hacerlo simplemente haciendo lo siguiente.

  1. En el tablero de mandos encontrar el widget que dice «comandos».
  2. Dentro de este widget haga clic en acceso remoto.
  3. Ahora se conectará al Pi y abrirá una nueva ventana. Si una nueva ventana no abre su navegador probablemente lo bloqueó. Simplemente permita que cayenne.mydevices abra nuevas pestañas.
  4. Una vez hecho usted puede controlar su Pi como si estuviera allí con él.
  5. Uno de los profesionales con el uso de Cayenne para escritorio remoto es que se puede acceder a ella en cualquier parte del mundo con bastante facilidad en lugar de la necesidad de configurar una VPN o abrir los puertos de su red.

Sin duda es un ejemplo muy sencillo pero que demuestra la gran potencia del agente de Cayenne para aplicaciones de IoT con su Raspberry Pi

 

Fuente   aqui