Conectar Nokia 6310i a Arduino. Solución!!!

Edito para incluir un pdf un poco mejor explicado, lo teneis adjunto a este mensaje y tambien aqui: http://arduinocarblackbox.info/?page_id=11

Me gustaria explicar aqui como se puede conectar un nokia 6310i a un Arduino para hacer llamadas, enviar y recibir mensajes, etc..
La idea de gastarme entre 65 y 75 euros en un modulo GPRS no me hacia mucha gracia, por lo que pense en darle uso a un movil viejo que tenia en el armario, en mi caso un Nokia 6310i con su cable original RS232.


El primer objetivo es comprobar la comunicación mediante comandos AT usando el ordenador como emisor y receptor (en lugar del Arduino). En mi portatil no tengo conector RS232 por lo que utilice un convertidor USB-RS232.

PC<--->convertidor USB-rs232<--->cablenokia<--->movil

Usando un programa como Hyperterminal en Windows XP o software gratuito... https://sites.google.com/site/terminalbpp/

Nos conectamos al puerto COM que nos haya aparecido al conectar el movil usando la configuración "2400,7,EVEN,1" handshake "RTS/CTS"
una vez conectados, probamos la comunicación enviando comandos AT, el mas sencillo es:
AT recordar tener activado "+CR".
esto nos devolvera un "OK" si todo ha sido correcto.
Una vez establecida la comunicación probar otros comandos AT. por ejemplo:

ATD 666666666;

para realizar una llamada. No olvidar el ; ya que esto indica que es una llamada de voz y no de datos.

Para usar el movil con arduino debemos quitar el handshake para poder usar solamente los pines Ground, Tx y Rx.

Eliminar handshake...
-conectar movil con su cable al ordenador segun: PC<--->convertidor USB-rs232<--->cablenokia<--->movil
-conectar con setup: "2400,7,EVEN,1,RTS/CTS"
-comprobar que funciona enviando AT (+CR)
-deshabilitar handshake enviando: AT+IFC=0 (+CR)
-importante...guardar los datos: AT&W (+CR)

Una vez deshabilitado el handshake queremos cambiar los parametros de conexión, para ello hacemos

AT+IFC=3
AT&W

De esta forma podremos conectarnos usando los paremetros "2400,8,N,1, no handshake"

Conectar al arduino
Para conectar al arduino necesitamos un circuito con un MAX232 como este...

Primeras pruebas desde Arduino
Antes de cargar un programa a Arduino vamos a comprobar que existe comunicación entre el Arduino y el movil. Para ello vamos a bypasear el microcontrolador y usaremos el arduino como convertidor RS232, de esta forma podremos escribir comandos AT en la pantalla de serial monitor de arduino y ver que nos contesta el movil.
Esto lo realizaremos puenteando los pines RESET y GROUND del arduino y conectando segun este diagrama...
(añadir diagrama mas detallado....)

PC<--->cable usb<--->arduino<--->pines0,1arduino<--->(lado izquierdo)circuito MAX232(lado derecho)<--->cablenokia<--->movil

Por lo tanto, abrir el programa arduino.exe, seleccionador el COM adecuado y abrir el Monitor de serial. Escribir comando AT y comprobar que hay respuesta.

Primer programa...Arduino<--->Movil
Una vez comprobado que existe comunicación vamos a cargar un programa en el arduino que realice 2 llamadas automaticas. el programa llamara un numero de telefono y tras 12 segundos colgara la llamada. El estado se mostrara por el serial.

/*
  Connect a Nokia mobile phone to Arduino to send calls
 
 This sketch connects an Arduino to a Nokia mobile phone in order to use
 it as a modem and send AT commands.
 
 Circuit:

 
 The circuit:
 ** MAX232 Pin xx Rx - Arduino Pin xx
 ** MAX232 Pin xx Tx - Arduino Pin xx
 ** MAX232 Pin xx Rx - Nokia Cable Pin xx
 ** MAX232 Pin xx Tx - Nokia Cable Pin xx
  


 created 01 Apr 2011
 by S. Escuder

*/

#include <NewSoftSerial.h>

NewSoftSerial cell(2,3);  //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin.

void setup()
{ 
 //Initialize serial ports for debugging
    Serial.begin(9600);
    Serial.println("Starting Communication...");
    
 //Initialize serial ports for communication
     cell.begin(2400);
      delay(10000); // give the GSM module time to initialise, locate network etc.
	            // this delay time varies. Use example 26.1 sketch to measure the amount
	            // of time from board reset to SIND: 4, then add five seconds just in case
				// http://tronixstuff.wordpress.com/2011/01/19/tutorial-arduino-and-gsm-cellular-part-one/
				
  pinMode(13, OUTPUT);		// to show the current status.
}

