Arduino Forum

International => Español => Topic started by: dystrom on Dec 13, 2012, 10:29 am

Title: Leer llamada entrante movil
Post by: dystrom on Dec 13, 2012, 10:29 am
Hola a todos,mientras espero que llegue la plaquita wifi para seguir con el otro proyecto que tengo en marcha, se me ha ocurrido hacer otro proyectito muy "simple" os lo explico a continuacion.

La idea es que mediante bluetooth, arduino se conecte a un smartphone o movil y al recibir una llamada entrante arduino lea el numero y si es el mismo al que el tiene memorizado encienda un led, si el numero que llama no es el que tiene memorizado no debe hacer nada.

Bien hasta aqui la idea esta clara, yo he hecho comunicaciones entre el movil android y arduino para encender y apagar un led pulsando un boton en la pantalla del smartphone y sin ningun problema, el caso es que para poder leer el tipo de llamada entrante etc... supongo que debo usar los comandos AT pero el problema es que cuando vinculo el PC al smartphone me dice que solo tiene puerto entrante, por lo que no puedo ver lo que envia a traves del hyperterminal, esta claro que el movil puede enviar el numero porque cuando lo llevo vinculado al coche, en la pantalla del coche me llega el numero que me llama, asi que no se porque no encuentro la manera de hacerlo con el PC.

A alguien se le ocurre algo??? Puede ser que el movil no reconozca comandos AT pero eso sería secundario porque el problema que tengo ahora es que no puedo "dar de alta" el puerto para poder comunicarme con el hyperterminal.

A ver si alguien me da un empujoncito para sacarme del agujero :)


Title: Re: Leer llamada entrante movil
Post by: fm on Dec 13, 2012, 11:02 am
Eso es porque el coche se identifica con el perfil manos libres, handsfree.
Title: Re: Leer llamada entrante movil
Post by: dystrom on Dec 13, 2012, 11:43 am

Eso es porque el coche se identifica con el perfil manos libres, handsfree.


Sabes si se podria configurar el modulo bluetooth hc-006 con ese perfil??
Title: Re: Leer llamada entrante movil
Post by: fm on Dec 13, 2012, 12:29 pm
No tengo ni idea si el módulo bluetooth ese soporta el perfil handsfree o incluso dial up conection. Todo apunta a que implementa un línea serie monda y lironda a la que seguramente podrás enganchar a la línea serie de modem y así poder gestionarlo vía comandos AT.
Title: Re: Leer llamada entrante movil
Post by: dystrom on Dec 14, 2012, 06:08 am
Gracias FM seguiré por ahí a ver si consigo algo, otras opciones serían estas

http://www.ebay.es/itm/150843323180?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649#ht_2962wt_1159

http://www.ebay.es/itm/GSM-Modem-Wavecom-Q2303A-Module-COM-RS232-AT-Commands-/270715637186?pt=LH_DefaultDomain_0&hash=item3f07e8cdc2#ht_1028wt_1159

Por la diferencia de precio creo que vale mas la pena la segunda, se ve mas "profesioná"

Si alguien conoce otra opción mas económica, se aceptan sugerencias!!

