Uso de un celular GSM con PIC o PC

Que malo que nadie lee con detenimiento lo que se postea, en la página anterior está el archivo que de nuevo adjunto. Son los comandos AT y una serie de modelos Sony ericsson que son compatibles con estos.
Saludos
 

Adjuntos

  • dg_at_2006_09_r12a_197.rar
    1,013.2 KB · Visitas: 304
Hola risy como estás , hasta ahora he aprendido lo siguiente:

- Modelo T237 es casi igual al T290 no hay diferencia aparente. (Tengo T237).
- Se como podría llegar a decodificar una trama PDU pero es muy complejo de implementar en el PIC.
- Se como se configura el telefono en modo texto y enviar los mensajes en modo texto.
- Tambien como llamar mediante comandos AT.
- Tengo el manual de los comandos AT del T290.

Lo que no entiendo como se podría hacer:

- Como recibir un mensaje sms desde el telefono y guardarlo en la memoria del PIC.
- como comparar el mensaje guardado en el PIC con una constante.
- Que es el KMTR1 del que hablas ?

Si tienes la rutina de recepción de mensajes te estaría muy agradecido , sino seguiré intentando.

PD: Esta tarde armo todo el hardware de conexión del teléfono a la PC y me fijo si está en funcionamiento el puerto serie.

Cualquier cosa hago más preguntas.
 
Armé el cable de conexión en conjunto con este circuito: http://www.geocities.com/adoleon2000/CableMax232FuenteExt.htm pero no pude comunicarme con la PC. Enseguida me fije en las conexiones y todas estaban bien, incluso las del conector del telefono.

Mi problema es que configuro el COM1 como ustedes plantearon anteriormente y cuando trato de escribir el comando AT y darle enter no me deja, se traba es decir no puedo escribir nada y se traba hyperterminal.

La verdad no se que hacer....
 
Hola Moyano, yo no tengo experimentado con los celulares aún, pero si con el hyperterminal.
Te comento que es importante a la hora de realizar las conexiones tomar en cuenta los números impresos en el costado del conector DB9, ya sea macho o hembra porque del uno al otro cambian las posiciones pero no los números, es decir, que siempre el 1 estará conectado al otro 1 y así sucesivamente.
Con el circuito que posteas aparentemente no debe darte problemas, una prueba rápida es "puentear" los cables TX y RX que van al Sony y al escribir en el hyperterminal deben aparecer los caracteres escritos.
si esto no sucede significa que algo esta mal en el circuito, a su vez puedes probar "puenteando" los pines 2 y 3 del conector hembra DB9 y debes ver ahora si los caracteres escritos desde el hyperterminal. Si ni aún así los ves, puede ser que el cable esté dañado, que el puerto COM esté deshabilitado o que esté dañado( que es muy difícil ).
Cuando abres hyperterminal, te pide que le pongas nombre, luego las velocidades y control de flujo que debe estar en "ninguno" o "deshabilitado". En el campo de la velocidad puedes escojer entre varias prefijadas, por "default" tiene 9600 que creo es idéntica para el Cel.
Una vez hecho esto te abre la ventana y si no tienes conectado algo en el puerto no debes visualizar lo que escribes. Conecta el Cable y puentea las terminales 2 y 3 y debes ver lo que escribes, sino checa el cable. Luego puentea las terminales TX y RX a la salida del MAX y debe suceder lo mismo, si no significa que algo no esta bien, puede ser la alimentación o incluso los capacitores de la sección del BOOST, que si quieres puedes probar con valores más bajos como de 1uF o 100nF( = 0.1uF ). Estos capacitores son los que van en los pines 1 y 3, 4 y 5, los otros puedes dejarlos con ese valor.
Ojalá y esto te sirva de algo
Saludos
 