void loop()
{
// make x number of phone calls, hanging up after xx seconds.

  for (int count = 1;count <= 2;count++)
  {
      Serial.print("Number of calls: ");
      Serial.println(count);
    
	// Perform a phone call...
	digitalWrite(13, HIGH);   // set the LED on
    	Serial.println("ATD xxxxxxxxx;"); 	// debug
    	cell.println("ATD xxxxxxxxx;"); 	// dial the phone number xxxxxxxxx
        Serial.println("Waiting 12 seconds...");
    	delay(12000); // wait 12 seconds.
    
	// Hang up the phone call...
    digitalWrite(13, LOW);    // set the LED off
        Serial.println("Colgando...");
    	Serial.println("ATH"); // debug
    	cell.println("ATH"); // end call
    
      delay(5000);              // wait for 5 seconds between calls.
  }
  while(1){}	// stay here forever after making the calls.
}

Una vez conseguido esto, recomiendo estos dos tutoriales para empezar a enviar mensajes, y hacer cosas mas interesantes. Mi objetivo no es enseñar a programar el arduino sino a solucionar el problema de conectar moviles nokia al arduino.
[http://tronixstuff.wordpress.com/2011/01/19/tutorial-arduino-and-gsm-cellular-part-one/](http://Chapter 26 - GSM mobile - part I)
[http://tronixstuff.wordpress.com/2011/01/31/tutorial-arduino-and-gsm-cellular-–-part-two/](http://Chapter 27 - GSM mobile - part II)

Referencias:
http://jason.mumby.co.nz/?p=56 (el problema es que aqui no explicaba lo de guardar la configuración)
Barómetro fuera de rango
TTL to RS232 adaptor Explained – uCHobby

voy a intentar darle un mejor formato y contenido, pero al menos ahi esta la base.

Post anterior que llevaron a esta solución:
http://arduino.cc/forum/index.php/topic,57065.0.html

Manual para conectar Nokia 6310i a Arduino v3.0.pdf (672 KB)

¿Por qué no lo pones donde empezaste la discusión en vez de crear una nueva?

He pensado que era mejor crear un post nuevo a modo mini-tutorial. de forma que si alguien necesita esa información no tenga que pasar 2 hojas de problemas. Asi se puede exponer aqui problemas, soluciones, mejoras usando como base el mini-tutorial.

Ya, pero piensa que ahora los que busquen deberán mirar 2 post, ver cuál de ellos tiene fecha más reciente, si uno está relacionado con el otro, pensar cual es la razón por la que estén separados, etc.

Ya he visto que has puesto un enlace en el otro post a este, asi que bueno, dejémoslo así, pero sería mejor que todo estuviera en el mismo sitio (o al menos eso creo).

De todas maneras, gracias por poner la solución que mucha gente pide ayuda y cuando encuentra la solución ni se acuerda de ponerla en el foro.

Un saludo :wink:

De todas maneras, gracias por poner la solución que mucha gente pide ayuda y cuando encuentra la solución ni se acuerda de ponerla en el foro.

lo se, y es una lastima porque a veces ves posts que tratan de un tema que te interesa y cuando el usuario encuentra la solucion no dice nada o pone, "solucionado, gracias" por lo que se pierde 'conocimiento'

espero poder mejorar un poco lo expuesto, pero al menos la base para hacerlo funcionar esta. Si alguien tiene dudas que pregunte y lo ampliare. He encontrado tantas paginas hablando de Arduino y Nokia, y ninguno dice que hay que quitar el handshake por ejemplo. Espero que esto le sea util a mas gente.

@Sergegsx

Gracias!!

Hola, alguien me puede recomendar como alimentar el movil de la forma mas conveniente posible?

leo en el cargador del movil a red que el Output es 3.7V / 355mA / 1.3VA

hay alguna forma de alimentarlo desde el arduino sin que sea dañino para el arduino?
Ahora mismo estoy alimentando el arduino mediante la conexión USB al ordenador ya que continua en desarrollo pero cuando este terminado se alimentara de los 12 V de la bateria del coche. lo digo por si esto ayuda a aconsejarme.

muchas gracias !!

Como consejo,todo lo que alimentes del coche tendrás que ponerle protección (varistor o tvs).

http://www.littelfuse.com/data/de/Segment_Capabilities_Brochure/EC334_72304.pdf

Hay bastante info por la red.

Salu2

:wink:

Hola Igor, incluso si saco los 12V del conector OBD??
Es buena idea sacar los 12V de ahi? Tendria que ponerle tambien protección?

Seria lo mas conveniente ya que hoy he cableado el coche bien (antes estaban los cables por medio) y con solo añadirle un hilo que he dejado libre tendria 12V.
Lo que no se si esos 12V son directos de la bateria o son protegidos, regulados.

He hecho poco progreso en el tema CAN por falta de tiempo. Ademas me obsesione en hacer funcionar el nokia con el arduino y requirio el tiempo que tenia libre. Lo que si tengo ya funcionando es el indicador de marcha :wink: a ver si tengo tiempo y actualizo el progreso para que lo cuelges en la web.
Por cierto, el fin de semana que viene me dan un movil nuevo que tiene camara HD, asi que podre grabar el video del montaje que te debo :wink:

Tienes que protegerlo... Puede que estes un montón de tiempo, o incluso que nunca te pase nada, pero es conveniente añadirle un TVS o varistor, por si hay algún pico, no frias los reguladores.

Hoy he estado desmontando mi coche, y cuando tenía el control del clima fuera, resulta que no hay CAN ahi..... solo en algunos modelos!!! grrrrrr =(

]:smiley:

Ok, pues voy a documentarme un poco y cogere los 12V del OBD pero los pasare por un varistor.
ahora lo tengo conectado usando un convertidor Belkin de mechero-usb, supongo que eso ya tendra dentro protección,no? porque al fin y al cabo de ahi puedes conectarle un movil, gps etc..
entonces con un divisor de tensión de 12V a 3,7V que es lo que pone en el cargador nokia + varistor...y puedo alimentar el movil para mantenerlo cargado? o sea mas complejo,no?

jeje tu tambien has tenido la mañana liada,no? como es que te has ido a la CAN del climatizador lo primero? no te interesa mas el OBD primero?

hola
esta muy bien tu articulo¡¡¡
pero hay una parte que queria ver si puedes ampliar un poco por favor y si puedes poner al guna imagen: "arduino como convertidor (reset-ground puenteados)" ...
ojala pudieras y gracias por la informacion...

Coges un cable y unes el pin de reset con el de GND

hola a todos, queria hacerles una pregunta

se puede usar un celular que tenga cable mini-usb ?, veras esos dias es mas facil conseguir un celular con esas caracteristicas que los
que Sergegsx, uso ...

y otra en caso se pueda o no, lo primero, si hago esto, malograria de alguna forma mi celular ???, es decir ya no lo podria usar como antes,
solo lo uaria de esa forma.?? :~

gracias ... por su tiempo. :smiley:

leenhikaru los mobiles usb no es que no se pueda porque lo mismo con una shield USB host funciona pero tiene que ser muy complicado.
Busca pro paginas de segunda mano, los encuentras por 2-3 Euros.

GRACIAS FLICO

la idea supongo es llevarlo a TTL, para asi trabajar con el arduino... y creo que se puede trabajar
de la salida misma del usb, nop _?, que tiene 4pines y de ahi....
pero se malogra el cel??? AL HACER AT{ICF=0, dice algo de handshake.. que la verdad no se que es....

ya he ñogrado testearlo del hyperterminal pero lo estoy haciendo con un celular algo carito....

gracias por la ayuda.

leen h.

"
Conectar al arduino
Para conectar al arduino necesitamos un circuito con un MAX232 como este..."

Los móviles trabajan con niveles TTL, de hecho el cable que se utiliza lleva un pequeño circuito en el interior del conector para adecuar los niveles del COM del ordenador a niveles TTL del teléfono móvil (celular)

se puede conectar directamente el teléfono al móvil, cortando el cable y uniendo TX RX y GND al arduino a RX TX y GND respectivamente.

No hace falta ese circuito.

Un saludo.

correcto, supongo que lo que estamos haciendo es usar 2 max232 primero para arriba y luego para abajo.
pero es que no queria romper el cable y no he encontrado ninguno en ebay barato que valga.
ademas es importante recordar que necesitamos conectarlo al ordenador al menos una vez para deshabilitar el handshake.

estoy intentando localizar moviles baratos para hacer mas pruebas, la idea de ahorrarte 80 euros del modulo gprs con un movil viejo es demasiado atractiva. lo malo quen en ebay no hay baratos.baratos.

y bueno que estoy teniendo problemas con el retorno de datos del movil hacia el arduino.

cualquiera de los antiuos siemens te valdrán y son más baraos que los nokia.

hora de dormir ...

nas noches ¡

muchas gracias a los dos !!

me aclararon mejor las cosas, pero lo del handshake __?? deshabiltarlo ?? si lo hago
mi celular no funcionara mas ??, es decir de uso normal ...

gracias SrDonGato !!! y Sergegsx