Saludos
Title: Re: Leer llamada entrante movil
Post by: Jomagom on Dec 14, 2012, 08:40 am
A ver, yo desde programación si es android  pienso que si se puede:
Crear una aplicación que corra en segundo plano para el movil y cuando reciba una llamada, este la compare con los numeros almacenados en la agenda y si está envia al arduino la orden de encender cualquier led.
Un Saludo
Jomagom
Title: Re: Leer llamada entrante movil
Post by: dystrom on Dec 14, 2012, 12:42 pm
En eso no habia caido, como la idea era que por bluetooth se conectara a cualquier movil que permita comandos AT , no habia caido en la cuenta de que si es android se puede hacer lo que comentas, era por hacerlo mas generico pero es muy buena idea, me lo apunto. Gracias Gurus  :D
Title: Re: Leer llamada entrante movil
Post by: dystrom on Dec 22, 2012, 07:49 am
Ya he acabado el programa, realizado las pruebas y funciona perfectamente.
Al final compre el modem gsm y estoy a la espera de que me llegue, pero he realizado las pruebas con el serial monitor para formar las tramas que se recibirían del modem y funciona perfectamente.
El programa lee el valor del numero que esta llamando y si coincide con la lista de 5 números pregrabados, cuelga la llamada y acciona un led durante 1 seg.
Para realizar la lista en la agenda de 5 números, primero lo hice poniéndolo en el programa del micro pero, como ya sabeis, al final uno quiere mas y mas, asi que al final modifiqué el programa para que enviando un mensaje con un texto definido pudieras seleccionar en que memoria quieres grabarlo, asi si quiero modificar la agenda no tengo que desmontar nada, ni ir con el pc al sitio donde esta montado el sistema, simplemente enviando un SMS podriamos grabar el numero. Tengo que decir que logicamente los numeros los grabo en la Eeprom para evitar que si se va la tension estos se borren. El programa a quedado asi:

FUNCIONAMIENTO:
Al recibir una llamada se compara el numero de movil que esta llamando con una lista de 5 numeros predefinidos:
                      * Si coincide con algún numero de la lista, cuelgo la llamada y enciendo led durante 1 segundo.
                      * Si no coincide cuelgo para dejar el sistema libre para otra llamada pero no activo el led.

Para modificar la lista:
Envio un SMS con el texto "0", el sistema contesta con un mensaje en el que nos escribe la lista de los 5 números memorizados
          Ejemplo del mensaje:
                                       Envio "0" al número del modem XXXXXXXXX

           El modem contesta:
                                       La lista de numeros es:
                                       Memoria 1: XXXXXXXXX
                                       Memoria 2: XXXXXXXXX
                                       Memoria 3: XXXXXXXXX
                                       Memoria 4: XXXXXXXXX
                                       Memoria 5: XXXXXXXXX
                                       Centro de mensajes: XXXXXXXXX

Si envío un SMS con el texto "1 123456789" el modem grabará el numero 123456789 en la posicion de memoria 1, para grabar en otro numero de memoria simplemente es cambiar el primer numero por el numero de la memoria que queramos. Si ponemos un valor que sea >5 o <0 devolvería un mensaje de error.

Ejemplo del mensaje:
                                       Envío "1 123456789" al numero del modem XXXXXXXXX

           El modem contesta:
                                       El numero 123456789 ha sido grabado en la posición de memoria 1 con exito!!

Ejemplo del mensaje erroneo:
                                       Envío "6 123456789" al numero del modem XXXXXXXXX

           El modem contesta:
                                       La posición de memoria indicada no existe

Si quiero borrar algun numero bastara con hacer lo mismo que para grabar un numero pero poniendo como numero de telefono el "000000000"
Ejemplo del mensaje:
                                       Envío "1 000000000" al numero del modem XXXXXXXXX

           El modem contesta:
                                       El numero 000000000 ha sido grabado en la posición de memoria 1 con exito!!

Perdón por el tostonazo que he soltado pero quería explicar bien el funcionamiento  ;)

Cuando reciba el modem y lo tenga todo montado, colgaré un video.

Aunque finalmente la llamada no es leida por bluetooth como era la idea principal, esto me sirve, ya que el hacerlo por bluetooth era para darle funcion a un movil viejo que tenia y no comprar ningun modem, pero lo importante es que el proyecto funciona y realiza su funcion, quería aprovechar para dar las gracias a los que me disteis el empujoncito.
Title: Re: Leer llamada entrante movil
Post by: Jomagom on Dec 22, 2012, 10:47 am
Enhorabuena.
Ahora a por otro ;)
Un Saludo
Jomagom
Title: Re: Leer llamada entrante movil
Post by: fm on Dec 22, 2012, 11:11 am
Muy buen trabajo, ya nos contarás que tal funciona todo.
Title: Re: Leer llamada entrante movil
Post by: dystrom on Jan 07, 2013, 09:11 am
Los reyes han llegado!!! ya tengo aquí el modem GSM para comenzar las pruebas  :D

