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)