Autor Tema: Recibir un SMS desde un ceular con un pic para controlar dispositivos  (Leído 27623 veces)

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

Desconectado 1Roland1

  • PIC10
  • *
  • Mensajes: 48
Recibir un SMS desde un ceular con un pic para controlar dispositivos
« en: 29 de Diciembre de 2010, 17:47:53 »
Buenas tardes compañeritos.

Estoy realizando un proyecto que consiste en counicar un pic con un nokia 3220 para por medio de sms controlar dispositivos. La comunicacion entre el pic y el celular lo he realizado sin problema puedo generar llamadas o enviar sms desde el pic por medio de este celular y con eso realizar varias aplicaciones. El problema que se me presenta es a la hora de tratar de leer un sms con el pic, estoy programando con ccs pcwhd por eso recurro a ustedes para ver si me pueden orientar con este asunto. Por ejemplo si yo mando un sms con la palabra "ENCENDER"quiero que el pic lea esta palabra y realice la acción del caso.

Saludos Cordiales.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #1 en: 29 de Diciembre de 2010, 18:34:52 »
Hola.

AT-PDU? AT-TEXTO? FBus? ....

Saludos
El papel lo aguanta todo

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #2 en: 29 de Diciembre de 2010, 20:49:48 »
Hola.

AT-PDU? AT-TEXTO? FBus? ....

Saludos
Perdonad el offtopic... MLO,sabes de todo jejeje
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #3 en: 29 de Diciembre de 2010, 21:10:19 »
Casi todo lo he aprendido aca  :lol:

El papel lo aguanta todo

Desconectado 1Roland1

  • PIC10
  • *
  • Mensajes: 48
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #4 en: 05 de Enero de 2011, 20:34:30 »
Hola.

AT-PDU? AT-TEXTO? FBus? ....

Saludos

Hola compañeros

Deseandoles un Feliz año 2011 y que todos sus proyectos se realicen.
Hola MLO

Estoy usando la comunicacion con el celular por comandos AT en modo de texto, los comandos que se le envian al cel para leer los sms los tengo claro. Mi problema es a la hora de recibir la cadena de caracteres con el pic programando en ccs. Antes de meterme a leer los sms del cel quiero recibir la palabra RING que transmite el cel al realizarle una llamada para de este modo saber si recibe normalmente el pic, pero no consigo recibir esta palabra, no se si me pueden ayudar.

int ring[]="RING";
char string[5]=" ";

if(kbhit()){
gets(string);
]
if (strcmp(string,ring)==0){
output_high(pin_B5);
}

mas o menos ese es el codigo que se utiliza para hacer esto, en proteus tecleando caracter por caracter y al final el CR recibe normal y funciona perfecto, el problema viene cuando copio la palabra RING y lo pego en la ventana del virtual terminal y rapidamente le doy enter alli no reconoce la palabra y como que se cuelga el pic.

Solicito sugerencias.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #5 en: 07 de Enero de 2011, 14:59:57 »
Hola.

El string RING es para identificar la llamada entrante, para el SMS entrante debes usar otro comando.

Usa mejor la interrupción serial para recibir los strings, yo nunca he usado la función gets(), si no la función getc() y recibo byte a byte y lo almaceno en un buffer (lento pero seguro  :lol: )

Saludos
El papel lo aguanta todo

Desconectado 1Roland1

  • PIC10
  • *
  • Mensajes: 48
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #6 en: 07 de Enero de 2011, 18:33:55 »
Hola.

El string RING es para identificar la llamada entrante, para el SMS entrante debes usar otro comando.

Usa mejor la interrupción serial para recibir los strings, yo nunca he usado la función gets(), si no la función getc() y recibo byte a byte y lo almaceno en un buffer (lento pero seguro  :lol: )

Saludos


Hola MLO

Gracias por tu respuesta.

Si, lo que hago con RING es solo para  probar la recepcion en el pic antes de empezar a trabajar con los sms, quiero que cuando reciba esta palabra se prenda un led y asi comprobar que la recepcion esta perfecta, hecho esto podré empezar a trabajar con los comandos.
Te cuento que he probado recibir la cadena con getc() pero como que se me bloquea el pic. Si tu podrías con un ejemplo explicarme como hacer esto te agradeceria muchisimo ya que esto resulto un dolor de cabeza, no pense que iba a tener problemas con esto. Antes programaba en Basic y recientemente migre a este lenguaje porque es mucho mejor mas eficiente.