(http://img521.imageshack.us/img521/6145/imag04102.jpg) (http://imageshack.us/photo/my-images/521/imag04102.jpg/)



Title: Re: Leer llamada entrante movil
Post by: fm on Jan 07, 2013, 10:57 am
Que pinta mas buena. Ya nos contaras!
Title: Re: Leer llamada entrante movil
Post by: Sergegsx on Mar 26, 2013, 11:56 am
que tal fue el modem? alguien lo usa en algun proyecto?
estoy peleandome con el siemens tc35 pero creo que lo voy a dejar por imposible y comprar uno de esos. la ventaja del siemens es que se acopla mejor para proyectos pero no consigo hacerlo funcionar.

recomendais el wavecom? hay modelos distintos o son todos iguales?
Title: Re: Leer llamada entrante movil
Post by: Heke on Mar 26, 2013, 02:49 pm
SergeGsx

Yo llevo utilizando un wavecom desde hace un par de años por lo menos en un sistema de monitorizacion y no te puedo poner pegas, muy bien.

El siemens que tu tienes es practicamente lo mismo, todos se configuran por comandos AT y el procedimiento es similar.

Wavecom hay con puerto serie y puerto USB, yo tengo el serie, para mi gusto mas versatil.

Si quieres abre un hilo con tu modem y con las pegas que encuentres que intentamos ayudarte pero funcionar te tiene que funcionar hasta con la terminal de windows.
http://www.developershome.com/sms/howToUseHyperTerminal.asp (http://www.developershome.com/sms/howToUseHyperTerminal.asp)
http://deeea.urv.cat/public/PROPOSTES/pub/pdf/804pub.pdf (http://deeea.urv.cat/public/PROPOSTES/pub/pdf/804pub.pdf)

Un saludo.

PD: EN casa tengo uno haciendo de pasarela o gateway SMS con kannel.
(http://img515.imageshack.us/img515/2537/redimensionamientodewav.jpg)


Title: Re: Leer llamada entrante movil
Post by: Sergegsx on Mar 26, 2013, 03:05 pm

SergeGsx

Yo llevo utilizando un wavecom desde hace un par de años por lo menos en un sistema de monitorizacion y no te puedo poner pegas, muy bien.

El siemens que tu tienes es practicamente lo mismo, todos se configuran por comandos AT y el procedimiento es similar.

Wavecom hay con puerto serie y puerto USB, yo tengo el serie, para mi gusto mas versatil.

Si quieres abre un hilo con tu modem y con las pegas que encuentres que intentamos ayudarte pero funcionar te tiene que funcionar hasta con la terminal de windows.
http://www.developershome.com/sms/howToUseHyperTerminal.asp (http://www.developershome.com/sms/howToUseHyperTerminal.asp)
http://deeea.urv.cat/public/PROPOSTES/pub/pdf/804pub.pdf (http://deeea.urv.cat/public/PROPOSTES/pub/pdf/804pub.pdf)

Un saludo.

PD: EN casa tengo uno haciendo de pasarela o gateway SMS con kannel.





Gracias Heke,
He probado todo con el Siemens y nada, he probado con el arduino, con el pc, con el MAX232 que lleva integrado, con uno externo. NADA.
Hoy desesperado estaba midiendo tensiones y he hecho un corto entre negativo y 3.3V y el regulador ha echado humo. Sera reparable pero para mi ha sido la señal de dejarlo a un lado ya que he perdido mucho tiempo intentando hacerlo funcionar sin exito.
Como se comenta por otros posts, es posible que el modem este dañado por meterle señal directa desde el arduino. Se ve que algunos TC35 aceptan conexión directa y otros no.
Voy a comprar el Wavecom y en el futuro si me sobra tiempo volvere a intentarlo.
Require de MAX232 externo el wavecom, verdad? Tengo unos modulos pequeños de MAX232 de ebay.
Seria:
Arduino <----> MAX232 <-----> wavecom
?

gracias heke
Title: Re: Leer llamada entrante movil
Post by: Heke on Mar 26, 2013, 03:11 pm
Correcto. Arduino <----> MAX232 <-----> wavecom

Que lastima tu modem.

Se me olvidaba este enlace:
http://www.arduino.cc/es_old/Tutoriales/SMS (http://www.arduino.cc/es_old/Tutoriales/SMS)

Pero primero de todo, cuando recibas tu modem trastealo desde el PC con un soft de terminal, yo empece con el termite (una terminal serie) y sin problemas.

Luego a la hora de conectarlo a arduino simplemente un cable null-modem y listo.

Ya nos contaras... y no tengas reparo en preguntar.

Un saludo.
Title: Re: Leer llamada entrante movil
Post by: Sergegsx on Mar 26, 2013, 03:17 pm
Gracias una vez mas.
Si una lastima de modem pero es que he invertido demasiadas horas en hacerlo funcionar y estoy casi seguro que esta dañado, aunque el led de estado parpadea. Lo que me hace pensar que no funciona es que inserto la SIM y lo enciendo y llamo al numero de movil y me dice que esta apagado. Al margen queda la comunicación con un arduino o PC, si no se esta registrando en la red es que algo va mal de primeras. 25 euros a la basura shit !

Tengo algo de experiencia con los comando AT ya que en su dia consegui conectar un movil nokia al arduino, tambien con muchisimos problemas y muchas horas. Ahora busco algo facil que sea conectar y listo por lo que pillare por ebay el wavecom. Son todos iguales,no? o hay que mirar algo a la hora de elegir?

Cuando lo conecte al pc le tengo que quitar el MAX232 verdad?
es decir...

Arduino <----> MAX232 <-----> wavecom

o

PC <-----> wavecom

Con 3 cables (rx,tx y ground) ya que no requiere handshake, correcto?

gracias heke
Title: Re: Leer llamada entrante movil
Post by: Heke on Mar 26, 2013, 03:26 pm
Asi es.

Un wavecom fastrack RS232 tiene, valga la redundancia, puerto RS232, el mismo que el PC. Con lo cual, va directo.

Las plaquitas esas de ebay que llevan un MAX232 Son para convertir las señales TTL de la UART del arduino (5v)  a señales compatibles con protocolo RS232 (+-12v).

Con lo cual directo al PC y cuando conectes al arduino, con la plaquita, ya que ademas, no tienes conector SUB-D mas que en la placa, no en el arduino.

A menos que tuvieras uno de los antiguos:
(http://starduino.files.wordpress.com/2011/09/starduino_gsm_modem.jpg)


De todas formas, no es solo insertar la sim, primero compruebas que esta OK  (AT), luego le cargas el PIN (AT+CPIN=1234 o el pin que tengas...) y lo compruebas (AT+CREG) y terminas comprobando que se ha registrado en red y puedes medir su señal de antena AT+CSQ

Lo he puesto a ojo igual me he equivocado en algun comando.

Luego te hago un volcado del mio...

Title: Re: Leer llamada entrante movil
Post by: Sergegsx on Mar 26, 2013, 04:23 pm

Las plaquitas esas de ebay que llevan un MAX232 Son para convertir las señales TTL de la UART del arduino (5v)  a señales compatibles con protocolo RS232 (+-12v).


Esto me deja una duda. Mi placa MAX232 se alimenta por usb, es decir, 5V. Entonces como llega a los +-12V ?
(http://i.ebayimg.com/t/RS232-To-TTL-Converter-Module-COM-Serial-Board-MAX232CPE-Transfer-Chip-w-Cable-/00/s/NjAwWDYwMA==/$(KGrHqV,!o8FBk(w(HlYBQdl9Qsnsg~~60_12.JPG)
http://www.ebay.com/itm/RS232-To-TTL-Converter-Module-COM-Serial-Board-MAX232CPE-Transfer-Chip-w-Cable-/400333649998?pt=LH_DefaultDomain_0&hash=item5d35beb84e

Antes haciendo pruebas medi y el arduino daba 5V, pero el Siemens TC35 daba 10V.

por lo que yo entiendo...

Arduino (TTL del UART: 5V) <----> MAX232 (5V a 12V) <-----> (+-12V RS232) Siemens TC35 (pines directos)
Arduino (TTL del UART: 5V) <----> MAX232 (5V a 12V) <-----> (+-12V RS232) wavecom

o

PC (+-12V RS232) <-----> (+-12V RS232) wavecom
Title: Re: Leer llamada entrante movil
Post by: Heke on Mar 26, 2013, 05:09 pm
Mira el esquema interno del MAX232:
(http://www.maximintegrated.com/images/qv/1798.gif)

Como veras tiene un convertidor para subir la tension.

Aunque te he dicho +-12v para RS232, te puedes encontrar un margen bastante amplio, si la memoria no me falla creo que podia llegar desde +-5v  a +-15 inclusive, aunque no es lo normal.

Los 10v que has medido del tuyo, obviamente son señales RS232.

Esto es correcto:
Quote

Antes haciendo pruebas medi y el arduino daba 5V, pero el Siemens TC35 daba 10V.

por lo que yo entiendo...

Arduino (TTL del UART: 5V) <----> MAX232 (5V a 12V) <-----> (+-12V RS232) Siemens TC35 (pines directos)
Arduino (TTL del UART: 5V) <----> MAX232 (5V a 12V) <-----> (+-12V RS232) wavecom

o

PC (+-12V RS232) <-----> (+-12V RS232) wavecom
PC (+-12V RS232) <-----> (+-12V RS232) Siemens TC35


Title: Re: Leer llamada entrante movil
Post by: dystrom on Mar 27, 2013, 12:38 pm
Hola Sergegsx, aunque pongas las SIM no quiere decir que funcione has de poner los comandos AT para introducir el PIN, otra cosa que puedes hacer es poner la SIM en un movil y quitar la seguridad del PIN asi no te hara falta comunicar para nada el PC con el modem para ver si funciona y podras probarlo sin complicaciones. A mi el proyecto que hice me funciona perfectamente y sin problemas, estoy muy contento con el funcionamiento del Wavecom.
Un problema que me encontre es que depende del movil que llamara la trama no era 100% igual, por ejemplo si llamaba desde mi HTC el numero entrante empezaba por 0034 y si lo hacia desde el samsung empezaba por 34, esto es un problema ya que si lees la trama desde una posicion determinada por ti el numero esta desplazado 2 posiciones.Lo solucione leyendo 9 cifras posteriores al 34.
Title: Re: Leer llamada entrante movil
Post by: Sergegsx on Mar 27, 2013, 02:40 pm

Hola Sergegsx, aunque pongas las SIM no quiere decir que funcione has de poner los comandos AT para introducir el PIN, otra cosa que puedes hacer es poner la SIM en un movil y quitar la seguridad del PIN asi no te hara falta comunicar para nada el PC con el modem para ver si funciona y podras probarlo sin complicaciones. A mi el proyecto que hice me funciona perfectamente y sin problemas, estoy muy contento con el funcionamiento del Wavecom.
Un problema que me encontre es que depende del movil que llamara la trama no era 100% igual, por ejemplo si llamaba desde mi HTC el numero entrante empezaba por 0034 y si lo hacia desde el samsung empezaba por 34, esto es un problema ya que si lees la trama desde una posicion determinada por ti el numero esta desplazado 2 posiciones.Lo solucione leyendo 9 cifras posteriores al 34.


Hola Dystrom, en mi caso intentaba hacer funcionar un Siemens TC35, la tarjeta sim no tenia PIN, por eso esperaba que con alimentar y resetear fuese suficiente para que se registrase en la red.

Voy a pedir el Wavecom porque claramente la gente esta mas contento con este que con el Siemens.

muchas gracias