Go Down

Topic: Conectar Nokia 6310i a Arduino. Solución!!! (Read 6568 times) previous topic - next topic

Sergegsx

Apr 01, 2011, 09:45 am Last Edit: May 09, 2011, 08:18 pm by Sergegsx Reason: 1
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:
Code: [Select]
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:
Code: [Select]
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
Code: [Select]

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.

Code: [Select]

/*
 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://tronixstuff.wordpress.com/2011/01/31/tutorial-arduino-and-gsm-cellular-%e2%80%93-part-two/


Referencias:
http://jason.mumby.co.nz/?p=56  (el problema es que aqui no explicaba lo de guardar la configuración)
http://forum.meteoclimatic.net/index.php?PHPSESSID=5513bd510540b1c42d4a1f06d0d73714&topic=3812.msg51665#msg51665
http://www.uchobby.com/index.php/2007/06/11/ttl-to-rs232-adaptor-explained/

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

chiva

¿Por qué no lo pones donde empezaste la discusión en vez de crear una nueva?
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Sergegsx

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.

chiva

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 ;)
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Sergegsx

Quote

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.

yOPERO

Engineering is the art of
making what you want from
things you can get.

     

[SOLUCIONADO]

Sergegsx

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 !!

Igor R

Como consejo,todo lo que alimentes del coche tendrás que ponerle protección (varistor o tvs).
http://www.vishay.com/docs/88490/tvs.pdf
http://www.littelfuse.com/data/de/Segment_Capabilities_Brochure/EC334_72304.pdf

Hay bastante info por la red.

Salu2

;)

Sergegsx

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 ;) 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 ;)

Igor R

#9
Apr 02, 2011, 04:23 pm Last Edit: Apr 02, 2011, 04:25 pm by Igor R Reason: 1
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 =(

]:D

Sergegsx

#10
Apr 02, 2011, 04:33 pm Last Edit: Apr 02, 2011, 04:35 pm by Sergegsx Reason: 1
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?


gilgamesh

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...

chiva

Coges un cable y unes el pin de reset con el de GND
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

leenhikaru

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.       :D
naaa

flico

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.
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Go Up