listo mi hermano mira como te dije sino te funcionan los comandos at mediante el hiperterminal y estas seguro de la conexion y seguiste los pasos que puese para comprobar el cable, y el max y si todo esta bien es el cell hay unos telefonos que por antiguos no funcionan la comunicacion serial aunque todas sus otras funciones sirvan cambia de telefono busca uno que haya tenido un solo dueño y nunca se lo haya reparado o abierto esos si funcionan yo gaste en 5 telefonos antes de encontrar uno que me funcione asi que pilas.
lo que dijiste del t237 es cierto no hay problema
olvidate de las trammas no te confundas de gana
y si tengo todo esa rutina para detectar los mensajes y te la voy a enviar
lo del KMTR1 es un ejemplo en mi tesis este es un comando que lo escribo en el cell envio al numero de mi tesis y el pic lo extrae y lo decodifica y sabe que tiene que abrir una electrovalvula si lo de decodifica es por que yo utilizo 6 comandos como ese y el pic tiene que decodificarlos para saber que hacer.

tranquilo yo te voy a ayudar pero quiero que primero estes seguro de como funiconan los at y la comunicacion serial para que en posibles errores mas adelante puedas saber cual es y no estes perdido.
verifica yo puse unos pasos para saber si esta bien tu cable del db9 si esta bien el max etc, para que descartes posibles daños y si todo esta bien y no te deja escribir es el cell, recuerda que los paraetros de comunicacion son los predeterminados en el hiper si paso este punto y seguimos como lo dije tenemos que ir paso a paso, y no te preocupes yo tengo todo lo que necesitas y tranquilo te voy a ayudar pero en el orden que te indico
 
Gracias rizy, he querido entrar a la programacion de celulares pero aún no me decido. Seguiré el post a ver que sucede y si me convence le entro, tengo un K750i que se le tronó la pantalla y lo tengo como pisapapeles por el momento, tengo el cable de datos y quiero probar con el a ver que sucede.
Saludos
 
Listo esta noche posteo mis resultados..

PD: Después de quedarme hasta las 6 de la mañana tratando de ver cual era el problema resulta que habia conectado mal el telefono al MAX232 pero lo voy a conectar de vuelta y comento mis resultados.
 
Funcionooooooooooooooooooooooo ! El celular ya me acepta los comandos AT y los probé por hyperterminal. Ahora mi próximo paso es poder llamar y mandar SMS desde el teléfono celular usando los comandos AT.
 
Bueno hasta ahora todo bien pude mandar SMS y llamar mediante hyperterminal.

Me faltaría saber como puedo hacer para recibir SMS en modo texto con el T237 ya que el mismo soporta este modo.
 
que bien entonces podemos seguir avanzando como te fijaste puedes manejar todas las funciones del cell con los comandos at. si ya enviaste mensajes e hisiste llamadas estas listo ahora ejecuta los at para leer un mensaje nuevo .
en tu proyecto necesitas leer mensajes nuevos y borrarlos cuando ya los hayas leido para que no te sature la memoria del telefono.
ahora prueba esto
at
at+cmgf=1
at+cpms="me"
at+cmgl="rec unread"
todo esto para leer un mensaje nuevo que se encuentra en la memoria interna del cell utiliza esto y observa como te extrae estos comandos el mensaje y cuantos caracteres te llega si el at+cpms¨"me" te sirve para pasar a la memoria interna del cell "me" si los emnsajes se guaradn en la sim seria "sm" pero bueno el cmgl te isrve para leer memsajes los que pueden seer leidos no leidos enviados y no enviados especificamente es rec read, rec unread, sto sent sto unset.
a ti te sirve el rec unread que es para leer solo nuevos si quieres que te muestre todos los anteriores pon "all" y veras lo que sucede y todos estos comandos son los que tienes que enivarlos mediante el pic pero bueno, ahora prueba esto y ya passamos a la programacion del pic
 
Listo ya mandé un mensaje al T237 y lo pude leer con el comando at+cmgl="rec unread".

Ahora con el comando at+cmgl="rec read".