Saludos.


Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #7 en: 07 de Enero de 2011, 22:37:02 »
Hola.

Sería algo así:
Código: C#
  1. #int_RDA
  2. void Serial_isr(void)
  3. {    
  4.         DatoRx=0;
  5.         if(kbhit())
  6.         {
  7.                 Bufer[ContBufer++]=getc();
  8.         }
  9. }

A medida que llegan los bytes se van almacenando en Bufer.

Saludos
El papel lo aguanta todo

Desconectado 1Roland1

  • PIC10
  • *
  • Mensajes: 48
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #8 en: 08 de Enero de 2011, 00:07:43 »
Gracias MLO.

Segun tu consejo lo hice asi:

Algo que este mal ? Si Puedes hacer alguna modificacion al codigo te agradeceria, ya lo compile no da errores y lo voy a simular en proteus

Saludos
« Última modificación: 21 de Enero de 2011, 21:30:56 por 1Roland1 »

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #9 en: 08 de Enero de 2011, 01:21:54 »
Hola.

Hay que tener en cuenta que a cada nuevo envío, hay que inicializar el contador i. El resto parece correcto.

Saludos
El papel lo aguanta todo

Desconectado 1Roland1

  • PIC10
  • *
  • Mensajes: 48
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #10 en: 08 de Enero de 2011, 11:57:03 »
Hola MLO

Gracias por tus respuestas.

Si la verdad no habia caido en cuenta lo del contador i, ya corregi eso y en la simulacion funciona perfecto. Ahora lo voy a probar ya en la practica con el celular. Como en este caso el cel solo va a transmitir esa palabra cuando le realicen una llamada funcionaria sin problema. Así quedó el codigo final:

Ahora en pruebas anteriores note que el cel en ASCII tx la palabra RING al hacerle una llamada, pero si cambio el terminal para visualizar en formato HEX me trnsmite 0D 0A 52 49 4E 47 0D 0A 00 00 con lo que creo tendria que filtrar y dejar solo 52 49 4E 47 que es en si la palabra RING.
Bueno voy a hacer las pruebas y muchas gracias por tu ayuda. Te contare como salieron las pruebas.

Saludos.
« Última modificación: 21 de Enero de 2011, 21:30:25 por 1Roland1 »

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #11 en: 08 de Enero de 2011, 22:29:18 »
Hola.

Lo que te esta enviando el módem o el celular son los ASCII \r y \n, ellos también se van a guardar en el bufer. La idea sería cambiar la rutina de la interrupción para que solo guarde los bytes diferentes a \r y \n, se podría hacer con un if.

Saludos

El papel lo aguanta todo

Desconectado 1Roland1

  • PIC10
  • *
  • Mensajes: 48
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #12 en: 09 de Enero de 2011, 12:12:03 »
Hola.

Lo que te esta enviando el módem o el celular son los ASCII \r y \n, ellos también se van a guardar en el bufer. La idea sería cambiar la rutina de la interrupción para que solo guarde los bytes diferentes a \r y \n, se podría hacer con un if.

Saludos


Hola MLO

Gracias por tus respuestas.

Si la verdad había pensado hacer algo asi para filtrar esta palabra, todavia no hago las pruebas por falta de tiempo. Cuando las haga te contare como me fue.

Gracias MLO por tu ayuda.

Saludos

Desconectado 1Roland1

  • PIC10
  • *
  • Mensajes: 48
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #13 en: 10 de Enero de 2011, 00:08:51 »
Hola MLO

Te molesto de nuevo.

Para consultarte cual es tu opinion del siguiente codigo para discriminar los caracteres que no necesito y filtrar en este caso la palabra RING. LO pienso hacer así, tu que opinas... Te rogaría que modifiques el código si hay alguna observacion:

Gracias MLO
« Última modificación: 21 de Enero de 2011, 21:31:28 por 1Roland1 »

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Recibir un SMS desde un ceular con un pic para controlar dispositivos
« Respuesta #14 en: 10 de Enero de 2011, 11:30:24 »
Hola.

Pues, yo lo haría con un if
Código: C#
  1. #int_RDA
  2. void Serial_isr(void)
  3. {    
  4.         c=0;
  5.         if(kbhit())
  6.         {
  7.         c=getc();
  8.                 if(c!='\r' && c!='\n')
  9.                         buffer[i++] = c;
  10.         }
  11. }

Saludos


El papel lo aguanta todo