Arduino para electronica del coche, alarmas, control de luces...ect...

Iniciado por vidainutil.com, Febrero 26, 2009, 03:31:02 am

Tema anterior - Siguiente tema

0 Usuarios y 1 Visitante están viendo este tema.

txurtxil

Cita de: jesusmendavia en Marzo 16, 2018, 11:42:12 am
Gracias por el aporte ahora me pillas trabajando pero a la tarde noche lo miraré con atención a ver si lo conseguimos hacer entre todos...


A mi me interesa leer los datos de mi furgo y ver si alguno me interesa,  lo suyo seria ver la temperatura exterior, parece mentira que una furgo con climatizador como mi nissan evalia no te de la temperatura de la calle, se supone que en algún sitio tiene que leerla.

jesusmendavia


txurtxil

Cita de: jesusmendavia en Marzo 16, 2018, 12:33:56 pm
Ponme foto del cuadro de tu evalia


En este hilo está las fotos de todas las funciones que disponemos en el cuadro, en ninguna hay temperatura exterior y el clima va con ruedas:
https://www.furgovw.org/index.php?topic=233855.6990

jesusmendavia

Luego te miro que modelos de Nissan soporta el cable que tengo. 

txurtxil


pabgarde

Yo ahora mismo tengo el 120% de mi tiempo ocupado y no creo que pueda ayudar mucho.
Solo pretendía decir que lo importante es conocer cómo se obtienen esos datos. Si es por canbus es necesarios saber que objetos leer, cómo hacerlo desde un Arduino, etc. Lo complicado no es la programación.
¿Tenéis las especificaciones de la comunicación que pretendemos hacer con vuestra centralita o dispositivos del vehículo por canbus?

jesusmendavia

Madre mía, tiempo es lo que nos falta a todos...
Ahora no puedo, a la noche explico lo que tenemos hasta ahora y lo que queremos...

txurtxil

Marzo 16, 2018, 14:28:07 pm #892 Ultima modificación: Marzo 16, 2018, 14:32:00 pm por txurtxil
Cita de: pabgarde en Marzo 16, 2018, 13:40:26 pm
Yo ahora mismo tengo el 120% de mi tiempo ocupado y no creo que pueda ayudar mucho.
Solo pretendía decir que lo importante es conocer cómo se obtienen esos datos. Si es por canbus es necesarios saber que objetos leer, cómo hacerlo desde un Arduino, etc. Lo complicado no es la programación.
¿Tenéis las especificaciones de la comunicación que pretendemos hacer con vuestra centralita o dispositivos del vehículo por canbus?


Ahora mismo estoy "aterrizando", como suele suceder aprendo sobre la marcha...
Tengo un conector bluetooh elm327, quiero empezar a usarlo con el movil, con una app tipo torque e intentar ver algo que me interese.. se que rpm, velocidad da pero para ver eso mejor no hago nada, tampoco me interesa ver fallos, desconozco eso para que vale, los voy a ignorar totalmente, solo me interesa saber cuanta imformación hay y que es útil, en los propietarios de una NV200 averiguar qué dato lee un sensor de temperatura exterior e interior será de gran ayuda.

La informacion que sea util la "pintaría" con arduino en una pantalla oled.....

jesusmendavia

Por partes:
1º os explico en que consiste el módulo que hemos fabricado en Dacia y para que sirve.
en Dacia tenemos el navegador medianav, montado tambien en los Renault:clio, captur, trafic, Opel Vivaro, y alguna marca más...
En Dacia, Renault... el coche tiene dos redes can bus. la del coche(centralita motor, abs, injection, etc...) y otra para multimedia (radio, navegador, camara...) Bien si os fijais en esta foto:

Aparece, por un lado la temperatura exterior. Esta va del sensor al cuadro de instrumentos y este manda por canbus ese dato y la conduccion eco que es el ordenador de abordo y detalles del modo de conduccion. Pues bien los renault tienen un modulo llamado Bic(climatisacion) que recoje los datos del canbus coche y los manda a la canbus multimedia y por eso se puede ver en la pantalla del radio-navegador esos datos y tambien datos de la climatizacion.
Pero en los Dacia no llevamos ese modulo y tampoco indicador de temperatura del motor. se puede añadir uno de desguace o en mi caso copiar a los rusos.
¿que han hecho los rusos?
del conector odb del coche sacan 12v, masa, los dos hilos del canbus y los dos hilos del canbus multimedia. utilizan un arduino micro. un estabilizador de corriente y dos modulos mcp215. Un mcp lee los datos del canbus (temperatura en este caso del motor en vez de la exterior)y ordenador de abordo (los datos de la eco conduccion aun no lo han logrado sacar)  y el otro mcp manda esa informacion al navegador.
este es el esquema que han hecho:

y este es el codigo que han usado: (lo he traducido del ruso)
#include <mcp_can.h>
#include <mcp_can_dfs.h>