Quería saber si cuando yo trate de recibir el texto con el microcontrolador va a recibir el numero de telefono de quien lo envió, la fecha y la hora ? o solo voy a recibir la trama con el texto del mensaje ?

 
Voy a comenzar con la programación del microcontrolador:

Pero necesito sacarme una duda:

Pongamos el caso de que cuando me envíen un mensaje y el celular solo envie el texto del SMS, entonces el micro tendrá una interrupción por #int_rda, hasta ahí todo entendible.

Ahora pongamosle que el texto diga RELE1 ON.

como tendría que hacer para comparar el texto con una cadena de texto previamente guardada en el telefono ?
 
Lo que se lee en el hyperterminal es exactamente igual a lo que PIC o microncontrolador leerá. Y creo que esos números son Status del Cel, de hecho el primero supongo será el de mensajes ya que es el que cambia con la otra pantalla.
Saludos.
PD La manera más comoda de hacer lo que quieres es por lenguaje "C", hay una opción que creo es "strcmp" que te sirve para compara dos cadenas de caracteres y te devuelve un TRUE o FALSE. Igual la trama que envía el CEL antes del mensaje posee la misma longitud, así que si no pretendes usarla puedes contar solo el numero de caracteres y guardar a partir de cierto conteo.
Se que no me he metido en esto como ustedes, pero se de programación y yo así lo haría
Contesto solo por hacer "gente" y por tratar de ayudar.
Saludos
 
Bueno con los consejos que me dieron voy a empezar a hacer el código para el PIC empezando con lo más básico y luego de a poco le voy a ir añadiendo funciones. El resultado final me gustaría que fuera una librería para poder comunicarnos con el T237 , T290 y todos los teléfonos que se le parezcan.
 
Empezé con lo más básico y no funcionó:
:( :( :( :( :(

Este es mi código:

Código:
// Programa de control de dispositivos mediante SMS Prueba N°1. //
// Programador: Moyano Jonathan.                                //
// Fecha: 29/07/09                                              //
//////////////////////////////////////////////////////////////////

#include <16F877A.h>            // Definición de registros internos del microcontrolador.
#FUSES NOWDT                    // No utilizaremos el Watch Dog.
#FUSES HS                       // Utilizaremos un cristal de alta velocidad.
#FUSES PUT                      // Reset de power up - Activado.
#FUSES NOPROTECT                // No hay protección contra lecturas.
#FUSES NODEBUG                  // No se programa código para debug.
#FUSES NOBROWNOUT               // No se activa el reset por Brownout.
#FUSES NOLVP                    // No se activa el modo de programación a bajo voltaje.
#FUSES NOCPD                    // No se proteje a la eeprom contra escritura.
#FUSES NOWRT                    // No hay protección contra escritura.


#use delay(clock=4000000)      // Utilizamos una cristal de 20Mhz.
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) // Configura la USART.

void main()
{
delay_ms(5000); //espera 5 segundos
printf("AT+CMGF=1\r\n"); //configura modo texto
delay_ms(500);
printf("AT+CMGS=\"02616943559\"\r\n"); //0123456789 es el nro del destinatario.
delay_ms(500); //del celular al que se envia el sms
printf("Esto es una prueba");putc(26); //ascii(26)=(ctrl+z) envia el mensaje
}

y el circuito que estoy utilizando para comunicarme con el pic:



Espero me puedan brindar algún tipo de ayuda.
 
De antemano este diagrama no me convence, tu puedes conectar directo las terminales sin problema al PIC y al tel sin este armatoste.
Si del voltaje dependiera te comento que el MAX232 saca 5V a la salida en el TX y ya habría ocasionado algún problema en el Cel.
Prueba directo a ver que sucede, debe trabajar correctamente.
Igual sería bueno implementar una rutina "getc()" para que leas el "OK" del Cel y saber que estás transmitiendo correctamente.
Saludos.
Como comentario adicional observo que para el delay y el usart tienes puesto clock=400000, pero en el comentario mencionas a uno de 20Mhz, esta bien?
 
Atrás
Arriba