#include <mcp_can.h>
#include <spi.h>
long unsigned int rxId;
unsigned int temp = 0x0;
unsigned char len = 0;
unsigned char rxBuf[8];
unsigned char stmp[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // Plantilla de mensaje
MCP_CAN CAN1(5); // Configure CS para la recepción de 1 bus a pin 5
MCP_CAN CAN2(10); // Configure CS para enviar a 2 bus al pin 10
void setup()
{
Serial.begin(115200);
CAN1.begin(CAN_500KBPS, MCP_8MHz); // init can bus : baudrate = 500k / 8MHz
CAN2.begin(CAN_500KBPS, MCP_8MHz); // init can bus : baudrate = 500k / 8MHz
pinMode(2, INPUT); //Pin 2 para entrada INT
Serial.println("Started..."); // Salida iniciada ... al monitor del puerto}
void loop()
{
if(!digitalRead(2)) // If pin 2 is low, read receive buffer
{
CAN1.readMsgBuf(&len, rxBuf); // Lectura de datos: len = data length, buf = data byte (s)rxId = CAN1.getCanId(); // Recibimos el mensaje ID
if(rxId == 0x5DA){
Serial.print("TEMP: "); // Salida TEMP: al monitor del puerto
Serial.println(temp, HEX); // Salida de temperatura en el monitor de puerto en formato decimal
// Enviar un mensaje para restablecer el valor de temperatura en la pantalla
if(temp!=rxBuf[0]){
stmp[2]=0xFF;
}
CAN2.sendMsgBuf(0x558, 0, 8, stmp);
delay(10); // 10 ms de retraso
// Envía el mensaje configurando la nueva temperatura
temp=rxBuf[0];
stmp[2]=temp;
CAN2.sendMsgBuf(0x558, 0, 8, stmp);
}
// Transfiere datos a Driving ECO2
if(rxId == 0x646){
CAN2.sendMsgBuf(0x314, 0, 8, rxBuf);
Serial.print("ID1: ");
Serial.print(rxId, HEX);
Serial.print(" Data: ");
for(int i = 0; i<len; i++) // Print each byte of the data
{
if(rxBuf[i] < 0x10) // If data byte is less than 0x10, add a leading zero
{
Serial.print("0");
}
Serial.print(rxBuf[i], HEX);
Serial.print(" ");
}
Serial.println();
}
}
}

jesusmendavia

Cita de: txurtxil en los propietarios de una NV200 averiguar qué dato lee un sensor de temperatura exterior e interior será de gran ayuda.
/quote]

Si esta es tu radio, aunque no es igual comparte lcd con las de dacia. creo que es la misma con diferentes diseños:

en este caso creo que tal vez los datos de temperatura exterior sean los mismos voy a buscar como consiguen mandar los rusos ese dato a arduino y te lo pongo...

jesusmendavia

En el codigo que he puesto arriba los datos de temperatura que lle del can son estos:
if(rxId == 0x5DA){
Serial.print("TEMP: ");

Si cambiamos estos datos pasamos de temperatura motor a eXterior
Motor temp: 0x5DA
External temp: 0x3B7

Haber si puedes conseguir leerla con esto.
Otra cosa que tenemos pendiente es pasar el valor del Fap al Arduino.
El problema es que no lo sabemos pasar...
esto es lo que leemos en torque:
22242c
DPF Soot

Send 22242C
Receive 62242C0000
Start byte: 4
Bits: 16
Unit: gr
Value: (AX+B)/C
A=1
B=0
C=100

txurtxil

Efectivamente es de maca daewoo, prácticamente idéntica. He comprado los módulos para conectar el Arduino al cambus, son 2€ una birra ...
iré mirando el temilla...
Infinitas gracias por el aporte, los rusos son unos cracks crackeando... en mi Focus actualicé el firmware del cuadro del coche con un software que hizo un ruso y un cable odb chino modificado para que pueda modificar cosas en la centralita.



txurtxil

Cita de: jesusmendavia en Marzo 16, 2018, 21:34:09 pm
En el codigo que he puesto arriba los datos de temperatura que lle del can son estos:
if(rxId == 0x5DA){
Serial.print("TEMP: ");

Si cambiamos estos datos pasamos de temperatura motor a eXterior
Motor temp: 0x5DA
External temp: 0x3B7

Haber si puedes conseguir leerla con esto.
Otra cosa que tenemos pendiente es pasar el valor del Fap al Arduino.
El problema es que no lo sabemos pasar...
esto es lo que leemos en torque:
22242c
DPF Soot

Send 22242C
Receive 62242C0000
Start byte: 4
Bits: 16
Unit: gr
Value: (AX+B)/C
A=1
B=0
C=100


Gracias., voy a pasar el torque a la furgo esta noche e ir compilando datos. seguimos con el tema.
Un saludo

jesusmendavia

Imagino que los habrás pedido a aliexpress, espera tres semanas...

jesusmendavia

¿veis difícil añadir lo que quiero hacer a ese codigo que ya tengo?