# Uso de un celular GSM con PIC o PC



## darkbits (Ago 3, 2006)

please estoy haciendo mi tesis y quiero saber como me puedo comunicar una pc a un celular Nokia enviando la trama PC o leer por visual basic la trama o delphi o hay otra forma si alguien hizo esta tesis please ayudenme o tienen otra idea es   control de llamadas de un celular  para una centralita.
darkbits


----------



## Chico3001 (Ago 4, 2006)

Hay empresas como Wavecom o Multitech que hacen los celulares inalambricos, estos los conectas a tu circuito y les envias señales RS232 para que comienzes a transmitir.... tambien necesitas ponerles un SIM para que puedan obtener un numero telefonico...

Saludos...


----------



## darkbits (Ago 6, 2006)

lo q e interesa es mas es realizar un tarifador q se conecte a un harware  y del harw a un adaptador telefonico. tambien vi q algunos colombianos hicieron base celulares o conversores de celular pero no encontre información

ayuda please..


----------



## Chico3001 (Ago 6, 2006)

Tonz multitech es la solucion... tienen unos modulitos para hacer modems convencionales o incluso modems GSM


Modems convencionales:
http://www.multitech.com/PRODUCTS/Families/RJModem/
http://www.multitech.com/PRODUCTS/Families/SocketModem/


Modems GSM:
http://www.multitech.com/PRODUCTS/Families/SocketModemGPRS/

Salu2


----------



## darkbits (Ago 6, 2006)

Chico3001
una consulta please tu hiciste este proyecto??? si tienes alguna información please..  para mi es nuevo   con este SocketModem GPRS de ahi recien tengo q sdiseñar???? q paso sigue?  si conoces a alguien te hizo su tesis de esta mismo tema.  te daria las gracias.

dark


----------



## Chico3001 (Ago 6, 2006)

El uso es muy sencillo, basicamente lo conectas a la alimentacion y las señales, para el GSM le conectas la antena y el SIM y le envias comandos serialmente para que se conecte a la red, marque al numero telefonico y envie o reciba SMS o llamadas telefonicas o se conecte a internet

No los he usado en proyectos pero si conozco su funcionamiento por que nosotros somos distribuidores de esas marcas, lo que puedo hacer es conseguirte la documentacion tecnica para que veas como se usan, pero viene en ingles porque viene directamente del fabricante

Mientras tanto puedes bajarte la hoja de datos de esta direccion:
http://www.multitech.com/DOCUMENTS/Collateral/data_sheets/2038.pdf
http://www.multitech.com/DOCUMENTS/Collateral/brochures/2035.pdf

Salu2


----------



## darkbits (Ago 6, 2006)

gracias por la inofrmacione eh lo q quiero sabes el el precio para GSM  cuanto me sale 1 unidad par ahcer la prueba y si pueden darme una mano con el funcionamientos : mi idea principal es  q mediante un adaptador telefonico pueda hacer llamadas  por medio de este circuito q me ofreces dame un mail para estar en contacto con los precios please..

gracias 

dark


----------



## Chico3001 (Ago 6, 2006)

Nosotros vendemos el puro modulo GSM de multitech sin antena ni cables alrededor de 150 usd  al menudeo puesto en EU, obvio este precio cambia dependiendo del volumen y el pais de destino, si gustas echame un correo a mi trabajo, te lo paso por mensaje privado solo para evitar el spam lo mas posible...


----------



## Betomelo (Ago 15, 2006)

Hola, si bien yo he trabajado con los modems de multitech, no necesitas un dispositivo especial para esto, la gran mayoria de telefonos celulares tienen interfaz AT, como la de un modem estandar, con lo que puedes marcar, colgar, leer los datos de la sim, apagar el telefono, etc, yo tengo un siemens a56, el cual le construi un interfaz hacia el pc, (con un cable de un manos libres dañado y un max232) aunque en internet hay bastantes esquemas del circuito. Una vez tienes el telefono conectado al puerto serial de tu pc, puedes operarlo remotamente desde ahi, y hacer todo lo que buscas.


----------



## asalmes (Ago 24, 2006)

Soy nuevo en esta pagina, crees tu si puedes explicarme como puedo marcar un telefono desde un nextel o celular desde una pc, programo en visual basic.

Gracias
Alex Salazar
Lima- Peru


----------



## Betomelo (Ago 24, 2006)

Hola. Lo principal es conocer el modelo y referencia exacta del celular que vas a utilizar. Creo que la gran mayoria de telefonos GSM tienen una interfaz AT muy similar al la de un modem telefonico. 

- Lo primero que debes hacer es averguar la referencia exacta del telefono celular, segudo a esto buscar un cable de conexion entre el telefono y el puerto serial del computador. Estos cables de datos no son estandar, varian dependiendo del modelo y la marca

- Una vez que se obtiene el cable y/o el plano para construirlo, se deben realizar pruebas de comandos AT mediante un terminal.

- Una vez comprobado que el telefono reacciona como queremos a los comandos AT que necesitamos, se procede a programar, en el lenguaje de preferencia, enviando y recibiendo datos por el puerto serial.

Mario A:


----------



## darkbits (Sep 1, 2006)

tan caro ?? un socket....  mil veces prefiero comprar el celular  mas economico GSM q sale 15 dolares y ya se como trabaja por Fbusss  como lo estoy haciendo?????   

no entiendo porq tan caro  si solo es socket  y tambien tiene comandos AT como los demas..  celulares... 

 bueno si tienes otra solucion mas economica me avisas please  si no no hay problema  voya seguir busando o seguir trabajando por Fbus  sus comandos AT

gracias,


----------



## AG-1 (Sep 4, 2006)

Avisador de Alarma/ Telemando GSM con PIC 16F84A y 16F628A. Existe una versión freware que fué publicada en revista (solo Avisador, para algunos modelos y con limitaciones) . 

Además el circuito impreso y resto de componentes(a excepción del PIC) te sirven para ampliar el circuito desde la versión más sencilla(Freware) hasta la más compleja(Alarma-Telemando). 



http://perso.wanadoo.es/luism..serrano/AlarmaGSM/AlarmaGSM.htm


----------



## maunix (Sep 5, 2006)

darkbits dijo:
			
		

> tan caro ?? un socket....  mil veces prefiero comprar el celular  mas economico GSM q sale 15 dolares y ya se como trabaja por Fbusss  como lo estoy haciendo?????
> 
> no entiendo porq tan caro  si solo es socket  y tambien tiene comandos AT como los demas..  celulares...
> 
> ...



Los modems GSM son caros o al menos al precio de lo que tu pretendes.  NO he visto ninguno más económico que u$s 110 y a esos encima hay que integrarlos en un PCB.

Por 15 u$s es cierto que puedes conseguir un celular pero es porque están subvencionados por las compañías proveedoras de telefonía celular o bien porque algun usuario se quiera deshacer de su 'teléfono viejo' para adquirir alguno más moderno con cámara, etc.

Si tuvieras que comprarte un celular que no esté subvencionado, por ejemplo en un comercio, pagarías de seguro u$s 100 o +.


Saludos


----------



## pinda (Sep 14, 2006)

hola me encantaria si alguien me puede ayudar a comunicarme con los sony ericsson. muchas gracias.


----------



## maunix (Sep 14, 2006)

pinda dijo:
			
		

> hola me encantaria si alguien me puede ayudar a comunicarme con los sony ericsson. muchas gracias.



*pinda,* sería interesante que nos digas qué quieres hacer con un sony ericsson.  Además sony ericsson ha fabricado una gran y amplificadora gama de modems y de celulares.

¿Podrías especificar más?


----------



## PHLAKO (Sep 14, 2006)

hola foreros, mi experiencia con los celulares es en mandar comandos al telefono; esto es conocer primero el telefono y loc comando que soportan, en mi caso lo hice con un SONY ericson T200, y los comandos AT para este equipo son reducidos, compre el adaptador para el computador via puerto serial, asi que conociendo los comandos AT, puedes mandas codigos ASCII desde hyper terminal, una vez que esto lo tienes sabido le envias los mismos codigos desde el PIC, por tiempo no o hice alreves(desde el telefono al PIC) pero debe ser lo mismo, sugiero que busque los comandoa AT para tu telefono y verifique su funcionamiento con hyepr terminal y despues lo hagas con la PIC 

si encuentras un GPRS barato mejor lo hacer con eso 

chaos


----------



## pinda (Sep 15, 2006)

hola gente agradezco el interes. lo que yo quiero hacer es mandar sms con el pic o la pc. no puedo lograr la comunicaion. le mando en ascii desde el hiperterminal. pero no responde nada. no se si esta bien la comunicacion o si no soporta este formato. sera que tengo que mandarlo en formato pdu. actualmente estoy probando con el sony ericsson t226 o t 106.
cualquier ayuda sobre la comunicacion se las agradezco.  

gracias


----------



## PHLAKO (Sep 15, 2006)

ese celular es muy parecido al que ocupe yo, busca los comandoa AT en google y con eso prueba, deberia funcionar de inmediato 

chaos


----------



## pinda (Sep 17, 2006)

ya probe de mandarle los comandos con la compu. pero no me responde. alguien sabe como es el formato pdu. muchas gracias a todos. saludos ignacio


----------



## maunix (Sep 18, 2006)

pinda dijo:
			
		

> ya probe de mandarle los comandos con la compu. pero no me responde. alguien sabe como es el formato pdu. muchas gracias a todos. saludos ignacio



El formato PDU es una forma de codificar la forma en que enviarás un mensaje SMS pero no cambia la forma en que te comunicas con el MODEM que siempre será mediante comandos AT.

Si no te responde el modem puede ser porque no le estes mandando los comandos adecuados o bien que no estés activando el RTS o DTR del lado de la PC hacia el Modem.

Revisa la conexión y el baudeaje.

Saludos


----------



## carlos082 (Sep 19, 2006)

Yo tambien necesto ayuda con el celular T106 de sony ericsson...no logro que responda algo....¿alguien sabe o tiene información de los comandos AT para este modelo?

Gracias y Saludos


----------



## jospylos (Sep 19, 2006)

Betomelo dijo:
			
		

> Hola, si bien yo he trabajado con los modems de multitech, no necesitas un dispositivo especial para esto, la gran mayoria de telefonos celulares tienen interfaz AT, como la de un modem estandar, con lo que puedes marcar, colgar, leer los datos de la sim, apagar el telefono, etc, yo tengo un siemens a56, el cual le construi un interfaz hacia el pc, (con un cable de un manos libres dañado y un max232) aunque en internet hay bastantes esquemas del circuito. Una vez tienes el telefono conectado al puerto serial de tu pc, puedes operarlo remotamente desde ahi, y hacer todo lo que buscas.



SALUDOS

ESTOY INVESTIGANDO , LA FORMA DE CONTROLAR EL CELULAR POR LA PC, COMO REALIZAR LA MARCACION DESDE LA PC, LO DE LOS CABLES ENTIENDO Y PUEDO REALIZAR LA CONEXION SERIAL PERO , MI PROBLEMA ES EL SOFTWARE PARA CONTROLARLO, EN QUE PROGRAMA HAS REALIZADO TU SOFTWARE , YO ESTAB PENSANDO EN VISUAL BASIC


----------



## maunix (Sep 19, 2006)

jospylos dijo:
			
		

> Betomelo dijo:
> 
> 
> 
> ...



Yo trabajo en Borland Delphi, pero cualquier lenguaje o IDE que te permita accesar fácilemente al puerto serie te permitirá establecer la comunicación con el modem y a partir de ella, tu aplicación.

Saludos


----------



## jospylos (Sep 19, 2006)

PHLAKO dijo:
			
		

> hola foreros, mi experiencia con los celulares es en mandar comandos al telefono; esto es conocer primero el telefono y loc comando que soportan, en mi caso lo hice con un SONY ericson T200, y los comandos AT para este equipo son reducidos, compre el adaptador para el computador via puerto serial, asi que conociendo los comandos AT, puedes mandas codigos ASCII desde hyper terminal, una vez que esto lo tienes sabido le envias los mismos codigos desde el PIC, por tiempo no o hice alreves(desde el telefono al PIC) pero debe ser lo mismo, sugiero que busque los comandoa AT para tu telefono y verifique su funcionamiento con hyepr terminal y despues lo hagas con la PIC
> 
> si encuentras un GPRS barato mejor lo hacer con eso
> 
> chaos



SALUDOS AMIGO
UNA VEZ QUE REALIZO LA CONEXION VIA SERIAL ENTRE MI PC Y EL CELULAR COMO ES QUE EMPLEO EL HYPERTERMINAL PARA ENVIAR LOS COMANDOS AT , ABRI EL HYPERTERMINAL PERO COMO LOS ENVI, PORFAVOR AYUDAME PLEASE..GRACIAS


----------



## maunix (Sep 19, 2006)

jospylos dijo:
			
		

> PHLAKO dijo:
> 
> 
> 
> ...



Fíjate el formato del siguiente comando

AT+CMGS

El resto de la sintaxis depende de cómo esté configurado tu módem, si PDU o modo texto.

Tendrás que leer un poco del tema para entender qué significa cada comando, sino estarás más que perdido y requerirás ayuda constantemente

Saludos


----------



## jospylos (Sep 20, 2006)

SI TIENES RAZON, JUSTO ESTOY INVESTOGANDO HACERCA DEL FORMATO Y SINTAXIS DE LOS COMNADOS AT, EMPEZARE HA PROBAR CON LA CONEXION HECHA TE COMUNICARE MIS AVANCES, GRACIAS POR LA AYUDA , ME SEGUIRE CONTACTANDO


----------



## jospylos (Sep 20, 2006)

PHLAKO dijo:
			
		

> hola foreros, mi experiencia con los celulares es en mandar comandos al telefono; esto es conocer primero el telefono y loc comando que soportan, en mi caso lo hice con un SONY ericson T200, y los comandos AT para este equipo son reducidos, compre el adaptador para el computador via puerto serial, asi que conociendo los comandos AT, puedes mandas codigos ASCII desde hyper terminal, una vez que esto lo tienes sabido le envias los mismos codigos desde el PIC, por tiempo no o hice alreves(desde el telefono al PIC) pero debe ser lo mismo, sugiero que busque los comandoa AT para tu telefono y verifique su funcionamiento con hyepr terminal y despues lo hagas con la PIC
> 
> si encuentras un GPRS barato mejor lo hacer con eso
> 
> chaos



HOLA AMIGO
COMO ES QUE ENVIAS LOS CODIGOS AT POR EL HYPERTERMINAL, PORFAVOR DAME ALGUNO TIPS PLEASE, GRACIAS
ESTAREMOS EN CONTACTO


----------



## maunix (Sep 20, 2006)

jospylos dijo:
			
		

> PHLAKO dijo:
> 
> 
> 
> ...



1. Inicias el Hyperterminal

2. Eliges tu puerto de conexión , 9600 bps y control de flujo por hardware.

3. Pones ATE=1 para activar el eco

4. Pones AT y debes leer OK


Si esto no funciona revisa la velocidad por defecto de tu modem, algunos modems no usan 9600 por default y otros modems tienen "auto ajuste de baudeaje".

Saludos


----------



## jospylos (Sep 21, 2006)

maunix dijo:
			
		

> jospylos dijo:
> 
> 
> 
> ...



holas

SAbes segui tus instrucciones pero , al teclear AT=1 en el hyperterminal , no se visualiza nada , nada mas se ve el cursor o prompt que parpadea pero cuando escribo no , escribe nada apesar que pulso bien el teclado...a que se puede deber  eso ....


----------



## pinda (Sep 27, 2006)

hola gente, alguien me puede decir cual es mas facil de comunicar los siemens, los nokia o los sony ericcson. 

conrespecto al sony ericcson le mande con el hiperterminal los comando y no me reponde. 

con los nokia estoy probando. debo estar errado en algo. 

alguien me puede dar una mano.

saludos ignacio


----------



## MARTIN ALBERTO HERNADEZ H (Sep 27, 2006)

COMO DEBO IMPLEMENTAR UN SISTEMA DOMOTICO UTILIZANDO AGENTES MOVILES.
NO SE SI ES FACTIBLE UTILIZAR BLUEROOTH.
LO QUE PASA EN PRIMER INSTANCIA ES QUE DEBO RECONOCER LOS PROBLEMAS QUE ME IMPEDARIAN LLEVAR A CABO ESTE PROYECTO GRACIAS.
ESTA INFORMACION ES PARA DESAROLLAR MI PROYECTO DE GRADO


----------



## maunix (Sep 27, 2006)

Martín te sugiero que antes nos aclares bien qué quieres hacer.

Con lo que has puesto se me pueden ocurrir un sinnúmero de aplicaciones que cumplirían con esos conceptos.


----------



## maunix (Sep 27, 2006)

pinda dijo:
			
		

> hola gente, alguien me puede decir cual es mas facil de comunicar los siemens, los nokia o los sony ericcson.
> 
> conrespecto al sony ericcson le mande con el hiperterminal los comando y no me reponde.
> 
> ...



En el hiperterminal:  ¿Qué baudeaje estas usando?  ¿Qué configuración has usado para el puerto serie?

¿Qué módulo exactamente estás usando?


----------



## pinda (Sep 28, 2006)

en el hiperterminal uso 115200 con el nokia 1100, pretendo usar el protocolo fbus. vos tenes algo mas detallado de este protocolo. como es la estructura de la trama. que mandarle, etc.

espero puedas ayudarme, desde ya muchas gracias, saludos


----------



## maunix (Sep 28, 2006)

pinda dijo:
			
		

> en el hiperterminal uso 115200 con el nokia 1100, pretendo usar el protocolo fbus. vos tenes algo mas detallado de este protocolo. como es la estructura de la trama. que mandarle, etc.
> 
> espero puedas ayudarme, desde ya muchas gracias, saludos



Tengo experiencia con los sony ericsson pero no con los nokia y el fbus.

De todas formas, hay muucha información en internet del tema. 

Te sugiero que empieces por aquí: http://www.demo-1.com.ar/foros/index.php?topic=6592.0


----------



## pinda (Sep 28, 2006)

mejor aun que sepas de los sony ericcson. yo tengo un t226 pero no lo pude hacer que se comunique. me parece mejor los sony ericsson por que la velocidad de comunicacion es mas baja, cierto?. si me podes mandar alguna data sobre la comunicacion con ellos. estoy sumamente agradecido. saludos ignacio


----------



## maunix (Sep 28, 2006)

pinda dijo:
			
		

> mejor aun que sepas de los sony ericcson. yo tengo un t226 pero no lo pude hacer que se comunique. me parece mejor los sony ericsson por que la velocidad de comunicacion es mas baja, cierto?. si me podes mandar alguna data sobre la comunicacion con ellos. estoy sumamente agradecido. saludos ignacio



Yo he usado los módulos GM28 , te sirve ?


----------



## pinda (Sep 28, 2006)

creo que si. es como el gr47 pero un poco mas viejo.cierto? cuanto cuesta?. yo soy de rosario, santa fe. se puede mandar para aca? yo tengo un articulo muy bueno sobre el gr47 de una revista española. si te intereza te lo mando. pero no se como.

saludos ignacio


----------



## maunix (Sep 28, 2006)

pinda dijo:
			
		

> creo que si. es como el gr47 pero un poco mas viejo.cierto? cuanto cuesta?. yo soy de rosario, santa fe. se puede mandar para aca? yo tengo un articulo muy bueno sobre el gr47 de una revista española. si te intereza te lo mando. pero no se como.
> 
> saludos ignacio



Ignacio agradezco tu ofrecimiento pero por el momento no usaré los GR47.

El GM28 tiene internamente el GR48.  En realidad no se donde los puedes conseguir en Argentina porque en la empresa donde trabajo los mismos se "importan".

En argentina está muy fuertemente implantado los módulos de Motorola, te sugiero que uses estos.

Saludos


----------



## MARTIN ALBERTO HERNADEZ H (Sep 28, 2006)

HOLA GENTE DEL FORO:
GRACIAS A maunix POR PONERLE ATENCION A  MI PROBLEMA O EL DE VARIOS.
EN PRIMER INSTANCIA LA IDEA DEL PROYECTO ES REALIZAR UN SISTEMA DE CONTROL AUTONOMO DE SEGURIDAD E ILUMINACION CON ACCESO REMOTO DE UNA VIVIENDA MEDIANTE TELEFONIA MOVIL  Y UN SISTEMA MULTIAGENTE.
BUENO ESTE ES EL PROBLEMA INICIAL Y ESTO ELABORANDO UN ARBOL DE PROBLEMAS Y SOLUCIONES PARA EVALUAR LA FACTIBILIDAD DE ESTE PROYECTO ENTONCES ME SERIA DE GRAN AYUDA QUE SI HAN TRABAJANDO CON ESTOS TIPOS DE PROBLEMAS ME DE PAUTAS Y ASI DESARROLLAR ENTRE TODOS UNA MEJOR OPCION.
GRACIAS


----------



## jospylos (Sep 29, 2006)

HOLA GENTE, SABEN YA ME LEI FULL INFORMACION SOBRE LOS COMANDOS AT Y EL FORMATO PDU , HE PROBADO MANDAR ESTOS COMANDOS AT  Y SI FUNCIONAN PERO AHORA TENGO UN GRAN PROBLEMA Y ES MANDAR LOS COMANDOS AT POR UN PIC HACIA EL CELULAR
COMPRENDO QUE EL FORMATO PDU AYUDA HA EMPAQUETAR LOS MENSAJES DE TEXTO SMS , PERO SI QUIERO REALIZAR EL MARCADO DE UN NUMERO , COMO ES QUE TENGO QUE ENVIAR EL COAMNDO AT , SE TAMBIEN QUE EL FORMATO PDU TIENE UNOS BYTES DONDE SE MANDA EL TEXTO , ES ACASO VERDAD QUE EN ESTE CAMPO TENGO QUE ENVIAR EL COAMNDO AT ESCRITO EN HESXADECIMAL Y EMPAQUETADO EN PDU , COMO ASI

AYUDENME PLEASE, Y POR CIERTO DEBO ESTAR EN ALGO EQUIVOCADO

GARCIAS


----------



## maunix (Sep 29, 2006)

jospylos dijo:
			
		

> HOLA GENTE, SABEN YA ME LEI FULL INFORMACION SOBRE LOS COMANDOS AT Y EL FORMATO PDU , HE PROBADO MANDAR ESTOS COMANDOS AT  Y SI FUNCIONAN PERO AHORA TENGO UN GRAN PROBLEMA Y ES MANDAR LOS COMANDOS AT POR UN PIC HACIA EL CELULAR
> COMPRENDO QUE EL FORMATO PDU AYUDA HA EMPAQUETAR LOS MENSAJES DE TEXTO SMS , PERO SI QUIERO REALIZAR EL MARCADO DE UN NUMERO , COMO ES QUE TENGO QUE ENVIAR EL COAMNDO AT , SE TAMBIEN QUE EL FORMATO PDU TIENE UNOS BYTES DONDE SE MANDA EL TEXTO , ES ACASO VERDAD QUE EN ESTE CAMPO TENGO QUE ENVIAR EL COAMNDO AT ESCRITO EN HESXADECIMAL Y EMPAQUETADO EN PDU , COMO ASI
> 
> AYUDENME PLEASE, Y POR CIERTO DEBO ESTAR EN ALGO EQUIVOCADO
> ...



Leete esto 

SMS and the PDU format


----------



## AG-1 (Oct 5, 2006)

Ahora versión del "AG-1" Avisador de Alarma/ Telemando GSM que realiza el aviso de alarma mediente llamada telefónica, además de la versión anterior que lo realizaba mediante SMS. 

http://perso.wanadoo.es/luism..serrano/AlarmaGSM/AlarmaGSM.htm


----------



## mauri (Feb 6, 2007)

Hola gente, estoy jugando con un sony erisson y un 16f628 con la intecion de enviar sms y discar a unos numeros, quisiera apagar el movil con algun comando AT pero no lo encuentro.
Si alguien tiene dudas de algo y lo puedo ayudar que se contacte y tratare de dar una mano.
Un saludo y gracias por vuestro tiempo.


----------



## mauri (Feb 6, 2007)

esto es para maunix.
digamos que en la agenda del telefono (no la sim, en el telefono) tenes guardado el nombre Andres
AT+CPBS="ME"
esto dice que vas a dirigirte a la mem del telefono, si fuera la sim seria "SM"
ATD>"Andres";
esto llama a Andres, es importante el ;, significa llamada de vos
para cortar
AT+ATH
listo, con esto llama, te deberia devolver un ok luego de cada comando.
saludos.


----------



## mauri (Feb 6, 2007)

para cortar
ATH
se me chispoteo el AT+


----------



## Nestor Nieto (Feb 8, 2007)

Hace un año implemente la notificacion de alarmas a traves de SMS en un sistema SCADA, arme una aplicacion en VB6 que se conecta a la base de datos del sistema de telecontrol y envia desde un celular notificaciones de cambios que se produzcan en los elementos de la red electrica y de datos (apertura y cierre de interruptores, seccionadores, alarmas asociadas a transformadores de potencia, fallas en la red de comunicacion, etc). Use un SonyEricsson T237. A su vez los que reciben los mensajes pueden a traves del envio (a este T237) de una "S" o una "N", habilitar y deshabilitar la recepcion de los mensajes. 

Obviamente el primer (y no por eso menos importante) paso es tener la conexion del celular con el hiperterminal, ahi es donde uno hace la mayoria de las pruebas con los comandos que despues se lleva a codigo.

He leido que algunos han tenido problemas con esta conexion. Yo verificaria (ojo que hablo de los que estan tratando de hacerla con un SonyEricsson):
1.Del lado de la PC=> Configuracion del Hiperterminal: 9600,8,N.1 sin control de flujo y ver que la ficha DB9 este conectada al COM que configuramos en el Hiperterminal.
2.Por el lado del cable=> Mandando algo desde el hiperterminal verificar la salida de datos al celular (pin 4). El pinout del T237 (y de muchos SonyEricsson mas) lo encuentran en
http://pinouts.ru/CellularPhones-P-W/erics_t28_pinout.shtml
3. Del lado del celular: me ha pasado que por ahi que los contactos (que estan bastante expuestos en los SonyEricsson) estan sucios y debido a los bajos niveles de tension con que trabaja la parte de datos se aislan facilmente. Con un algodoncito y alcohol listo.
Con esto deberia andar ... si ya se que esto anterior es medio basico, pero diganme quien no ha tenido alguna vez un dolor de cabeza por alguna de estas cuestiones, sobre todo cuando uno esta arrancando ...

Tambien experimente un poco con pics, y logre que conectados al T237 enviaran SMSs, lo desarrolle en PicBasic y el unico inconveniente que encontre no fue el codigo, sino adecuar las señales del pic y al celular con un level shifter (un transistor y un par de resistencias). El envio de un SMS al pic nunca lo termine de hacer, pero no creo que represente mucho problema, seria cuestion de ponerse nomas ...

Cosas disponibles que por ahi les interesan y que puedo ir subiendo:
- pdf de los comandos at para SonyEricsson
- Una tablita que hice en excel con macros para decodificar los PDUs. o los modulos para VB.
- el planito del level shifter para el pic

Y si alguien quiere algun detalle mas de la aplicacion que arme no tienen mas que avisarme

Saludos
Nestor
Venado Tuerto, Santa Fe, Argentina


----------



## Rodri_Garbi (Feb 16, 2007)

Hola Nestor !
Estaba buscando información sobre el control remoto de dispositivos via mensajes SMS y llegué a este foro.
Vi que estuviste haciendo algunas cosas relacionadas con el tema asi que te pregunto algunas cosas a ver si me podes dar una mano:

Yo pensaba generar las tramas PDU en un micro PIC pero en vez de enviarlas a un celular para su posterior envio, pensaba usar un modulo GSM (Enabler IIE, de Enfora) que calculo funciona como un celular. Todavia no se bien qué voy a hacer dado que ese modulo sale $300 y se consiguen celulares por mucho menos que eso....

me gustaria que me pasaras cualquier información que tengas (ejemplos, documentos, etc) sobre el tema SMS y que ademas me pasaras lo que ofrecias:
-Una tablita en excel con macros para decodificar los PDUs
- el planito del level shifter para el pic 

desde ya muchas gracias
Rodrigo
PD:mi mail es nohagaseso@hotmail.com


----------



## Nestor Nieto (Feb 19, 2007)

Rodri_Garbi
La tabla que adjunto tiene como codificar/decodificar las tramas PDU. La hice cuando empece a ver el tema de SMSs. Fijate las macros de la tabla donde hice el algoritmo que te permite codificar y decodificar el mensaje, ademas del armado de los numeros de los telefonos. Estas macros te van a ayudar para cuando tengas que hacer codigo en los micros, o copiarlas en algun modulo de VB. Proba desde el hiperterminal enviar y recibir mensajes para probar la tabla. Fijate que para enviar solo con poner el numero del telefono al cual envias el mensaje y el mensaje en si ya te arma el PDU y te indica el largo en bytes del mismo para ingresar cuando pones el comando AT+CMGS.
Si en vez de mandar las tramas a un celular lo mandas directamente a un modem GSM, no vas a necesitar mas que un max232 que te convierta los niveles TTL del PIC a los 232 del modem. Por como funciona en principio los comandos basicos (como el de enviar un SMS) son los mismos para el modem que para el celular, tendrias que ver en el manual del enfora. 
En cuanto a la aplicacion que queres armar quizas te convenga enviar directamente los mensajes en modo Texto (AT+CMGF=1). En cuanto a la recepcion te comento algo que yo hice, vas a ver que si estas conectado con el hiperterminal al recibir un SMS no pasa nada hasta que haces una lista de los mensajes UNREADs. Para evitar estar monitoreando periodicamente la lista con el comando AT+CNMI habilitas el reporte espontaneo de mensaje recibido, por lo que al entrar un mensaje (si estuvieras conectado con el hiperterminal) automaticamente te aparece el SMS. Conclusion: si trabajas en VB con el evento dato recibido del mscomm ya tenes el mensaje, si trabajas con un micro podes capturarlo con la interrupcion que provoca el RX de la entrada de datos (ojo, para micros con USART por hardware). El tema es que el mensaje siempre entra en formato PDU y nunca en modo texto a pesar de tenerlo configurado en modo texto, es por eso que me meti con el tema de los PDU. 
Te recuerdo que esto lo hice para el T237, tendrias que ver como trabaja el enfora.
Espero haber sido de ayuda, cualquier consulta sobre la tabla me avisas

Saludos
Nestor


----------



## Edgard (Feb 19, 2007)

Que tal amigos

Un favor, estoy queriendo comunicar mi celular motorola c118 con la PC atraves de un programa hecho para enviar comandos AT por el puerto COM1,  yo envio los comandos en codigo ASCII, pero no recibo ninguna respuesta del celular, tengo el cable el cual lo he probado con otros programas.

He tentado con varias velocidades de transmision (9600,...,19200), 8 bits de palabra,1 bits de stop, sin paridad, control de flujo OFF.

Agradeceria si alguien puede ayudarme con esto.

Edgard


----------



## recursos (Mar 14, 2007)

Hi *all*,
I have an old *SonyEricson T200*.
Built a serial interface adapter with discretes (transistors, resistors, capacitors, diodes).
The interface hardware seems OK.
But when I send (using terminal.exe) "AT", the phone answers back "AT", and after a few seconds it adds "ERROR"!
I would like to see a "OK" instead...  
Any ideia?

Please feel free to answer in Spanish, I can read it OK.
Saludos,
*Rec*[/b]


----------



## recursos (Mar 15, 2007)

Well, no reply needed, I found the culprit.
I was sending just "AT" etc., to the phone, and should be "AT"<CR>
(where <CR> is 0x0D the carriage return code)

*Rec*


----------



## maunix (Mar 15, 2007)

Edgard dijo:
			
		

> Que tal amigos
> 
> Un favor, estoy queriendo comunicar mi celular motorola c118 con la PC atraves de un programa hecho para enviar comandos AT por el puerto COM1,  yo envio los comandos en codigo ASCII, pero no recibo ninguna respuesta del celular, tengo el cable el cual lo he probado con otros programas.
> 
> ...



En los modems que yo conozco, el control de flujo HAY QUE ACTIVARLO, precisamente lo opuesto a dejarlo en OFF.


----------



## Nestor Nieto (Mar 16, 2007)

Disculpen la tardanza pero estuve probando el rx del circuito PIC-T237 (que les adjunto) y anduvo bien. Les comento que hice con el tema pic-sms, primero me asegure que anduviera todo bien desde el hiperterminal (9600,8,N,1)

AT <ENTER>
OK
AT+CMGF=1 <ENTER> (configura modo texto)
OK
AT+CMGS="0123456789" <ENTER> (0123456789 nro celular)    
> Esto es una prueba <CTRL+Z> (escriben el mensaje y ctrl+z para enviar el sms)
+CMGS: 204
OK

tambien pueden hacer que envie un sms a una casilla de mail, esto esta piola para poder avisar eventos no solo a celulares sino a direcciones de mail, siguiendo en modo texto hacemos

AT+CMGS="6245" <ENTER>    
> nestorarielnieto@gmail (Asunto) Mensaje <CTRL+Z> 
+CMGS: 4
OK

6245 es el mail gateway de CTI y de Personal, 111 para Movistar. Se escribe la direccion de mail, el asunto entre parentesis y luego el mensaje, ctrl+z y lo manda.


----------



## Nestor Nieto (Mar 16, 2007)

En principio lo que hice fue hacer que el pic (un 16f876) me enviara un sms estando conectado al t237, en c el codigo respectivo al sms seria

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, PARITY=N, BITS= 8) //config puerto

void main()
{
 delay_ms(5000);			//espera 5 segundos
 printf("AT+CMGF=1\r\n");		//configura modo texto
 delay_ms(500);
 printf("AT+CMGS=\"0123456789\"\r\n"); 	//0123456789 es el nro
 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
}

en basic seria algo asi

tx VAR PORTC.6 
rx VAR PORTC.7

main:
 PAUSE 5000			
 SEROUT2 tx,84,["AT+CMGF=1",13,10]
 PAUSE 500						
 SEROUT2 tx,84,["AT+CMGS=",34,"0123456789",34,13,10]  'ascii(34)=" (comillas)
 PAUSE 500		
 SEROUT2 tx,84,["Esto es una prueba",13,10]		
 SEROUT2 tx,84,[26]	                                                       'ascii(26)=ctrl+z		
End

Esto es lo basico, despues que sabemos que anda todo ok nos dedicamos adesarrollar el proyecto en particular que tengamos.
Espero que les sea de ayuda. Saludos
Nestor

Rodri_Garbi, cayo en mis manos un enfora GSM1218, hice unas primeras pruebas desde el hiperterminal (19200,8,N.1) y anda ok, yo tambien lo quiero comunicar con un pic, en cuanto avance un poco mas te comento.


----------



## nestorjuarez (Mar 29, 2007)

q tal quisiera saber donde ver esquemas para hacer el cable del puerto serie a un celular nokia 1100, es para un trabajo de la facultad pero recien estamos investigando un poco,
la idea es comunicar 2 celu uno con un pic y el otro con la pc, si me pueden ayudar les voy a estar mas q agradecidos


----------



## mascolo99 (Abr 4, 2007)

Que tal viendo los post me queda una duda, como es la conexión entre el PIC y el Celular? no me queda claro ya que nadie dice como es..

El pic es rs232 a 5v y 0v
y el cel es rs232 a 3v y 0v ?

Estoy en lo correcto? cual seria la forma de conectarlo?

Gracias


----------



## Pluter70 (Abr 6, 2007)

Disculpen la tardanza pero estuve probando el rx del circuito PIC-T237 (que les adjunto) y anduvo bien. Les comento que hice con el tema pic-sms, primero me asegure que anduviera todo bien desde el hiperterminal (9600,8,N,1) 

AT <ENTER> 
OK 
AT+CMGF=1 <ENTER> (configura modo texto) 
OK 
AT+CMGS="0123456789" <ENTER> (0123456789 nro celular) 
> Esto es una prueba <CTRL+Z> (escriben el mensaje y ctrl+z para enviar el sms) 
+CMGS: 204 
OK 

tambien pueden hacer que envie un sms a una casilla de mail, esto esta piola para poder avisar eventos no solo a celulares sino a direcciones de mail, siguiendo en modo texto hacemos 

AT+CMGS="6245" <ENTER> 
> nestorarielnieto@gmail (Asunto) Mensaje <CTRL+Z> 
+CMGS: 4 
OK 

6245 es el mail gateway de CTI y de Personal, 111 para Movistar. Se escribe la direccion de mail, el asunto entre parentesis y luego el mensaje, ctrl+z y lo manda.

---------------------------------------------------------------------------------------------------------
Hola Nestor Nieto

Estoy trabajando con el Siemens A56i con camandos AT en formato PDU y me funciona OK, pero me queda una duda respecto a cómo enviar un SMS a una casilla de email en modo PDU, en caso lo hayas visto agradeceré por favor enviarme algunos Tips.

Pluter


----------



## emapalla (Abr 7, 2007)

Hola que tal, estoy haciendo un sistema para controlar algunas cosas de mi hogar como el encendido la alarma todo con un NOKIA 1100 y un DTMF. Lo unico que puedo hacer es llamarlo  y que haga algo pero no puedo recibir unformacion del el y la verdad es que no tengo idea de como hacerlo, si alguien me pudiera ayudar a pasarme alguna pagina para leer se lo agradeceria


----------



## Nestor Nieto (Abr 12, 2007)

Pluter70
Disculpa la demora pero hice unas correcciones antes de contestarte. Podes mandar un mail via sms en modo pdu perfectamente. Lo unico a tener en cuenta es que en el nro de celular a donde envias el mail tenes que poner 6245 (fijate que nro de tenes en tu compañia en Peru) y el sms los armas de acuerdo a como comente anteriormente.
Ejemplo: para enviar un mail via sms en pdu a nestorarielnieto@gmail.com, asunto: sms pdu y el cuerpo del mensaje: prueba sms pdu, la codificacion seria la siguiente

001100048126540000FF31EEF29CFE9687E5E932DB9D2ED3DF80733B9C66BBC6EF366ADE9E83E0E47A0A2EAF97C561D0BC3D07C1C975

donde

00 - Permite que se configure el SMSC interno del telefono
11 - Siempre 11
00
04 - Largo del Numero al que envias el mail (en hexa)
81 - 0x81 = Predeterminado, 0x91 = Internacional, 0xA1 Nacional
2654 - Nro al que manda el sms en BCD (6245)
0000
FF - Periodo de validez del mensaje
31 - Cantidad de caracteres del mensaje (en hexa)
EEF29CFE9687E5E932DB9D2ED3DF80733B9C66BBC6EF366ADE9E83E0E47A0A2EAF97C561D0BC3D07C1C975 - Mensaje Codificado= nestorarielnieto@gmail.com(sms pdu)prueba sms pdu

Para enviarlo seria
AT+CMGS=53 (enter)
>001100048126540000FF31EEF29CFE9687E5E932DB9D2ED3DF80733B9C66BBC6EF366ADE9E83E0E47A0A2EAF97C561D0BC3D07C1C975 (ctrl+z)

En la planilla sms_pdu.xls podes codificar tus propios mails a enviar, ya te deje listo el ejemplo que te di anteriormente en la actualizacion de la planilla.
*Aviso:* actualicen la planilla sms_pdu.xls porque a raiz de la consulta de pluter70 me di cuanta que tenia un problema con determinados caracteres especiales al codificar el mansaje. Disculpen la molestia
Saludos

Nestor


----------



## jorgejuanrobles (Abr 12, 2007)

que tal Nestor,,, cual seria bien la planilla actualizada,, a mi me parece solo una ? podrias publicarla nuevamente? Muchas Gracias
Saludos a todos


----------



## Nestor Nieto (Abr 13, 2007)

Lo que pasa es que elimine la planilla anterior y subi la que tiene las correcciones en el mismo lugar, asi que es solo una.
Este es el link del pdf de comandos at de los sony ericsson T68, T68i, T300, T310, T610, Z600, T230/T238/T226, T630, T290

www.sonyericsson.com/downloads/dg_at_2003_r4a.pdf

Saludos

Nestor


----------



## Nestor Nieto (Abr 13, 2007)

rodri_garbi
Estoy terminando mi desarrollo con el enfora 1218 y anda perfecto, una de las ventajas es que los mensajes cnmi no apararecen en formato pdu sino que los muestra en modo texto por lo que se aliviano bastante el codigo. Estuve averiguando y este modem sale algo de $800, pero hay una version oem que es el enablerII que vos me comentaste esta a algo de $300.
Saludos

Nestor


----------



## Pluter70 (Abr 13, 2007)

Hola Nestor,

Agradezco el apoyo en los temas referidos en el foro, así mismo de la información que compartes con todos.
En lo que respecta a mi persona voy a realizar las pruebas y luego te comunico como me va en mi proyecto.

saludos,

Pluter


----------



## Rodri_Garbi (Abr 16, 2007)

Nestor Nieto:

antes que nada muchas gracias por contestar el post !! me colgué con este tema porque el proyecto con el modulo gsm/gprs se habia estancado, pero ahora lo tengo que sacar a flote.

en un ppio la idea era mandar mensajes de texto (SMS) a traves del servicio GSM, pero ahora cambió la cosa y la idea es usar el servicio GPRS para el tráfico de datos.

recien hace dos dias retomé el tema... estuve leyendo un poco sobre gprs y algo de los comandos AT para configurar el modulo enablerII G . creo que ya estoy en condiciones de hacer algunas pruebas con el HyperTerminal o programa similar.

basicamente voy a tener una conexión a internet a traves del modulo, usando la red de telefonia celular. voy a crear un cliente telnet en alguna pc y voy a ver si puedo intercambiar datos con el mismo.

una vez que eso me ande, tengo que llevarlo todo al PIC. el tema es que en el PIC voy a tener que implementar el protocolo PPP para la comunicacion serie entre el micro y el modulo Enabler IIG.... 

si sabes algo de todo esto o tenes referencias, te lo agradeceria!!
gracias por la buena onda
saludos

Rodrigo


----------



## Pluter70 (Abr 18, 2007)

Hola Nestor Nieto.

Te cuento que he retomado mi proyecto y he terminado de realizar el código en MPLAB para el uC 16f628A manejando el UART para la transmisión de las tramas (comandos AT y formato PDU)desde el uC al Siemens A56i, en la simulación mediante el Proteus se observa la transmisión de las tramas OK, pero al momento de realizarlo en el hardware el uC transmite la información (pues puse un led indicativo de fin de transmisión) pero no se logra enviar el SMS.
Mi duda radica principalmente en que el mensaje se llega a enviar por el hyperterminal presionando <CTRL+Z> pero al codificarlo en el uC dentro de la trama PDU del mensaje completo qué se debe usar???? el equivalente ASCII????

Hago extensivo a todos aquellos que visitan este foro en caso hayan completado este tipo de proyecto en brindarme cierto Tip's que me ayuden a concluirlo.

P.D. Las pruebas con el Hyperterminal funcionan al 100%.

Pluter70


----------



## Nestor Nieto (Abr 19, 2007)

Pluter70
Hola, es correcto lo que comentas del ctrl+z, ademas cuando envias un comando debes simular el enter, es decir ascii(13)+ascii(10), por lo que para enviar el comando que nos setee modo pdu seria

"AT+CMGF=0" + ascii(13)+ascii(10)

y el ctrl+z para enviar el sms es como decis el ascii(26)
En respuestas anteriores di un par de ejemplos con c y basic en donde aparecen estos ascii.
Espero que esto te ayude 
Saludos

Nestor


----------



## nestorjuarez (Abr 28, 2007)

que tal quisiera saber si alguien me puede ayudar a encontra los esquemas del cable serie para conectar un nokia 1100 a la compu para poder controlarlo desde ahi busque en google pero no encuentro probablemente estoy buscando mal, si saben de alguna pagina gracias


----------



## guilleso (Abr 30, 2007)

Nestor Nieto dijo:
			
		

> Hace un año implemente la notificacion de alarmas a traves de SMS en un sistema SCADA, arme una aplicacion en VB6 que se conecta a la base de datos del sistema de telecontrol y envia desde un celular notificaciones de cambios que se produzcan en los elementos de la red electrica y de datos (apertura y cierre de interruptores, seccionadores, alarmas asociadas a transformadores de potencia, fallas en la red de comunicacion, etc). Use un SonyEricsson T237. A su vez los que reciben los mensajes pueden a traves del envio (a este T237) de una "S" o una "N", habilitar y deshabilitar la recepcion de los mensajes.
> 
> Obviamente el primer (y no por eso menos importante) paso es tener la conexion del celular con el hiperterminal, ahi es donde uno hace la mayoria de las pruebas con los comandos que despues se lleva a codigo.
> 
> ...




Nestor, me pasas el planito de los transistores para empardar las tensiones entre el pic y el celular? 

por lo que lei nunca decis de poner estos transistores entre el celular y la pc, lo conectas directo?? 

como haces con la compu? 

te cuento que compre un cable (usb de un lado y celular del otro), lo conecte a la pc me lo configura como COM3 y funciona de barbaro, mando sms, consulto la agenda, perfecto, todo via Hyperterminal. 

el problema aparecio cuando corte el cable y quise conectarlo a la pc por el puerto serial, a travez de una interface que rescate de por aca de la web. 

desde ya muchas gracias 
mi mail es guillesolimo@hotmail.com


----------



## Dar (May 10, 2007)

Hola que tal a todos, soy de paraguay, necesito ayuda con pequeño proyecto, la idea es crear un sistema de maxicargas automatizado, osea tengo un servicio de minicarga que es como sigue el cliente me dice su nº y por cuanto es el monto que quiere cargar a su linea, y yo marco lo siguiente en mi cel *434+nºcliente+*monto y se acredita a su cuenta automaticamente, yo necesito que me envia su peticion de recarga via sms y que la pc reciva via celular y llame al servicio para la posterios carga de su saldo automaticamente, y tener un registro o algo asi.......
gracias desde ya, culquier consulta a su dispocicion.....................


----------



## ealves (Jun 19, 2007)

Nestor Nieto:
Acabo de recibir un GSM1218 y necesito enviar datagramas UDP a una PC, para un proyecto de telemetría. Ya intenté hacerlo con la siguiente serie de comandos pero no logro que envíe la información:

AT&F
AT$FRIEND=1,0,"xxx.xxx.xxx.xxx"         //xxx.xxx.xxx.xxx es la ip con la que quiero comunicarme
AT$AREG=2
AT$UDPAPI="199.245.180.013",1720
AT$UDPMSG=0,0,"Mensaje"

Pero en ésta última me devuelve ERROR y no sé a que se debe. Probé enviar sms y funciona perfecto, todo esto desde hyperterminal.
Si tenés algo de información o sabés como hacerlo espero que puedas ayudarme
Desde ya muchas gracias
Saludos
Ezequiel


----------



## 5esquinas (Jun 24, 2007)

Gracias a todos por los aportes hechos en este foro, en especial a nestor nieto. todo me a servido mucho para arrancar con mi proyecto de monitoreo de alarma. gracias muchas gracias.


----------



## Nestor Nieto (Jun 26, 2007)

ealves
En lo unico te puedo ayudar con UDP es un par de manuales que baje que tratan las tramas UDP

http://www.enfora.com/downloads/Int...sisted GPS Integration Guide MLG0208PB001.pdf

www.gpslt.com/PDF/ENFORA_PDF/Enfora_UDP_API_guide-GSM0102PB002Man.pdf 

La empresa en donde trabajo tiene una red de terminales remotas comunicadas en UDP-IP en fibra optica y me interesaria crear un canal secundario de respaldo con los Enfora, hace unos meses se corto la fibra y hasta que consiguieron la empalmadora tuvimos la estacion fuera de linea un tiempito, y como ando cortisimo de tiempo no me puedo poner a verlo. Si tenes algun avance en el tema por favor publicalo.
Gracias de antemano.
Saludos

Nestor


----------



## eyepez (Jul 8, 2007)

Buenas a todos estuve leyendo lo del foro pero tengo una duda intente hacer unas pruebas con el A56 y el hyperterminal, hice el cable lo conecte al DB9 pero cuando abri el hyperterminal no sabia que puerto COM poner ya que tenia algunas opciones desde el COM1 al COM9 ,probe con todos pero nunca se conecto al celular , asi que mi pregunta es: es neesario instalar el A56 a la pc como si fuera un modem cualquiera o con seleccionar el puerto basta????? gracias a todos por sus futuras respuestas


----------



## yukardo (Jul 9, 2007)

Me gustaria conectar un PIC con un Motorola V-220. Donde puedo conseguir las conexiones que debo hacer y donde consigo los comandos AT. Gracias de antemano por su ayuda


----------



## bender450 (Jul 25, 2007)

hola estoy intersado en como pudo comunicar el micro con le celular si es posible contactarlo porfavor envieme un mensaje


----------



## geniolius (Jul 30, 2007)

Hola a todos, muchas gracias por la información, me ha sido de mucha utilidad, principalmente la de Nestor Nieto, muchas gracias.
Solo me queda una ultima duda, alguno tiene el circuito para adaptar los niveles de tension del PIC con los del SonyEricsson?, el PIC trabaja con niveles de 5v y el SonyEricsson segun tengo entenido lo hace con 3v. Alguien podria por favor pasarme el circuito con el pinout?

Gracias!, saludos


----------



## Nestor Nieto (Jul 31, 2007)

Geniolius
En la pagina 6 tenes el esquema para conectar un t237 (vale para muchos modelos mas) al pic y adaptar como bien decis los 5 del pic a los 3 aprox del celular, en la imagen tenes el pinout del celu, cualquier cosa avisame que te lo paso por mail
Saludos

Nestor


----------



## geniolius (Jul 31, 2007)

Habia visto el mensaje pero se me habia pasado por alto el archivo, gracias nuevamente Nestor!!


----------



## dimitri (Ago 1, 2007)

ealves dijo:
			
		

> Nestor Nieto:
> Acabo de recibir un GSM1218 y necesito enviar datagramas UDP a una PC, para un proyecto de telemetría. Ya intenté hacerlo con la siguiente serie de comandos pero no logro que envíe la información:
> 
> AT&F
> ...




Ezequiel

Casualmente estoy embarcado en un proyecto tambien con un 1218 y tengo el mismo problema.... 
La comunicación la he podido establecer en un sentido: pc (hyperterminal)-->enfora-->gprs--> socket (esto con $sndmsg), pero la verdad es que se me ha complicado hacer que le llegue algo al modem por gprs y lo escupa al puerto serie...
pudiste resolver el problema?

Dimitri


----------



## orly (Ago 2, 2007)

Favor amigo Nestor Nieto me podría ayudar con la configuración de los componentes que hay que conectar del pic al T237, ya que el voltaje que maneja el celular es de áproxiamadamente 3 Volt.
y el voltaje que maneja el PIC es de 5 Volt. favor ayudeme como puedo adaptar estas dos señales para así enviar los comandos AT desde el pic al celular.

Esperando su ayuda me despido, gracias.

Att.

Orly


----------



## geniolius (Ago 2, 2007)

orly, en la pagina 6 esta el archivo con el circuito para conectar el T237 al PIC y poder adaptar los niveles de tension.

Saludos


----------



## orly (Ago 2, 2007)

Gracias amigo lo voy a poner en practica.


----------



## alepic (Ago 2, 2007)

hola que tal, estoy trabajando con un nokia 1110 y entre todas las tramas que encontre en la web y no vi que nadie haya probado el envio de sms y queria preguntar si aguin ya probo lo siguiente:

1. hay tramas de envio de sms para el 3310 que tambien funcionan para el 5190(ya lo hice y funciona)

2. viendo las tramas para 1100 se que solo el valor del dispositivo cambia( de 0c a 10) de una trama a otra, lo cual es logico que se usen  los mismos comandos y solo se modifique el ecabezado de la trama.

3. ahora viene la pregunta alguien probo la trama de sms del 3310 con un 1100 cambiando lo dicho en el item 2; si a alguien lle funciono lo puede publicar por favor.

de todos moodos este fin de semana me voy a pasar haciendo eso y testeando.

bueno un saludo a todos y suerte en sus proyectos que sos pocos los que nos atrevemos a destartalar algo nuevo y funcionando para jagar y cubrir esa curiosidad que nos trajo hasta aca.

Alejandro Garrido


----------



## Nestor Nieto (Ago 3, 2007)

Alepic
Supongo que estas hablando de tramas PDU de sms, si es asi por favor copia en algun proximo mensaje alguna de las que estas enviando asi podemos analizarlas y ayudarte mejor. Al final de la pagina 5 tenes una planillita de excel sms_pdu.xls que te de/codifica mensajes a PDU. 
Saludos

Nestor


----------



## orly (Ago 3, 2007)

Nestor efectivamente estoy haciendo las pruebas con un SIEMENS A56, y al momento ya he realizado las pruebas de envío de sms del pic al celular (Tx del pic al  Rx del celular) y el cual funciona sin ningún problema.
Pero lo que si me está dando problema es tratar de leer los mensajes de entrada que le llegan al celular através del PIC (Rx del PIC al Tx del celular). Yo creo que el problema radica en acoplar la señal Tx del celular que es de 2.7 Volt  al  pin Rx del PIC que es a 5 Volt.

Lo que quiero es decodificar un mensaje que le llegue al celular , para poder activar un rele.

Favor Nestor si ya haz realizado esta prueba indicame como puedo acoplar estas dos señales con el fin de que el Tx del celular active el Rx del PIC.(datos seriales). O que será en lo que estoy fallando.

Adicional sabes que modelo de celular acepta el envío de mensajes en ambos modos (texto , PDU)
y que el mismo tenga entrada serial ?

De antemano agradezco toda su ayuda?

Att.

Orly


----------



## alepic (Ago 3, 2007)

orly
yo use el integrado 74HC126N para adaptar el voltaje desde el celular hacia el pic y me funciona perfecto. podrias decir si usas comandos AT con el A56

Nestor
como digo la trama que envio al 5190 para sms es:

1E 0 C 2 0 2D 0 1 0 1 2 0 6 FF91 FF95 FF95 16 32 FFF3 0 0 0 0 0 11 0 0 0 1 A FF81 FF90 16 19 38 0 0 0 0 0 0 FFA7 0 0 0 0 0 0 41 1 60 0 FFF8 3C

que envia el caracter "a"  y comparando las tramas de HW & SW del 5190 y el 1100
solo diferencia en la cabezera de la trama 0x0c por 0x10 y en el seqNº 0x60 por 0x40.

get hw sw              1E 0 0C D1 0 7 0 1 0 3 0 1 60 0 72 D5    trama para 5190

HW&SW                 1E 0 10 D1 0 7 0 1 0 3 0 1 40 0 Chk1 Chk2   para 1100 

 o sea que cambiando la cabecera y sel seqNº de una trama de 5190 podrian funcionar para 1100, esa es mi teoria que la voy a probar este finde y el lunes levanto la respuesta.

alepic


----------



## orly (Ago 6, 2007)

Nestor positivo el siemens A56 acepta comandos At   pero para enviar mensajes solo lo puedes hacer en formato PDU. Adicional Nestor con el integrado que me indicastes 74HC126N , pongo las entradas tanto de Tx y Rx del PIC y del Celular?


Adicional no sabes si el Nokia 3220 acepta comandos AT y para enviar mensajes se lo puede hacer en formato PDU y TEXTO?


Att.

Orly


----------



## alepic (Ago 6, 2007)

orly en primer lugar te confundes y me llamo alejandro, a ver tus preguntas:

1. te adjunto un esquema de conexión del 74hc126n, en la linea de tx del pic solo va una resistencia de 470 ohm en serie con un diodo zener de 2.7V a tierra.

2. el 3220 si acepta en modo texto y pdu el envio de sms



Alejandro Garrido


P.D.: todavia me estoy peleando con el 1110 para enviar sms pienso que para esta noche lo tengo que tener terminado.


----------



## orly (Ago 6, 2007)

Disculpa amigo alepic , mira el problema que tengo es en la linea Tx del celular que tiene 2.7 Volt, esta linea quiero adaptarla al pin Rx del PIC (nivel de voltaje 5 Volt).

Como puedo adaptar estas dos señales?

Garcias por toda su ayuda.

Att.

Orly


----------



## alepic (Ago 6, 2007)

ahi en el circuito que subi esta como conectarla con el 74hc126n

alepic


----------



## orly (Ago 6, 2007)

gracias amigo lo voy a poner en practica


----------



## Stitch (Ago 8, 2007)

Hola todos...
Estoy tratando de comunicar un cel sony ericsson T630 con un Pc a través del COM1, utilizando un cable con conexiones de tipo Null-Modem y un Max232. Las conexiones a los pines del cel las tomé de un manos libres dañado. 
Intenté enviar los comandos AT a través del hiperterminal, pero lo único que obtengo es un eco de todo lo que envio. Estoy seguro de que no es un eco local porque tengo la opción desactivada en el hiperterminal y porque mientras el cel no está conectado, no se recibe nada.
Alguien tiene alguna idea de lo que puede estar sucediendo???


----------



## yukardo (Ago 8, 2007)

Saludos

Me gustaria saber donde puedo conseguir los comandos AT para un cel motorola V220. Gracias de antemano por su ayuda


----------



## alepic (Ago 9, 2007)

racardo mira te cuento yo desarme un cable de manos libres de un nokia 3120 para usar el conector como vos e igual al conectarlo dice que hay un manos libres conectado, entoces por los pines que conecta el telefono reconoce un dispositovo u otro, te recomiendo que consigas un cable de datos o un conector de cable de datos y seguro te va a funcionar, dentro de la fucha debe haber una conexión que le hace reconocer al telefono que es manos libre o datos.

espero haberte ayudado.

alepic


----------



## Stitch (Ago 9, 2007)

Gracias por la respuesta...
problema solucionado.... era la velocidad de transmisión.


----------



## microjet (Ago 9, 2007)

Hola, soy nuevo en el foro. Leyendo este espacio veo que es necesario conocer los comandos AT para los celulares Motorola. Yo trabaje con los modulos Motorola G20, los comandos AT tendrian que ser los mismos en todos los celulares, lo que cambiaria son los registros.
Quise poner el pdf pero es muy grande, buscarlo en esta dir.

http://www.electrocomponentes.com/I...Datos/g20/g20_AT_Commands_issue E_06Mar05.pdf


Bye y suerte


----------



## alepic (Ago 11, 2007)

microjet, lo mas probable que los comandos AT mas basico te sirban pero nose de los de uso especifico, tendrias que probar con el modelos de celuar que vas a usar.

alepic


----------



## alepic (Ago 12, 2007)

hola que tal amigos; bueno les cuento, navegando y navegando por internet encontre una cantidad de equipos que controlan un celular por medio de un PIC o una PC, tomando especial atensión en los equipos que utilizan celulares SONY ERICSSON vi que se utilizan telefono tan simples como el T10 o T28z que solo envian sms y llaman hasta telefonos mas completos como el T226, T237, T290 que ya soportan wap y por ende se entiende que aceptan sin problemas los comandos AT, pero se da el caso que en los modelos mas antiguos que mensione tambien el control se hace por AT si problema. A todo esto me surge una pregunta que creo es medio logica pero no esta mal preguntar verdad.

El teme es que por lo visto TODOS los modelos de SONY  ERICSSON GSM soportan los comandos AT sin problema.

si alguien sabe este dato me lo puede confirmar o es mera casualidad.

desde ya muchas gracias a todos y suerte.


Alepic.


----------



## alepic (Ago 14, 2007)

bueno el tema de los nokia los deje de lado debido a que es una loteria hacer que funcionen las tramas para un cell en especial y ni que decir si tenes que cambiar de modelo, tenes que empezar de nuevo TODO.

ahora les cuento que me puse a trabajar con un t237 como nestor y de mil maravillas funciona, ya configure el celular para que al recibir un sms saque por el puerto la trama PDU del sms o si queres te indica en que memoria del telefono esta. lo cual es una parte importante de mi proyecto, ya que el equipo se tiene que configurar por medio de sms.

bueno eso les cuento por ahora y para el fin de semana me puse de meta ya tener algo sobre mi pic 16f877a ya que todas los comandos que voy a utilizar los estoy probando desde hyperterminal para estar seguro de que enviar desde el pic.

bueno nos vemos y suerte a los qque empiezan.

alepic


----------



## Alejo55 (Ago 16, 2007)

alepic el link del circuito con el 74hc126n no muestra nada, podria subirlo de nuevo o agragarlo como imagen? Gracias


----------



## alepic (Ago 16, 2007)

ahi lo subo de nuevo avisame cualquier cosa


----------



## tiopepe123 (Ago 16, 2007)

podrias enviarlo como jpg? aunque sea camturandolo con la tecla  IMPR PANT y pegado al pain


----------



## Alejo55 (Ago 17, 2007)

Gracias alepic. Por fin logre comunicarme con el teléfono


----------



## alepic (Ago 18, 2007)

ahi lo alzo en formato jpeg


----------



## tiopepe123 (Ago 18, 2007)

Al fin pude comunicarme con mi siemens, para la adaptacion utilice un 4050 y funciona perfectamente, veo que las adaptaciones de 3V utilizan integrados dificiles y este va de perillas, tambien lo he utilizado para la pantalla de un nokia y tambien funciona perfecto a 3V

Un saludo multiculti


----------



## orly (Ago 22, 2007)

Amigo Alepic favor necesito su ayuda al momento estoy tratando de conectar al PC el telefono NOKIA 3220, me he realizado un circuito convertidor de ttl a rs232 con un max232.
Y he configurado el hyperterminal a 9600  y a 112500 pero en ninguno de los dos modos me responde a los comandos AT.
Le env'io AT , ATZ, ATI  y nada no me responde ninguno.
Favor necesito su ayuda, como puedo conectar el cell al puerto com 1 del PC atraves de un max 232.
Si tiene el esquematico de un circuito de como puedo conectar el cell al PC se lo agradecer'ia muchisimo.

De antemano espero su ayuda y gracias por todo.


Att.

Orly


----------



## alepic (Ago 22, 2007)

el circuito para el max232 lo baje del foro, lo habia alzado LI-ION, es super facil, de pronto no se conecta por una mala configuración del hiperterminal, una vez a mi no se me conectaba porque tenia la funcion de control de fujo como "hardware" o "xon/xoff" tendria que estar en "ninguno". ve eso y avisame como te fue

https://www.forosdeelectronica.com/about2.html

alepic


----------



## orly (Ago 23, 2007)

Amigo Alepic una pregunta m'as las lineas Tx y Rx las cojo del puerto pop port del NOKIA 3220 o de los contactos interiores del mismo. Como le funcion'o a usted.

Adicional algo usted me podr'ia confirmar que este modelo acepta los comandos AT y no las tramas como en los modelos 1100.


De antemano gracias.

Att.

Orly


----------



## alepic (Ago 23, 2007)

mira orly especificamente no trabajo con el 3220 pero este correo dav_202@hotmail.com es de DAVOLO que el si hizo un proyecto con el 3220 que es peru y te va a poder guiar mejor en el conexiónado del puerto del 3220.

si acepta comandos AT y no me trates de usted que ya es mucho, cha y de que pais sos.

ALEPIC


----------



## orly (Ago 24, 2007)

La verdad amigo me exprese mal y le pido disculpas si lo ofendi, mira soy de Ecuador y estoy tratando de realizar la conexion de un pic con el 3220.
De antemano agradezco toda su valiosa ayuda que me ha brindado.

Saludos.

Att.

Orly


----------



## alepic (Ago 26, 2007)

Bueno primero les cuento sobre el proyecto, va a ser una alarma que al recibir una señal externa va a generar un sms, con un texto y a un numero predefinido. Las pruebas de todos los comandos que intervendrían en el proceso las hice desde el hyperterminal (ya sea configuración del cell, envió de sms, generar llamadas, recepcionar sms recibidos en el cell y otras cosas mas), en todas les pruebas e monitoreado el puerto serial y obtenido los valores hexadecimales que se transmiten (los que se no se ven y los que si).

Desde ayer empecé a cargar los datos en el PIC para generar los comandos y empecé con uno simple para probar mi programa, el comando es "ATD111;" que llama al servicio de atención al cliente, con esta llamada puedo corroborar que el cell entiende mi comando y ve en pantalla si se genera la misma y mas importante no me consume saldo si lo necesito hacer 100 veces hasta que quede depurado el programa.

Bueno el problema es que conecto el PIC a la PC y leo el puerto serial con el hyperterminal y al mismo tiempo monitoreo la comunicación y mi programa envía esto: 

0D 0A 61 74 64 31 31 31 3B 0D 0A

Que corresponde al comando en cuestión, también al principio envió 0D 0A que corresponde a ENTER para de alguna forma eliminar cualquier dato basura que haya recibido en cell y este esperando se complete algún comando.

A simple vista esta perfecto, pero al conectarlo al cell no funciona y para ver si el cell es el problema envió el comando desde el hyperterminal a cell y funciona, al monitorear el proceso obtengo:

61 74 64 31 31 31 3B 0D

Esperen dirán que no es igual pero ya lo probé así y nada, leyendo en las pagina anteriores encontré que nestor dice que ENTER equivale a 0D + 0A   y no solo  0D por eso le agregue 0A 

Bueno ahora algunas cuestiones que me parecen lógicas:

1. La configuración es de 9600,8,n,1, sin control de flujo. y en el PIC lo mismo por eso el hyperterminal recibe mis datos verdad.

2. Si el hyperterminal recibe los datos, el circuito de adaptación de voltajes funciona, le probé cambiando los voltajes usando 2V; 2,4V y 3V usando el circuito que levante al foro y mas de uno ya lo uso; lo que no probé si tengo que alzar mas el voltaje o no.

Bueno para terminar si alguien me puede decir que estoy haciendo mal o si tengo que corregir algo, porque como ya le habrá pasado al alguien que tan metido estoy en e tema que no veo el error y para alguien de afuera es obvio el error.

Desde ya muchas gracias

Alejandro Garrido (alepic)

P.D.: me entro una duda, si en la frecuencia de transmisión del PIC hay alguna variación en el valor, el hyperterminal se ajustaría automáticamente y no vería el efecto; pero el cell no se ajustaría y por eso puede ser que no funcione?????????


----------



## alepic (Ago 27, 2007)

hola de nuevo les cuento que ya hice comunicar mi pic con el cell, el problema estaba el la adaptacion de voltajes, por lo visto el voltaje estaba bien para a pc pero insuficiente para el cell, bueno agradesco a nestor nieto por reponderme.

les voy a tener en cuenta como me va, un saludo

alepic


----------



## geniolius (Sep 4, 2007)

Bueno, les comento que arme el siguiente circuito y el mismo funciona bien de bien, solo que tengo un problema, parte del circuito se alimenta de los 3,6v que le da el celular, pero necesito este pin libre en el celular para conectar el cargador, supongo que esos 3,6v se pueden sacar de la fuente de 5v con alguna resistencia, pero no se me ocurre que valor de resistencia colocarle, podrian por favor ayudarme?

Gracias, saludos


----------



## alepic (Sep 4, 2007)

podes quitar la bateria y de ahi alimentas al cell

alepic


----------



## alepic (Sep 21, 2007)

hola tanto tiempo como andan con las pruebas se quedo parado el hilo, bueno les cuento que ya estoy leyendo los sms del cell sin problemas, les queria preguntar si alguien hizo que el pic lea los 160 caracteres del sms.

muchas gracias y suerte a todos.

Alejandro Garrido


----------



## Facundo Hernan (Nov 12, 2007)

Que tal? Me llamo Facundo y estoy buscando información para poder comandar en principio una lampara mediante un pic y un celular. La idea es mandar un SMS a un celular y que el mismo le de la orden a un pic para encender o apagar una lampara. (Siempre con la Interfaz correspondiente entre el pic y la lampara). Una vez realizado esto ampliare el proyecto. el fin es automatizar las cosas mediante SMS y un pic.

En principio les pregunto que celular me conviene comprar ya que no tengo ninguno, en realidad tengo el Nokia 6131. pero prefiero hacer las pruebas con uno mas baratito. Circuitos para conectar el celu a la PC, etc etc.

Todo tipo de documento, consejo y demas sera bien recibido.

Saludos para todos.

Facundo


----------



## rsoloyo (Dic 18, 2007)

Chicos me pidieron mandar un mensaje a un celular cuando se active un detector de proximidad, yo tengo ya ese detector, es un circuito que hice y utiliza una fotoresistencia, estoy trabajando con un max rs232 y  un pic. 

Me dicen que en el circuito que ya tengo tengo que conectar el pic que debo de programar, y que del pic conecte el celular. 


No tengo el programa para controlar lo de los mensajes y la idea no muy clara de lo que tengo que hacer. 

Si alguien me pudiera ayudar con esto se los agradeceria! 


Gracias!


----------



## alepic (Dic 19, 2007)

bueno para facundo y rsoloyo si retroceden en el hilo lo suficiente van a encntrar casi todo, los circuitos para conectar el cell al pic y que sentencias tendrias que enviarle al cell para enviar sms, les recomiendo usen un pic que tenga un puerto serial incluido como los f628 y el f877. cualquier cosa avisen en un mensaje privado, pero si se leen las 12 paginas del tema van a aprender un monton.

un saludo 

Alepic


----------



## electrik77 (Ene 13, 2008)

Nestor Nieto dijo:
			
		

> Disculpen la tardanza pero estuve probando el rx del circuito PIC-T237 (que les adjunto) y anduvo bien. Les comento que hice con el tema pic-sms, primero me asegure que anduviera todo bien desde el hiperterminal (9600,8,N,1)
> 
> AT <ENTER>
> OK
> ...



Buena, está bueno el circuito que mandáste, lo único que hay un problema de polaridad de los transistores, el emisor que tiene la marca de la flechita en la patita van conectado GND o sea la masa, y en la figura están conectados en pullup. En sintesis el colector se conecta a pullup(a +5v a traves de la resistencia de 4K7) y el emisor va conectado a masa.


----------



## AG-1 (Ene 19, 2008)

No entiendo que problema hay con la adaptación de voltajes. El PIC no es obligatorio alimentarlo a 5 voltios. El pic se puede alimentar a 3,6 voltios(en el caso de telefonos que necesiten trabajar a ese voltaje, ya que algunos otros necesitan incluso trabajar con niveles de 4,8V) y problema resuelto¿No?. De esta forma reducimos circuitería y mas circuitería......


----------



## bactering (Ene 20, 2008)

Y la alimentación ya que puedes conectarlo al telefono.


----------



## Israel0072007 (Ene 26, 2008)

Hola a todos:

Miren, mi proyecto es comunicar el PIC (lo mas probable es que use el 16F877A) a un Nokia 6101, mediante comandos AT.
Primero que nada un profe me sugirio que empesara viendo si me podia comunicar por medio de Hyperterminal al cel. Compre un cable generico CA-42 (creo que simplemente es un conversor de USB a serie, ya que crea un puerto serie virtual, en mi caso COM4), le instale los drivers, baje de la pagina de Nokia el PC Suite y lo instale; al principio no me detectaba el cable, pero quien sabe que le pude mover y lo detecto, me fui a la Hyperterminal y pude enviar los comandos AT, lei mis SMS, envie SMS, hize una llamada, etc.

El problema biene despues, desinstale el PC Suite volvi a irme a la Hyperterminal (por cierto esta configurada con 9600, 8, Ninguno, 1, Control de flujo: Ninguno; es la misma config. que use cuando heche a andar los comandos anteriormente) y ahora no me hizo caso el celular, si alguien tiene una idea de porque y como solucionar el problema por favor ayudeme.

Otro problema que tengo, es que ya arme el circuito para conectar el puerto serie al celular (el que posteo Li-ion, pero de igual manera no me funciona ni instalando el PC Suite ni desinstalado; escribo _AT_ en la hyperterminal y no recibo respuesta.
El circuito funciona bien porque usando el Free Serial Port Monitor, conecto una resistencia de 1K entre el Rx y Tx del MAX232 (sin celular ni nada) y checo el programa y la letra que mando por la Hyperterminal es la que resivo o sea que si hay comunicacion; pero con el celular no hay ninguna comunicacion.

Gracias..
Israel Nuñez H.


----------



## eeben (Mar 7, 2008)

Hola, a todos, que tal, necesito ayuda con un proyecto, espero me puedan ayudar. Estoy conectando un pic16F877a con un celular sony ericsson T290a, utilizo picc para la programación y trabajo en modo de texto . Al enviar un sms todo funciona bien, pero tengo problemas al recibir el sms, pues parece que el PIC no detecta nada en el receptor. He probado algunos circuitos, mencionados en este foro  para el acoplamiento de señales entre el pic y el celular, pero no he conseguido resultados. 

Si alguien pudiera ayudarme, le estaría muy agradecido.


----------



## FitoDut (Mar 13, 2008)

Hola:
       Mi nombre es Rodolfo, y estoy tratando de hacer que un PIC16F628A lea por puerto serie las respuestas de un celular Siemens A56 a los comandos AT que le envío con mi PIC.
       Al puerto serie del PIC lo tengo configurado en 9600bps (he probado también 19200bps) 8 bits sin paridad con 1 bit de stop y control de flujo por software (Xon/Xoff) o ningún control de flujo.
       He transmitido y recibido señales previamente con esta configuración desde el PIC a la PC y también desde el Celular a la PC, con resultados favorables. Y para mi sorpresa, cuando conecté el celular con el PIC, vi que el celular interpreta los datos del PIC, pero el PIC no interpreta los del celular ! 
       También he hecho que la señal TX del celular entre en un MAX232, éste la pase a nivel RS232 de PC y luego esta señal la hacía entrar en el mismo integrado (por otro conversor que tiene) bajándola a nivel TTL/CMOS para inyectarla en el RX del PIC. Con esto logré que el celular enviara los datos serie en 5V, pero de todas formas el PIC no lo interpretó correctamente.
         Lo que quiero preguntar es si alguien puede ayudarme a resolver este problema, porque la verdad es que he probado de todo lo que se me ocurrió


----------



## eeben (Mar 14, 2008)

Que tal Rodolfo, creo tener el mismo problema, no si me puedes sacar de una duda, qué tipo de lenguaje estás utilizando para programar el PIC (ensamblador u otro de alto nivel) y otra pregunta , qué pines del microcontrolador estás utilizando para la comunicación serial, los de hardware o si los estás configurando por software.


----------



## FitoDut (Mar 14, 2008)

Hola Eeben:
                   Yo estoy programando en ensamblador porque al C para PICs todavía no lo vi mucho. Uso los pines RB1 y RB2 (RX yTX) del PIC16F628A, o sea los que vienen por hardward, obviamente los configuré para la velocidad que le quiero dar (9600bps o 9200bps). Primero probé conectarlo casi directo al PIC con el celu, es decir que lo único que puse de adicional era un zener 3,3V con una resistencia de 1k(limitadora de corriente) en el TX del PIC para que no afectase al RX del celular. Pero si bien pude enviar el comando AT al celular, no logré que el PIC recibiera el "OK" que me envía el movil como respuesta al comando.
                    Luego intenté adaptar las señales con un MAX232, con los mismos resultados. Después intenté hacer un adaptador con unos transistores y unas resistencias que lo podés ver en: https://www.forosdeelectronica.com/download.php?id=7363. Pero tampoco tuve suerte. Sigo buscando respuestas, tal vez esté haciendo mal algo en la configuración del puerto del PIC. Lo raro es que con el Hyperterminal puedo establecer perfectamente las comunicaciones tanto con el PIC como con el celular.
                      Si me entero de algo te aviso, mantenete en contacto. Un abrazo


----------



## eeben (Mar 14, 2008)

Hola Rodolfo, coincidentemente probé la comunicación serial de la misma manera como tú lo has venido haciendo, es decir, PIC-PC, cel-PC, también lo del puente con el MAX232 y el circuito con transistores, pero no sé por qué no logra interpretar información el PIC. Al inicio, estaba probando con los pines del PIC por hardward para la comunicación serial (en el caso del uC PIC16F877A, Tx=C6 y Rx=C7) y de esta manera no lograba recibir información del celular, pero si podía enviarle comandos. Posteriormente, lo que hice es probar con otros pines, lógicamente configurados mediante pic c, y de esta manera logré que el uC interpretara los datos del cel.
Espero que esto te pueda servir de ayuda en algo, pero al utilizar ensamblador, el problema está que no podrías configurar la comunicación serial con otros pines. Por favor, comunícame si conoces algo más sobre este inconveniente. Cualquier novedad te informaciónrmo... Saludos!


----------



## davemaster (Mar 22, 2008)

maunix dijo:
			
		

> pinda dijo:
> 
> 
> 
> ...



Hay varios modulos GSM en www.sparkfun.com, y el transporte es cómodo....

espero ayude..

suerte.


----------



## Meta (Mar 26, 2008)

No voy a leer las 14 páginas.

¿Alguien ha hecho algo* Celular GSM con PIC o PC* y que funcione?


----------



## eidtech (Mar 26, 2008)

Meta dijo:
			
		

> ¿Alguien ha hecho algo* Celular GSM con PIC o PC* y que funcione?



SI


Meta, no te caeria nada mal, leer, investigar y tratar de entender muchas cosas antes de preguntar...


----------



## macraig (Mar 26, 2008)

Meta dijo:
			
		

> No voy a leer las 14 páginas.
> 
> ¿Alguien ha hecho algo* Celular GSM con PIC o PC* y que funcione?



Nadie las leera por ti . 

Con pic no, mas bien no lo se, pero con avr si. Mira 
http://www.atmel.com/dyn/resources/prod_documents/doc8016.pdf
http://www.hackaday.com/2007/07/15/sms-tracking-with-a-gps-gsm-enabled-avr/


Salu2


----------



## Meta (Mar 26, 2008)

En AVR de Atmel lo veo por todas parte hasta en Routers, también en Motorola. Parece que en PIC los fabricantes no les interesa mucho en hacerlo. Aunque hace un tiempo encontré uno hecho con PIC, que me dio esa información un CD-ROM que vino en una revista de electrónica.

Deja ver si encuentro esa web. Recuerdo que era cara para lo que es.


----------



## fabianapei (Mar 29, 2008)

Hola, estoy utilizando un microcontrolador de la familia 8051, la pregunta es la siguiente.
Alguien intento hacer esto mismo con un micro?, hay lineas de programacion en assembler?

Agradeceria saber si es posible hacer esto con un micro


----------



## macraig (Mar 29, 2008)

Si, si es posible. Hay lineas en assembler. Si hay gente que lo ha intentado. Todo esta en google. Ya deje unos links bastante buenos arriba.

Salu2


----------



## leonxp (Abr 1, 2008)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;RUTINA QUE REALIZA UNA LLAMADA AL  NUMERO 123456789
 ATD123456789;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ATD	MOVLW "A"
	MOVWF DATO
	CALL TATO
	MOVLW "T"
	MOVWF DATO
	CALL TATO
	MOVLW "D"
	MOVWF DATO
	CALL TATO
	MOVLW "3"
	MOVWF DATO
	CALL TATO
	MOVLW "1"
	MOVWF DATO
	CALL TATO
	MOVLW "6"
	MOVWF DATO
	CALL TATO
	MOVLW "4"
	MOVWF DATO
	CALL TATO
	MOVLW "9"
	MOVWF DATO
	CALL TATO
	MOVLW "5"
	MOVWF DATO
	CALL TATO
	MOVLW "8"
	MOVWF DATO
	CALL TATO
	MOVLW "8"
	MOVWF DATO
	CALL TATO
	MOVLW "2"
	MOVWF DATO
	CALL TATO
	MOVLW "1"
	MOVWF DATO
	CALL TATO
	MOVLW ";"
	MOVWF DATO
	CALL TATO
	CALL RET_CARRO
	RETURN
;==========================================================================
;*****************RUTINA DE TANSMISION*************************************
TATO		MOVLW 8
			MOVWF CONT8
			BCF TX
BIT2
			CALL TIME
			RRF DATO,F
			BTFSS STATUS,C
			BCF TX
			BTFSC STATUS,C
			BSF TX
DECON
			DECFSZ CONT8,F
			GOTO BIT2
			CALL TIME
			BSF TX
			CALL TIME
			RETURN
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME2 ;RETARDO DE 52 uS104 uS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	MOVLW 1
	MOVWF RET1
T1
	MOVLW .14
	MOVWF RET2
T2	DECFSZ RET2,F
	GOTO T2
	DECFSZ RET1,F
	GOTO T1
	NOP
	RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME ;104 uS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	MOVLW 1
	MOVWF RET1
T3
	MOVLW .28
	MOVWF RET2
T4
	DECFSZ RET2,F
	GOTO T4
	DECFSZ RET1
	GOTO T3
	NOP
	NOP
	RETURN


----------



## jdhios (Abr 1, 2008)

Hola Foreros:
Yo ya pase por las experiencias de enviar mensajes y recibir con un modem Motorola G24. Lo que no me convence de estos modulos es el precio y los celulares modernos generalmete no se comunican por RS232. Hice una programa de prueba para no utilizar el hiperterminal y todo funciona de 10 salvo el precio. Me imagino que celulares como el C115 se deben poder conectar, pero no se como. Si alguien tiene algun dato pasenlo por favor.

 Saludos...
Jorge Miguel Dhios


----------



## leonxp (Abr 1, 2008)

Usa celulares Sony  ericsson t290,Siemens c55,c60,a56,a 76.....que conozco tienen puerto serial o Utiliza un sony ericsson k310 que tien modem interno y conexion USB,y programas un PIC con puerto USB,18f2550 por ejemplo,o haces la comunicacion con un PIC normal y le adicionas  el PUERTO USB externo a ltravez de un:
 busca en internet...:"PIC to PC USB 2.0 interface with FT245BM",
AN956,
AN3025
Suerte


----------



## leonxp (Abr 7, 2008)

yo use visual basic para programar el sistema de transmision con un Sony ericsson K310 conectado por USB..........es mas economico y tiene modem GSM Interno,115200 de velocidad.
intenta con ese......claro esta para realizacion del programa de transmision,pero para recepcion...un t290,un a56,a71,c55,c56,


----------



## Stitch (Abr 8, 2008)

Hola todos...
estuve trabajando algo con el envio de sms usando un cel Sony Ericsson y funciona bien, el problema es que, según tengo entendido, no puedo enviar sms de mas de 160 caracteres, y yo necesito enviar un paquete de hasta 64kbytes, la cosa es que no quiero dividir eso en muchos sms... esto sería muy engorroso. Alguien conoce alguna forma de enviar grandes cantidades de datos que no sea por sms?

Gracias


----------



## psypersky (Abr 9, 2008)

Hola, soy nuevo en el foro. me pregunto si alguien ya experimento con el nokia 6131, ya que e estado buscando en internet, y todavia no se si este celular soporta los comandos AT.

Planeo  armar un cable serial para este celular.





De antemano Gracias.


----------



## psypersky (Abr 10, 2008)

Hola, les comento que probe la conexion con ese cable que construi con un max232 y no obtube ningun resultado con el nokia 6131, ahora probare con el cable USB


----------



## alepic (May 1, 2008)

tendrias que adaptar los niveles de tension entre el max 232 y el cell, en la pagina 5 o 6 de este tema tenes un circuito que funciona perfectamente.

un saludo

alepic


----------



## martincasalis (May 1, 2008)

Hola a todos... en el dia de hoy estuve probando el T290 con la pc y anda de 10, pude hacer llamadas y cortarlas. Ahora estoy viendo como es el tema de los SMS que esta complicado por eso de PDU, que estoy tratando de ver de que se trata. 

Seguire probando y les cuento como me fue.

Saludos.


----------



## gemejiar (May 4, 2008)

Buenas Tardes para todos, he leido todos sus aportes y me han ayudado bastante en mi proyecto pero aun tengo algunas dudas, que agradesco alguien me las pueda  resolver.

Bueno para comenzar cuento que logre la comunicacion del modem via hyperterminal, con envio de sms, pero al enviar los mismos comandos AT por la comunicacion serial con el uC no logro ninguna respuesta en el modem.

para verificar el funcionamiento del hardware uC+modem+interfax de comunicacion, trate de enviar el comando AT$RESET el cual basicamente deberia reiniciar el modem, pero no obtengo respuesta.
he realizado todas las pruebas con el modem-PC y con el uC-PC y al parecer todo deberia funcionar, si a alguien le ha ocurrido lo mismo y conoce la solucion, gracias de antemano por compartirla.
la configracion del puerto serial esta en 19200, 8, 0, 1, ninguno. la conexion electrica se hace solo con los pines de Tx, Rx, GND (3,2 y 5) en el enfora estoy puentiando los pines 6 y 7.


----------



## Nestor Nieto (May 5, 2008)

Hola martincasalis

El t290 te permite enviar sms en formato texto, con esto no te estarias complicando con el tema de los pdu, pero igualmente si queres información acerca del tema al final de la pagina 5 tenes una planillita que arme hace un tiempo en excel, sms_pdu.xls que te de/codifica mensajes a PDU. Tenes las funciones que necesitas dentro de las macros.
Saludos 

Nestor


----------



## martincasalis (May 5, 2008)

Es cierto lo que decis Nestor. 
El finde estuve jugando con este juguetito y encontre que tiene soporte para mensajes en modo texo. Lo que estoy haciendo en este momento es una traduccion del pdf de comandos at de sony ericsson, para asi poder comprender y saber utilizar todos los comandos disponibles. Cuando lo tenga terminado lo subo para los que lo puedan llegar a necesitar.
Y la planilla de los PDU no la podia usar porque tenia deshabilitados los macros en el excel. Ya los habilite y esta funcionando de 10....

Seguire investigando y los mantengo al tanto.


----------



## gemejiar (May 5, 2008)

Buenas tardes para todos, en la imagen adjunta esta un circuito que en teoria nos permitiria monitorear la comunicacion entre el uC y el modem, aun no la he probado, pero parece funcional, Suerte para todos.


----------



## h22 (May 9, 2008)

Pluter70 dijo:
			
		

> Disculpen la tardanza pero estuve probando el rx del circuito PIC-T237 (que les adjunto) y anduvo bien. Les comento que hice con el tema pic-sms, primero me asegure que anduviera todo bien desde el hiperterminal (9600,8,N,1)
> 
> AT <ENTER>
> OK
> ...




HOLA Pluter70

Por favor me puedes pasar la lista de comandos AT para Siemens A56. O donde los puedo encontrar... Muchas...muchisimas gracisa desde ya.


----------



## Pluter70 (May 10, 2008)

Estimado h22,

Esta información talvez te pueda servir para lo que requieres, pero si lo que deseas es enviar SMS no tendrás ningún problema con los comandos.

Saludos,


----------



## Javilondo (May 16, 2008)

Chequen esta página, les será de mucha ayuda:
http://www.embedtronics.com/nokia/fbus.html#part1

Próximamente publicaré la versión en español de la página.

Saludos.


----------



## phbesancon (May 28, 2008)

Hola a todos, 
Tengo que hacer un proyecto para comunicar el pic con un ericsson t637. Los comandos AT que probe usando el hyperterminal funcionan a la perfeccion.
Ahora quiero programarlo en C, para luego programar el PIC. Instale el Compilador C CCS y el plugin para MPLAB
EL problema es que no logro encontrar la libreria stdlibm.h que necesito para que el programa corra bien. El tema es que baje una version demo del CCS,
alguien sabe donde puedo encontrar el archivo stdlibm.h ?

gracias por la ayuda.

saludos!


----------



## eenrique (Jun 6, 2008)

Hace poco contruí una alarma con el PIC 16f628a y el SIemens A56, las posibilidades son bastantes extensas. Coloque un sensor magnético en mi oficina para que me envíe un SMS cuando sea  abierto, puedo encender y apagar mi portátil con mi cel y solo con mi número pues  tiene la rutina de identificador que me brinda más seguridad y evitar que accidentalmente otro marque al cel de la alarma y lo encienda. Instalé un sensor de calor  para desactivar la alarma mientras este adentro y activarse al salir. Coloque otro sensor en la ventana, y con una interrupción me verifica su estado. Me envía un reporte SMS cada tres  horas del estado de los sensores. Una fotocelda para verificar el estado luminiscencia de la oficina y encender la luz ante mi presencia, con una llamada anticipada, y según la oscuridad que exista. Me faltaría por colocar un detector de humo utilizando los puertos comparadores de voltaje para sentirme aún más satisfecho.


----------



## Cristian Carrión (Jun 15, 2008)

Hola eenrique yo estoy trabajando en algo similar a lo que tu has realizado, se trata de un sistema de alarma utilizando SMS. Lo que hice es ubicar sensores por toda la casa y en el momento en que haya algun problema me envía un mensaje a mi celular. Todo esto lo implementé con un PIC16F628A y un celular Nokia 3220. Ya logré que me envíe el mensaje y todo eso, pero lo que quiero ahora es que yo pueda escoger el número de teléfono al que quiero que se me envíe el mensaje sin necesidad de cambiarlo en el PIC. No se si me puedas ayudar con esto no se si haya la posibilidad de que el mensaje se envíe a un número que está grabado en el directorio del telefono o algo así porque por el momento lo tengo al número grabado en el codigo del PIC y si deseo cambiarlo tengo que entrar al código, cambiarlo y quemar nuevamente el PIC. Espero que me puedas ayudar, necesito esto debido a que es parte de mi proyecto de tesis. Gracias


----------



## eenrique (Jun 16, 2008)

Una alarma GSM con PIC  me parece muy modesto para ser tema de tesis, pues ya ha sido ampliamente comercializado y se consigue en el medio, ademas de no ser tan exigente en el campo investigativo. Incluso la utilización de un GPS para conectarlo a una interfase de este estilo y enviar su posición a otro cel conectado a un PC y contrarrestarlo en pantalla con mapas  podría ser buen tema, pero ya ha sido tambien tratado. Considero un buen tema la telemetría aplicada con sensores remotos de los cuales no he visto personalmente para un proyecto de tesis. En fin para concluir enviame el código de assembler del PIC que estas usando y hacerte las correciones con el cual podría eventualmente ayudarte.


----------



## Cristian Carrión (Jun 16, 2008)

Bueno la finalidad de este proyecto es todo un conjunto de objetivos usando SMS parte de esto también es la telemedicina donde se utilizará la red GSM para la transferencia de datos hacia un servidor remoto. Bueno el asunto aquí es que no se ha logrado el objetivo que te había comentado es decir que se pueda cambiar el número de destino sin necesidad de cambiarlo en el codigo y volver a quemar el pic.
El comando AT que utilizamos es:
AT+CMGS="09593xxxx" donde se debe especificar el número de destino. Por el momento el número está grabado en el PIC y para cambiarlo hay que ingresar al código y volver a quemar el PIC. No se si tu conoces algún otro comando o como hago para envíar el mensaje a un número guardado en la agenda telefónica. Ahí te envío la parte del código que realiza el envío del mensaje desarrollado en MicroCode Studio. Te envío tambien un archivo adjunto con el códogo completo.

w= 0
for w = 0 to 3
serout2 PORTB.5,84,["ATE0",13] ; pone al nokia en modo modem
pause 1000
next w

SEROUT2 PORTB.5,84,["AT+CMGF=1",13]
pause 1000

SEROUT2 PORTB.5,84,["AT+CMGS=",34,"+59395935444",34,13]
pause 1000

if bien =1 then SEROUT2 PORTB.5,84,["Alerta Zona1",26] 
if bien =2 then SEROUT2 PORTB.5,84,["Alerta Zona2",26]
if bien =3 then SEROUT2 PORTB.5,84,["Alerta Zona3",26]
if bien =4 then SEROUT2 PORTB.5,84,["Alerta Zona4",26]
if bien =5 then SEROUT2 PORTB.5,84,["Alerta Zona5",26]
if bien =6 then SEROUT2 PORTB.5,84,["Alerta Zona6",26]
if bien =7 then SEROUT2 PORTB.5,84,["Alerta Zona7",26]
if bien =8 then SEROUT2 PORTB.5,84,["Alerta Zona8",26]

END


----------



## eenrique (Jun 17, 2008)

Bueno te aconsejaría que grabaras en un temporal el número de destino que es leído del directorio SIM, en una ubicación específica. Ya teniendo ese número leído y grabado lo que harías sería enviar el SMS invocando el número guardado en el temporal.
Necesitaras de los siguientes comandos:

AT+CPBS="SM"           Con esto te ubicas en el directorio SIM.
AT+CPBR=<index1>    Ya elegido el directorio, con este comando se invoca el puesto.            
                                    index1 puedes ser "1, 2,3 etc" la posición que desees. 


La idea es que puedas cambiar el número de destino  desde el cel, localizando y modificando el número del directorio SIM. Te recomienda que en la lista solo este un número.
Te haría falta que hagas pruebas con el celular y los comandos que te envíe y  observes la respuesta de cada uno.


----------



## Cristian Carrión (Jun 19, 2008)

Ya realice algunas pruebas con los comandos que me propusiste, y pues si se puede leer cualquier entrada que se encuentre en lel directorio SIM. 

Ahora lo que no logro es que el celular envíe el mensaje al número correspondiente a esa entrada. Según yo tengo entendido el comando AT para el envío de mensajes es:

AT+CMGS="Número de destino"

En el momento en que guardo el número en un temporal y trato de cargarlo al comando antes especificado, me sale un error. No se si de pronto estoy haciendo algo mal.


----------



## eenrique (Jun 24, 2008)

Hazle un seguimiento por Hyperterminal, para observar si efectivamente se esta realizando a cabalidad el comando AT+CMGS.


----------



## Cristian Carrión (Jun 25, 2008)

Si, el comando AT+CMGS funciona bien, como te había dicho antes, el sistema está funcionando bien, los mensajes se envían con éxito cada vez que se activa la alarma.

Ahora, el asunto es que quiero tener la posibilidad de cambiar el número de destino sin necesidad de volver a programar el PIC. Y es ahí donde tengo problemas, he tratado de muchas maneras y no logro hacer esto.


----------



## eenrique (Sep 13, 2008)

Bueno aqui les dejo un pequeño video que realicé a partir de un proyecto de alarma GSM con un celular siemens a56i. Con la peculiaridad de hacerlo con unicamente la board del cel, es decir sin batería, sin display, sin vibrador y sin parlante. Se alimenta del circuito principal de dos microcontroladores 16f628a. De los cuales uno controla el display mientras que el otro el teclado y todo el procesamiento de los comandos AT dirigidos al móvil así como encargado de encender el siemens. Además de realizar llamada al número especificado, acepta las llamada entrante como el de encender y apagar un led mediante msj txt.  YouTube - Alarma GSM siemens


----------



## Diana Lopez (Dic 15, 2008)

Hola a todos soy nueva en este foro y estoy empezando a manejar código AT y tengo dos in quietudes q espero alguno de ustedes me pueda solucionar, y si alguien tiene problemas con programación con gusto le ayudare.

1) Después de enviar una instrucción como AT desde un pic cual seria la forma de enviar un <ENTERS> como el de mi teclado para q este comando se ejecute y obtenga la respuesta del Cel.

2) De que forma debo hacer una llamada para que durante el proceso de enlace el Cel me informe en q momento la llamada a sido contestada para iniciar una grabación. Y no se si sea posible identificar acciones como timbrazos, el tono de dejar mensajes en el buzón de voz para saber el momento en el cual se debe iniciar la grabación, y esas cosas…

De antemano gracias a todos y un abrazo.


----------



## Chico3001 (Dic 15, 2008)

Diana Lopez dijo:
			
		

> 1) Después de enviar una instrucción como AT desde un pic cual seria la forma de enviar un <ENTERS> como el de mi teclado para q este comando se ejecute y obtenga la respuesta del Cel.



mandas un 0x13d (0x0Dh) 



			
				Diana Lopez dijo:
			
		

> 2) De que forma debo hacer una llamada para que durante el proceso de enlace el Cel me informe en q momento la llamada a sido contestada para iniciar una grabación. Y no se si sea posible identificar acciones como timbrazos, el tono de dejar mensajes en el buzón de voz para saber el momento en el cual se debe iniciar la grabación, y esas cosas…



Cuando mandas el comando ATD el modem automaticamente identifica si alguien contesto.... si no contestan te regresa un error de algun tipo

Para identificar timbrazos y cosas asi tienes que hacerlo por software monitoreando la llamada en los pines analogicos... no conozco un comando AT que lo haga..


----------



## pablacho (Feb 24, 2009)

hola gente, yo tambien tengo mis problemas espero puedan ayudarme...
realicé el circuito de la página 6 para conectarme con un sony ericsson (por más que me resultaba muy extraña la manera de utilizar los transistores) T290 y logré enviar un SMS aunque nunca recibía nada desde el celular, ninguna confirmación ni error ni nada... revisando el circuito me decidi por mis instintos y di vuelta los dos transistores que levantan los 3.6v del cel a los 5v del pic (poniendo los emisores a masa, como despues noté que otro forero corrigió) y lo que veia en el 'adaptador' me sonaba mas conocido, pero aún así no obtuve ni 'A' desde el celular... sé que la interfaz rs-232 funciona ya que desde una PC puedo enviar y recibir caracteres sin problemas... que podrá ser? lo que me sorprende es que en un sentido si funciona la comunicación (PIC->CEL), pero al revés no! (CEL->PIC)... alguien tuvo este problema? como lo solucionó?
la comunicación está establecida en 9600 baud, 8 bits sin paridad... 
leí por ahi no recuerdo bien donde que no recuerdo bien que cel tenía control de flujo por hardware, por lo que habría que forzarle las señales de CTS y RTS al cel supongo! alguna idea? espero puedan ayudarme... gracias! saludos

****** EDIT ******
Para los que hayan tenido el mismo problema, el mío fué hardware... yo tengo conectado el cel al pic y a la vez un max232 a la pc para monitorear y hacer eventuales configuraciones. Entre el max232 y el cel evidentemente se 'molestaban' al compartir la línea RX del pic (con la línea TX compartida no hay drama), por lo que al sacar el max232 solucioné el problema. Ahora, no sé como conectar los 2 dispositivos a la vez , quizá tenga que recurrir a un jumper para habilitar/deshabilitar uno a la vez...
suerte!


----------



## alessandra (Feb 27, 2009)

hola
estoy tratando de q a un celular samsung u600 le lleguen los mensajes directo a sim pero no puedo me llegan directamente a la memoria.
si alguin sabe algo seria de gran ayuda
gracias


----------



## rizy (Mar 25, 2009)

hola necesito información de un circuito que me permita conectar el sony t290a para probar susu comandos at desde el hiperterminal les agradesco de ante mano


----------



## pablacho (Mar 25, 2009)

amigo rizy lea el foro... hay en la página 7 u 8 un circuito que funciona a la perfección...


----------



## rizy (Mar 26, 2009)

gracias pablacho no me habia fijado en eso, tengo un problema primero quiero verificar lo comandos at desde el hiperterminal antes de hacerlo con el pic, sabes que circuito funciona bien para esto


----------



## pablacho (Mar 26, 2009)

fabricá el circuito que te comenté antes, y en vez del pic conectá un MAX232: el pin RX CEL conectalo al RX del mx232 y el TX CEL al TX del mx232... también debería estar dando vueltas ese circuito, no sabría decirte bien en qué página... 
igual, te puedo asegurar que si lees bien las 9 páginas vas a encontrar eso y seguramente vas a responder otras preguntas quizas te plantees en breve... 
suerte


----------



## rizy (Mar 26, 2009)

gracias amigo lo voy a intertar gracias de nuevo por tu ayuda te molesto mas tarde


----------



## adrianjpc (Mar 28, 2009)

eenrique me podrias enseñar como le hiciste para establecer la cominicacion pic-celular, cual es tu digrama de ciruito que estas utilizando


----------



## pablacho (Abr 8, 2009)

Gente, estuve batallando para eliminar el problema de la batería en el cel, y les cuento que finalmente parece que obtuve la solución... lo que hice fue primero desarmar la batería, sacar cuidadosamente los 2 integrados de la mini-plaqueta y la celda de litio. Despues, soldé la plaqueta a los 3 bornes de batería del cel, y le conecté una fuente de 3,7v directamente a éstos. El resultado: el cel prende, y la batería disponible aparece como un poco menos de la mitad pero por suerte ésta no se gasta ... 
Si alguno necesita más detalles les comento y podria publicar alguna foto... Suerte!


----------



## adrianjpc (Abr 13, 2009)

hola anrique me gustaria que nos compartieras tus ideas yo necesito hacer un proyecto de ese tipo establcer la comunicacion pic_celular

saludos a todos


----------



## wofdy (Abr 24, 2009)

Hola, no se si alguien me puede colaborar, estoy haciendo un programita para enviar sms a traves del celular, pero no se como convertir texto a formato pdu, pero lo necesito en visual basic 6


----------



## biker2k3 (May 2, 2009)

A vr si alguien me sabe decir cual es el mejor celular para trabajar con PICs? puede ser que el siemens c55 s epueda coenctar directamente sin usar max232 ni nada? alguien probo? miren esta pagina http://www.maicas.net/goofy/cac55.htm


----------



## daniela lopez (May 13, 2009)

hola tengo un proyecto q estoy desarrollando q trata de controlar los equipos electricos y electronicos a traves de el celular, cuando hablo de controlar es como vigilar el funcionamiento de los equipos. ejemplo en el momento necesito controlar sobrevoltaje y sobrecorriente en una fuente dealimentacion y no tengo idea de como hacerlo apenas estoy viendo pics y ps no se mucho me gustaria q me dijeran como podria hacerlo alguna idea? de antemano gracias
saludos desde colombia


----------



## dEREK (Jun 5, 2009)

Hola cristian carrión me gustaria que me envies el diagrama de tu conexión del pic a nokia3220 te agradesco un monton .para ver mi correo tan solo click en mi logo ..


----------



## fran_14 (Jun 25, 2009)

buenas
esty en un propyecto similar al de ustedes
solo que soy principiante y quiero realizar una llamada y si se puede mandar un msaje cuando la alarma suene
lo hice con un pic 16f84a pero manejaba las teclas del celular, y ahora la idea seria hacerlo mediante comandos AT
si alguien me ayuda lo agradeceria


----------



## daniela lopez (Jun 25, 2009)

oye fran ojala me puedas ayudar con lo de la programacin en el  manejo de las teclas del celular para controlar equipos si me puedes hechar una manito me serviria de muchisimo gracias


----------



## davemaster (Jun 25, 2009)

daniela lopez dijo:
			
		

> oye fran ojala me puedas ayudar con lo de la programacin en el  manejo de las teclas del celular para controlar equipos si me puedes hechar una manito me serviria de muchisimo gracias



Saludos,

Las teclas del celular las puedes controlar utilizando comandos AT, dependiendo si tu celular es o no compatible con esos comandos.

Modelo de celular?


----------



## daniela lopez (Jun 25, 2009)

si, lo q pasa es q no tengo mucha idea sobre manejarlos en programacion puesto q hemos visto muy poco, el celular q vamos a utilizar es un sony ericson y tenemos los comandos at para este pero a la hora de aplicarlos nos loqueamos


----------



## fran_14 (Jun 27, 2009)

bueno capo mira yo lo q hice la primera prueba fue sacar cables de las teclas del celular y manejarlo con reles! pero la verdad ahra esty viendo sobre manejar comandos AT , saiq podemos juntos rebuscarnolas


----------



## davemaster (Jun 28, 2009)

daniela lopez dijo:
			
		

> si, lo q pasa es q no tengo mucha idea sobre manejarlos en programacion puesto q hemos visto muy poco, el celular q vamos a utilizar es un sony ericson y tenemos los comandos at para este pero a la hora de aplicarlos nos loqueamos



Ok, sony ericsson (especifica modelo porfa)... aca te adjunto manual de comandos at para sony ericsson

El comando es el AT+CKPD:

AT+CKPD Keypad Control (ver. 7)

*Description: *Execution command emulates ME keypad by giving each keystroke as a
character in a string <keys>. <time>*0.1 seconds is the time to strike each
key, and <pause>*0.1 seconds is the length of pause between two
strokes. This command should be accepted (OK returned) before actually
starting to press the keys. Thus unsolicited result codes of keys that have
been pressed and display events can be returned (see AT+CMER).
The physical keypad shall always have higher priority than emulation of
keystrokes via AT+CKPD. That is, if the physical keypad is operated during
execution of a series of keystrokes generated by AT+CKPD the emulated
keypad operation is to be terminated immediately.
Note: The default GSM character set does not contain the “[“ and “]” characters
used to emulate the left and right selection keys. Before sending
any of these keys with AT+CKPD, the character set needs to be changed,
for example to 8859-1 by sending the command AT+CSCS=”8859-1”.
Execution
*command:*
AT+CKPD=<keys>[,<time>[,<pause>]]
Test command: AT+CKPD=? Shows if the command is supported.
*Parameters:*
<keys>: String of characters representing keys as listed in the following table
(based on PCCA STD-101 Annex table I-3). Colon character (IRA 58) followed
by one character can be used to indicate a manufacturer specific
key not listed here. All characters from a semicolon character (IRA 59) to
the next single semicolon characters are treated as alpha entries and are
not converted to key equivalents. All semicolon characters inside alpha
entries should be duplicated in the TE and stripped to one before entering
to the ME. All IRA values not listed here are reserved.

*Note:* The SEND and END keypad values should be mapped to appropriate
keys.



Lo voy a implementar la proxima semana, ya les cuento.


----------



## fran_14 (Jun 28, 2009)

bueno capo eespero
el modelo en mi caso en un SONY Ericsson T106

pero consigo otro modelo no hay drama
muchas gracias

por tu ayuda te agradecemos


----------



## Jbian (Jul 7, 2009)

hola soy nuevo en el foro yo tambien tengo un problema no logro comunicar mi sony ericsson t106 con hyperterminal atravez de comandos at utilice el circuito con transistores bc547 (corregido por un forero) para adaptar voltajes con el maxrs323 y no con el pic en teoria deberia funcionar pero nada...lo que ahun no intente es la conexion con el pic pero con la PC debe de funcionar igual eso creo ya inverti la polaridad de tx y rx ,etc... les agradeceria la ayuda....


----------



## ericklarva (Jul 7, 2009)

Leyendo todos los comentarios observo que ya algunos links están obsoletos. Logré encontrar los comandos AT para los sony ericsson actualizados y se los dejo como aporte para el tema. Espero sirva de algo
Igual si alguien tiene como sacar las señales del conector del ericsson se los agradeceré.
Saludos


----------



## marvinxela (Jul 15, 2009)

he leido todas las paginas pero la mayoria conecta pc-celular y ps yo queria saver si alguien tiene el codigo para controlar el telefono con un pic como por ejemplo mandar  mensajes muchas gracias!


----------



## rizy (Jul 15, 2009)

es muy sencillo acceder al celular con un pic por lo general yo utilizo el sony ericcson t290a y el pic16f876a el cual me permite enviar mensajes, recibir y decodificar al menaje y ejecutar uun evento


----------



## marvinxela (Jul 15, 2009)

saludos rizy te agradesco por responderme, no se si me podrias ayudar con la parte del programa ya que no e podido programar el pic yo tengo el 16f877, y en lo que andao confundido es como enviar los datos con eso de los comandos at y todo eso por que solo he visito que lo hacen con hyperterminal te agradeceria si tubieras algun codigo del pic y que me dijieras en que programaste el pic , la conexion la hciste con transistores del cel al pic ?
gracias!


----------



## rizy (Jul 16, 2009)

listo te comento primero debes tener muy claro que tu telefono esta funcionando el puerto de comunicacion serial para descartar errores posteriores asi que es necesario comprobar todos los comandos at y la buena comunicacion serial del  telefono ya que a  mi me costo 4 telefonos hasta encontrar uno que me funcione correctamente y evitar pensar que el problema es la comunicacion con el pic.
para esto debemos comprobar el funcionamiento del telefono conectandolo con el hiperterminal del pc.
el hiperteminal en este caso va a ser como el pic con la superventaja que puedes visualizar el estado de la comiunicacion.
te voy a dar unos pasos que tienes que seguir para conseguir que proyecto avance:
1) compra el t290a o si puedes comprate un modem wavecom por lo general y mas barato el q2426b si quieres que tu proyecto tenga una  mejor confiabilidad ya que este modem esta diseñado para eso y hay que tener en cuenta que el telefono se bloque mucho y no permite el envio de mucha información a el pero esto lo  podras realizar cuando compruebes por ti mismo lo que te digo.
2) conseguir el cable datos: este paso se me hizo imposible ya que yo vio en ECUADOR - QUITO exactamente y como este telefono es antiguo no lo  encontre pero la experiencia que me quedo fue buena, lo que hice es comprar la camara que se adhiere a este la desarme y conecte cbles a los pines 4 5 8  que se rx tx y tierra y 10 y 11 que son tierra y positivo para cargar la bateria, estos pines esta de confirmarse no me acuerdo bien de que son cada uno ya que no tengo mi tesis a la mano pero todos esos pines tienes que conectar a cables para realizar las pruebas.

los siguientes pasos te los digo cuando hayas cumplido estos, te recuerdo que es un placer compartir los conocimientos entre la comunidad de electronicos ya que los tecnicos somos los que movemos el mundo, cuando completes los pasos me avisas ya que este mensaje se hizo muy largo


----------



## Moyano Jonathan (Jul 16, 2009)

rizy: Te felicito por tu proyecto.
Yo quiero realizar un proyecto en el cual a través del T290 que poseo y un PIC18F2550 programado en C de CCS  poder controlar 16 cargas a través de un mensaje de texto que yo envíe desde otro celular.

Si podés darme una mano con eso estaría super agradecido.


----------



## marvinxela (Jul 18, 2009)

hola rizy pues estos dias estube probando lo que me dijiste de conectar la pc con el telefono pero fijate que en le hyperterminal me salen un moton de simbolos y no me deja escribir probe las diferentes velocidades e igual el telfono con el que probe es un sony ericsson t106, motorola v190,v170,c115 y pues lo mismo no em funciona t adjunto el diagram de la pc al cel, sera el circuito pc-cel o los telefonos no son comaptibles? que telefonos as probado para esta conexion?


----------



## marvinxela (Jul 20, 2009)

hola rizy lo que no me dejaba escribir en el hyperterminal  es que el control de flujo estava en hadware entoncs cambiandolo a xon xoff o a ninguno ya me permite escribir fijate que con los motorola si no me dja escribir nada ahora con el soni ericsson t106 me deja escribir pero no realiza nada este es mi codigo
configurado (9600,8,1) de 9600 para arriba me deja escribir
at<enter>
at+cmgf=1<enter>
at+cmgs="aca va el numero de telefono"<enter>
>aca va el mensaje <ctrl+z>
+cmgs:204

pues se suponde que cuando escribo una instruccion me deveria de salir abajo "ok" pero no me sale nada, aparte que en el telefono no se visualiza nada se tendria q visualizar  cada instruccion que escribo? o como te decia en el comentario anterior o el telefono no es compatible?


----------



## rizy (Jul 21, 2009)

hola marvinxela disculpa la tardanza la causa es que yo vivo en quito y el enlace del foro estaba roto recien hoy dia lo pude abrir pero bueno mira primero como te dije tienes que probar y reprobar mediant el hiperterminal primero vamos probando elemento por elemento para descartar daños posibles has lo siguiente:
1. verifica tu circuito de conexion los diodos yo no los utilizo son muy innecesarios, la conexion es directa del cable serial del computador al max232 y del max directo al cel no necesita nada mas el l7805 como es solo un regulador armalo pero no lo tomes en cuenta, los capacitores son de 1uf  siempre hay que verfificar el funcionamiento y el conexionado directamente en el datasheet acostumbrate a trabajar con el datasheet, a ciertas personas les pueden fucniinar con otros elementos diferentes que los que se especifican en el datasheet pero eso depende de muchos factores .
cuando ya tengas el circuito vamos a verificar el hiperterminal siempre lo configuras con los parametros predeterminados es decir trabajar siempre a una velocidad de 9600 baudios. de ahi comprobamos el cable de db9 conectalo al pc y has corto el rx con e tx  cuando lo hagas podras escribir en la pantalla ya que estas realimentando. si esta todo bien seguimos si no verifica la conexion que hiciste en el db9.
ahora vamos a probar el max232 has lo mismo que con el cable ahora has corto las salidas que se supone que van al cel si te escribe todo bien ahora el problema es del cel


----------



## rizy (Jul 22, 2009)

hola jonathan disculpa la demora de mi respuesta no observe tu mensaje lo primero que debes hacer es tenr muy en claro el manejo de lo comandos at si vas a usar el t290a es muy bueno que sigas los pasos que puse en el anteriormensaje y sigue avanzando con eso me avisas y te sigo ayudando te cuento que programar en c del piccompiler es muy complicado hasta obtenr un filtro que te reconozca todos los datos que se envia en la comunicacion serial entre el pic y cel pero estas de mucha suerte yo hice mi tesis en c y en microcode asi que te puedo pasar el codigo base de mi programa eso te seria de muchisima ayuda pero todo se debe comenzar por el ´rincipio porque si te lo paso ahora estarias muy perdido y no sabrias de lo que se trata y que es  lo que programe, asi que mejor vamos paso por paso concluye los pasos anteriores y seguimos yo estare conectado al foro desde las 10:00 de la mañana hora de ecuador por si necesitas respuestas mas rapidas


----------



## Moyano Jonathan (Jul 22, 2009)

Si trabajas con MikroC o MikroBasic yo también me manejo más o menos en esos entornos. Mi proyecto es para el control de 8 o más cargas usando el PIC18F2550 o un PIC16F876A que son los PIC que tengo a mano en este momento.
Hasta ahora lo que entiendo es que los comandos se envian por el puerto serie del microcontrolador hacia el telefono.

Hablas sobre los filtros en la comunicación entre el PIC y el telefono. A que se debe este filtrado del cual hablas ?

Mientras tanto voy a ir leyendo como se han desarrollado las cosas hasta ahora en el hilo de la explicación.


----------



## Moyano Jonathan (Jul 23, 2009)

Bueno hasta ahora he visto más o menos todo lo que han hecho hasta ahora y me quedan varias incognitas:

- Que es el protocolo FBUS y como se aplica al NOKIA 1100 ?
- Como armo el cable para un sony ericcson T237 , ya postearon el hardware para la conexión con el micro.
- Como descifro una trama PDU proveniente desde el telefono ? (ya se como se decodifica mediante la tabla posteada con anterioridad pero no se como hacer para meter la formula en el micro.
- Que configuración de la USART tendría que tener el microcontrolador para poder comunicarse con el microcontrolador.
 - Que método de comunicación es más recomendable AT o FBUS y porque ?

-


----------



## Moyano Jonathan (Jul 26, 2009)

Bueno he estado leyendo extensamente todo el hilo de desarrollo:

- Tengo el T237 de sony ericcson funcionando.
- He leido bastante hacerca del el protocolo PDU y tengo en claro como enviar un sms, pero no tengo idea de como poder recibir uno en el micro y como se podría hacer para decodificarlo.
- Ya se como se configura la usart para comunicarse con el T237.
- Alguien tiene la hoja con los comandos AT que soporta el T237 ?

Agradería si alguien me puede aclarar esas dudas.

1 saludo !


----------



## rizy (Jul 27, 2009)

hola amigo moyano disculpa la tardanza he pasaso muy enfermo estos dias por eso de la gripe porcina pero todo ya esta bien mira primero como ya lo dije tienes que saber con cual trabajar te suguiero que lo hagas con el sony t290a por otro lado no te confundas con las tramas pdu es muy  dificil y es perdida de tiempo si puedes utilizar un telefono mediante comandos at los comandos at son un lenguaje de comunicacion entre el hombre y el modem  interno del cel asi que te recominedo que no te metas con las tramas.
manejar comandos at es muy simple y se puede realizar  todas las funciones del cell con eello consigue primero los comandos at para un sony.
otro punto el cable  de comunicacion lo puede hacer facil y sencillo eso queda a tu imaginacion te ya que para la comunicacion necesitas rx tx gnd y + y - para mantener cargada la bateria yo lo hice con la camara que se le  integra al t290 la desarme y le solde cables en los pines 4 5 8 11 y 12 me parecen esto tendrias que confirmarlo y ahi ya puedes continuar.
otra cosa no es solo tener un cell que te funcione normalmente con sus funciones manuales hay cell que funcionan todo pero no funciona su comunicacion serial asi que primero tienes que probar y reprobar con los comandos at  a ver si tienes comunicacion en otros mensajes puese unos pasos siguelos si trabajas con el t290a.
el filtro que hablo me refiero que en la comunicacion serial entre cell y pic el cell envia mucha información basura y tienes que aprender a separla basura de la información que te sirve eso si es un poco complicado como te digo en mi tesis yo envio un KMTR1 que se supone que me avilita una electrovalvula asi que el cel me envia esa información adherida a la fecha hora y otro tipo de información innecesaria que para el proyecto no sirve a esa información la denomino basura asi que en la comunicacion tienes que crear un filtro para saaber desde donde comienza en este caso el KMR1 y que tipo de orden se refiere el mensaje pero bueno yo te puedo ayudar, revisa mis mensajes anteriores y sigue mis paso para que no te pierdas en el camino y me avisa algun proble de adelante algo de los comandos at:
para probar  la conexion en le hiperterminal escribes
AT enter y si existe buena comunicacion el cell responde 
OK
AT+CMGF=1 cambia a modo texto el cell lo haces para no utilizar tramas de ahi
escribes el resto de comandos para enviar un mensaje pero como te dije empieza en el principio has la conexion y seguimos hablando un gusto


----------



## ericklarva (Jul 27, 2009)

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


----------



## Moyano Jonathan (Jul 27, 2009)

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.


----------



## Moyano Jonathan (Jul 28, 2009)

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


----------



## ericklarva (Jul 28, 2009)

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


----------



## rizy (Jul 28, 2009)

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


----------



## rizy (Jul 28, 2009)

buenaaa explicacion erick esta muy bien tu punto si necesitas ayuda me avisa


----------



## ericklarva (Jul 28, 2009)

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


----------



## Moyano Jonathan (Jul 28, 2009)

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.


----------



## Moyano Jonathan (Jul 28, 2009)

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.


----------



## Moyano Jonathan (Jul 29, 2009)

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.


----------



## rizy (Jul 29, 2009)

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


----------



## Moyano Jonathan (Jul 29, 2009)

Ok pruebo y te digo.


----------



## rizy (Jul 29, 2009)

listo ya para seguir programando el pic


----------



## Moyano Jonathan (Jul 29, 2009)

Bueno acabo de hacer las pruebas con resultados satisfactorio pero a la vez extraños   



+CPMS: 0,70,19,20,0,70 que significan esos caracteres ?


----------



## Moyano Jonathan (Jul 29, 2009)

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 ?


----------



## Moyano Jonathan (Jul 29, 2009)

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 ?


----------



## ericklarva (Jul 29, 2009)

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


----------



## Moyano Jonathan (Jul 29, 2009)

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.


----------



## Moyano Jonathan (Jul 29, 2009)

Empezé con lo más básico y no funcionó: 
     

Este es mi 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.


----------



## ericklarva (Jul 30, 2009)

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?


----------



## Meta (Jul 30, 2009)

Usa el MAX232 o MAX233 por si acaso.


----------



## rizy (Jul 30, 2009)

hola moyano muy bien te felicito estas avanzando muy rapido primero CPMS: 0,70,19,20,0,70 es la direccion de la memoria a la que accedes si te fijas al poner en vez de me sm veras que esta cambia pero bueno esto no nos sirve 
ahora la trama al momento de leer el mensaje es toda la que observas ademas de otros caracteres basura que se cuelgan en la comunicacion serial y scomo vez te envia fecha hora numero de quien lo manda etc, y al final esta el texto que necesitas y eso de rele1 on es un buen ejemplo de comando crea tus comandos a tus necesidades pero te recomiendo que sean palabras juntas por ejemplo rele1on por que esos espacios en la decodificacion del comando te va a provocar eventos es mucho mejor que siempre en los comandos tengas dos partes una de acceso y otra de orden ejm
en mi tesis mi codigo de acceso es KM y un comando es IR1 asi que el comando completo es KMIR1 esta forma de crear un comando te ayudara para desechar los mensajes que sean incorrectos y para tener un mejor control del mismo.
ahora antes de empezar a leer un mensaje debemos seguir los pasos el siguiente es que consigas una buena comunicacion serial con el pic antes de entrar a comunicar con el cell crea un programa en el cual tengas una comunicacion entre el hiper y el cell y que te prenda un led cuando envies un letra por el hiper verifica el buen funcionamiento de la comunicacion serial para que te familiarices y asi poder decartar errores futuros.
entonces arma ese programa y verifica la comjunicacio: te doy unos tips.
siempre en comunicacin seerial utiliza un osc de 20mhz si usas mas alto o mas bajo que este te puede generar muchos problemas utiliza buenos cables en la conexion de rx y tx del pic pues tambien te pueden  producir errores, continua y seguimos en contacto


----------



## rizy (Jul 30, 2009)

no te confundas de gana lei el resto de mensajes que postearon y todos estan mal avancemos en orden no te preocupes por el codigo ahorita has lo que te digo crea una buena comunicacion serial entre el pic y hiper para salir de estas dudas que vez que se presentan por no ir en orden el ese circuito no funciona asi que primero has lo que te digo si quieres seguir avanzando verifica la buena comunicacion con el programa que dije que hagas y seguimos el cell y el pic  se conectan directo asi que no te preocupes el max232 solo te sirve para realizar pruebas despues cuando estes seguro de todos los pasos pasamos a pruebas directo entre el pic y el cell ahi la conexion es directa asi aque no armes nada innecesario lo del max3232 es una compra innecesaria todo se hace con el max232.
si sabes muy bien c comienza programando en c pero primero yo te recomiendo que cuando comencemos a programar lo hagas en microcode es muy facil para empezar a enteder el funciinamiento despues podemos avanzar mas en el c bueno eso te recomiedo verifica la comunicacion serial y seguimos es muy importante


----------



## ericklarva (Jul 30, 2009)

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


Por lo menos las "lecturas" las realizamos de manera correcta, no se y espero que el termino plural "*están mal*" no se refiera a algo de lo que he comentado ya que si lees bien lo que tengo escrito en la "*cita*" podrás darte cuenta que es lo mismo que comentas al final.
Saludos


----------



## rizy (Jul 30, 2009)

con respecto a lo en el hiper se ve todo lo que se debe ever en el pic es mentira el hiper elimina muchos caracteres que los considera basura y muestra solo caracteres de infromacion el pic lee todos estos caracteres basura asi que no es tan simple como se ve en el hiper les pongo un ejemplo ustedes ven al momento que se lee un mensaje nuevo todos los caracteres antes de llegar al mensaje en si no son muchos seran unos 15 pero en la realidad los caracteres antes de llegar al mensaje en si son 27  los cuales la mayoria son caracteres basura, con estos toca estar pendiente en adelante


----------



## rizy (Jul 30, 2009)

con respecto a lo de comparar dos tramas esta bien pero en esta aplicacion no sirve no podemos comparar dos tramas ya que el cell envia muchos caracteres basura que nos se pueden reconocer pero que igual ocupan espacio en la trama y no se puede comparar.
a lo te refieres esta correcto siempre y cuando sepas que la trama de datos enviados no lleban caracteres basura esos  siempre se cuelgan en la trama por estas razones es las que digo que los mensajes posteados estan mal no por ofender a  nadie sino por aclarar las cosas saludos


----------



## ericklarva (Jul 30, 2009)

Pero de eso a decir que "todo lo que han escrito está mal" creo hay mucha diferencia, estoy de acuerdo con lo que comentas, pero no creo que moyano esté en "ceros" en cuestión de programación o de caracteres ocultos.
He manejado por mucho tiempo el hyperterminal y se que para que no de problemas mayormente solo los carateres de CR, LF, backspace, TAB y unos cuantos más son los que "aparentemente" no se ven. Los otros especiales si son introducidos modifican directamente parámetros del Hyperterminal. En fin.
Cuando comenté que lo que vé en hyperterminal es lo mismo que verá en el PIC me refería a que no serían menos los caracteres que el recibiría y que solo con contar la trama de inicio sería suficiente para saltarla y guardar solo el texto que es lo que importa.
En PICC que supongo es lo que Moyano usa, y en cualquier librería que maneje "C" existen comandos que nos ayudan a detectar cuando lo que recibimos son caracteres Numerico, Letras, Alfanuméricos o comandos. Con esto se simplifica por mucho la detección de la trama de texto.
Saludos
http://ascii.cl/es/codigos-de-control.htm
En esta página está la explicación completa del funcionamiento y valor de cada "comando".


----------



## marvinxela (Jul 30, 2009)

Moyano Jonathan dijo:
			
		

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




hola moyano fijate q despues de buscar por todos lados un t237 por fin lo consegui y estoy probando conectarlo con el hyperterminal pero fiajte q no logro la comunicacion disculpa la molestia podes subir el diagrama de la pc al cel yo estoy utilizando la configuracion de un max232 donde los capacitores son 10 micros, aparte de eso no se si me podes decir con que parametros configuras el hyperterminal ya que a mi me deja escribir solo cuando pongo el control de flujo en xon xoff o en ninguno pero no me retorna el ok el cel me deja escribir pero cuando le doy enter me escribe en la misma linea entonces no estoy seguro si es una mala conexion del max232 o del hyperteminal porque ya e probado cambiarle todos los parametros al hyperterminal.
gracias!


----------



## Moyano Jonathan (Jul 30, 2009)

marvinxela:


> hola moyano fijate q despues de buscar por todos lados un t237 por fin lo consegui y estoy probando conectarlo con el hyperterminal pero fiajte q no logro la comunicacion disculpa la molestia podes subir el diagrama de la pc al cel yo estoy utilizando la configuracion de un max232 donde los capacitores son 10 micros, aparte de eso no se si me podes decir con que parametros configuras el hyperterminal ya que a mi me deja escribir solo cuando pongo el control de flujo en xon xoff o en ninguno pero no me retorna el ok el cel me deja escribir pero cuando le doy enter me escribe en la misma linea entonces no estoy seguro si es una mala conexion del max232 o del hyperteminal porque ya e probado cambiarle todos los parametros al hyperterminal.
> gracias!



CEL + RS232 = No funciona he probado mil metodos y no me funcionó.

Este circuito es el que funciona:
http://www.geocities.com/adoleon2000/cableEd_charlyMa.htm

Fotos de mis conexiones:

Del cable de comunicaciones:

Del circuito para la PC:


de la configuración del hyperterminal:


Haciendo así va a funcionar seguro.

Otra cosa ! no uses cables USB serial de los celulares ya que con esos cables lo probé tambien y no funciona.


----------



## Moyano Jonathan (Jul 30, 2009)

Respondiendo a comentarios anteriores:


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



Pruebo sin el circuito de transistores y te comento.
Lo de la rutina getc....no lo veo muy necesario.
y tenés mucha razón con respecto a lo de la configuración de los fuses.

Meta:

Lo probé y no me funcionó los MAX232.

rizy:


> hola moyano muy bien te felicito estas avanzando muy rapido primero CPMS: 0,70,19,20,0,70 es la direccion de la memoria a la que accedes si te fijas al poner en vez de me sm veras que esta cambia pero bueno esto no nos sirve
> ahora la trama al momento de leer el mensaje es toda la que observas ademas de otros caracteres basura que se cuelgan en la comunicacion serial y scomo vez te envia fecha hora numero de quien lo manda etc, y al final esta el texto que necesitas y eso de rele1 on es un buen ejemplo de comando crea tus comandos a tus necesidades pero te recomiendo que sean palabras juntas por ejemplo rele1on por que esos espacios en la decodificacion del comando te va a provocar eventos es mucho mejor que siempre en los comandos tengas dos partes una de acceso y otra de orden ejm
> en mi tesis mi codigo de acceso es KM y un comando es IR1 asi que el comando completo es KMIR1 esta forma de crear un comando te ayudara para desechar los mensajes que sean incorrectos y para tener un mejor control del mismo.
> ahora antes de empezar a leer un mensaje debemos seguir los pasos el siguiente es que consigas una buena comunicacion serial con el pic antes de entrar a comunicar con el cell crea un programa en el cual tengas una comunicacion entre el hiper y el cell y que te prenda un led cuando envies un letra por el hiper verifica el buen funcionamiento de la comunicacion serial para que te familiarices y asi poder decartar errores futuros.
> ...



OK pruebo los consejos y te digo.

rizy:


> con respecto a lo de comparar dos tramas esta bien pero en esta aplicacion no sirve no podemos comparar dos tramas ya que el cell envia muchos caracteres basura que nos se pueden reconocer pero que igual ocupan espacio en la trama y no se puede comparar.
> a lo te refieres esta correcto siempre y cuando sepas que la trama de datos enviados no lleban caracteres basura esos siempre se cuelgan en la trama por estas razones es las que digo que los mensajes posteados estan mal no por ofender a nadie sino por aclarar las cosas saludos



Pero una vez hecha la "limpieza de los caracteres basura" y filtrado el mensaje se podría hacer comparaciones de cadenas.


----------



## Moyano Jonathan (Jul 31, 2009)

Bueno sigo con los resultados negativos:

- Configuré bien los fuses.
- Use un relog de 4.0Mhz.
- Conecté el teléfono directamente al PIC.

resultado: Sigue sin funcionar.


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

// Encabezado del programa:
#include <18F2550.h> // Definición de registros internos del PIC18F2550.
#fuses NOMCLR        // Pin MCLR como entrada digital RE3.
#fuses XT            // Cristal XT.
#fuses NOWDT         // No activamos el WatchDog.
#fuses NOPROTECT     // No activamos la protección contra lecturas.
#fuses NOLVP         // No activamos el modo de programación a bajo voltaje.
#fuses NODEBUG       // No incluimos código para debug.
#fuses USBDIV        // 96Mhz del PLL/2 = 48Mhz para USB en Full speed.
#fuses PLL1          // Factor de división de la entrada del PLL = 1 para 4mhz.
#fuses CPUDIV1       // El PLL postscaler decide la división en 2 de la frecuencia de salida del PLL de 96MHZ.
#fuses NOVREGEN      // Desactivamos el regulador de 3.3v del puerto USB.
#fuses NOPBADEN      // Puerto B como I/O digital.

#use delay(clock=4000000)      // Frecuencia de trabajo = 4Mhz.
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) // Configura la USART.

void main()
{

// Configuraciones varias:

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   setup_low_volt_detect(FALSE);
   
while(true){  
printf("AT\r\n"); // Le llama la atención al teléfono.  
delay_ms(2000); //espera 5 segundos
printf("AT+CMGF=1\r\n"); //configura modo texto
delay_ms(1000);
printf("AT+CMGS=\"02616943559\"\r\n"); //0123456789 es el nro del destinatario.
delay_ms(1000); //del celular al que se envia el sms
printf("Esto es una prueba");
putc(26); //ascii(26)=(ctrl+z) envia el mensaje
printf("\r\n");
delay_ms(1000);
}
}
```

La verdad no sé cual puede llegar a ser el problema.


----------



## Moyano Jonathan (Jul 31, 2009)

Voy a seguir experimentando hasta que me salga ! ajjajaj


----------



## rizy (Jul 31, 2009)

no se porque utilizas reloj de 4 mhz no es recomendable utilizar un reloj de 4 mhz en comunicacion serial utiliza uno de 20mhz con el de cuatro no te sirve, otra cosa trata primero de enviar un mensaje con el pic es mas facil hasta que logres una buena comunicacion y sepas muy bien de como esta funcionando todo trata primero eso despues lo de la trama de comunicacion yo le doy otro trato y es mas facil y tienes un mejor control y te da mejores resultados que solo compararar dos tramas ya lo dije en otro mensaje eso de comparar esta bien pero para esta aplicacion no funciona muy bien yo  ya la he probado y es mejor utilizar otra forma de manejo de la trama lo unico que te puedo adelantar es que el manejo se lo hace de caracter en caracter. 
sigue avanzando no te estanques  concentrate en la buena comunicacion serial y tratar de enviar un mensaje primero.
suerte


----------



## ericklarva (Jul 31, 2009)

Hola Moyano, una vía rápida para que te saques de dudas si es el PIC, es conectarlo al puerto COM tal y como lo conectarias al Cel.  De esta forma verías los caracteres que envíe el PIC y te quitas de la duda que es lo que está fallando. Lo único es considerar que la salida TX del PIC debe ir conectada al RX del Cel y el RX del PIC al TX del Cel. Y para la conexión del PIC al COM se conecta como si fuera el Cel idéntico.
Que valiente de intentarlo con la familia 18, a mi siempre me han dado mucha lata en las configuraciones. Ni queriendo a la primera me sale el programa.
Saludos


----------



## Moyano Jonathan (Jul 31, 2009)

> no se porque utilizas reloj de 4 mhz no es recomendable utilizar un reloj de 4 mhz en comunicacion serial utiliza uno de 20mhz con el de cuatro no te sirve, otra cosa trata primero de enviar un mensaje con el pic es mas facil hasta que logres una buena comunicacion y sepas muy bien de como esta funcionando todo trata primero eso despues lo de la trama de comunicacion yo le doy otro trato y es mas facil y tienes un mejor control y te da mejores resultados que solo compararar dos tramas ya lo dije en otro mensaje eso de comparar esta bien pero para esta aplicacion no funciona muy bien yo ya la he probado y es mejor utilizar otra forma de manejo de la trama lo unico que te puedo adelantar es que el manejo se lo hace de caracter en caracter.
> sigue avanzando no te estanques concentrate en la buena comunicacion serial y tratar de enviar un mensaje primero.
> suerte



Por que rizy decis que no anda a 4Mhz ? En que falla si pones esa frecuencia de trabajo ? Si la configuración de la USART poniendole el cristal que le ponga es : 
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) // Configura la USART.  ?

Ya probé PIC + Hyperterminal y los comandos AT los envía correctamente.

En que me puede estar fallando la conexión del PIC con el teléfono ?


> Hola Moyano, una vía rápida para que te saques de dudas si es el PIC, es conectarlo al puerto COM tal y como lo conectarias al Cel. De esta forma verías los caracteres que envíe el PIC y te quitas de la duda que es lo que está fallando. Lo único es considerar que la salida TX del PIC debe ir conectada al RX del Cel y el RX del PIC al TX del Cel. Y para la conexión del PIC al COM se conecta como si fuera el Cel idéntico.
> Que valiente de intentarlo con la familia 18, a mi siempre me han dado mucha lata en las configuraciones. Ni queriendo a la primera me sale el programa.
> Saludos



Las pruebas de para ver que me envía el PIC por el puerto serie ya las hice y envía bien los caracteres.

Yo estoy conectado el microcontrolador de la siguiente manera:


----------



## ericklarva (Jul 31, 2009)

Con el cristal que menciona Risy es por el porcentaje de error que se genera en el usart a ciertas velocidades, aunque tu pongas baud = 9600, la velocidad real tiene una leve diferencia por los registros de configuración del USART del PIC que trabajan directamente con la velocidad del cristal.
En lo personal no lo considero muy crítico ya que no ronda por más del 2%, pero podría ser que para el Cel si sea crítico.
Prueba conectando el Cel, hyperterminal y el PIC. Conecta directo el Cel y el PIC y solo conectas el PIN TX del Cel al COM para checar que el Cel esté respondiendo o en su caso podría estar generando un error y checar que es ese error.
A lo demás no le veo problemas, si está raro. Saludos


----------



## Moyano Jonathan (Jul 31, 2009)

PD: Encontré una nota de aplicación de ATMEL que habla justamente sobre la comunicación con los celulares mediante comandos AT.

Dentro del archivo RAR están los códigos fuentes del programa y sus correspondientes encabezados.

La nota está en un inglés bastante entendible y con muy buena información.



Yo todavía no me puedo comunicar con el teléfono ops:   pero mi filosofía de vida es probar hasta que funcione


----------



## ericklarva (Jul 31, 2009)

Con el cristal que menciona Risy es por el porcentaje de error que se genera en el usart a ciertas velocidades, aunque tu pongas baud = 9600, la velocidad real tiene una leve diferencia por los registros de configuración del USART del PIC que trabajan directamente con la velocidad del cristal.
En lo personal no lo considero muy crítico ya que no ronda por más del 2%, pero podría ser que para el Cel si sea crítico.
Prueba conectando el Cel, hyperterminal y el PIC. Conecta directo el Cel y el PIC y solo conectas el PIN TX del Cel al COM para checar que el Cel esté respondiendo o en su caso podría estar generando un error y checar que es ese error.
A lo demás no le veo problemas, si está raro. Saludos
Otro problema pordría ser que algún comando no le estés poniendo si lo que esperas es que el Cel envíe el mensaje. Posiblemente si esté reconociendo los comandos pero no esté enviando el mensaje por algún  error de comando o configuración.


----------



## rizy (Jul 31, 2009)

la respuesta de erik esta y como digo en esta aplicacion se debe usar uno de 20 mhz si usas uno de 4 no funcionara cambi ael oscilador porque tu programa esta bien y si ya le revisaste por el hiper y te envia los at normalmente con los tiempos y esta correcta es el osc y si no hay que seguir revisando la parte fisica en si solo es eso lo fisico revisale bien y vemos


----------



## Moyano Jonathan (Jul 31, 2009)

Bueno está bien voy a probar lo que ustedes dicen. En caso de que sea problema de configuración de la usart me voy a hacer mi propia librería en ASM.


----------



## Moyano Jonathan (Ago 1, 2009)

Bueno luego de 14.000 pruebas y errores el PIC manda SMS !

Mis comentarios:

- Probado con la serie PIC16F. (PIC16F877A).
- Cristal usado: 20Mhz.
- debug con el hyperterminal del PicKit2 (Usart TOOL).
- Código de programación en C de CCS.
- Celular usado: T237 (Por comandos AT me dice que es el T230).
- Conexión del teléfono con el PIC de forma directa: TX PIC - RX CEL | RX PIC - TX CEL.

Nota: La fuente con la que se alimente el PIC tiene que estár debidamente filtrada y regulada para evitar posibles funcionamientos erráticos.

Mis aportes hasta el momento:

Código fuente del programa:

```
#include <config.h>


void main()
{
   setup_adc(ADC_OFF);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
  

   while(true){ 
if(input(PIN_D2)==1){
delay_ms(300);
printf("AT\r\n"); // Le llama la atención al teléfono.  
delay_ms(3000); //espera 5 segundos
printf("AT+CMGF=1\r\n"); //configura modo texto
delay_ms(3000);
printf("AT+CMGS=\"número de teléfono\"\r\n"); // N° del destinatario.
delay_ms(2000); //del celular al que se envia el sms
printf("Esto es una prueba\r\n");
putc(26); //ascii(26)=(ctrl+z) envia el mensaje
printf("\r\n");
delay_ms(5000);

   }
   }
}
```

Archivo de cabecera:


```
#include <16F877A.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz)
#FUSES PUT                      //Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOCPD                    //No EE protection
#FUSES NOBROWNOUT               //No brownout reset
#FUSES LVP                      //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOWRT                    //Program memory not write protected

#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
```

Les dejo también el esquema de conexión del microcontrolador al celular:



En caso de que no se vea bien el esquema en el foro tambíen dejo el rar con todo lo que necesitan para hacer las pruebas.

*Parte 1 del proyecto concluida !!!!*


----------



## Moyano Jonathan (Ago 1, 2009)

*Parte2: Recepción de SMS y control de procesos*

Mis preguntas al respecto:

- Qué metodo para recibir SMS es el más recomendado PDU o modo texto ?
- Qué método para recibir los SMS en el PIC es el más recomendado  Interrupciones o función de preguntas respuestas ?


El que tenga información al respecto comente   

PD: Mis especiales agradecimientos a los siguientes usuarios:
*
Rizy
alepic
ericklarva
Nestor nieto
*

Por la gran ayuda que me han brindado.

Y los demás gracias por los comentarios sobre sus experiencias y logros.


----------



## ericklarva (Ago 1, 2009)

Hola Moyano, gracias por tu agradecimiento ya que no soy especialista en el área del cel pero de programación lo que sea.
Definitivamente el mejor método, por su sencilles, es el de Texto. El PDU es mucho más específico y elaborado, podrías intentarlo solo como desafío.
Para los mensajes yo considero que es mejor preguntarle cada cierto tiempo, aunque en la hoja de comandos AT me pareció ver que hay una forma en la que el Cel avisa de manera inmediata, no estoy muy seguro, pero es en el archivo que postee sobre los Sony ericsson.
Para la cadena de mensajes, sigo pensando en que el encabezado es un número específico de caracteres que pueden ser contados y que sirven como base para guardar solo los que nos interesa y de ahí hacer lo que quieras, ya sea comparar la cadena o checar caracter por caracter.
Excelente que te haya funcionado, por hacer las pruebas con el mio a ver que sale jejeje.
Saludos


----------



## Moyano Jonathan (Ago 1, 2009)

Voy a probar como decis ahora queda ponerse a programar y hacer dubug con la usart. 

Alguien que tenga una idea de como se podría implementar la recepción de mensajes mediante el PIC , comente haber si sacamos algo en concreto.


----------



## ericklarva (Ago 3, 2009)

Si el Cel posee la opción de enviar datos sin un comando anterior, con habilitar la interrupción RX sería suficiente y muy cómodo. De lo contrario creo que da igual como se implemente.
Antes que todo considero que deberás checar la trama de inicio para saber con cuantos caracteres está formada esta trama, podrías usar un mensaje en "blanco" o con un texto en específico y un LCD para visualizar cuantos caracteres son o cuales son, igual me pareció ver que envía "," entre cada sección y de ser así solo con detectar que es una "," y contar un número definido de estas podrías detectar fácilmente el texto.
Como el Cel no hace "pausas" entre los caracteres enviados, podrías guardar toda la trama momentánamente y luego checarla con una rutina "for" o "Do-While". O en su caso checar caracter por caracter y guardar lo importante.
Para recibir, si lo hicieras con la interrupción RX, podrías usar la función "getc()" que lee "RXBUFF" y guardar en un buffer el caracter con un puntero o en su caso emplear otra rutina de separación.
Ojalá esto pueda servir de algo.
Saludos


----------



## rizy (Ago 3, 2009)

hola muy bien hecho estas perfectamente en el avance te comento como yo hago la deteccion del mensaje:
no utilizo interrupciones lo que hago es que cada cierto tiempo estoy enviando los comandos at para lectura de mensaje para ir detectando un mensaje nuevo si existe uno nuevo reliza una subrutina sino sigue en un lazo cerrado el envio de los mensajes.
otro punto yo los guardo de caracter en caracter para separar los datos e ir comparando de caracter en caracter los datos que necesito y listo ya lo tienes aqui esta el codigo con esto esta completo tu proyecto amigo pilas.
como vas a ver a continuacion lo manjeo de caracter en caracter el dato que a mi me sirve es de cir desde donde comienza el mensaje es el caracter 27 asi que ya tienes tu filtro ademas vas a  observar la forma como yo comparo para efectuar un evento.
cualquier mejora que le hagas te pido que me avises y lo poostees pues quiero seguir avanzando



```
//DEFINICION DE CONSTANTES
//************************
   int n=0x22;    // CODIGO ASCII "
   int cont=0;

//DECLARACION DE VARIABLES
//*************************
   char c1=0,c2=0,c3=0,c4=0,c5=0,c6=0,c7=0,c8=0,c9=0,c10=0,c11=0,c12=0,c13=0,c14=0,c15=0,c16=0,c17=0;
   char c18=0,c19=0,c20=0,c21=0,c22=0,c23=0,c24=0,c25=0,c26=0,c27=0,c28=0,c29=0,c30=0,c31=0,c32=0,c33=0;
   char c34=0,c35=0,c36=0,c37=0,c38=0,c39=0,c40=0,c41=0,c42=0,c43=0,c44=0,c45=0,c46=0,c47=0,c48=0,c49=0;
   char c50=0,c51=0,c52=0,c53=0,c54=0,c55=0,c56=0,c57=0,c58=0,c59=0,c60=0,c61=0,c62=0,c63=0,c64=0,c65=0;
   char c66=0,c67=0,c68=0,c69=0,c70=0,c71=0,c72=0,c73=0,c74=0,c75=0,c76=0,c77=0,c78=0,c79=0,c80=0,c81=0;
   char c82=0,c83=0,c84=0,c85=0,c86=0,c87=0,c88=0,c89=0,c90=0;
//INICIO DE PROGRAMA
//******************
VOID main(VOID) {
//PROGRAMA PRINCIPAL
//*******************
   WHILE (TRUE) {
   c1=0,c2=0,c3=0,c4=0,c5=0,c6=0,c7=0,c8=0,c9=0,c10=0,c11=0,c12=0,c13=0,c14=0,c15=0,c16=0,c17=0;
   c18=0,c19=0,c20=0,c21=0,c22=0,c23=0,c24=0,c25=0,c26=0,c27=0,c28=0,c29=0,c30=0,c31=0,c32=0,c33=0;
   c34=0,c35=0,c36=0,c37=0,c38=0,c39=0,c40=0,c41=0,c42=0,c43=0,c44=0,c45=0,c46=0,c47=0,c48=0,c49=0;
   c50=0,c51=0,c52=0,c53=0,c54=0,c55=0,c56=0,c57=0,c58=0,c59=0,c60=0,c61=0,c62=0,c63=0,c64=0,c65=0;
   c66=0,c67=0,c68=0,c69=0,c70=0,c71=0,c72=0,c73=0,c74=0,c75=0,c76=0,c77=0,c78=0,c79=0,c80=0,c81=0;
   c82=0,c83=0,c84=0,c85=0,c86=0,c87=0,c88=0,c89=0,c90=0;
    delay_ms(2000);
    output_low(pin_A0);
    printf("AT\n\r");
    DELAY_MS(2000);
    printf("AT+CMGF=1\n\r");
    DELAY_MS(2000);
    printf("AT+CPMS=%cME%c\n\r",n,n);
    DELAY_MS(2000);
    printf("AT+CMGL=%cREC UNREAD%c\n\r",n,n);
    c1=getch();c2=getch();c3=getch();c4=getch();c5=getch();c6=getch();c7=getch();c8=getch();c9=getch();
    c10=getch();c11=getch();c12=getch();c13=getch();c14=getch();c15=getch();c16=getch();c17=getch();c18=getch();
    c19=getch();c20=getch();c21=getch();c22=getch();c23=getch();c24=getch();c25=getch();c26=getch();
    //*******************************************************************************
    //*******************************************************************************
     if (c26=='K')   // CHEQUEO SI EXISTE ALGUN MENSAJE DE ACCION O RESPUESTA
        {
        c27=getch();c28=getch();
        c29=getch();c30=getch();c31=getch();c32=getch();c33=getch();c34=getch();c35=getch();c36=getch();
        c37=getch();c38=getch();c39=getch();c40=getch();c41=getch();c42=getch();c43=getch();c44=getch();c45=getch();
        c46=getch();c47=getch();c48=getch();c49=getch();c50=getch();c51=getch();c52=getch();c53=getch();c54=getch();
        c55=getch();c56=getch();c57=getch();c58=getch();c59=getch();c60=getch();c61=getch();c62=getch();c63=getch();
        c64=getch();c65=getch();c66=getch();c67=getch();c68=getch();c69=getch();c70=getch();c71=getch();c72=getch();
        c73=getch();c74=getch();c75=getch();c76=getch();c77=getch();c78=getch();c79=getch();c80=getch();c81=getch();
        c82=getch();c83=getch();c84=getch();c85=getch();c86=getch();c87=getch();c88=getch();c89=getch();c90=getch();
        DELAY_MS(500);
   //*****************************************************************************
            if (c89=='A')   // COMANDO *AE* ACTIVAR ELECTROVALVULA
            {
               if (c90=='E')
               {
                 delay_us(100);
                 output_high(pin_B0);
                 output_low(pin_B2);output_high(pin_C1);
                 delay_us(100);
                }
            }
       //*****************************************************************************
             if (c89=='D') // COMANDO *DE* DESACTIVAR ELECTROVALVULA
             {
              if (c90=='E')
               {
               delay_us(100);
               output_low(pin_B0);
               output_high(pin_B2);output_low(pin_C1);
               delay_us(100);

               }
             }
      //*****************************************************************************
            if (c89=='C')  // COMANDO *CA* CONSUMO ACTUAL
            {
               if (c90=='A')
               {
               delay_us(100);
               output_high(pin_B1);  // activo al master para que transmita datos a la red celular.
               delay_us(100);
               }
            }
        //*****************************************************************************
             if (c89=='B')  // COMANDO *BC* BORRAR CONTADORES SE SEINICIA EL CONSUMO
            {
               if (c90=='C')
               {
               delay_us(100);
               output_high(pin_C2);  // activo al master para que borre contadores
               delay_us(100);
               }
            }
       //*******************************************************************************
        if(input(pin_c0))  // Chequeo si ya termino de transmitir el master a la red celular.
                {
                delay_us(100);
                output_low(pin_b1); //limpio pin de lectura de consumo del master
                output_low(pin_C2); //limpio pin de borrado de contadores
                delay_us(100);
                }
       //*******************************************************************************
             delay_us(1000);
             printf("AT+CMGD=1\n\r");


        }
      //*******************************************************************************
      //*******************************************************************************
      if(c26=='K') // SI NO HAY MENSAJE CHEQUEO EL OK
        {
        delay_us(100);
        output_high(pin_A0);
        delay_us(100);
        }
      //*******************************************************************************
      //*******************************************************************************

  if(input(pin_c0))  // Chequeo si ya termino de transmitir el master a la red celular.
    {
     delay_us(100);
     output_low(pin_b1); //limpio pin de lectura de consumo del master
     output_low(pin_C2); //limpio pin de borrado de contadores
     delay_us(100);
    }
 }
}  // FIN DE PROGRAMA
```


----------



## ericklarva (Ago 3, 2009)

Dios mio!, jejeje. Te comento que pues cada quien se acomoda como puede o siente. Considero que te hubieras ahorrado un buen de espacio y de variables sin todo ese embrollo de los "cXX=getc()" lo hubieras implementado con un "for" y un puntero de memoria o un arreglo de variables. Un posible ejemplo sería:

```
for( i=0, i < BUFFSIZE , i++){ // donde BUFFSIZE es el valor máximo del buffer
     CELBUFF[i] = getc();
}
```
Es una idea general y ya del mismo buffer te auxilias para checar todas las variables o comandos que necesites.
Otra manera para no "desperdiciar" tanta RAM es esta:

```
for( i=0, i < BUFFSIZE , i++){ // donde BUFFSIZE es el valor máximo del buffer
     if( i >= OFFSET ){              // Donde OFFSET es el contador donde empezamos a guardar el "texto"
        CELBUFF[i-OFFSET] = getc();// Le restamos el OFFSET para que se guarde desde "cero" en el buffer
     }else  temp = getc();       //Liberamos RXBUFF para el siguiente dato
}
```
También podemos poner tu "cxx == 'K' " antes de guardar los datos.
Espero esté bien explicado y sirva de ayuda.
Saludos


----------



## rizy (Ago 3, 2009)

eso te sirve muy bien pero en mi aplicacion no me sirve porque necesito tener almacenados la fecha la hora el numero de donde se envia y el mensaje y como dices no es porque quiero desperdiciar ramm de gusto sino que como dije de esta forma puedes tener almacenado todos los datos que te envia el cell para un posterior procesamiento  claro si necesitas tener el control de todo porque es demasiado simple utilizar lo que indicas y de antemano gracias por la observacion


----------



## Moyano Jonathan (Ago 3, 2009)

Hola como les vá. Al parecer el código es bastante complejo pero voy a encarar el tema desde otro punto de vista para ver que modificaciones puedo hacer.

1° - La plantilla posteada por nestor nieto al principio del post habla de como poder decodificar un PDU sin importar la extensión que tenga y los datos que este lleve.
2° - La plantilla tiene un macro en VB que realiza esa tarea y otras más.
3° - Se podría hacer un programa en VB que tome un mensaje de texto del cel por iterrupción del evento ONCOM. Por lo tanto ya tendriamos un sistema que lee mensajes.
4° - He estudiado como leer posiciones de la memoria del telefono y ver su contenido, asi como también de poder borrar ese contenido.
5° - Lo que se podría hacer es una rutina como la de Rizy pero de la siguiente forma:

a - Establecer la comunicación con el CEL.
b - Si recibimos respuestas positivas de la comunicación , activamos las interrupciones por puerto serie y guardamos todo el mensaje en formato PDU o formato texto.
c - Filtramos las tramas del celular que no sean necesarias.
d - Guardamos en un string el mensaje filtrado con todos sus caracteres.
e - Procesamos el mensaje y según la información que contenga realizamos diferentes acciones.

PD: En cuanto tenga algún código probado les muestro.


----------



## Moyano Jonathan (Ago 5, 2009)

Hola a todos   

Bueno en esta ocación les traigo un programa más que sencillo en donde se muestra como extraer el mensaje de una cadena PDU que recibamos desde el cel. Esta es una versión preliminar para luego poder hacer una aplicación completa que nos permita recibir mensajes desde el CEL.

La aplicación está basada en la plantilla de exel que posteo nestor nieto con anterioridad y está escrita en VB 2005.

Espero les sirva


----------



## Moyano Jonathan (Ago 7, 2009)

Comento que no encuentro todavía la forma de hacer para tomar los datos provenientes desde el cel en formato PDU ( No se como hacer para decodificarlos ).

Voy a ver como puedo hacer para tomar los datos en modo texto... aunque estoy muy trabado con el tema.

Rizi en tu código declaraste que tenés 90 variables. Ahora como se que largo va a tener el texto recibido ?
yo en mi caso solo quiero obtener el texto del mensaje. Como hago para filtrar las demás señales ?


----------



## rizy (Ago 11, 2009)

en mi codigo si te fijas los caracteres que no te sirven llegan hasta el 26 el resto ya es solo el texto en si del mensaje entonces desde ahi ya puedes ir comparando para ir codificando que evento tiene que ejecutar no es muy dificil intentalo
si logras alguna mejora subela al foro


----------



## rizy (Ago 11, 2009)

no te confundas en mi codigo declaro que voy a tener 90 variables porque  el mensaje que tiene que decodificar el pic es de bastante información asi que no confundas tu tienes que declarar solo los 26 iniciales y el resto ya el mensaje en modo texto desde ahi tu puedes poner las variables que necesites para el manejo de un evento


----------



## Moyano Jonathan (Ago 11, 2009)

Ok veo que se puede hacer y después te comento


----------



## kapotik (Ago 12, 2009)

Buenas, en primer lugar quiero agradecerles a todos ya que e seguido desde el principio todo el hilo y gracias a sus comentarios e logrado realizar llamadas y enviar msm con mi pic.
Y tambien quiero activar un relay enviandole un mensaje y todo iba bien esperando que mostraran como hacerlo y lo hicieron pero.....................................lamentablemente no se programar en C solo en asm y me quede re colgado.

Por favor alguien me podria explicar como lograrlo pero en asembler ?
desde ya muchas gracias


----------



## rizy (Ago 12, 2009)

yo aprendi en asembler pero no me gusto para nada y esta aplicacion creo que se volveria demasiado complicada programar en asembler creao que seria bueno que aprendieras  a programar en c o en basic que es mas facil ya que si tu ya programaste todo lo anterior en asembler aprender otro lenguaje sera muy facil para ti y te felicito yo no me hubiera atrevido a programar en asembler esta aplicacion te felicito


----------



## Moyano Jonathan (Ago 12, 2009)

De poder se puede hacer en asm pero como dice rizy es muy complejo de implementar.


----------



## ericklarva (Ago 13, 2009)

Realmente no es tán difícil, es cuestión de tener bien claro los comandos para el control usart y el manejo de las variables. De hecho posiblemente sea más comodo con assembler que con el C, porque C en muchas ocasiones usa instrucciones de más.
Es cuestión de configurar bien puertos, variables, el USART, etc.
Para el manejo de las variables una opción rápida es con INDF y FSR.
Es muy posible que sea tequioso y tardado en assembler, pero no es muy difícil.
Saludos


----------



## AG-1 (Ago 13, 2009)

Moyano Jonathan dijo:
			
		

> *Parte2: Recepción de SMS y control de procesos*
> 
> Mis preguntas al respecto:
> 
> ...



Si quieres mayor compatibilidad debes utilizar el formato PDU, ya que este esta disponible en mayor numero de dispositivos(los que aceptan modo texto tamben aceptan PDU, pero no todos los que aceptan PDU aceptan modo texto).


----------



## kapotik (Ago 13, 2009)

Gracias por sus respuestas
les pego el cogigo por si a alguien se le ocurre alguna idea


----------



## Moyano Jonathan (Ago 13, 2009)

Mi problema con el formato PDU es que no se como se podría implementar una rutina en la cual decodifiquemos el mensaje que contiene la trama para luego procesar el dato.


----------



## ericklarva (Ago 14, 2009)

Como comentario Moyano, el PICC incorpora una rutina RS485 que es muy similar al formato PDU. Podrías guiarte de esta librería para hacerte la propia y ya con menos "trabas".
Lo que si es que vas a usar mucha ROM y RAM así que deberás implementar un PIC con estás características que no necesariamente deba ser un 18F o un DsPIC.
Saludos y ojalá te sirva de algo.


----------



## kapotik (Ago 14, 2009)

Hola alguien me podria decir que necesito para compilar en C y como se hace? 
Gracias


----------



## Moyano Jonathan (Ago 14, 2009)

ericklarva: Me fijo y te cuento.....pero en que aspectos se parecen ? Yo la verdad nada más me gustaria saber como sacar el texto en limpio eliminando todo lo demás.


----------



## ericklarva (Ago 14, 2009)

kapotik, te recomiendo muchísimo que te consigas la versión que quieras del PICC. Los tutoriales que trae son excelentes para principiantes, igualmente trae un buen de ejemplos.
Te paso los siguientes links que espero te sirvan:
http://c.conclase.net/curso/index.php

Moyano, el protocolo PDU maneja encabezado, datos y CRC, el RS485 igual. Obviamente tienen ligeras diferencias por eso te comenté que cheques la librería y la compares con el protocolo PDU.
Te paso los siguientes links que espero te sirvan:
http://www.blogelectronica.com/sms-pdu/
http://eletronica.obolog.com/estructura-sms-formato-pdu-132017
http://todopic.mforos.com/46840/2633178-rs485-manejo-de-punteros/
http://iie.fing.edu.uy/investigacion/grupos/microele//iberchip/pdfp/p18.pdf
Ojalá pudiera ayudarte con más, pero fue lo que encontré por el momento.
Saludos


----------



## Moyano Jonathan (Ago 14, 2009)

Exelente información sigo leyendo y sacando conclusiones.


----------



## kapotik (Ago 14, 2009)

Gracias ericklarva, estoy viendo lo que me pasaste y es justo lo que necesito.

me podrias dar una clase rapida de como usar el picc, osea como generar el archivo hex y donde lo guarda

saludos


----------



## Moyano Jonathan (Ago 14, 2009)

Acá dentro del foro hay muchos tutoriales de como se hace , metete en el buscador y vas a encontrar todo lo que necesitas.

Te mando un saludo !


----------



## ericklarva (Ago 14, 2009)

kapotik, ya me estoy retirando de la oficina en estos momentos tendrías que esperar a mañana para que te pueda ayudar en algo.
Pero te recomiendo que primero consigas el PICC y en la sección de ayuda te sientes un rato a checar todo lo que te dice, creeme que todo lo que necesitas se encuentra ahí. Yo así lo aprendí a usar.
Saludos


----------



## kapotik (Ago 14, 2009)

ok, ya tengo el picc y voy a hacer como dicen, ya tengo algunos tutos.

Gracias nuevamente.!

Moyano tengo una duda, por que si supuestamente rizy mostro el codigo para leer un mensaje y activar alguna salida del pic, vos insistis en hacerlo por PDU ? tiene alguna otra ventaja 

Saludos al foro


----------



## Moyano Jonathan (Ago 14, 2009)

En relidad es más ventajoso usar modo texto pero como después quiero que sea compatible con todos los teléfonos es mejor hacerlo con PDU.

Igual voy a empezar a hacer las primeras pruebas y luego voy a postear mis resultados.


----------



## ericklarva (Ago 17, 2009)

Me huele a que tienes en puerta un superproyecto Moyano, no es así?jeje
Una duda, tengo la leve impresión que el PDU te dá un sin número de registros en una sola trama, es correcto?
Dicho de otra forma, que al manejar modo "texto" los comandos son más que con la trama PDU.
Confío en que me puedas contestar ya que andas bien metido en este asunto.
Saludos y gracias.


----------



## Moyano Jonathan (Ago 17, 2009)

Lo de superproyecto mas que nada es un proyecto de domótica, pero como algo experimental.

El problema con el PDU es que hay que dividir la trama , medirla y filtrar sus datos para poder obtener el texto.

Para colmo de males no tengo demasiado tiempo disponible debido a mis estudios , pero de a poco se va logrando.


----------



## kapotik (Ago 17, 2009)

Buenas, perdon por molestarlos ya que mi pregunta deberia estar en otro tema del foro,pero como ustedes lo manejan al PICC 

quisiera saber si lo que hago esta bien 
1º ya en el PICC abro pic wizar elijo el pic a usar y seteo las distintas configuraciones y cuando lo cierro me genera un archivo . H por ejemplo main.H 
2º en la cabecera del picc pone automaticamente include el archivo que genero con el pic wizar 
a continuacion escribo el programa y lo guardo con un nombre distinto al que genero el pic wizar por ejemplo modulo 
3º luego le doy compile y el archivo hex. que genera se llama main.hex 
y por supuesto cuando lo grabo en el pic nada hace no funciona 

por favor me podrian decir que hago mal 


Gracias 
Saludos


----------



## ericklarva (Ago 18, 2009)

JaJa, bueno kapotik de antemano deberás acostumbrar a postear todo lo que tengas en "fotos", archivos o links de tus dudas ya que de la manera que lo pones es muy general.
Lo más probable es que estés mal configurando el PIC, recuerda que los "FUSES" son la base para que tu programa funcione bien. Además al no poner tu programa también generas la duda de que éste no esté bien estructurado y tengas algo mal escrito o te falte configurar algo.
Te recomiendo que cheques esto primero, y ya si es necesario abré un nuevo foro NO SIN ANTES revisar primero que no exista algún topic similar.
Moyano, pero entonces es correcto la trama PDU posee la mayoría de datos que nos interesan?
Lograste checar la rutina del RS485? te sirvió?
Saludos


----------



## Moyano Jonathan (Ago 18, 2009)

La rutina de rs485 no sirve para decodificar los datos en formato PDU, pero en formato texto está decodificados por lo que sería más facil su extracción. Lo único que tendríamos que tener en cuenta es cuantos datos están antes del texto y filtrarlos.


----------



## AG-1 (Ago 18, 2009)

En este hilo podeis ver información sobre  el formato PDU:
https://www.forosdeelectronica.com/posts/60862/


----------



## Meta (Ago 20, 2009)

Muy curioso este tema, lo seguiré de cerca...


----------



## biker2k3 (Ago 20, 2009)

La verdad que si, si alguien tiene una lista de los celus que soportan comandos at le agreadeceria la publique, porque quiero comprar un celu para empezar a experimentar


----------



## Meta (Ago 20, 2009)

Hay mucho  móviles pare elegir..-


----------



## biker2k3 (Ago 20, 2009)

Creo que el mejor es el c261 porque haces la conexion con una fichita de aurigular, re facil, pero es medio carito a comparacion de los otros


----------



## ericklarva (Ago 20, 2009)

De verdad que no se toman la molestia de leer, biker2k3 en la página anterior o dos anteriores tengo publicado un archivo de la sony ericsson donde se detallan todos los modelos que soportan los comandos AT así como los comandos en general.  Para las demás compañias supongo habrá que investigar en sus páginas.
Saludos


----------



## Meta (Ago 20, 2009)

¿En qué página exactamente está?

Pedir que nos leamos 15 páginas tarda días.

http://www.elektor.com/news/open-source-mobile-phone-network-in-operation-at.1048010.lynkx

Saludo.


----------



## biker2k3 (Ago 20, 2009)

yo me hago una pregunta porque usan convcersores de tension cuando conectan los celulares al pic si los pic pueden funcionar pefectamente con la misma tension del celu jeje, es mas yo pruebo mis circuitos con baterias de celular a veces


----------



## ericklarva (Ago 21, 2009)

> De verdad que no se toman la molestia de leer





> en la página anterior o dos anteriores tengo publicado un archivo de la sony ericsson donde se detallan todos los modelos que soportan los comandos AT así como los comandos en general.


   Sin comentarios Meta.
Cuando me interesó el tema me tuve que leer todas las páginas para entender todo lo que se mencionaba y de hecho fue así como descubrí que algunos links de información ya estaban caducados, me dió mucha flojera pero ni modos.
biker2k3, supongo que el circuito lo usan por seguridad, ya que el PIC tranquilamente maneja los 3V aún alimentado a 5V, pero el Cel si podría sufrir daños al intentar introducir una señal superior a los 3V. Un remedio rápido sería solo usar una resistencia limitadora entre el TX del PIC y el RX del Cel o como bien mencionas alimentar al PIC con el Cel, si el PIC soporta voltajes menores a 5V.
Saludos
Solo edito para poder resuscribirme a este tema jejej


----------



## Moyano Jonathan (Ago 23, 2009)

Meta no es por pesado pero te recomiendo ampliamente leer este hilo de forma completa para que te des una idea aproximada de lo que son los comandos PDU , como decodificarlos , tambien que lo que son los comandos at y como utilizarlos.

Te mando un saludo !


----------



## ericklarva (Ago 24, 2009)

Con este cambio, que aún no me acostumbro, todas mis temas suscritos se perdieron.
Saludos


----------



## kapotik (Ago 25, 2009)

bueno por fin logre meterme de nuevo al foro!!!!!!!!!!!!
mis saludos a todos

ericlarva tenias toda la razon mis problemas estavan en la configuracion de los fuses, todo arreglado ya soy un crac del lenguaje C jejeje.


----------



## ericklarva (Ago 26, 2009)

Que bueno kapotik me alegro por ti, te aconsejo igual que cuando puedas entres a la sección de ayuda del PICC y cheques todas las librerías y funciones que maneja. Son muchas y variadas e incluso incluyen ejemplos de aplicación que te ayudan a comprender mejor su funcionamiento.
Como comentario, este compilador tiene un leve detalle al querer programar cualquier PIC12 y creo que igual para aquellos micros que poseen reloj interno, cuando quieres habilitar este reloj con el FUSE el compilador realiza un llamado a la última posición de la memoria y se queda en un lazo infinito que obviamente no permite ejecutar el programa que hayas realizado. Tiene dos posibles soluciones, una que no uses el oscilador interno y la otra que pongas una instrucción de RETURN o RETLW en esa posición para que el PIC siga ejecutando el resto del programa.
Saludos


----------



## kapotik (Ago 26, 2009)

Gracias por el aporte ericklarva.

Quisiera saber si alguien trato de aser funcionar el codigo para interpretar un mensaje de ryzi ?. yo por mi parte no logro que me lea el mensaje.Si lo puedo hacer por hipertelminal,pulsando una tecla activo una salida en el pic.

Ryzi dice en su explicacion que el mensaje empieza en el caracter nº27 pero si se fijan el empieza por ver si hay una "K" en el caracter nº26 

if (c26=='K')   // CHEQUEO SI EXISTE ALGUN MENSAJE DE ACCION O RESPUESTA

y luego sigue chequeando el caracter nº 89 y nº90 no logro entender por que salta del nº26 al nº89

 if (c89=='A')   // COMANDO *AE* ACTIVAR ELECTROVALVULA
            {
               if (c90=='E')
               {
                 delay_us(100);
                 output_high(pin_B0);
                 output_low(pin_B2);output_high(pin_C1);
                 delay_us(100);
                }
            }

disculpen que lo edite no se como citar

saludos


----------



## ericklarva (Ago 26, 2009)

Lo que sucede es que rizy envía un mensaje codificado según las necesidades de el, es decir, esa "k" el la envía como determinante de algún  proceso, no significa que sea "norma" para cualquier mensaje. El hecho de saltar hasta las variables "c89" debe ser igual por lo mismo, es parte de su programa. Esperemos que el todavía siga por aqui para que te lo aclare aún más, sino pues espero que mi observación sea correcta.
Y para citar usa el botón en la esquina inferior derecha que dice "quote".
Saludos


----------



## Moyano Jonathan (Ago 28, 2009)

La forma que propone rizi de decodificar el mensaje es completamente válida pero hay que saber exactamente que es lo que está trasmitiendo el PIC y el teléfono en cada momento para ver que no hayan caracteres basura.


----------



## kapotik (Sep 1, 2009)

gracias muchachos ya logre entender el codigo!!!
bueno ya tengo listo el envio y para recivir solo que estoy trabado en una tontera, como e tenido que aprender a programar en c, hay algunos comandos que no los manejo muy bien.
y lo que quiero saber es cual es el equivalente en C a BTFSC en asembler , osea testear algo y si no es que salte?

Gracias saludos


----------



## ericklarva (Sep 1, 2009)

lo puedes literalmente hacer de cualquier forma, la más común es con la sentencia "if-else":
if( input( PIN_A1 ) );
else;
Otra también puede ser:
do{
}while( input( PIN_A1 ) );
Otra más:
switch( input( PIN_A1 ) );
case 0: break;
case 1: break:
default: break;
Etc, etc, etc.
Lo más importante es que cheques el codigo generado en assembler por el compilador para ver si hizo lo que tu querías, porque a veces solo por poner una instrucción antes o después cambia por mucho el código. Estp ya es a base de pruebas y cada quien trabaja como mejor crea, debes generar tu propio estilo de trabajo.
Saludos


----------



## kapotik (Sep 1, 2009)

gracias erick!!


----------



## eenrique (Sep 10, 2009)

_Aqui les envío un video del módulo, un poco más reducido, que integro el celular con la board. La configuración se hace todo por mensaje de texto, logrando así un comando remotamente completo._​


​


----------



## Moyano Jonathan (Sep 10, 2009)

Exelente eenrique pensas dar algunas pautas de como realizaste el proyecto como por ejemplo que método utilizas para recibir los mensajes y como los decodificaste.
Por lo demás excelente proyecto !


----------



## kapotik (Sep 13, 2009)

buenas, como estan, nuevamente aki estoy solicitando una manito con mi codigo.
les cuento, lo que quiero hacer es que con una llamada perdida al modulo este la reconosca y aga algo determinado.Bien con el comando AT+CLIP se pone el modem en identificador de llamada, usando el metodo de ryzi para recivir en el pic atraves del modem, logro que llamando al modulo este aga algo.
El problema es que cuando no recibe nada necesito que el codigo salte a otra instruccion y aga otra cosa por ej. prender un led. como veran el codigo no "avansa" hasta que reciva algun caracter y no se como hacer para que chequee que si no recive caracter salte a otro lado.

Gracias
Saludos

codigo:


```
#include "C:\Documents and Settings\Administrador\Mis documentos\modulo\FINAL\55\55.h"

//DEFINICION DE CONSTANTES 
//************************ 
   int n=0x22;    // CODIGO ASCII " 
   int cont=0; 

//DECLARACION DE VARIABLES 
//************************* 
   char c1=0,c2=0,c3=0,c4=0,c5=0,c6=0,c7=0,c8=0,c9=0,c10=0,c11=0,c12=0,c13=0,c14=0,c15=0,c16=0,c17=0; 
   char c18=0,c19=0,c20=0,c21=0,c22=0,c23=0,c24=0,c25=0,c26=0,c27=0,c28=0,c29=0,c30=0,c31=0,c32=0,c33=0; 
   char c34=0,c35=0,c36=0,c37=0,c38=0,c39=0,c40=0,c41=0,c42=0,c43=0,c44=0,c45=0,c46=0,c47=0,c48=0,c49=0; 
   char c50=0,c51=0,c52=0,c53=0,c54=0,c55=0,c56=0,c57=0,c58=0,c59=0,c60=0,c61=0,c62=0,c63=0,c64=0,c65=0; 
   char c66=0,c67=0,c68=0,c69=0,c70=0,c71=0,c72=0,c73=0,c74=0,c75=0,c76=0,c77=0,c78=0,c79=0,c80=0,c81=0; 
   char c82=0,c83=0,c84=0,c85=0,c86=0,c87=0,c88=0,c89=0,c90=0; 
//INICIO DE PROGRAMA 

VOID main(VOID) { 
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   setup_oscillator(False);

 //PROGRAMA PRINCIPAL 
 
   WHILE (TRUE) {
     
    
    c1=0,c2=0,c3=0,c4=0,c5=0,c6=0,c7=0,c8=0,c9=0,c10=0,c11=0,c12=0,c13=0,c14=0,c15=0,c16=0,c17=0; 
    c18=0,c19=0,c20=0,c21=0,c22=0,c23=0,c24=0,c25=0,c26=0,c27=0,c28=0,c29=0,c30=0,c31=0,c32=0,c33=0; 
    c34=0,c35=0,c36=0,c37=0,c38=0,c39=0,c40=0,c41=0,c42=0,c43=0,c44=0,c45=0,c46=0,c47=0,c48=0,c49=0; 
    c50=0,c51=0,c52=0,c53=0,c54=0,c55=0,c56=0,c57=0,c58=0,c59=0,c60=0,c61=0,c62=0,c63=0,c64=0,c65=0; 
    c66=0,c67=0,c68=0,c69=0,c70=0,c71=0,c72=0,c73=0,c74=0,c75=0,c76=0,c77=0,c78=0,c79=0,c80=0,c81=0; 
    c82=0,c83=0,c84=0,c85=0,c86=0,c87=0,c88=0,c89=0,c90=0; 
    delay_ms(500);

    printf("AT+CLIP=1\n\r");    // inicia identificador de llamada
     DELAY_MS(1000); 
   
    c1=getch();c2=getch();c3=getch();c4=getch();c5=getch();c6=getch();c7=getch();c8=getch();c9=getch();c10=getch();  
    c11=getch();c12=getch();c13=getch();c14=getch();c15=getch(); c16=getch();c17=getch();c18=getch();c19=getch();
    c20=getch();c21=getch();c22=getch();c23=getch();c24=getch();c25=getch();c26=getch();c27=getch();c28=getch();
    

    //******************************************************************************* 
    //******************************************************************************* 
     if (c25=='6')   // IDENTIFICO Nº
         {
     delay_us(100); 
        
    //******************************************************************************* 
    //******************************************************************************* 
      
    if (c26=='2')   // IDENTIFICO Nº 
         {
     delay_us(100); 
       
    //******************************************************************************* 
    //******************************************************************************* 
    
    if (c27=='4')   // IDENTIFICO Nº
         {
     delay_us(100); 
         
    //******************************************************************************* 
    //******************************************************************************* 
    
    if (c28=='9')   // IDENTIFICO Nº 
{
      output_high(pin_B2); //
        delay_us(500);   
     
    //*******************************************************************************
    //si el Nª entrante es el correcto pone un alto en salida B2
    //
    // 
    //******************************************************************************* 

        }
        }
          }
         }
        }

}
```


----------



## ericklarva (Sep 14, 2009)

Hola kapotik, es muy generalizado lo que pides ya que existen un sin número posible de soluciones. Lo que sí puedo comentarte es que una solución rápida sería trabajar un temporizador en modo interrupción que te genere una constante de tiempo que tu puedas manipular y de esta forma controles lo que quieres. Es de preferencia contar con un PIC que incorpore el TIMER1, es más cómodo de trabajar.
Yo en lo personal trabajaría con la interrupción del RX y con un buffer de almacenamiento, además del temporizador para saber si el modem respondió en determinado tiempo. Otra sería enviar los datos al cel, adherir un delay de 1ms@9600bps para que el modem responda y leer RXBUFF *no la bandera* de recepción.
Son variadas las soluciones, dependiendo de que tan complejo quieras el control.
Un ejemplo, tal vez, sería:

```
struct{
boolean  TEND: 1; //Bandera que indica cuando el tiempo ha terminado
boolean  TON : 1; //Bandera de activación del temporizador
boolean  NA   : 2; //Bits no usados( puedes implementarlo para algo )
boolean  TIME: 4; //Tiempo = TIME * 15ms. De 5ms a 75ms( Puedes variarlo a tu gusto)
}FLAGS
// Interrupción para el timer0 o rtcc( aproximádamente 5ms@4Mhz )
#int_RTCC
RTCC_isr(){
  set_rtcc( 100 );                   // 5ms de carga
  if( FLAGS.TON ){
    if( !FLAGS.TIME ){              // Checamos que el tiempo no sea 0
       FLAGS.TON = 0;               // Si es así deshabilitamos el tiempo
       FLAGS.TEND = 1;            // Habilitamos la bandera de finalización
    }else    FLAGS.TIME--;      // Si es mayor  0 Decrementamos en 1 y salimos
  }
}

void main(void){

 set_rtcc( 0 );
 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_32);
 enable_interrupts(INT_RTCC);
 enable_interrupts(GLOBAL);
 FLAGS = 0;                         //Borramos la bandera para no generar errores
 //etc.....
 do{
    //etc...
    FLAGS.TIME = 1;                  //Esperamos 5ms
    FLAGS.TON  = 1;                  //Activamos el tiempo
    while(!kbhit()&&FLAGS.TEND);//Esperamos a recibir o finalizar el temporizado
    if( FLAGS.TEND ){                //Checamos si fue el fin del tiempo
      FLAGS.TEND = 0;               //Si es así borramos la bandera
      //etc...tratamos el error      //imlementamos alguna rutina para el error
    }else                                 //Si no fue el tiempo, es el caracter recibido
    VARXX = getc();                  //Guardamos la variable y continuamos el programa
  //.....

 }while( TRUE );
```
Espero esto te sea de utilidad, cualquier duda igual consulta en el PICC ahí te detallan más el operador "struct".
Igual hay esta opción, pero no se que tan bien funcione y como implementarla:

```
#use rs232 (options)
 TIMEOUT=X
  To set the time getc() waits for a byte in milliseconds.  If no  character comes in within this time the RS232_ERRORS is set to 0 as well as the  return value form getc().  This works for both UART and non-UART ports.
```
Saludos


----------



## u2jml (Sep 15, 2009)

Hola compañeros, he estado siguiendo muy de cerca este post y aun siendo un principiante solo he consigiendo algunos avances:

-Comunicacion PC > celular con los telefonos Motoroloa V3 y el Nokia 5300 por USB.
-Desarrollo del codigo en CCS para enviar sms y realizar llamada basado en el pic 16F628A.
-Simulacion en Proteus obteniendo correctamente los codigos AT en la hyperterminal.

Sin embargo al realizar la prueba fisicamente no obtengo ningun resultado con el motorola V3, y con el nokia 5300 se desconecta cuando recibe el primer comando. Como dije soy un principiante pero sospecho que mi error esta en querer hacer la comunicacion por el USB conectando el Tx del pic al Rx(D-) del celular y viceversa.

En su experiencia, ¿Es estrictamente necesario conectarse al FBUS Tx y FBUS Rx del celular? ¿Si cambiara a un pic con USB como el 18F2550, aumentaria la complejidad del codigo? Gracias.


----------



## ericklarva (Sep 15, 2009)

Definitivamente existen muchas diferencias entre el PHY USB y USART. De hecho prodrías terminar quemando alguno de los dos si no es que los dos.
Es de mucha importancia que el Cel posea salidas TX y RX a niveles lógicos USART para poder realizar la comunicación. En cuanto al PIC con USB si es mucho más complejo el programa ya que requieres una buena leida de las capas superiores del protocolo USB, hay algunos compiladores como el PICbasic que lo incorporan casi completo pero nunca lo he manejado. Tal vez tu opción más sencilla sea conseguir un Cel económico nuevo o usado que tenga salidas TX y RX.
Saludos


----------



## u2jml (Sep 15, 2009)

Hola ericklarva, gracias por tu respuesta, afortunadamente acabo de conseguir un nokia 6230 que tiene estas salidas TX y RX, aunque no se que forma sea mejor para conectarme a estos pinouts que estan abajo de donde va la pila. Empezare a hacer prubas y espero que ya funcione para empezar a trabajar sobre la respuesta del celular al pic.


----------



## kapotik (Sep 16, 2009)

Gracias erik por tu respuesta!!

Disculpame el atrevimiento, pero como sabes soy demasiado nuevo con el C y la verdad que estoy trabado con esto ya que tengo todo lo demas listo, entonces abra alguna posibilidad de que me acoples el temporizador al codigo que yo puse, por que entiendo perfectamente cual es el funcionamiento del temporizador pero no me da la cabeza para meterlo en el programa, no se como irvanarlo.El pic que uso es 16F628A cristal 4Mhz.


----------



## ericklarva (Sep 16, 2009)

Kapotik, debo decir que no es "pesadez" pero acoplarse al programa de otra persona es complejo, cada quien tiene una forma y un orden de escribir y acomodar los operadores. En lo personal el programa de rizy se me hace rudimentario y tosco, de hecho para poder ayudarte tendría que realizar todo un programa nuevo, y pues igual puede ser contraproducente para ti ya que recién comienzas.
El mejor consejo que te puedo ofrecer sería que tu realizaras por completo un nuevo programa basándote en lo que haz leido del foro, de esta forma podría ayudarte paso a paso con el. Héchale ganas, yo podría hacer lo que me pides pero si realmente quieres aprender y bien, sigue mi consejo.
Saludos


----------



## chitexxx (Nov 23, 2009)

Hola estoy intentando comunicarme con el hyperterminal con el nokia 1110 pero no responde nada... a ninguna velocidad...

Por lo que leo solamente acepta tramas fbus, pero me interesa realizar el manejo del celular por comandos AT, ¿El Nokia 2760 acepta comandos AT?

Además si alguien me puede ayudar con la configuración de velocidad se los agradaceré mucho...

Quiero armarlo con PIC y luego les subo el proyecto completo, pero necesito que me ayuden con esto primero, gracias.


----------



## Gonxalo (Dic 14, 2009)

Moyano podrias subir alguna foto de tu circuito de conexion con el el pic y el pc, es que hay una foto que subiste que no se puede ver. soy nuevo en esto y estoy aprendiendo esto de conectar. Te lo agradeceria mucho


----------



## Gonxalo (Dic 16, 2009)

Alquien a probado con otro sony ericcson que no se el t290?
informacion por favor


----------



## ericklarva (Dic 16, 2009)

Me imagino y supongo habrás tomado la molestia de leer la mayoría de los post para llegar a este punto, verdad?
https://www.forosdeelectronica.com/f24/uso-celular-gsm-pic-pc-2730/index10.html



ericklarva dijo:


> Leyendo todos los comentarios observo que ya algunos links están obsoletos. Logré encontrar los comandos AT para los sony ericsson actualizados y se los dejo como aporte para el tema. Espero sirva de algo
> Igual si alguien tiene como sacar las señales del conector del ericsson se los agradeceré.
> Saludos


----------



## Gonxalo (Dic 16, 2009)

Todo los post y dos veces el tema


----------



## Moyano Jonathan (Dic 16, 2009)

Si te fijas en los post anteriores gonza vas a encontrar el circuito que buscas....es uno hecho a base de transistores. Lo único que tendrías que buscar aparte es el pinout del conector del K300 y hacer una placa con el conector y el circuito a transistores que te digo , entonces vas a poder comunicarte con el teléfono por RS232 y hyperterminal.
Un saludo !


----------



## Gonxalo (Dic 16, 2009)

osea que para conectar el pic con el celular es necesario implementar el circuito con transistores, es que vi tu aporte y entendi que habias conectado directamente la salida del pic a la entrada del cel.
gracias por tu ayuda


----------



## Moyano Jonathan (Dic 17, 2009)

Claro , el PIC si lo conecté directamente con el cel , pero el cel con la PC va con el circuito de los transistores.


----------



## Meta (Dic 28, 2009)

¿Hay Delphi gratuito como los Visual C# Express?


----------



## qete (Ene 4, 2010)

Lamento desvirtuar un poco el tema, pero les quieria agradecer por toda la info que tan desintaresadamente comparten.
Con un amigo estamos comenzando un proyecto que incluye este tema y la verdad nos sirve muchisimo todo lo que explicaron desde la primera respuesta!!
Gracias!

Miguel

EDIT (05/01/10): agrego una consulta: 

Chicos, a ver si alguno me puede dar una manito: tengo a mano un sony Ericsson K510a, pero el pinout del mismo no tiene los pins Tx y Rx. Alguien sabe si este cel me sirve para comenzar con las pruebas en el Hiperterminal?
El pinout es sl siguiente (lo sake de la pagina que compartieron unas paginas mas atras):

1 USB +5V in
2 SP_REF
3 Mic+/AUXIN_L
4 Mic-/AUXIN_R
5 DFMS/SP_L headphone speaker - left
6 DTMS/SP_R headphone speaker - right
7 VIDEO/STB
8 VPPFLASH short to pin 9 for handsfree detection
9 GND
10 CTMS / USB DATA+
11 CFMS / USB DATA-
12 Charge In 


Desde ya muchisimas gracias!!
Miguel


----------



## kapotik (Ene 6, 2010)

no, ya que el puerto de comunicacion de ese telefono es por USB, hora si sabes comunicarte con el pic por USB si lo podrias usar pero no por RS 232.

Saludos


----------



## qete (Ene 6, 2010)

Ah, ok, muchas gracias!
Recien estoy empezando y se me va a complicar con el usb.
Saludos!
Miguel


----------



## pandemonium (Ene 7, 2010)

Hola, soy nuevo en el foro y primero agradecer por la manera tan desinteresada de compartir información de un tema tan interesante y también decirles que todos son bárbaros. Me hacen sentir que sólo he recorrido una cuadrita. Leí todo el post desde el principio y he aprendido varias cosas. Quisiera hacer las pruebas con un siemens A56i pero me gustaría saber que opiniones tienen de usar un celu digamos que sea barato y comercial, pero que no quede obsoleto tan rápido. Les agradezco por toda la información divulgada y sigan así. Son los Mejores.

Para eenrique:
Con todo respeto primero felicitarte por tu proyecto vi todo lo que hiciste y hasta los videos y te quedó excelente, pero si no tienes ninguna intención de compartir lo que haces creo que hay mejores maneras de publicitar un producto. Saludos.


----------



## Gonxalo (Ene 8, 2010)

Don Moyano Jonathan: volviendo a retomar el tema que lo tenia un poco abandonado, una consulta. En el pic, que otras conexiones tienes que hacer no se si sea suficiente con lo  que esta ahi, disculpen mi poco conocimiento, hay que alimentar el pic. porque no me ayudas con un circuito por ultimo a mano con mas detalles, porfis.
Desde ya muchas gracias


----------



## Moyano Jonathan (Ene 8, 2010)

El cel con el que estaba haciendo las pruebas se me rompió por lo que hasta que no consiga alguno nuevo no puedo seguir con las pruebas...pero el circuito si vos tenés el cel el condiciones se hace de la siguiente manera:

TX DEL PIC ----- RX DEL CEL 
RX DEL PIC ------TX DEL CEL

Lo demás son la alimentación ...cristal del pic....etc.


----------



## Meta (Ene 8, 2010)

Compureba todos las velocidad uno en uno de los budios y si es asíncrono a sícrono.


----------



## Gonxalo (Ene 11, 2010)

Muchas gracias, voy a probar y ver que resulta, tb voy a probar con otro pic, a seguir intentando no mas a que resulte  
Aviso mis resultados


----------



## Gonxalo (Ene 12, 2010)

Mal me a ido no e podido enviar obtener una salida, conecte Vss y Vdd. cristal de 20Mhz. Visualizo la señal en un osciloscopio y  no obtengo salida al presionar el pulsador. Tengo una fuente regulada a 5 volt y en la salida del pic tb 5 volt pero como un tren de pulso . 
Algo que me falte? ayuda!


----------



## qete (Ene 12, 2010)

Hola chicos!
Estuve tratando de comunicarme con un Nokia 2760 a traves del Hyperterminal, pero no tuve suerte.
Conecte los pines FbusTx, FbusRx y GNC a los correspondientes al circuito que tiene el MAX232, pero en el Hyperterminal no veo nada de lo ke escribo...Y despues de un tiempo de intentar se clava el programa y tengo ke volver a abrirlo.
Primero probé escribiendo AT, despues ATE, despues apretando solo ENTER para ver si obtenia alguna respuesta..pero nada!!
Alguno que haya tenido una experiencia como esta podría darme  algún consejo?
Muchas gracias!
Miguel


----------



## ericklarva (Ene 13, 2010)

Gonxalo, que estás intentando?? que es lo que quieres hacer?
Qete, puede ser que tengas conectados al revez los pines del Cel o que no configures de manera correcta el hyperterminal juega con los baudios y checa que tengas 8bits de datos, sin paridad, 1bit de STOP y el control de flujo desactivado.
Saludos


----------



## qete (Ene 13, 2010)

Hola ericklarva, mucha gracias por tu respuesta!
Ya probé con todas la velocidades que hay disponibles, las otyras configuraciones están como me aconsejaste, tambien probe el puerto para descartar que éste estuviera quemado y las conexiones Tx y Rx del puerto al celu están bien....lo mismo me pasó con un Siemens A56.
No se que puede ser...medi los niveles de tension a la salida del puerto y del circuito con el MAX232 y esta todo dentro de los parámetros!!
PAra que se conecte el cel solo tengo que conectar los cables Rx, Tx y GND, verdad? 
Muchas gracias a todos!
Miguel


----------



## ericklarva (Ene 13, 2010)

En teoría así es pero para que quede claro que está mal, conecta el TX y RX que van al Cel en "corto" o puenteados como lo quieras entender, une los cables y envía datos del hyperterminal, deberan retornar los caracteres si el circuito está correctamente armado. Si tu escribres caracteres y estos no aparecen en la pantalla haciendo la unión, significa que algo no está bien en tu MAX o en tu cable COM. Checa esto primero que es muy importante y comentas.
Saludos


----------



## Moyano Jonathan (Ene 13, 2010)

A mi el max232 no me dió resultado ..probé con un circuito a transistores y funcionó correctamente.


----------



## fncisco (Ene 20, 2010)

Gracias a todos lo que han aportado en el foro, 

Ya estoy enviando mensajes de texto con arduino y un viejo t637 que tenia por ahi dando vueltas... la conexion la he hecho directa del arduino al celular y todo ha funcionado muy bien.
quiero compartir con uds el codigo, se basa en una libreria que se llama sserial2movile es facil de encontrar con google y newsoftserial de la  misma procedencia.

se que se pueden hacer mas cosas con esto... pero por lo pronto se cumple lo que esperaba, gracias a todos por la colaboracion y con sus recomendaciones, 

tambien queria contarle que probé con hyperterminal con 9600baudios y el resto por defecto, control de flujo hardware... en fin todo lo recomedado. 

adjunto el codigo

Francisco desde colombia


```
#include <SSerial2Mobile.h>
#include <NewSoftSerial.h>
#define RXpin 10
#define TXpin 11 
#define ACTIVADApin 9  //sirena
#define ARMADApin 8 //boton de panico

int armada = 0;
int returnVal=10;
    SSerial2Mobile phone = SSerial2Mobile(RXpin,TXpin);

void setup(){

  phone.sendTxt("300xxxxxxxx","Alarma REINICIADA");
  phone.sendTxt("31xxxxxxxxx","Alarma REINICIADA");
  delay(3000);
pinMode(9, INPUT);
pinMode(8, INPUT);
}
void loop(){
  
  if(ACTIVADApin==0){
    phone.sendTxt("300xxxxxxx","Alarma SONANDO!");
    phone.sendTxt("317xxxxxxx"," Alarma SONANDO!");
    delay(3000);
  }
  if(ARMADApin==0){
    phone.sendTxt("300xxxxxxx","Alarma PANICO!");
    phone.sendTxt("317xxxxxxx","Alarma PANICO!");

    delay(3000);
  }
 

}
```


----------



## dEREK (Ene 21, 2010)

Hola amigo sucede que se me hace dificil leer un sms con formato pdu desde un pic ..el cel es un siemens a56 el envio es bárbaro pero para leer me quiebra la cabeza .Yo pensaba que era facil solo de captura el ultimo byte (ya que lo mismo funciona con un nokia en formato texto)peo con el siemens se comporta extraño el envio pdu.
ejemplo realizado:
07450b345670000xxxxxxB0A10*41 *
41 corresponde a la letra A 

LO facil seria a pues facil despues de los 27 caracteres tomo el 41 y listo pues eso pense y nunva recibo el 41 .
include modedefs.bas
dat var byte(50)
lo var byte
co var byte ;counter
co=0

ini:
serin portb.0,n9600,lo
dat(co)=lo
if co>=50 then env
co++
goto ini

env:
pause 10
for co=0 to 49 step 1
serout portb.1,n9600,(#dat(co),dat(co)) ;data are lost .41 is not shown on pc
pause 2
next co
goto ini

Si conecto el cel con la pc atarves de la interfaz si funciona recibo :
07450b345670000xxxxxxB0A10*41 *
*pero con el pic no.*

*Gracias a todos de antemano.*


----------



## Moyano Jonathan (Mar 14, 2010)

Hola a todos , en esta ocación les traigo un fragmento de código en el cuál se muestra como leer una trama de datos desde un modem GSM para poder realizar acciones según la información contenida en un mensaje de texto.
El código no lo he probado pero está completo y debería funcionar...si alguien lo puede probar y postear resultado estaría buenismo. 


```
#include <18f2550.h>
#fuses hs,noprotect, mclr,nowdt
#use delay(internal=4M)//delay(clock=4000000)k
#use rs232(baud=9600, xmit=PIN_c6,rcv=PIN_c7,STREAM=MODEM)
#use rs232(baud=9600, xmit=PIN_B5,rcv=PIN_B6,STREAM=DEVICES)
#use rs232(baud=9600, xmit=PIN_c0,rcv=PIN_c1,STREAM=MASTER)
#include <string.h>
#include <math.h>
//#include <input.c>
#define mensaje pin_a0
#define relay   pin_a1
#define RESET  pin_a2
#define ALARM pin_b3
#define on output_high
#define off output_low
//#priority EXT1,RDA
/////////////////////////////////////////////////////////////////////////////////////////
INT STRING[300]="                            ",modo=0,dispositivos[]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",num[]="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
INT OK[]="OK",ERROR[]="ERROR",RING[]="RING",CMTI[]="+CMTI:",ON[]="ON",OFF[]="OFF",ESTADO[]="DISPOSITIVOS?",VARIABLES[]="VARIABLES?",varis[]="voltaje=0,temperatura=0,pocicion=0";
int1 listo=0,captura_cadena=1;
char a=0,b=0,s0[]="off",s1[]="off",s2[]="off",s3[]="off";
int x,estado_dispositivo,FOCOS=0;
//////////////////////////////////////////////////////////////////////////////////////
const int mensaje_leido=1,RESETEAR=2;
//////////////////////////////////////////////////////////////////////////////////////
int1 verificar_estado(int estados,int disp);
void asignar_estados(char modo);
int1 verificar_falla(int cont);
//////////////////////////////////////////////////////////////////////////////////////
VOID MAIN()
{
enable_interrupts(int_rda);
enable_interrupts(int_ext1);
enable_interrupts(int_ext2);
enable_interrupts(global);
ON(RESET);
for(x=0;x<16;x++)
num

    * =read_eeprom(x);

CICLO:

GOTO CICLO;
}
//////////////////////////////////////////////////////////////////////////////////////////
#int_rda
void capturar()
{
if(kbhit()!=0)
fgets(string,modem);
 if(strcmp(string,RING)==0)
  {
 fputs("ATA",modem);
  on(relay);
  }
else if((strncmp(string,ON,2)==0)||(strncmp(string,OFF,3)==0))
  {
  if(strncmp(string,ON,2)==0)
    dispositivos[0]='A';
  else if(strncmp(string,OFF,3)==0)
    dispositivos[0]='B';
    for(x=1;x<12;x++)
    dispositivos

    * =0;

    for(x=1;x<12;x++)
       {
       dispositivos

    * =string
    * ;

       }
       MODO=MENSAJE_LEIDO;
  }
else if(strcmp(string,OK)==0)
  {
  output_high(pin_b7);
  switch(modo)
    {
    case mensaje_leido:
         for(x=0;x<12;x++)
         fputc(dispositivos

    * ,devices);

         delay_ms(610);
       /*  if(!verificar_falla(11))
         goto MEN;*/
         fputs("AT+CMGD=1,4",modem);///////////////////////////borra los mensajes leidos
         modo=resetear;
         off(mensaje);       
         break;
    case RESETEAR:
      if(listo==1)
         {
          modo=0;
          captura_cadena=0;
          if(focos==1)         
          asignar_estados(';');   
          else if(focos==2)
          asignar_estados('*'); 
          MEN:
          fprintf(modem,"AT+CMGS=\"%s\"%c",num,13); 
          delay_ms(1000);         
          if(focos==1)
          fprintf(modem,"foco0=%s;\nfoco1=%s;\nfoco2=%s;\nfoco3=%s%c",s0,s1,s2,s3,26);
          else if(focos==2)
          fprintf(modem,"%s%c",varis,26);         
          focos=0;         
         }
         delay_ms(300);
         listo=0;
         off(reset);                         
         break;
    }
  }
else if(strcmp(string,ERROR)==0)
 {
  output_low(pin_b7);
  off(mensaje);
 }
else if(strncmp(string,CMTI,6)==0)
  {
  a=b=0;
  a=string[12];
  b=string[13];
  fprintf(modem,"AT+CMGR=%c%c%c",a,b,13);
  modo=mensaje_leido;
  on(mensaje);
  }
else if(strcmp(string,ESTADO)==0)
  {
  listo=1;
  FOCOS=1;
  }
 else if(strcmp(string,VARIABLES)==0)
  {
  listo=1;
  FOCOS=2;
  }
}

///////////////////////////////////////////////////////////////////////////////////////////
#INT_EXT1
void alarma()
{
if(input(alarm))
{
fputs("AT",modem);
delay_ms(200);
fprintf(modem,"ATD%s;%c",num,13);
delay_ms(9000);
fputs("ATH",MODEM);
delay_ms(300);
OFF(RESET);
}
}
//////////////////////////////////////////////////////////////////////////////////////////
#INT_EXT2
void actualizar()
{
char comand=0;
comand=fgetc(master);
if(comand==10)
 {
  fgets(num,master);
  for(x=0;x<16;x++)
  write_eeprom(x,num

    * );

}
if(comand==11)
 {
  fgets(dispositivos,master);
  for(x=0;x<2;x++)
   fputc(dispositivos

    * ,devices);

}

delay_ms(100);
OFF(RESET);
}
//////////////////////////////////////////////////////////////////////////////////////////
int1 verificar_estado(int estados,int disp)
{
 int resultado=0;
 int1 bool=0;
 int and=0;
 resultado=pow(2,disp);
 and=estados&resultado;
 if(and==resultado)
 bool=1;
 else
 bool=0;
 return bool;
}
/////////////////////////////////////////////////////////////////////////////////////////
void asignar_estados(char modo)
{
estado_dispositivo=0;
    fputc(modo,devices);
    if(modo=='*')
    fgets(varis,devices);
    else if(modo==';')
        {
         estado_dispositivo=fgetc(devices);         
         for(x=0;x<4;x++)
         {
          switch(x)
          {
          case 0:if(verificar_estado(estado_dispositivo,x)==1) strcpy (s0,ON);               
                 else strcpy (s0,OFF);
               break;
          case 1:if(verificar_estado(estado_dispositivo,x)==1) strcpy (s1,ON);               
                 else strcpy (s1,OFF);
               break;
          case 2:if(verificar_estado(estado_dispositivo,x)==1) strcpy (s2,ON);               
                 else strcpy (s2,OFF);
               break;
          case 3:if(verificar_estado(estado_dispositivo,x)==1) strcpy (s3,ON);               
                 else strcpy (s3,OFF);
               break;         
          }
         }         
      }
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int1 verificar_falla(int cont)
{
int1 res=false;
int y;
fputc(';',devices);
estado_dispositivo=fgetc(devices);
for(y=1;y<cont;y++)
  {
  if((dispositivos[y]>='0')&&(dispositivos[y]<='9'))
    {
     if(verificar_estado(estado_dispositivo, dispositivos[y]-48)&&dispositivos[0]=='A')
      res=true;
     else if(!verificar_estado(estado_dispositivo, dispositivos[y]-48)&&dispositivos[0]=='B')
      res=true;
     else
     {
     res=false;
     goto salir;
     }
    }
  }
  SALIR:
return res;
}
```
El código lo encontré navegando en la red...no se su autor pero en cuanto lo encuentre lo pongo.


----------



## GIBSON1 (Mar 18, 2010)

Moyano Jonathan dijo:


> Bueno acabo de hacer las pruebas con resultados satisfactorio pero a la vez extraños
> http://img17.imageshack.us/i/hyperterminal.jpg/
> 
> 
> +CPMS: 0,70,19,20,0,70 que significan esos caracteres ?


 

Saludos cordiales,
He intentado leer un mensaje desde el celular (mensajes no leídos “unread”) con el hiperterminal siguiendo los mismos pasos que realizaste tu en la pantalla que aparece aquí, pero el resultado es el mismo que tienes tu en esa pantalla, no se como lograste leer el mensaje de texto mediante la orden at+cmgl="rec unread", es decir, en tu siguiente comentario: "*Listo ya mandé un mensaje al T237 y lo pude leer con el comando at+cmgl="rec unread".”,* quisiera saber como lo hiciste porque yo he intentado 14 mil veces leer los mensajes que llegan al celular (no leídos “unread”) y no he podido, mas si he logrado leer los que ya están leídos “read”, los que no se han enviado y cualquier otro, menos los que llegan. Que puedo estar haciendo mal específicamente con esta orden, por que cualquier otra orden al celular mediante comandos at la ejecuta satisfactoriamente.

Muchas gracias de antemano.


----------



## kapotik (Mar 24, 2010)

Hola, luego de mucho andar logre leer con el micro cualquier cosa que envie el moden . El metodo que emplee fue leer en tiempo real, osea no lo guardo en memoria como lo hacia rizy en su codigo sino que mientra recibo la cadena de caracteres la voy analizando. En esta oportunidad les cuelgo el primer codigo que me funciono. El codigo esta hecho en asm ya que nunca logre adaptarme del todo al C supongo que algun dia lo are.
 Luego les cuelgo el que emplea un moden gsm y un gps, pero el principio es el mismo que emplee en este.


----------



## Stitch (Mar 29, 2010)

Hola a todos.... he trabajado un tiempo con el envío y recepción de SMS, usando un celular Sony Ericsson T630 y un micro... todo de maravilla. La cosa es que ahora debo ir un poco más allá, y hacer la transmisión de la información haciendo uso del GPRS, alguien tiene idea de por donde empezar?
De antemano, gracias


----------



## Moyano Jonathan (Abr 1, 2010)

stich como estás...si tenés tiempo nos pondrías como hiciste para poder decodificar los mensajes del T237 ...yo puse un código más arriba pero me gustaría tener una opinion de alguien que lo haya probado.


----------



## traka (Abr 7, 2010)

Hola, a ver estoy usando un sony Ericsson t290 (porq lei or aki que aceptaba modo texto), y bueno, desde terminal de windows envio y leo mensajes. Me puse entonces ha hacerlo desde el pic.. y envio mensajes sin ningun problema.. pero lo que no consigo es leerlos. He partido del codigo que puso moyano y na de na. A ver os pongo lo que hago:


```
void leerSMS(char* cadena)
{
   fputs("AT+CPMS=\"ME\",\"ME\",\"ME\"\r\n",modem);//Establezco todas las memorias del telefono, no de la SIM    //ok
   delay_ms(300);
    fputs("AT+CMGF=1\r\n",modem);//configura modo texto
    delay_ms(300);
    fputs("AT+CMGR=1\r\n",modem);//leo mens de posición 1 modo texto
    delay_ms(300);
   //Aqui ya me devuelve el mensaje
    if(kbhit(modem)!=0){
    fgets(cadena,modem); //Aqui se me queda colgado
   }

Como pongo el el codigo, en fgets, se me queda colgado, entonces coloque fgetc(), y me devuelve primero una A luego una T(poniendo dos seguidos), y si coloco otro.. se cuelga.

Alquien ha conseguido leer?? En principio no estoy usando interrupciones 


En mi desesperación tambien intente con interrupción del siguiente modo:
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, STREAM=modem)
int8 posLCD;

//Defino interrupción
#int_rda
void serial_isr() {
  int8 caracter=0x00;
  if(kbhit(modem)){
    caracter=getc();
    if(posLCD==16)
      posLCD=1;
    lcd_gotoxy(posLCD,2);
    printf(Lcd_putc, "%c",caracter);
    posLCD++;
    }
  }

void main(void){
enable_interrupts(global);
  enable_interrupts(int_rda);
leerSMS(texto);
while(true){}
}

void leerSMS(char* cadena)
{
   fputs("AT\r\n", modem);
}
```

y con todo esto, se me muestra en la lcd unicamente AT (que supongo q es el echo del telefono), pero no se me muestra OK, q devuelve cuando hago lo mismo con Hiperterminal.
Alguna idea?


----------



## traka (Abr 8, 2010)

EDITO:
Me voy a responder a mi mismo, buscando y buscando vi que el RS232 del pic tiene un buffer de dos caracteres, por lo tanto, necesito del uso de interrupciones.
El codigo de interrupciones que postee anteriormente, tengo codigo para que me muestre por pantalla lcd a traves de I2C el codigo leido, lo cual supongo crea un retardo muy grande, que era el problema(no le daba tiempo a recoger todos los caracteres).
Solución: creo una variable char buffer[300]; y voy añadiendo al final lo que me llega al saltar la interrupción.


----------



## ericklarva (Abr 27, 2010)

Hola gente, buscando otra cosa me topé con este PDF:
http://www.portech.com.tw/data/BenQ M23 AT.pdf
Que la verdad se ve muy interesante y sería bueno probar para aquellos que ya tienen el sistema armado que tal funcionan los comandos. A partir de la página 105 vienen los comandos para los mensajes.
Espero les sirva
Saludos


----------



## lapot (Abr 27, 2010)

Buenas a todos. Os expongo mi duda. Estoy tratando de hacer un sistema de comunicación PIC-móvil. El tema sería que un usuario mandase un SMS a una estación meteorológica de manera que fuera un mensaje predeterminado. Por ejemplo, si el usuario mandase un SMS con la palabra 'Humedad'. El sistema electrónico respondería enviándole los datos de humedad. Si el usuario mandase 'Temperatura', el sistema enviaría los datos de temeperatura y así... Si el usuario mandase algo, fuera de los mensajes predeterminados, el sistema no respondería.
Ahora viene mi duda, que es como podría hacer para diferenciar esos mensajes. Estoy utilizando los comandos AT y programando en ensamblador. ¿Hay algun comando que te permita diferenciar mensajes o algo así?

Perdón pero tengo bastante desconocimiento sobre el tema porque estoy empezando con esto. Si alguien pudiera darme una idea o pegarme alguna programación similar o algo, sería de agradecer.

Gracias de antemano por la ayuda! Saludos!


----------



## Chico3001 (Abr 27, 2010)

El modem responde con el mensaje en formato ascii... asique solo seria de hacer comparaciones de letras para reconocer el comando... algo muy facil de hacer

Primero manda el mensaje recibido a una variable tipo string y despues solo comparala con cases... por ejemplo


```
switch(strValue)
{
  case "Value X":
    DoThis();
    break;
  case "Value Y":
    DoThat();
    break;
  case "Value Z";
    DoSomethingElse();
    break;
  default:
    DontKnowWhatToDo();
    break;
}
```

obvio el ejemplo es general y habria que adecuarse al tipo de programacion que uses... algunos compiladores no soportan comparacion de cadenas en el Switch por lo que tendrias que usar sentencias IF


----------



## gzaloprgm (Abr 27, 2010)

Tampoco creo que hayan compiladores de C que soporten if(algo == "asd") (donde algo es un array de chars)

Una solución es strcmp(f1,f2), que devuelve 0 en caso de que dos cadenas sean iguales.

Si tu compilador no lo incluye en sus librerías, quizás necesites implementarlo.

Saludos,
Gonzalo


----------



## lapot (Abr 28, 2010)

Bueno lo primero muchas gracias por vuestra ayuda. Pero sigo teniendo una duda, a ver si me explico. Yo estoy utilizando el hiperterminal de Windows para probar los comandos AT. Entonces si por ejemplo hago: AT+CMGL= 1 , es decir, leer mensaje. Obtendré...

+CMGL: 1,1,,148
O sea, que el mensaje 1 tiene estatus 1 (recibido y leido) , que el emisor está en blanco, y que la longitud es 148 bytes. La siguiente linea esta formada por un montón de caracteres 0-9A-F, que miden 148 bytes, pero parece que estan codificados.

Entonces como voy a comparar el mensaje si no me aparece el mensaje normal, si no que me aparece codificado. No se si me explico. Si me apareceriera normal comparaba el primer caracter de la cadena con el que yo desease y listo, pero así ya no se que hay que hacer.

Creo que la codificación es porque el móvil que utilizo no permite modo texto, si no PDU.

¡¡Gracias de nuevo!!


----------



## Chico3001 (Abr 28, 2010)

Temas unidos...


----------



## doncorleone (Abr 29, 2010)

darkbits dijo:


> tan caro ?? un socket....  mil veces prefiero comprar el celular  mas economico GSM q sale 15 dolares y ya se como trabaja por Fbusss  como lo estoy haciendo?????
> 
> no entiendo porq tan caro  si solo es socket  y tambien tiene comandos AT como los demas..  celulares...
> 
> ...


 hola que tal ando buscando informacion sobre fbus para poder controlar un nokia 1100 meidante un pic si me puedes ayudar te lo agradecerias.. o si me sugieres algun cel  ams facil gracias


----------



## lapot (May 6, 2010)

Otra pregunta. A ver si alguien me ayuda. Estoy haciendo una comunicación PIC-PC por medio de RS-232, y a su vez, PC-móvil, vía USB. Entonces lo que quiero hacer abrir 2 archivos del hyperterminal. Uno con el puerto de conexión COM1 y otro con el puerto de conexión USB. ¿Entonces si escribo algo en uno me aparece en el otro y al revés? Porque me interesaría la finalidad de comunicar el PIC con el móvil todo a través del hyperterminal. Sin cables entre ellos.


Por favor, es muy importante vuestra ayuda. Gracias!


----------



## duvan_ramos (May 16, 2010)

Buenas tardes Moyano Jonathan
Tengo una pregunta de lo expuesto en la pagina 13, cuando hiciste la coneccion del celular al PIC entre TX y RX fue directo no implementaste algo adicional, lo que pasa esque estoy ralizando un proyecto donde se activa una alarma y necesito enviar el SMS y no me esta funcionando...
me puedes colaborar con mas detalles, (solo necesito enviar el mensaje)

De antemano muchas gracias,  y saludos para los compañeros del foro.


----------



## Moyano Jonathan (May 16, 2010)

claro el envío fue directo es decir solo use algunos transistores como puse más atrás....con el max232 no me funcionó ....en post anteriores puse el código , diagrama y explicaciones ..


----------



## d4n13l4 (May 16, 2010)

Hola queria saber si uds saben como poder controlar el hyperterminal atraves del celular
quiero conectarme via bt con el pc y poder activar el hyperterminal que tendra una conexion que enviara datos al puerto serial que estara conectado a una placa externa que activara el abrir y cerrar de una puerta


----------



## Meta (May 16, 2010)

Buenas:

Lo móviles de ahora son más bien de USB. Dentro de ella quitando la batería, se ve unos conectores, sobre todo los Nokua. Antes se accedían ahí con comando AT. ¿Aún se puede hacer o hay que usar el cable USB?

Saludo.


----------



## Moyano Jonathan (May 17, 2010)

lo mejor ahora es usar un modem GSM serial mediante comandos AT lo que pasa es que están caros U$S100 y la verdad es un gasto importante si solo lo querés para experimentos.


----------



## ericklarva (May 17, 2010)

Se que de normal no está muy bien visto que se haga esto, pero creo que es una buena opción de compra para los hobbystas y demás:
http://www.sureelectronics.net/goods.php?id=100
Espero les sirva de algo
Saludos


----------



## sigmund (May 17, 2010)

Saludos excelente aporte de todos, me lei todas las paginas y me resolvieron varias dudas se los agradesco.

ahora solo me falta grabar el pic y realizar el cto para probar como sale todo ya que por lo menos al simular esta todo ok.

Saludos y gracias


----------



## Meta (May 17, 2010)

ericklarva dijo:


> Se que de normal no está muy bien visto que se haga esto, pero creo que es una buena opción de compra para los hobbystas y demás:
> http://www.sureelectronics.net/goods.php?id=100
> Espero les sirva de algo
> Saludos



Está muy bueno,sólo falta tenerlo y aprender a manejarlo. Con un Nokia me bastaría.


----------



## isaack (Jun 4, 2010)

muy bueno gracias


----------



## Moyano Jonathan (Jun 5, 2010)

Lo mejor para empezar con esto del GSM es conseguirse un MODEM con conexión TTL.... empotrado en alguna placa con el conector de la targeta SIM y demás yerbas...algo así está como en U$S 110 aprox. También se puede usar un teléfono viejo en desuso que se pueda comandar por comandos AT...que es una opción más barata


----------



## oswcard (Jun 6, 2010)

hola soy nuevo en este foro quisiera una ayuda en cuanto ala comunicacion del celular nokia 1600 con la pc, he leido lo que ustedes han posteado , mi duda es si el pin MBUS  tiene que estar conectado aun si no lo estoy usando , me referencie con el diagrama Circuito adaptador RS-232 - FBUS/MBUS (RS232 - MBUS/FBUS converter) 

cual es la diferencia de usar el puerto de comunicacion del celular y el conector adaptado  en el posteo que hicieron sobre celular nokia


----------



## txarlie2010 (Jun 7, 2010)

Te recomiendo que uses Sonyericsson T290 es "viejito" pero muy economico, tiene los pines de comunicacion serial RX-TX que los puedes acoplar al "uC" con unos transistores y listo!!!!!.....

*No utilicen el Max232 para tratar de conectar el telefono con el microcontrolador*, los voltajes de TX y RX del telefono son de maximo 3.6v


----------



## ericklarva (Jun 8, 2010)

txarlie2010 dijo:


> *No utilicen el Max232 para tratar de conectar el telefono con el microcontrolador*, los voltajes de TX y RX del telefono son de maximo 3.6v


Y se supone que eso sea algo malo?? Y más bien te referirás a conectar el teléfono al COM de la PC, porque no se de que otra forma podrías conectar el Teléfono-microcontrolador-MAX232!!!
De antemano muchos micros son tolerantes a los voltajes de 5V, y si en dado caso no lo es, se puede usar un divisor de tensión a la entrada de este que divida los 5V en 3.6V. Porque limitarnos??
Por ahí circula un circuito a transistores que también es muy válido, pero no necesariamente va a ser eficiente en todos los casos porque no cumple al 100% los requerimentos del RS232. De hecho hay algunos circuitos 232 que operan con 3.6V, como el *MAX3323E* de la maxim.
Saludos


----------



## txarlie2010 (Jun 9, 2010)

Precisamente indico la conexion entre el Microconcrolador y el telefono.....ya que algunos cometen ese error

Te cuento que mi aplicacion tiene un transistor para acoplar los voltajes de 3.6 a 5 V. y a funcionado correctamente.


----------



## ericklarva (Jun 9, 2010)

Se me hace extraño que alguien intentara conectar el MAX232 entre el micro y el Cel...no le estarías mandando 5V sino más bién +-12V y eso sería catastrófico para el micro.
Lo del transistor es más que correcto, pero también funcionaría con un divisor simple con resistencias o un zener a 3.3V.
Saludos


----------



## txarlie2010 (Jun 9, 2010)

Efectivamente ericklarva....

Eso lo digo porque mas de uno ha hecho esa gracia...y despues preguntan por que no funciona


----------



## Cholgo (Jul 11, 2010)

Hola Moyano , estoy siguiendo el hilo con atención, logré llamar y mandar sms por el cel con un pic...
Pero no puedo leer los mensajes con el PIC para poder analizarlos después  
No se si lograste leer y analizar los SMS al final, porque no hay mas post ;D
Ojala puedas darme una mano... sería bueniiiisimoooo
Saludos desde Chile


----------



## Moyano Jonathan (Jul 11, 2010)

Hola como andas cholgo ...mirá deje de hacer las pruebas por que se me rompió el celu que estaba usando y estoy viendo de ahorrarme unos U$S100 para hacer mas pruebas....pero acá en argentina como sabras es medio complejo conseguir esa cantidad de dinero,,,por eso lo he dejado de lado pero en cuanto tenga la plata voy a seguir con mis desarrollos-
Un saludo !


----------



## oswcard (Jul 11, 2010)

hola amigo txarlie2010, estuve buscando el celular que me recomendaste pero no logre encontrarlo me podrias recomendar otro modelo de celular mas moderno de sony ericson que lo pueda encontrar facilmente en el mercado,  de antemano agradesco la ayuda atorgada


----------



## sigmund (Jul 22, 2010)

Hola amigos, es un gran hilo, realice la conexión entre el pc y el celular (sony ericson t226) con el cto de transistores adaptando las tensiones. ocupo el hyperterminal configurando 9600 el baud rate, 8 de bits de datos, ninguno en paridad, 1 en bits de parada y ninguno en control de flujo. Y no funciona el celular no envia el "OK" para chequear el cto puenteo rx con tx del conector del cel y puedo escribir en el hiperterminal vuelvo a conectar y no puedo hacer nada en hiperterminal. 

sera que este modelo no sirve
que modelos me recomiendan a parte del t290

saludos


----------



## josechura (Jul 22, 2010)

holas Sigmud! yo hace 2 meses atras utilize el sony Ericson t226 y me funciono normal!! lo utilize pa hacer un proyecto de alarma pa una casa.. con el  t226 normal podia realizar llamadas y envio de sms tanto  modo texto o pdu ya sea controlado por el hypeterminal o por el pic16f84a... tu problema talves sea pura conexion!! osea fuente o los pines de tx-rx..sigue adelante...SI SE PUEDE!!


----------



## sigmund (Jul 23, 2010)

josechura dijo:


> holas Sigmud! yo hace 2 meses atras utilize el sony Ericson t226 y me funciono normal!! lo utilize pa hacer un proyecto de alarma pa una casa.. con el  t226 normal podia realizar llamadas y envio de sms tanto  modo texto o pdu ya sea controlado por el hypeterminal o por el pic16f84a... tu problema talves sea pura conexion!! osea fuente o los pines de tx-rx..sigue adelante...SI SE PUEDE!!



Gracias men, revise el cto y esta ok!. una consulta como para chequear los pines del cel el pin 4 es RX y el 5 es TX y el 8 gnd


----------



## josechura (Jul 23, 2010)

Holas xixo la config de pines q dices arriba es la correcta Guiate de este enlace http://telecontrolgsm.blogspot.com/2009/11/enviar-un-sms-con-un-celular-y-un-pic.html    ahy encontraras la imagen de los pines del sony t290 q es lo mismo q el t226  ahora tambien fijate en el circuito q tas implementando el voltaje para tx al cel sea 3.3v ya q con 5v el cel no furuncia osea ponle un zener y normalazo,,, ok xixo.. hablamos..


Mas bien xixos haber si apoyan... necesito leer los sms del cel a traves del pic para asi poder controlar unos  reles y q me enciendan las luces de mi casa.... lo q he logrado hacer  hasta ahora es realizar llamadas y envios de sms pero lectura se me hace  complicado!!! gracias de antemano ...pd. haber si ahy un ejemplito en ASM..


----------



## paulo78 (Jul 23, 2010)

josechura dijo:


> Holas xixo la config de pines q dices arriba es la correcta Guiate de este enlace http://telecontrolgsm.blogspot.com/2009/11/enviar-un-sms-con-un-celular-y-un-pic.html    ahy encontraras la imagen de los pines del sony t290 q es lo mismo q el t226  ahora tambien fijate en el circuito q tas implementando el voltaje para tx al cel sea 3.3v ya q con 5v el cel no furuncia osea ponle un zener y normalazo,,, ok xixo.. hablamos..
> 
> 
> Mas bien xixos haber si apoyan... necesito leer los sms del cel a traves del pic para asi poder controlar unos  reles y q me enciendan las luces de mi casa.... lo q he logrado hacer  hasta ahora es realizar llamadas y envios de sms pero lectura se me hace  complicado!!! gracias de antemano ...pd. haber si ahy un ejemplito en ASM..


Hola a todos

lei las 19 hojas de este bloc y esta muy interesante. Yo quiero enviar un sms de un pic 16f877a a un celular motorola V3 q tiene un mini usb mi programa es bien parecido a uno q vi en pag anteriores y mi conexion entre mi pic y mi cel es:
pic - max232 - EVAL232R - adaptador db9 a usb adaptador usb a mini usb - celular 

eval232r es un convertidor usb a serial232
pero no envia ningun mensaje.
pero cuando conecto mi pic - max232 -eval232R - pc si recibo los comandos AT q envio


alguien a trabajado con EVAL232R ?
donde podria estar mi error?
hay otra forma de conectar mi cel (q tiene puerto mini usb) a mi pic 

estuve pensanso cambiar el eval232R por un cable usb-rs232:
DS_US232R-10(R-100)
http://www.ftdichip.com/Documents/DataSheets/Modules/DS_US232R-10_R-100.pdf

creen q funcione si lo compro ya que sabemos q el celular trabaja a 3.7 v (motolora V3)


muchas gracias de antemano
Saludos
Paulo


----------



## sdel (Ago 6, 2010)

hola, que buen tema.
los que lograron mandar mensajes podrian subir sus esquemas para ver?

quiero conectar un pic al celular y mandar un sms, estoy medio confuso.
el celular que pienso usar es nokia 6020 y el pic es 16f84 o 628 pero lo del pic no importa.

como hago conecto el pic al celular por medio de interface serie? y empiezo a enviar los comandos?


----------



## Moyano Jonathan (Ago 6, 2010)

@sdel nokia es mediante FBUS y es más complejo...:S te recomiendo busques algun cel de sony ericcson que tienen comandos AT


----------



## txarlie2010 (Ago 9, 2010)

Que utilizan protocolo SERIAL, para complementar el comentario de MOYANO


----------



## sdel (Ago 10, 2010)

gracias me voy a conseguir un sony ericson.
pregunto:

si conecto el pic con el celular, tendria que poner alguna interface entremedio?

por ejemplo cuando yo comunico el pic con la pc por el puerto serie uso un integrado que me convierte la logica del serie a la del pic, es decir adapta las tensiones de comunicacion, se entiende?
aca tendria que hacer lo mismo? 

saludos

si alguien puede subir esquema agradecidoo


----------



## Moyano Jonathan (Ago 10, 2010)

no no tendrías que adaptar nada yo lo conecté directamente 
saludos !


----------



## txarlie2010 (Ago 11, 2010)

Los pines Tx y Rx del telefono Celular trabajan con voltajes TTL los cuales son compatibles con las entradas del micro TX y RX.


----------



## sdel (Ago 11, 2010)

Gracias txarlie2010 y Moyano Jonathan, cuando tenga todo montado y funcionando les aviso y cualquier problemilla les consulto.

saludos


----------



## Moyano Jonathan (Ago 11, 2010)

Yo me quede hace mucho tiempo sin celular para hacer pruebas pero en cuanto tenga algo de diner me compro algo para hacer pruebas.
Yo hasta ahora lo unico que pude hacer es mandar SMS, llamar a otro telefono....pero me queda la recepción de SMS que es lo que más me interesa.


----------



## sdel (Ago 11, 2010)

yo voy a tratar de conseguirme un sony ericson para hacer este proyecto, igual para mi con mandar sms ya es suficiente, vos moyano que microcontrolador usaste?


----------



## Moyano Jonathan (Ago 11, 2010)

Use un PIC16F877A aunque creo que no lo fabrican más ...ahora podrías usar el PIC16887A , pero todo depende del uso ...quizas con un PIC16F628A andás bien.


----------



## btruden (Ago 13, 2010)

Hola gente, les comento q actualmente estoy trabajando en una empresa q se dedica al desarrollo de dispositivos de seguridad contra piratas del asfalto y utilizamos dispositivos que se comunican vía GPRS a la central de monitoreo de la empresa. 

Estos dias estuve trabajando sobre un modem telit modelo GM862, ya logré hacer transmisión de SMS's y ahora estaba intentando lograr comunicar al dispositivo via GPRS a la base de monitoreo de la empresa que por supuesto tiene asignada una IP fija.

Pude conectar al modem a la central de monitoreo (o por lo menos logre la comunicacion a esa IP fija) pero no puedo visualizar los datos de prueba q le mando desde el modem por un tema de complejidad de encriptacion de los datos a mandar.

Quería saber si alguien conoce alguna aplicacion q me sirva para simular un destino de IP con su respectivo puerto y ver si el modem envia la informacion que yo quiero.

Gracias y sepan entender lo extenso del texto.


----------



## Chico3001 (Ago 14, 2010)

tema combinacinonalizado...


----------



## yonacho (Ago 16, 2010)

una pregunta a moyano que pudo realizar el proyecto:

ya que conectaste el pic directamente al celular, si el celular funciona con 3 V y el pic con 5V. esta bien que la comunicacion serie desde el pic al celular sea directamente? o tendria que agregar los transistores como en un esquema anterior posteado?

otra preg:
con un oscilador de 4Mhz no te funciono?
tubiste que usar uno de 20Mhz? si es asi tendria que hacer algunas rutinas nuevas de retardo para la comunicacion, vos esto lo hiciste?

un abrazo colegas.


----------



## Moyano Jonathan (Ago 16, 2010)

El proyecto funcionó bien con 20mhz....y la verdad no me acuerdo de ya el hecho de por que fué asi....
Los pic aceptan como nivel lógico 1 3.3v por eso me toma el voltaje. El uso de transistores es para el adaptador para RS232 para adaptar los niveles lógicos.

Saludos !


----------



## yonacho (Ago 17, 2010)

al pic lo alimentaste con una pila de celular? o sea con 3V y no con 5 verdad?

saludos


----------



## mcchampy (Ago 17, 2010)

Hola buen día, disculpen tengo planeado hacer un vehiculo explorador para derrumbes por ejemplo y bueno me gustaria saber si alguien me podría ayudar u orientar un poquito en cuanto a la camara que podría utilizar y el control del mismo vehiculo; ¿Que camara me recomiendan?, ¿Que emisor receptor podria utilizar para la informacion de video y rc del vehiculo?; bueno les agradesco mucho y agradeceré infinitamente su apoyo.


----------



## lubeck (Ago 17, 2010)

Algo como esto te podria servir....

http://www.hard-h2o.com/vertema/68954.html


----------



## Moyano Jonathan (Ago 17, 2010)

> al pic lo alimentaste con una pila de celular? o sea con 3V y no con 5 verdad?
> 
> saludos


Con fuente de alimentación de 5v PIC + CEL


----------



## mcchampy (Ago 17, 2010)

Muchas grÁcias lubeck esa camarita me dio mas idea  gracias


----------



## yonacho (Ago 24, 2010)

holaa
aver aver...
si el celular maneja 3,6V yo no puedo mandarle 5V del pic.

entonces tendria que alimentar al pic con 3,6V.
a la salida de un 7805 si yo pongo un zener para producir una caida de tension que me bajara de los 5V a 3,6 o 3,7 estaria bien?
o se haria de otra forma?

otra preg:

los protocolos de comunicacion serie para el celular es el rs232 no? o depende de cada celular?

por ejemplo como se si el celular maneja la comunicacion a 9600 o 9200 baudios? y si maneja dos bit de parada, etc, etc?
por que dependiendo de esto necesito saber los tiempos de cada semiperiodo.

otra pregunta:

la bateria del celular tiene tres terminales, una es + que entrega 3,8V y otra negativa de 0V, y la del medio me entrega 3,9V para que es la del medio?

gracias espero no ser hincha jeje.
saludos


----------



## pumaecuatoriano (Ago 24, 2010)

hola a todos, estuve leyendo este foro ya que estaba buscando ayuda pero voy a explicar lo que he hecho hasta ahora. Mi proyecto es pic-nokia3220 y funciona casi perfecto. con respecto a las conexiones el Txpic va al Rx cel pero el voltaje se lo baja con un zenner a 3.3 pero el Txcel lo paso por un max 2 veces (ya que lo tenia a la mano y creo que es mas facil) para elevarlo de 3.3 a 12 y luego lo bajo de 12 a 5v y eso entra al Rx del pic, como les habia comentado la comunicacion me funciona casi perfecto. Mi problema es que al enviar un comando at al cel desde el pic, el cel me responde lo mismo que le envie, cuando se supone que deberia enviar un "ok". en el hyperterm todo es como se supone uqe debe ser, me refiero al envio y recepcion de mensajes.


----------



## txarlie2010 (Ago 24, 2010)

yonacho dijo:


> holaa
> aver aver...
> si el celular maneja 3,6V yo no puedo mandarle 5V del pic.
> 
> ...



Tienes que tener paciencia compañero.... hay que leer

Lee todo el foro y encontraras las repuestas. Tambien encontraras el circuito  de acople para el pic-telefono (3.6V a 5V).


----------



## yonacho (Ago 25, 2010)

txarlie2010 dijo:


> Tienes que tener paciencia compañero.... hay que leer
> 
> Lee todo el foro y encontraras las repuestas. Tambien encontraras el circuito  de acople para el pic-telefono (3.6V a 5V).



hola, te referis a un circuito con unos transistores? que esta en unas paginas anteriores?

pumaecuatoriano podrias subir tu esquema de conexion? me ayudaria bastante ver un esquema que este asegurado que ande.

el circuito que estaba posteado alguien lo habia puesto en duda por eso no lo use.

si alimento el pic con una bateria de celular habra problema?


----------



## lubeck (Ago 25, 2010)

> si alimento el pic con una bateria de celular habra problema?



mmm... mira veo que estas medio desubicado.... yo no he echo este proyecto pero te podria aconsejar que veas el datasheet del micro verifica que los niveles sean ttl y busca los parametros de estos niveles...

segun recuerdo podria funcionar con 3.5v pero esta muy al limite y podria presentar inestabilidad... para incremetar el voltaje podrias utilizar transistores o el max232(este lo que hace es eso ajustar las tensiones)

espero que te sirva....


----------



## Moyano Jonathan (Ago 25, 2010)

A todos los que preguntan si el voltaje es un problema....la respuesta en *NO.....* el PIC soporta los voltajes de 3.6v del teléfono como asi tambien el tel soporta un máximo de 5.2v en los terminales TX Y RX por lo que no van a tener problemas...en caso de que lo prueben y no les ande lo que tienen que hacer es buscar el integrado conversor de niveles *74HC125* para adaptar los niveles ttl del PIC y los del telefono.


----------



## txarlie2010 (Ago 26, 2010)

lubeck dijo:


> segun recuerdo podria funcionar con 3.5v pero esta muy al limite y podria presentar inestabilidad... para incremetar el voltaje podrias utilizar transistores o el max232(este lo que hace es eso ajustar las tensiones)
> 
> espero que te sirva....



Efectivamente, mejor te aseguras con los transistores el acople de los voltajes (3,6V y 5V) mi aplicacion esta hecha con el circuito que recomiendan


----------



## yonacho (Ago 27, 2010)

gracias txarlie2010, entonces probare con el circuito posteado.


----------



## sdel (Sep 1, 2010)

hola, como tan?
bueno como todavia no pude conseguir el celular me puse hacer unas rutinas y probar en el simulador aver si manda los comandos al terminal. la duda que tengo es:
por ejemplo cuando yo le mando con el pic la cadena "at" al celular, inmediatamente deberia empezar a leer el ok?

otra duda q tengo: la comunicacion serie de los celulares siempre es a 9600 baudios?
yo voy a comprar el sony ericsson t290 o 237.

este es mi codigo para mandarle algunos comandos al celular, que opinan?


LIST		P=16F84A
	INCLUDE		<P16F84A.INC>
	__CONFIG	_CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

	CBLOCK  0x0C
	ENDC


;********************************************************************

	ORG	0
Inicio
	call	      RS232_Inicializa		; comunicación con el puerto
Principal						; serie RS232.
	movlw	PRUEBA				; Carga la primera posición del mensaje.
	call	RS232_Mensaje		;envia comando
	call	Retardo_5s
	goto	Principal
;
; "Mensajes" ----------------------------------------------------------------------------
;
Mensajes
	addwf	PCL,F
PRUEBA
	DT "AT",0x00			;prueba de comandos at
SetTXT
	DT "at+cmgf=1",0x00		;modo texto
EnviaSMS
	DT "at+cmgs=156063440",d'13',d'10',"soy el pic",0x00		;envia sms
LeeSMS
	DT "at+cmgl= rec unread ",0X00			;lee sms

	INCLUDE  <D:\Pic16f84A\librerias\RS232DATOS.INC>
	INCLUDE  <D:\Pic16f84A\librerias\RS232MENAJES.INC>
	INCLUDE  <D:\Pic16f84A\librerias\RETARDOS.INC>
	END

en el ejemplo, en el programa principal mando la cadena at al celular y despues hago un retardo de 5 seg, por ejemplo en vez del retardo deberia leer ok, no?

gracias y saludos


----------



## sdel (Sep 3, 2010)

podria usar el 16f628 que tiene usart? que mejoraria en ese caso?


----------



## ericklarva (Sep 3, 2010)

De antemano el hecho de usar un PIC con "hardware" USART es mucho más seguro, confiable y fácil en comparación con la "emulación" por software de la comunicación USART.
Vamos, es mejor trabajar con un micro que tenga implementado un hardware de comunicaciones que trabajar con uno "emulado".
Saludos


----------



## electrik77 (Sep 5, 2010)

josechura dijo:


> holas Sigmud! yo hace 2 meses atras utilize el sony Ericson t226 y me funciono normal!! lo utilize pa hacer un proyecto de alarma pa una casa.. con el t226 normal podia realizar llamadas y envio de sms tanto modo texto o pdu ya sea controlado por el hypeterminal o por el pic16f84a... tu problema talves sea pura conexion!! osea fuente o los pines de tx-rx..sigue adelante...SI SE PUEDE!!


 
Hola josechura, me podés comentar como hiciste para mandar sms con comandos AT en modo texto en el sony erricson T226, por lo que tenía entendido solo soporta modo PDU, cuando le mando el comando AT+CMGF=? me responde +CMGF: (0) y no (0,1) o cuando le mando AT+CMGF=1 me responde error. 
De antemano gracias y salu2


----------



## yonacho (Sep 10, 2010)

consegui el sony ericsson t290, el coneccionado de los pines es igual al t236?


----------



## Moyano Jonathan (Sep 11, 2010)

Si es el mismo saludos


----------



## txarlie2010 (Sep 12, 2010)

Creo que si, no estoy seguro, pero chequea esta pagina

http://pinouts.ru/pin_CellularPhones-P-W.shtml


----------



## yonacho (Sep 14, 2010)

he graciasss,  ahora me falta conseguir algun conector para el puerto creo q ya no se debe conseguir mas ese cable, con que lo podria reemplazar?
saludo


----------



## txarlie2010 (Sep 14, 2010)

Lo del conector es lo que aveces me falla, yo tomé cable original y lo desarme solo para quitar el conector, coloque un correa a cual llevo al protoboard, un dia de estos le soldare directamente la correa al los pines del telefono para asi eliminar ese punto de falla que es el conector (como les digo, para mi) 

Uff, reemplazo...no creo que tenga

Te muestro el tipo de cable en las fotografias


----------



## Moyano Jonathan (Sep 14, 2010)

En mercado libre lo venden ese conector por $50 mas o menos


----------



## zoomg80 (Sep 17, 2010)

kapotik dijo:


> Buenas, en primer lugar quiero agradecerles a todos ya que e seguido desde el principio todo el hilo y gracias a sus comentarios e logrado realizar llamadas y enviar msm con mi pic.
> Y tambien quiero activar un relay enviandole un mensaje y todo iba bien esperando que mostraran como hacerlo y lo hicieron pero.....................................lamentablemente no se programar en C solo en asm y me quede re colgado.
> 
> Por favor alguien me podria explicar como lograrlo pero en asembler ?
> desde ya muchas gracias


 
Hola KapotiK

Hace un par de años realice una aplicacion con un Modem Enfora en lenguaje Ensamblador el cual me manda mensajes cuando hay evento en mi circuito con el PIC16F873A, en esos momentos requeria de la intervencion de una aplicacion Visual Basic que se comunicaba con el circuito por el COM1 y con el Modem Por el COM2. En el desarrollo del proyecto me percate que era muy tedioso comunicame directamente al modem pero tu ya lo hiciste en tu aplicacion.

Si deseas leer un caracter debes dirigirte a Org 4, Bueno el programa te envia si habilitas las interrucpiones. Te dejo un fragmento del codigo en el vector org 4. 
Finalmente te recomiendo C para enviar mensajes y llamar, si vas a leer mensajes de entrada el programa en C se regresa a la raiz del ensamblador, hay que leer uno por uno de los caracteres. En tus programas en C puedes incrustar fragmentos de ensamblador.

Saludos desde Mexico

 ORG 4
 BTFSS PIR1,RCIF
 GOTO VOLVER
 BCF PIR1,RCIF
 MOVF RCREG,W
 MOVWF LECTURA
 CLRF RCREG
 MOVLW 0X30
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL VERIFICANDO
 MOVLW 0X49
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL LUZSALA
 MOVLW 0X4A
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL LUZCOCINA               
 MOVLW 0X4B
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL LUZRECAMARA        
 MOVLW 0X4C
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL LUZTV
 MOVLW 0X4D
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL OSCSALA
 MOVLW 0X4E
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL OSCCOCINA
 MOVLW 0X4F
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL OSCRECAMARA
 MOVLW 0X50
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL OSCTV
 MOVLW 0X51
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL ALARMAUP
 MOVLW 0X52
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL ALARMAOFF
 MOVLW 0X53
 XORWF LECTURA,W
 BTFSC STATUS,Z
 CALL TODALUZ
 CLRF W
VOLVER RETFIE


----------



## kapotik (Sep 22, 2010)

Hola zoomg80, gracias por el fragmento del codigo, te cuento que despues de un largo tiempo invertido en el codigo logre enviar, recibir y activar reles en asm, pero todo lo hacia con un telefono sonyericson t290 y el circuito de los transistores para niveles TTL, y funcionaba todo mas que recontra rebien!!!!.
Bueno despues de probarlo y recontra probarlo y funcionar bien, dije bueno, llego la hora de comprar un modem especifico para la aplicacion, compre el sim 340z con fuente y salida rs232 incluida, lo probe por hiperterminal y anda joya, ahora cuando le conecto el tx y rx del pic el programa se cuelga quedandose en una fraccion del codigo, aver voy a ser mas especifico, el codigo del pic consiste en esperar a que reciba la clave por el puerto serial o a que se pulse un pulsador entonses este envia la palabra activado al numero programado y luego espera a que suceda lo mismo para enviar la palabra desactivado, osea es una alarma se entiende?.Bueno, por hiperterminal y con el t290 anda bien, pero cuando le pongo el modem se cuenga el pic y me resulta rarisimo la manera ya que cada ves que pulsas o mandas la clave por msn siempre envia ACTIVADO y se vuelve el codigo al principio, no se no logro entender que pasa.Ya cambie el pic, ya cambie el modem y probe distintos circuitos TTL y sigo en la nebulosa.

adjunto el diagrama del modem con la fuente y adaptador TTL, no es mio viene asi todo incluido.
y el codigo asm.

Escucho cualquier sugerencia ya no se que mas hacer me tiene desconsertado

Gracias


----------



## josechura (Sep 22, 2010)

Holas xixo!! haber viendo tu cod. asm. noto a primera vista la frecuencia de trabajo.. osea en la parte de **BAUD RATE** esta puesto el valor de 0x80... es una frecuencia q no esta en el datashet talves si lo cambiaras a 0x19 pa q tx a 9600 baudios!! esta frecuencia si es reconocida por los celulares en comun!!....
Ahora otra super consulta este cod lo haz exo tu??? necesito ayuda tmb!!!


----------



## kapotik (Sep 23, 2010)

Hola josechura, si tenes razon es como decis vos lo del baud rate, lo que pasa es que tantas cosas e probado que lo ultimo fue cambiar la frecuencia del oscilador de 4Mhz a 20Mhz y para 20Mhz a 9600bps el baud rate se configura 0x80, a 4Mhz es 0x19.
Y si el codigo lo e hecho yo, en que te puedo ayudar?


----------



## josechura (Sep 23, 2010)

Bien xixo..... sabes hace ya 1 mes taba con esto de llamar y enviar sms con un SE t226 y me funciona bien!!! con el pic 16f84a!! ahora lo q sucede es q toy haciendo mi proyecto de tesis y lo q tengo en mente es presentar este modulo pero a gran escala aparte q envie y llame quiero q recepcione una llamada perdida o un sms pa asi activar un periferico ya sea una SIRENA o encender el modulo!! el fin es realizar una pequeña central de seguridad domiciliaria!!...
Entons lo q hize pa empezar este mi proyecto fue cambiar de pic.. a uno q tenga integrado el USART y es asi q opte por el 16f628!!! y entons toy probando con la tx y rx de este pic... 
Mis dudas van a lo sgt...
 1.. se puede simplificar todas esas instrucciones pa tx por ejemplo el dato de ATD"numero";   a usar un directivas DT??? como ser 

Mensajes                        
    addwf    PCL,F                
LLAMAR1
    DT "ATD952716274;"
    DT ENTER,CAMBIO_LINEA,0x00

pd.. ami esto me furuncia bien con el 16f84a pero a la hora q adapto el mismo cod al 16f628 no me tx lo mismo..

2..Mi otra duda es q a la hora q yo recibo un sms al SE y quiero leerlo mediante el pic a 9600 baud es capaz de leer bit por bit para asi comparar con algun dato guardado dentro del pic,, OSEA es lo mismo q esta en tu cod. con la llamada perdida...lo he simulado en proteus y furuncia  en la VIDA REAL no lo he probado y justo ahorita me dispongo a sacarme de dudas!!.... Pero tu q has tenido mas experiencia con la RX mediante este pic.. lo has logrado????... GRACIAS DE ANTEMANO!!!


----------



## kapotik (Sep 23, 2010)

josechura dijo:


> 1.. se puede simplificar todas esas instrucciones pa tx por ejemplo el dato de ATD"numero";   a usar un directivas DT???



Yo no lo uso ya que es muy facil cometer errores y muy dificil darse cuenta donde esta, pero deberia de andarte.



josechura dijo:


> 2..Mi otra duda es q a la hora q yo recibo un sms al SE y quiero leerlo  mediante el pic a 9600 baud es capaz de leer bit por bit para asi  comparar con algun dato guardado dentro del pic,, OSEA es lo mismo q  esta en tu cod. con la llamada perdida...lo he simulado en proteus y  furuncia  en la VIDA REAL no lo he probado y justo ahorita me dispongo a  sacarme de dudas!!.... Pero tu q has tenido mas experiencia con la RX  mediante este pic.. lo has logrado????... GRACIAS DE ANTEMANO!!!



No me queda claro tu pregunta, interpreto que me preguntas si e podido activar un rele enviandole un sms, si es eso si y lo hago de la misma manera que con la llamada perdida, osea como se ve en mi codigo yo no guardo ningun dato en el pic, si no que analizo el dato entrante en tiempo real, a medida que entra el dato lo verifica con la clave que ya esta predeterminada.
espero haber sacado tus dudas, y si no fue asi pues aqui estoy para lo que necesites.

saludos


----------



## josechura (Sep 23, 2010)

Excelente xixo!!! y muxas gracias!! me sacast de esa duda 2.. en tiempo real el cod lo analiza!! bien!! ahora tengo una duda .. porque pones en tu cod ... esta instruccion repetida 3 veces??

        movf      RCREG,W        ; Borra el buffer 
        movf      RCREG,W        ; para recibir
        movf      RCREG,W        ; el proximo caracter

no bastaria con solo hacerlo 1 vez?....


----------



## kapotik (Sep 23, 2010)

si en la teoria bastaria con hacerlo una ves pero en la practica no me funcionaba, y si anduvo con repetirlo 3 veces, por eso fue asi.


----------



## josechura (Sep 23, 2010)

buena voz xixo!!! haber ahora me toca ayudar!! jajaja taba analizando instruccion a instruccion!! y pueda ser q encontre el error!! aun no lo he simulado!! pero justo en la parte de:

ac   
              movlw    b'00000000'           ; desabilita de recepción Async
              movwf    RCSTA
*btfss    PORTB,6*        ; si esta activada este pin recibira un alto
              goto     activa                ; Nº chequeado activa
              goto     desactiva        ; Nº chequeado esta activada,la desactiva
              return

quiere decir si el bit 6 del portb es 1 manda a DESACTIVA!! caso contrario manda a ACTIVADO!!Siendo asi viendo todo tu cod.. no hay nadie quien ordene al bit 6 del portb a cambiar de estado cuando se activa o desactiva!!!!

Ahora la solucion seria ,, creo no  poner talves una instrucion mas en la parte de :

activa  
*bsf    PORTB,6*
    call    nada           ; nop
    call    sirena
    bsf    PORTB,5     ; activa testeo PORTB,
    bsf    PORTB,4        ; enciende led

HABER seguire analizando!! 

Saludosss​


----------



## kapotik (Sep 23, 2010)

lo que pasa que el testeo del bit6 depende del estado de portb5, osea que si esta activada pone un alto en portb5 y en el pcb hay un puente directo a portb6 entendes?.

recorda que el codigo con el telefono t290 me funciona perfecto, pero cuando le conecto el modem deja de funcionar, pero como dije antes escucho toda opinion

saludos


----------



## josechura (Sep 23, 2010)

Si xixo!!! tenes razon!! acabo de simular tu cod con proteus y funciona de mil maravillas activa y desactiva con llamada y tmb con el portb3,,, 
Saludos


----------



## kapotik (Sep 23, 2010)

la verdad que no logro entender cual es el problema, no se por que no anda con el modem, ya proble hasta poner optoacopladores entre TX y RX y nada, no se

acabo de probar este circuito que a otras personas si les funciona, y a mi no me anda, quisiera saber si alguien me puede pasar algun ejemplo de comunicacion serial con el pic 16f877a para ver si el problema es el 16f628a.

Gracias
Saludos


----------



## josechura (Sep 24, 2010)

Xixo help!! ... he compilado tu ASM y lo probe con el celular!! y no me llega a reconocer la palabra "Moren"... osea como si no lo leyera!! probe activandolo con teclado y eso si  normal envia el sms,,,osea no RX.. mi pregunta es tu con tu t290 lo probaste a 4MHZ??? yo lo toy probando con 4mhz previo cambio a 9600 baud osea 0X19 .. 
PD.. en la simulacion normal me lee y se activa los reles ... pero en la vida REAL nada de nada ...
Graciass de antemano!!! ayuda pa mi tesis!!


----------



## kapotik (Sep 24, 2010)

Hola, tambien tenes que cambiar _HS_OSC_  a _XT_OSC_, lo estas usando sin ninguna modificacion al codigo, digo lo estas probando tal cual esta ? le estas haciendo la llamada perdida?

o como?

saludos


----------



## josechura (Sep 24, 2010)

si tmb hize esa modificacion de _XT_OSC_ .... osea no se activa nada haciendo la LLAMADA PERDIDA a "Moren" ,,, pero si activo mediante teclado osea portb,3 normal funciona!!!
Q puede ser?? xq no me realiza la comparacion en tiempo real!!! tmb lo probe poniendo solo una ver el 
               movf      RCREG,W

q puede ser??? tu lo realizaste con 20mhz?' o con 4?? help!!


----------



## kapotik (Sep 24, 2010)

funciona tanto a 4Mhz como a 20Mhz, te recomiento lo uses a 4Mhz pero solo por que las temporizaciones esta calculadas para ese cristal.
Bien la pregunta del millon, jose, grabaste en el chip que usas con el pic el numero desde el cual llamas con el nombre Moren?. Por que si no el pic no sabe quien es el que le llama.
Para chequear si funciona la recepcion tenes que usar un max232 conectado a la pc y por hiperterminal y ver si recepciona el pic, como?, conectando en paralelo el rx del pic al rx del max.

No me dijiste que telefono usas, pero si es un sonyericson, te recomiendo uses la adaptacion a niveles ttl que te adjunto a continuacion. Que es la que me funciono a mi, fijate que tiene valores diferentes a los aqui propuestos, que si van bien por hiperterminal pero no para el pic, o por lo menos asi fue mi experiencia.
 El circuito no es mio, espero que el autor no se enoje, un abraso para Alvaro


----------



## josechura (Sep 24, 2010)

Haber xixo si grabe en la SIM del SE T226 el contacto con nombre Moren!!! y tmb lo toy testeando con el hypeterminal!!! en tiempo real!!! asi me sale!! 
   at+clip=1         
   OK  
   RING    
   +CLIP: "952976997",161,,,"Moren"                               
   RING

ahora antes de probarlo todo esto lo simule en proteus e introduje todo lo anterior y si funciona la RX y activa los leds!! pero en la vida real no hace caso!! 

Ahora lo q hare es adaptar el ckto q pusiste pa recepcionar!!del tal ALVARO.. pero dentro de su diagrama tengo una pregunta q valor tiene Q2-Q3??? o q modelo de transistor pusist??


----------



## kapotik (Sep 24, 2010)

perdon no me di cuenta, los dos son bc547

Bueno, vamos vamos!!! josechura, que estoy en linea y no me voy hasta que me digas que andubo

No me vas a decir ahora que no tenes 2 547?


----------



## josechura (Sep 24, 2010)

jajaja claro q si toy implementando el ckto y pa probarlo!! paciencia!!!

haber acabo de implementarlo al max232 y con el hypeterminal le envie la famosa llamada perdida!! pero sigue igual no ahy resultado solo veo q el led q puse en la rx del pic tilila!! osea si le esta llegando el sms pero es el pic el q no traduce!!! ahora voy a probarlo conectando al ckto q me pasast junto con el cel!! haber q resulta!!


----------



## kapotik (Sep 24, 2010)

Te recomiendo que uses el programa Movilon, a mi el hiperterminal no me iva muy bien
te adjunto como tenes que configurarlo y el programa.

el programa lo pueden bajar de la web del autor www.maicas.net y de paso vean el proyecto de pedro, van a aprender bastante sobre GSM.

con este programita podes simular el telefono, con el pic conectado directo al max232 y el movilon con el puerto abierto, si cuando encendes el pic despues de 10 seg ves AT+CLIP=1
 le envian Moren el led debe prenderse


----------



## josechura (Sep 24, 2010)

trsites!!! nada no me furuncia!! la unica solucion q me queda es implementarlo todo en protoboard,,, yaq yo lo toy probando en un entrenador q hice pa mi pic16f84a!! pueda ser q este alterando en algo la rx...  ahy te envio una imagen de mi implementacion actual ..... todo por hacerlo rapido!!!


----------



## kapotik (Sep 24, 2010)

antes que desarmes nada proba con el movilon y el telefono, para probar si te anda bien el circuito del max y el que te envie de los transsistores, luego si asi anda, proba el movilon con coneccion max232 directo a pic, y enviale luego de que te aparesca AT+CLIP=1 envia Moren y te va a responder entre otras cosas ACTIVADO asi descartas donde esta el problema.

Animo!!!!!  que ya estas muy cerca!!!!!


----------



## josechura (Sep 24, 2010)

pos nada xixo!!!! 
probe con tu soft!!
y el pic no me rx  voy a xequear los cambios de HZ q hice en tu prog!! y procedo a desarmarlo!!


----------



## kapotik (Sep 24, 2010)

......no esta el problema en el asm, dejalo asi _XT_OSC_ 0x19 y arma todo en el protoboard

para mi esta hay el problema algo le molesta al rx


----------



## josechura (Sep 24, 2010)

yauaaaaaa  sos el mas KAPO!!! el mas kaporongas!!! funcionaaaa xixo!!! como lo dijiste al final el problem era eso algo molestaba la rx dentro de mi modulo!!! lo probe solito el pic en mi proto y funciono!!  Claro q primero lo probe con el movilon!!! y funciono!!! luego lo probe con el pin de rx al pin del cel y nada luego lo adapte a tu ckt y ahy si FUNCIONO EN LA VIDA REAL!!! jajaa tmr toy alegre y ahora si con ganas de CENAR!!! 
Te debo mi titulo a ing.. esto de la rx a sido mi gran problema ya de hace 1 semana!!! te merece esto  y muxos mas..... xixo como poder recompensarte!!!!???? en tu imagen vi q tu NOD32 esta desactivado? o ya caduco??


----------



## kapotik (Sep 24, 2010)

josechura no sabes cuanto me alegra que te aya funcionado!!!

y te cuento algo, que la verdad, que es la primera ves que me meto en un foro y presto ayuda a alguien, ya que siempre e estado pero casi siempre detras del telon.
Y te vuelvo a decir que realmente me alegra que despues de estar lidiando con este codigo bastante tiempo, le haya servido a alguien mas!!!
 Y tranquilo, que ahora tengo tu direccion y en cualquier momento te jodo por alguna consulta sobre el mundillo de los pic.

Y....bueno hasta que no lleguemos a esto que sale en la imagen no paramos hee?

Saludos


----------



## josechura (Sep 24, 2010)

jajaja buena la imagen!!! y de exo p de exo!! toy a tu servicios!! jjaaa y al igual q tu tmb estoy detras del telon!!! sino fijate en mis mensajes de foro toy trist jajaaa ok


----------



## josechura (Sep 25, 2010)

haber xixo esto de la GSM CON PIC no tiene cuando acabar!! justo taba viendo alguna manera de interar con el celular en tiempo real!! y vaya q me quede sorprendido!! con lo q se puede hacer con el famoso integrado cm 8870 decodificar de tonos DTMF sino xequen esttos videos::










ahora toy con el gusanito de adaptar este circuito dentro de la central gsm q toy diseñando...y de alguna manera interactuar con el usuario!! 
gracias a los foristas por  su apoyo y en eespecial a KAPOTIK-- rx pix y recuerden No nos paran!!!


----------



## gcara (Sep 27, 2010)

Yo estuve realizando el proyecto de Maicas  ,la parte de envio de llamada de voz y sms lo hace perfecto, pero tengo problemas para enviar desde el celular SMS para activar una de sus salidas.
Sera un problema de interpretacion de los numeros ( utilizo 8 digitos en vez de 9)  o de adaptacion de nivel.
Utilizo como prueba un Sony Ericsson t290. Cuando llamo al pic-tel  se enciende el led como que reconoce pero no activa la salida, como que el pic no interpreta 
Si lo hacen con el programa de configuracion de Maicas llamado "Goofy" si  activa o desactiva la salida.
Cual sera el error?


----------



## kapotik (Sep 28, 2010)

gcara dijo:


> Yo estuve realizando el proyecto de Maicas  ,la parte de envio de llamada de voz y sms lo hace perfecto, pero tengo problemas para enviar desde el celular SMS para activar una de sus salidas.
> Sera un problema de interpretacion de los numeros ( utilizo 8 digitos en vez de 9)  o de adaptacion de nivel.
> Utilizo como prueba un Sony Ericsson t290. Cuando llamo al pic-tel  se enciende el led como que reconoce pero no activa la salida, como que el pic no interpreta
> Si lo hacen con el programa de configuracion de Maicas llamado "Goofy" si  activa o desactiva la salida.
> Cual sera el error?



Lo que pasa que al utilizar 8 digitos, el pic cuando lee el sms no coincide la posicion de los caracteres, por eso no te funciona.
Yo lo e probado con 9 digitos y funcionaba perfecto, tambien con un t290.
Espero haber saldado tus dudas, ya que e visto esta misma pregunta en muchos foros y a varios le ha sucedido lo mismo.

Suerte
Saludos


----------



## gcara (Sep 28, 2010)

Muchas gracias Kapotik,eso mismo me contesto Pedro Maicas cuando le consulte en su foro.
Ya que cuando se dispara la alarma hace un llamado de voz y envia un SMS pero con el valor 0.0.0.0 y no la palabra  ALARMA como decia Pedro Maicas.
El tema  es que estuve desensamblando el ASM de Maicas pero no encuentro en que parte hace el reconocimiento del envio SMS , clave de por medio  o llamado de voz para que el pic responda.
Serias tan amable de orientarme donde hay que tocar para modificar el codigo.
Muchas gracias.
Un saludo desde Bs.As.


----------



## kapotik (Sep 28, 2010)

si pones el codigo que as "desensamblado" le doy una mirada, porque  yo no lo tengo.


----------



## gcara (Sep 28, 2010)

Hola Kapotik, pasame un mail y te lo mando en privado.


----------



## kapotik (Sep 28, 2010)




----------



## kapotik (Sep 30, 2010)

Alguien sabe que comando "AT" hay que poner para que el modem o telefono no responda a los comandos enviados "OK" ?, simplemente no responda nada.


----------



## zoomg80 (Sep 30, 2010)

maunix dijo:


> 1. Inicias el Hyperterminal
> 
> 2. Eliges tu puerto de conexión , 9600 bps y control de flujo por hardware.
> 
> ...


 
Hola Maunix

Tengo un Modem Enfora 1218 con puerto RS232, ya lo conecte a la PC y todos los comandos que mencionas me responde correctamente, de he hecho ya revise su doc de comando AT y son mas de 200. Hasta aqui todo correcto.

Despues lo conecte a un PIC directamente al mismo Baudrate pero este no le causa ningunn efecto, todo esto lo realize con una interfaz del MAX232 y sus respectivos capacitores, pero no hay efecto, le envie AT+CMSS=1 y esperaba recibir en mi otro telefono algun resultado GSM. 

Alguna sujerencia 

Gracias Saludos



Nestor Nieto dijo:


> Disculpen la tardanza pero estuve probando el rx del circuito PIC-T237 (que les adjunto) y anduvo bien. Les comento que hice con el tema pic-sms, primero me asegure que anduviera todo bien desde el hiperterminal (9600,8,N,1)
> 
> AT <ENTER>
> OK
> ...


 
Hola Nestor

probe lo siguiente

at+cmgs="111"
> mailx@gmail.com (Hola uva)Prueba de mail Enfora
OK

OK

No me mostro la notificacion de envio solo OK, debo tener algun servicio en particular con Movistar.


----------



## kapotik (Oct 2, 2010)

kapotik dijo:


> Alguien sabe que comando "AT" hay que poner para que el modem o telefono no responda a los comandos enviados "OK" ?, simplemente no responda nada.



Me respondo a mi mismo, los comandos son:

7. Códigos de resultados

Cuando envía un comando al modem, este responde con un código de resultado: "CONNECT", "OK" o "ERROR".

    * ATV determina el tipo de código de resultado que aparecerá:
    * ATV0 respuesta numérica
    * ATV1 respuesta de palabras
    * ATQ1 inhibe los códigos de resultado, pone el modem en "estado silencioso"
    * ATQ0 habilita los códigos de resultado, desconecta el modo silencioso


----------



## motitaverde (Oct 19, 2010)

pues segun lo que yo encontre se puede conectar el k510a al pc por medio de rs232...

 Notes

    * Connect Rx to pin 10, Tx to pin 11, GND to pin 9.
    * +4V should be supplied to pins 8 and 12 (pins are shorted together).
    * The cable is used with phone without battery. 


for D750i, K310a, K310i, K310c, K320i, K510a, K510i, K510c, K610i, K610im, K618i, K750c, K750i, K758c, K790i, K790c, K790a, K800i, M600i, M608c, P990i, V630i, W710i, W710c, W712a, W850i, W950i, Z520a, Z520i, Z520c, Z525i, Z525a, Z530c, Z530i, Z550c, Z550i, Z550a, Z558i, Z558c, Z610i, Z710c, Z710i, W300i, W300c, W550c, W550i, W600c, W600i, W700c, W700i, W800c, W800i, W810c, W810i, W830i, W830c, W900c, W900i, W958c and some other new SE

Asi es como la encontre, segun entiendo se pueden conectar todos estos modelos con max232


----------



## sdel (Oct 28, 2010)

hola estoy probando conectar el pic con la pc para luego pasar a experimentar con un modulo gsm y no me funciona. estoy usando un max3232 y un 16f628, hice un programa en c en cual el pic tiene que recibir un comando y de acuerdo cual sea prende o no un led. el puerto en la pc anda por que cuando cortocircuito el tx y rx veo en el terminal lo que escribo, el problema es cuando conecto con el max 3232 que no recibe ni transmite nada, uso mikroc para el codigo y en la rutina de inicializacion solo le indico la velocidad en baudios pero no si usa 1 o dos bit de paro control de flujo etc, el programa simulado en proteus funciona bien pero en la realidad nada, cambio el max por transistores sera mejor?


----------



## kapotik (Oct 28, 2010)

proba poniendo el max232 y cortocicuitar rx y tx del max y mira por hiperterminal si anda, para asi ver si el problema es el max o el pic.
En cuanto a cambiar por transistores no me parece, ya que el max anda mas que bien, es al pedo esta hecho para eso.

Saludos


----------



## sdel (Oct 29, 2010)

hola kapotik gracias, la verdad que ni me anda el max, probe cortocircuitando el tx y rx como decis y no andubo, parece que es el max, de todas formas ya arme el adaptador con dos transistores y funciona mas que bien, el pic y el programa andan y los puedo comunicar con la pc por hiperterminal y con un programita que hice en visual basic y funciona joyita. saludos


----------



## JUANQUIS (Nov 2, 2010)

Hola muchachos, antes que nada felicitaciones a quienes ya han conseguido progresos con sus proyectos, y pues paso a molestar con una duda que tengo.

Estoy trabajando en un proyecto (Alarma Celular) que incluye PC, Pic y Nokia 3220, he logrado la comunicación serial (rs-232) entre el PC y PIC, entre PC y Nokia 3220, y entre PIC y Nokia 3220, todo muy bien porque la comunicación sucede como debería, para lo cual utilizo los siguientes programas:

1. Eltima Serial Port Monitor
2. MovilOn (Gracias a Pedro Maicas)
3. MobiMB Mobile Media Browser

He leído cierta información de varios blogs de toda la web acerca de proyectos parecidos, en los que utilizan comandos AT y se menciona que el Nokia 3220 acepta varios de estos comandos y responde muy bien, una vez que inicializo el módem del Nokia 3220 (mediante Eltima Serial Port Monitor) enviando tramas Fbus a 115200 bps, está listo para recibir comandos AT mediante hyperterminal o en mi caso el software MovilOn (a 9600 bps, 8 bits sin paridad), al momento de enviarle el comando: "ATD*001;" (*001 es el número de atención al cliente de Movistar Ecuador), la llamada se produce con éxito y el celular devuelve una respuesta ascii:

    ATD*001;     (Petición enviada)

    fÀÏç¦           (Respuesta enviada por el módem del Nokia 3220)
    fÀ

Luego utilizo el comando "AT+CHUP" para cortar la llamada de forma exitosa, de la siguiente manera:


    AT+CHUP      (Petición enviada)

    fÀÏç¦           (Respuesta enviada por el módem del Nokia 3220)
    fÀ

Lo que puedo concluír a simple vista es que se trata de la respuesta afirmativa a la petición realizada, es decir algo así como un OK. Pero la pregunta es ¿Porqué recibo la respuesta del celular de ese modo, y no recibo simplemente un OK?, o es que ¿está correcta la respuesta recibida?. ¿Acaso existe alguna forma de lograr la respuesta deseada?. Cabe mencionar que no responde a todos los comandos, excepto a estos dos, también he trabajado con hyperterminal pero no recibo ninguna repuesta, aún configurando el eco. Alguién podría ayudarme con esta cuestión que está demorando el desarrollo de mi proyecto, les agradecería que puedan darme una mano en algún detalle que esté dejando escapar.

Desde ya muchas gracias.


----------



## ericklarva (Nov 2, 2010)

Pues de antemano JUANQUIS sería muy bueno que reescribieras las respuestas que te devuelve el Celular en formato hexadecimal y no ASCII, honestamente no se entiende que estás recibiendo.
Saludos
PD: podría intuirse que la respuesta "fÀ" significa un "OK", puede ser problema de mal interpretación en tu programa.


----------



## JUANQUIS (Nov 2, 2010)

Pues gracias ericklarva, estaba por ponerlo en formato hexadecimal y se me pasó, pero aquí está:

ASCCI: fÀÏç¦fÀ

Hexa: 66 c3 80 c3 8f c3 a7 c2 a6 0d 0a 66 c3 80

Mira también voy a mencionar que las pruebas las he realizado con dos Nokia 3220 diferentes, y en los dos recibo la misma respuesta, pero he observado que en muchos proyectos con el mismo teléfono, el mismo envía una respuesta "OK", por eso mi duda de saber que de pronto estoy fallando en algún detalle.


----------



## ericklarva (Nov 2, 2010)

No estoy muy seguro de tu problema, pero dices que te acepta los comandos AT sin problemas?? el modo fbus que comentas al principio para que lo usas? Por último trata de usar un programa como el hyperterminal o cualquier otro que no sea el que usas actualmente solo para descartar que no sea éste el culpable.
Saludos
PD que conexionado estás implementando entre la PC y el cel?? un max232??


----------



## JUANQUIS (Nov 2, 2010)

Vamos por partes, las tramas fbus son para encender el módem del Nokia 3220 sin tener que utilizar el Nokia PC Suite que hace lo mismo, es decir, envía tramas para encender el módem y que este se quede en "Attention" de los comandos AT, esto lo hago con 3 tramas que logré capturar con ELtima Serial Port Monitor cuando estaba en actividad el software MobiMB que también comenté en mi primer mensaje.

Una vez encendido el módem, recién empiezo a enviar comandos AT mediante el software MovilOn, y es ahí cuando se presenta el problema, pero bueno termino de comentarte.

Hyperterminal si utilicé al inicio de las pruebas, seguí todas las recomendaciones de configuración, activé el eco para ver lo que yo escribía y enviaba porsupuesto, pero sólo conseguí comunicación con los dos comandos que te mencioné anteriormente, observando únicamente lo que yo tecleaba. En virtud de eso, opté por buscar otras opciones (software) con las que pudiera visualizar la respuesta del celular y entonces encontré los software que te mencioné, y con los que pude obtener mejores resultados porque al menos puedo ver los caractéres que puse en el mensaje.

Finalmente, como ya mencioné también, estoy utilizando la interfaz RS232.

Cualquier duda o sugerencia estoy presto a recibirla.

PD. La utilización de tramas fbus, se debe a que el proyecto se trata de una alarma GSM o celular o como se quiera denominar pero para automóviles, que es autónoma, y que en caso de que se produzca el apagado del teléfono por cualquier causa, el PIC debe ser capaz de volver a encender el equipo, preparándolo para recibir las órdenes mediante comandos AT nuevamente. Así mismo el PIC debe verificar y ordenar el "Cargado" de la batería del teléfono. Tratando de que el usuario tenga el menor contacto con el equipo.

Espero sugerencias.

Nuevamente gracias.


----------



## kapotik (Nov 2, 2010)

Hola juan te comento que yo tube el mismo problema que vos, pero con un modem sim340c, y lo solucione con el siguiente comando,  ATV determina el tipo de código de resultado que aparecerá:
    * ATV0 respuesta numérica
    * ATV1 respuesta de palabras
    * ATQ1 inhibe los códigos de resultado, pone el modem en "estado silencioso"
    * ATQ0 habilita los códigos de resultado, desconecta el modo silencioso

verifica que tu telefono nokia acepte este comando, sino deveria de tener algun equivalente a este,
si acepta ATV la secuencia para activar que responda con palabras o letras seria:

 ATQ0 habilita los códigos de resultado, desconecta el modo silencioso
 ATV1  habilita respuesta de palabras

espero te aya podido ayudar

Saludos


----------



## ericklarva (Nov 3, 2010)

El detalle por el cual según yo descarté que el problema fuera por las respuestas numéricas es que hasta donde recuerdo las respuestas serían 0,1,2,3,4...al menos son las que yo sé.
Pero si igual se puede probar con tu comando Kapotik el ATV1, sino me equivoco es un standar y el Cel debería reconocerlo sin problemas...
Aún sigo pensando un poco el detalle del fbus, no comprendo para que usarlo al inicio...si ya lo implementas porque no simplemente sigues usándolo??
Es realmente necesario poner al Cel en modem a través del fbus??
Saludos


----------



## JUANQUIS (Nov 3, 2010)

Saludos kapotik y ericklarva.

A kapotik, gracias por ese detalle, la verdad no lo conocía o seguramente no le preste atención a este comando en la Lista de comandos de Nokia, lo probaré mas tarde y espero que solucione este problemita.

A ericklarva, lo de las tramas fbus, sencillamente forman parte del programa del PIC porque como sabras cuando el teléfono se apaga por "a" o "b" razones, es necesario volver a inicializar el módem del Nokia, y ese va a ser siempre un problema que no está en nuestras manos, y al estar el equipo (alarma) instalado en en el vehiculo, resulta un poco contradictorio que sea el usuario quien esté al cuidado de su alarma para saber si esta o no al cuidado de su vehículo. En fin, mi propósito es el de realizar una alarma completamente autónoma.

Espero sus comentarios.

Desde luego que mi proyecto esta en proceso, así que cualquier comentario es bienvenido.

Es mejor prevenir que lamentar...


----------



## ericklarva (Nov 3, 2010)

Con el fbus muchos se complican la existencia porque no es muy simple de manejar, si lo quieres implementar en el PIC pues yo creo no es necesario seguir comunicándote por medio de comandos AT ya que el Cel admite como comunicación también al fbus.
Siento que estás complicando bastante tu proyecto con el fbus, sabes, te dejo un link para que tengas un panorama un tanto diferente al uso del Cel como intérprete GSM/GPRS:
http://cgi.ebay.com/SIMCOM-SIM900-G...097?pt=LH_DefaultDomain_0&hash=item4cf08144d1
Si lo que quieres es "dedicarte" o "manejar" alarmas por medios GSM el modem del link es una excelente opción, lo hace todo por ti, incluso puedes meterle micrófono y bocina para comunicación oral. Ahora que si solo lo haces por la escuela o por aprender pues a lo mejor te conviene otro Cel ;D .
Espero puedas darle una checadita al link y descargarte el manual para que veas todo lo que te ofrece este modem.
Saludos


----------



## JUANQUIS (Nov 3, 2010)

Gracias por la sugerencia ericklarva, la verdad ya había considerado lo del módem GSM, y creo que a fin de cuentas lo terminaré usando. Pero quiero saber que tanto puede rendir o que tal se comportará un celular durante un largo período de uso como Módem.

Estoy revisando el link y lo próximo que haré es verificar la disponibilidad de módems GSM en Ecuador.

Saludos y aprecio, JUANQUIS.


----------



## ericklarva (Nov 3, 2010)

Muchos se entusiasman con la idea de poder usar al cel sin necesidad del teclado o de una persona presente. Para conocimiento, experimentación y desafíos son una excelente opción...ahora que si lo que se desea es algo mucho más práctico créo en definitiva nada mejor que un modem externo. El problema del Cel es que no todas las compañias y/o modelos tienen disponible la función de comandos AT, además que la vida útil de algún modelo en particular es de apenas un año, y en teoría la siguiente generación puede cambiar hasta el conector de datos lo cual dificultaría el poder seguir usando un Cel para este tipo de proyectos. Claro que la facilidad de comprarte un Cel además del poder conectarlo sin hacerte una PCB no se compara con el modem donde a la fuerza debes hacerlo, pero una vez hecho ya la tienes libre...y creo si no me equivoco que estos modems se actualizan sin cambiar el footprint lo cual es cómodo si pretendemos actualizarnos.
Saludos
PD JUANQUIS, has tratado de usar los comandos AT sin antes "configurarlo" por el fbus??


----------



## JUANQUIS (Nov 4, 2010)

Probando sugerencias...


----------



## sdel (Nov 4, 2010)

ericklarva dijo:


> Muchos se entusiasman con la idea de poder usar al cel sin necesidad del teclado o de una persona presente. Para conocimiento, experimentación y desafíos son una excelente opción...ahora que si lo que se desea es algo mucho más práctico créo en definitiva nada mejor que un modem externo.



hola ericklarva, te pido un par de consejos:
estoy por encarar un proyecto, ya hice las pruebas con el pic u pc.
lo que quiro es que el pic reciba coordenadas de posicion desde un modulo gps y estas coordenadas las envie por mensaje de texto a un numero de celular. que modem o modulo me recomendas para el envio de mensajes, y el de gps?

pienso usar el pic 16f877a, la uart con que me conviene usar con el modulo gsm o el modulo gps? 

saludos


----------



## ericklarva (Nov 4, 2010)

Sdel, la verdad el SIM900 es muy bueno lo puedes buscar en ebay a un precio de $29USD...económico si lo comparas con otros módulos de $100USD o más. Para el GPS la verdad no puedo ayudarte mucho, honestamente no he profundizado en el, pero si te puedo decir que al menos necesitarias de 2 puertos COM para poder comunicarte a los dos dispositívos ya que la mayoría usa ésta interfaz. Otro detalle con el GPS es que mientras más precisión requieras más caro será el módulo.
Buscando por ahí mira lo que me encontré: http://www.sureelectronics.net/goods.php?id=99
Creo es justo lo que necesitas, yo he comprado ahí y sin problemas...solo debes tener una cuenta Paypal para hacer los pagos...checa el link.
Saludos


----------



## sdel (Nov 6, 2010)

gracias ericklarva yo tenia pensado usar el usart del pic con el modulo gsm y con el gps emularlo por software,
aca en argentina tengo disponible los modulos sim5218 para el gsm y para gps el et-332 el et-318. voy a investigar mas de cada uno aver cuales compro, ahora me pongo a revisar el link q me pasaste. saludos


----------



## sdel (Nov 9, 2010)

ericklarva: el modulo que te dije sale muy caro 260 dolares, se podra sacar la ubicacion(coordenadas) usando solo gprs?

estube mirando el enlace que me mandaste, seria interesante tener esa placa, y la verdad que el precio es muy bueno, lo q pasa es que estoy en buenos aires nose si lo enviaran hasta aca y cuanto me terminara saliendo. la placa no viene con el modulo no? 

saludos


----------



## ericklarva (Nov 9, 2010)

Hola sdel, el módulo de sure es un gps con bluetooth, hay otra versión que no trae el bluetooth solo el GPS. Las coordenadas por GPRS si se pueden, pero no estoy muy seguro de como exáctamente se hace, aunque la verdad es muy impreciso. Los de sure te envían a todo el mundo, por eso no hay problema solo que al estar en argentina el tiempo de envío será mucho mayor.
No te convenció el otro módulo que te puse, el de ebay?? cuesta $29USD más envío...que supongo a lo más serán $30USD...osea $60USD en total.
Saludos


----------



## sdel (Nov 11, 2010)

gracias eric, si el de ebay me convence, es mas me estoy por decidir por el sim900 que me dijiste, tengo que ver si se lo encargo a un amigo que ya compro en ebay, la verdad que los precios son buenos. voy a meterme bien en el tema gprs, como conectarse, calcular posicion, envio de datos, etc, te mando un abrazo


----------



## cheoman (Nov 11, 2010)

hola a todos despues de tanto buscar pelear y rebuscar encontre una aplicacion de control por dtmf con el cell claro que este no se conecta con un gsm pero para los que estamos comenzando es una ayuda bestial, esto lo utilizo para controlar funciones a distancia ustedes pueden darle la funcion que necesiten espero les sirva haa, una cosa yo arme y probe los dos circuitos y me funcionan de maravilla es comprobado si tienen dudas se contactan con el que fabrico el sistema que tambien esta en la página yo ayude con algunas modificaciones pequeñas ya que en mi pais no encontre todos los componentes.
aca esta el link Saludos desde ECUADOR.
http://atva.com.ar/dtmf_3dj/dtmf_index.htm


----------



## kapotik (Nov 14, 2010)

Hola cheoman, exelente aporte, justo estaba buscando algo asi.
Te ago una pregunta sobre su funcionamiento, como haces para que el celular te conteste solo?, o no es necesario que te conteste?

Gracias


----------



## cheoman (Nov 14, 2010)

yo tambien al principio me raje lel mate buscando un sistema que me contestara y encontre unos esquemas pero en ese lapsus brutus me acorde que todos los cell tienen contestacion automatica desde el 1100 hasta los mas aniñados solamente comprate un manos libres de tu cell corta la parte donde esta el auricular y conectalo a la entrada de audio de la placa que tiene 2 entradas para los 2 cables del auricular y conectalo al cell automaticamente el cell te reconoce que tienes un dispositivo, luego en el cell configuras en dispositivos la opcion de autocontestar y listo espero te sirva. Saludos desde Ecuador.


----------



## kapotik (Nov 14, 2010)

Gracias, por contestar tan rapido, ahora un par mas, hay manera de cambiar el pass y los comandos?, no es que sea rompepelotas, pero si tenes varios usuarios con estos equipos, ellos no van a querer que otros puedan entrar a su sistema y activarles algo, se entiende?

saludos


----------



## ericklarva (Nov 15, 2010)

Hola kapotik, se que no soy cheoman, pero quiero tratar de "ayudar". Este circuito es muy simple y muy bueno para cierto tipo de proyectos, su funcionamiento se basa en simplemente detectar una frecuencia y decodificarla a un número binario específico. Según el circuito el PIN DV te valida el momento en el cual existe una salida "verdadera", con esto tu puedes armar tu "protocolo" para recibir datos y procesarlos con tu microcontrolador, es un tanto más complejo pero más seguro para ti.
Es decir, el sistema así como está es más que suficiente para lo que quieres lo único que debes cambiar es el software. Puedes darte una idea de "protocolos" con el RS232, PDU, etc. Claro que no a ese nivel pero si para que te des una idea.
Por ejemplo, determinar de cuantos "bytes" será tu paquete, en los primeros bytes puedes incluir Inicio, dirección destino, "contraseña" o validación, datos, CRC, etc.,etc.,
Claro que de alguna forma deberás confirmar de recibido, pero eso ya es otra historia. jejej.
Saludos


----------



## josechura (Nov 15, 2010)

holas de nuevo a todo el foro necesito info...toy realizando un proyecto sobre esto de gsm!! pero para ello necesito un MODEM GSM!! hasta donde he probado todos mis avances a sido con celulares como ser los SE T226,290 motorola C261,SIEMENS c65,C55 y funcionan perfecto pero el detalle esta en q estos celulares estan descontinuados y aqui en mi pais ya no los venden!! entons quisiera saber que modelos de MODEM GSM me recomiendan(mas economicos) o donde los puedo comprar??? por supuestos q deben de soportar comandos AT y modo TEXTO gracias!!


----------



## kapotik (Nov 15, 2010)

Gracias eriklarva por tu comentario.

hola jose, mira yo uso el sim340z de simcom y anda mas que bien y es uno de los mas economicos, $100 dolares.
cualquier cosa que necesites al respecto ( info o donde comprarlo ) avisame


----------



## josechura (Nov 15, 2010)

HOLAS KAPO!! ese modem GSM el cual recomiendas viene con su placa? osea viene listo para conectar el rs232?? algo parecido a esto??  http://www.mikroe.com/eng/products/view/534/smartsim340z-board/   o solo es el cuadradito donde se inserta la sim card?? y donde lo puedo adquirir?? Muxas gracias!! Xixo!!


----------



## kapotik (Nov 15, 2010)

fijate http://www.caveo.com.ar/mdn-ttl.htm

otro http://www.cika.com/quotation/search.php?prod_id=10.02


----------



## josechura (Nov 15, 2010)

Muxas gracias KAPO por la pronta respuesta!!! y es justo lo q estoy buscando!!! ahora el detalle es comprarlo!! y el envio un tanto lejos ya q soy de PERU!! pero no creo q sea tan dificil! de adquirir..,
No habra otra marca aun mas economica? por esos lares?? De todas maneras Kapo muxisimas gracias!!!


----------



## Moyano Jonathan (Nov 15, 2010)

El producto MDM TTL es lo más económico que se consigue en mendoza....y sale U$S 135....además está probado y listo para funcionar solo conectas la targeta Sim de tu empresa de telefonia y sale andando..el problema es que el envio a perú te puede llegar a salir U$S50..


----------



## cheoman (Nov 16, 2010)

claro que se puede modificar la clave en el primer proyecto está el codigo fuente pero ojo solo para el primero, lo abres con el microcode studio y tienes la programacion de todo lo que está haciendo solo tienes que entenderlo un poquito de donde tienes que cambiar la clave y la codificacion que está realizando es un poquito demoroso no te voy a mentir pero yo no sabia ni siquiera como funciona la programacion pero con un poquito de logica y pasiencia lo pude conseguir modificando solo algunas partes espero te sirva para la codificacion del segundo proyecto debes escribirle al moderador de la pagina ellos con gusto te ayudaran. Saludos.


----------



## kapotik (Nov 16, 2010)

gracias cheoman!!


----------



## sdel (Nov 18, 2010)

hola alguien compro aca?

http://cgi.ebay.com/SIM340-SIM340Z-...423?pt=LH_DefaultDomain_0&hash=item1e5f8c59c7

cuanto puede salir el envio a argentina? me parece bien barato 25 dolares un sim340 que aca cuesta 300 pesos, no se si cobraran algun impuesto de aduana o algo por el estilo.

estoy frenado en mi proyecto por no tener los modulos, son carisimos


----------



## 1Roland1 (Ene 5, 2011)

traka dijo:


> EDITO:
> Me voy a responder a mi mismo, buscando y buscando vi que el RS232 del pic tiene un buffer de dos caracteres, por lo tanto, necesito del uso de interrupciones.
> El codigo de interrupciones que postee anteriormente, tengo codigo para que me muestre por pantalla lcd a traves de I2C el codigo leido, lo cual supongo crea un retardo muy grande, que era el problema(no le daba tiempo a recoger todos los caracteres).
> Solución: creo una variable char buffer[300]; y voy añadiendo al final lo que me llega al saltar la interrupción.


 
Hola Traca

Tengo ese problema que se te presento a ti y como tu pudiste solucionarlo te pido por favor que pongas la parte del codigo en donde realizas la recepcion y la comparacion de la cadena de caracteres que recibes.

Gracias de antemano saludos....

Muchachos solicito su ayuda es para una tesis de grado


----------



## 1Roland1 (Ene 8, 2011)

Me respondo yo mismo ya que en este foro no encontre ayuda y mejor en el foro de todopic me dieron auxilio. Este es el codigo que sirve para recibir en este caso la palabra "RING" que el cel tx al realizarle una llamada y con esto realizar alguna accion:

#use rs232(uart,baud=9600)
char comand[]="RING";   
char buffer[5]; // Buffer de Recepcion
int i=0,DatoRx=0;
#int_rda
void rda_isr(void){

 if(kbhit()){
 buffer[i++]=getc();
 }
 DatoRx=1;
}
void main()
{
 set_tris_a(0x00);
 enable_interrupts(Global); 
 enable_interrupts(INT_RDA);
 output_high(pin_A0);
 delay_ms(1000);
 output_low(pin_A0);

while(1){
 if(DatoRx==1){
 DatoRx=0;
 if(strcmp(buffer,comand)==0){
 output_high(pin_A0);
 delay_ms(500);
 output_low(pin_A0);
 i=0;
 }
 }
 }
} 

Esta es la base para recibir strings, logicamente abría que pulirla un poco mas para lograr presición.


----------



## Biotech (Ene 17, 2011)

Han intentado usar el módulo M32 de BenQ. Encontré un modem USB que lo usa y al destriparlo me encontré con que puedo desoldarle componentes para que trabaje con puerto serie. Lo que no me queda claro es si el PL2303 es un convertidor USB - serie TTL o USB -RS232. Pero bueno. Nada que con un datalogger (cuando lo pueda conseguir) no se solucione.


----------



## ambrizg (Ene 28, 2011)

eenrique dijo:


> Bueno aqui les dejo un pequeño video que realicé a partir de un proyecto de alarma GSM con un celular siemens a56i. Con la peculiaridad de hacerlo con unicamente la board del cel, es decir sin batería, sin display, sin vibrador y sin parlante. Se alimenta del circuito principal de dos microcontroladores 16f628a. De los cuales uno controla el display mientras que el otro el teclado y todo el procesamiento de los comandos AT dirigidos al móvil así como encargado de encender el siemens. Además de realizar llamada al número especificado, acepta las llamada entrante como el de encender y apagar un led mediante msj txt.  YouTube - Alarma GSM siemens



Hola EEnrique , solo quisiera saber como estas leyendo el mensaje que le llega al celular  con el pic, podrias envierme el codigo, gracias


----------



## 1Roland1 (Ene 28, 2011)

ambrizg dijo:


> hola eenrique , solo quisiera saber como estas leyendo el mensaje que le llega al celular con el pic, podrias envierme el codigo, gracias


 hola enrique

yo tambien quisiera saber como haces para recibir uns sms ya que lo he hecho de varias formas pero solo funcionan en el simulador.

Saludos


----------



## gzaloprgm (Ene 28, 2011)

1Roland1 dijo:


> hola enrique
> 
> yo tambien quisiera saber como haces para recibir uns sms ya que lo he hecho de varias formas pero solo funcionan en el simulador.
> 
> Saludos



Es bastante fácil:

Primero habilitás el modo texto para SMS, con "AT+CMGF=1" y \r\n

Después le decís al modem que los mensajes entrantes los redirija a la consola, con "AT+CNMI=,2" y \r\n

Cuando te llega un mensaje, el modem debería escribirlo en la consola de la siguiente forma:



> +CMT: “+541155554444,”10/9/22,14:12:34”
> MENSAJE



Tenés que avisarle al celular que te recibiste bien el mensaje, usando "AT+CNMA" y \r\n

Espero que les sirva

Un saludo,
Gonzalo


----------



## 215hector (Ene 28, 2011)

Hola, mira estoy tratando justamnete de hacer algo asi para uncliente (hago sofware y manejo bien vb6), tu me podria pasar lo que desarrollaste? O bien te lo compraria.
h215hector@hotmail.com
Gracias



yo use visual basic para programar el sistema de transmision con un Sony ericsson K310 conectado por USB..........es mas economico y tiene modem GSM Interno,115200 de velocidad.
intenta con ese......claro esta para realizacion del programa de transmision,pero para recepcion...un t290,un a56,a71,c55,c56,[/QUOTE]


----------



## 1Roland1 (Ene 28, 2011)

La duda es como filtrar el sms luego de leerlo con AT+CMGD=1 en CCS ya que solo nos interesaria el sms como tal y se recibe esto : 
+CMT: “+541155554444,”10/9/22,14:12:34”
MENSAJE
Entonces toca filtrar MENSAJE, ya lo he hecho y funciona perfecto en simulacion pero ya en la practica tiene fallas. Si alguien puede postear algo de codigo explicando esto se les agradece,


----------



## 215hector (Ene 29, 2011)

Hola. Te amplio lo que preciso a ver si es posibles

Se debe "unicamente" enviar via PC mensajes a un unico telefono  por ocasion. Pero como pueden llegar a ser dos o mas por minuto, y los telefonos de destino son los de una agenda de usuarios, y distinto para cada mensaje, se precisa del envio via PC, para armar el Texto del mensaje ( que proviene de un soft que lo deposita en una bd) y efectuar el envio.
h215hector@hotmail.com
Gracias


----------



## gzaloprgm (Ene 29, 2011)

1Roland1 dijo:


> La duda es como filtrar el sms luego de leerlo con AT+CMGD=1 en CCS ya que solo nos interesaria el sms como tal y se recibe esto :
> +CMT: “+541155554444,”10/9/22,14:12:34”
> MENSAJE
> Entonces toca filtrar MENSAJE, ya lo he hecho y funciona perfecto en simulacion pero ya en la practica tiene fallas. Si alguien puede postear algo de codigo explicando esto se les agradece,



Lo más sencillo sería desactivar el "Eco" del módulo y usar interrupciones para cada byte recibido desde el mismo, porque el mensaje puede llegar en cualquier momento.

Después, se puede saber que toda las cadenas enviadas por el modem empiezan con + y terminan con un \r\n, por lo que se puede hacer una máquina de estados que lea eso y lo parsee... 

Un saludo,
Gonzalo


----------



## Moyano Jonathan (Ene 29, 2011)

Les dejo un código fuente de un decodificador de SMS por comandos AT. Está escrito para AVR'S en GCC.

No tengo el proyecto completo solo logré rescatar el código de la red...es funcional según la página de donde lo saqué...


```
#include <avr/io.h>
#define F_CPU 8000000// Clock Speed
#include <util/delay.h>
#include <stdlib.h>
#include <avr/interrupt.h>

#define NL 12
#define n1 10
#define n3 6

#define BAUD 9600
#define MYUBRR F_CPU/16/BAUD-1

unsigned char PIN[]="at+cpin=1234";
unsigned char SCC[]="at+csca=+40722004000";
unsigned char MEM[]="at+cpms=mt,mt,mt";
unsigned char POLL[]="at+cmgl=0";
unsigned char DEL[]="at+cmgd=1";
unsigned char CR=0x0D;
unsigned char Pnumber[12+1];

unsigned char R[4+1];
unsigned char relay_positions = 0x00;

int length;
unsigned char msg[256];
unsigned char tmp;

unsigned char antet[n1+1]="0011000B91";
unsigned char mijloc[n3+1]="0000AA";

//USART part
void USART_Transmit(unsigned char data){
    while (!(UCSRA&(1<<UDRE)))// Wait for empty transmit buffer
        ;
    UDR = data; // Put data into buffer, sends the data 
}
void USART_Transmit_string(unsigned char *data, int l){
    int i;
    for(i=0;i<l;i++)
        USART_Transmit(data[i]);
}
void USART_Flush( void ){
    unsigned char dummy;
    while ( UCSRA & (1<<RXC) ) dummy = UDR;
}

//Init Part
void Init_USART(unsigned int ubrr){
    UBRRH = (unsigned char)(ubrr>>8); //set BaudRate
    UBRRL = (unsigned char)ubrr;
    UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); //enable Receiver and Transmitter
    UCSRC = (1<<URSEL)|(0<<USBS)|(3<<UCSZ0); //set frame format
}
void Init_Relays(){
    DDRC=0xFF;
    PORTC=relay_positions;
}
void Init_Phone(){
    USART_Transmit_string(PIN,12);
    USART_Transmit(CR);
    int j;
    for(j=0;j<100;j++)
        _delay_ms(100);
    USART_Transmit_string(MEM,16);
    USART_Transmit(CR);
    _delay_ms(1000);
    USART_Transmit_string(SCC,20);
    USART_Transmit(CR);
    _delay_ms(1000);
}
/*Rutina de descifrare a mesajelor SMS*/

void taiereantet(){
    for(int j=0;j<(length-82);j++)
        msg[j]=msg[j+82];
    length-=82;
}
void taierecapat(){
    msg[length-8]=0x00;
    length-=8;
}

void makehex(){
    unsigned char ch;
    int j=0;
    ch=msg[j];
    while(ch!=0){
        if((ch>='A')&&(ch<='F'))
            ch=ch-'A'+10;
        else if((ch>='a')&&(ch<='f'))
            ch=ch-'a'+10;
        else if((ch>='0')&&(ch<='9'))
            ch=ch-'0';
        msg[j]=ch;
        ch=msg[++j];
    }
}
void rearrange(){
    unsigned char tmp[2]={0,0};
    for(int j=0;j<=(length-1)/4;j++){
        tmp[0]=msg[2*j];
        tmp[1]=msg[(2*j)+1];
        msg[2*j]=msg[length-1-(2*j)-1];
        msg[(2*j)+1]=msg[length-1-(2*j)];
        msg[length-1-(2*j)-1]=tmp[0];
        msg[length-1-(2*j)]=tmp[1];
    }
}
void rearrange2(){
    unsigned char tmp;
    for(int j=0;j<=(length-1)/2;j++){
        tmp=msg[j];
        msg[j]=msg[length-1-j];
        msg[length-1-j]=tmp;
    }
}
void scriepe8biti(){
    unsigned char tmp;
    unsigned char c2[128];
    for(int j=(length-1);j>0;j=j-2){
        tmp=msg[j]|(msg[j-1]<<4);
        c2[j/2]=tmp;
    }
    for(int j=0;j<128;j++) 
        msg[j]=c2[j];
}
void shiftarefrate(){
    unsigned char c3[32];
    unsigned char a,b;
    int safetyspace=1+(length/7);
    for(int k=0;k<(length+safetyspace);k++)
        c3[k]=0;
    for(int k=0;k<length;k++){
        c3[k+safetyspace]=msg[k];
    }
    for(int z=(length+safetyspace-1);z>=0;z--){
        b=0;
        for(int j=z;j>=0;j--){
            a=c3[j];
            a=a>>7;
            c3[j]=c3[j]<<1;
            c3[j]=c3[j]+b;
            b=a;
        }
        c3[z]=c3[z]>>1;
    }
    length=length+safetyspace;
    for(int j=0;j<128;j++) 
        msg[j]=c3[j];
}
void descifrare_SMS(){
    rearrange();
    makehex();
    scriepe8biti();
    length/=2;
    shiftarefrate();
    rearrange2();
}
//Rutina de compunere a mesajelor SMS
/*void relaypos(){
    if((relay_positions|0b00000001))
        R[0]=1;
    if((relay_positions|0b00000100)==0b00000100)
        R[1]=1;
    if((relay_positions|0b00010000)==0b00010000)
        R[2]=1;
    if((relay_positions|0b01000000)==0b01000000)
        R[3]=1;
    R[4]=0x00;
}*/
int main(void){
    Init_USART(MYUBRR);
    Init_Relays();
    Init_Phone();
    USART_Flush();
    sei();
    while(1){
        length=0;
        USART_Transmit_string(POLL,9);
        USART_Transmit(CR);
        _delay_ms(3000);
        if(length>=13){
            if(msg[12]==0x2B){
                int j;
                for(j=0;j<12;j++)
                    Pnumber[j]=msg[j+50];
                Pnumber[12]=0x00;
                taiereantet();
                taierecapat();
                descifrare_SMS();
                if((msg[0]=='R')||(msg[0]=='r')){
                    /*if(msg[2]=='?'){
                        relaypos();
                        compose_Relaypos_msg();
                        send_SMS();
                    }*/
                    if((msg[2]=='0')||(msg[2]=='1')){
                        relay_positions=0;
                        if(msg[2]=='0')
                            relay_positions+=2;
                        if(msg[2]=='1')
                            relay_positions+=1;
                        if(msg[3]=='0')
                            relay_positions+=8;
                        if(msg[3]=='1')
                            relay_positions+=4;
                        if(msg[4]=='0')
                            relay_positions+=32;
                        if(msg[4]=='1')
                            relay_positions+=16;
                        if(msg[5]=='0')
                            relay_positions+=128;
                        if(msg[5]=='1')
                            relay_positions+=64;
                        PORTC=relay_positions;
                    }
                }
                USART_Transmit_string(DEL,9);
                USART_Transmit(CR);
                _delay_ms(1000);
            }
        }
    }
}

ISR(_VECTOR(11)) {
    length++;
    msg[length-1]=UDR;
    msg[length]=0x00;
    return;
}
```


----------



## 1Roland1 (Ene 29, 2011)

Gracias por tu codigo, pero alguien podria poner algo para pic con ccs de como decifrar un sms recibido desde un celular ?


----------



## Moyano Jonathan (Ene 30, 2011)

Pero con ese código lo podés adaptar a CCS....es lenguaje "C"


----------



## 1Roland1 (Ene 30, 2011)

Si, lo que pasa es que yo estoy recibiendo los datos usando interrupciones


----------



## ericklarva (Ene 31, 2011)

No me lo tomes a mal Roland, pero tu buscas "ayuda" o quieres que "te hagan la chamba"??
Creo que Moyano te ha ayudado bastante con el código que posteó como para además pedir que alguien más te lo pase en CCS...y tu "trabajo" donde queda?


----------



## 1Roland1 (Ene 31, 2011)

ericklarva dijo:


> No me lo tomes a mal Roland, pero tu buscas "ayuda" o quieres que "te hagan la chamba"??
> Creo que Moyano te ha ayudado bastante con el código que posteó como para además pedir que alguien más te lo pase en CCS...y tu "trabajo" donde queda?


Tranquilo que ya lo tengo hecho y por mi mismo, gracias por tu valiosa ayuda....


----------



## Moyano Jonathan (Feb 8, 2011)

Hola les dejo el circuito y la explicación de donde saqué el proyecto que puse anteriormente. El circuito tiene un AVR como MCU y está programador en C de WinAVR.
http://ma-projects.blogspot.com/2011/01/project-no-1-sms-controlled-relay.html


----------



## sdel (Feb 8, 2011)

Hola estube colgado con el proyecto pero volvi jej.
sigo haciendo las pruebas con el celular y el hiperterminal.
el celular es sony ericsson t290, hasta hora pude leer un mensaje nuevo y realizar llamadas desde el terminal, lo que no logro es enviar un mensaje, nose por que me dice error, pego una imagen de mi prueba en el hiperterminal.

alguien sabe por que puede pasar esto?

ya tengo el codigo para el pic, hoy voy a tratar de armarlo en el proto aver si con el pic si envia.

en un momento pude escribir el mensaje y al presionar control + z como que intentaba enviar pero no enviaba y daba error, pero despues ni siquiera podia escribir.
si alguien le paso lo mismo?


----------



## sdel (Feb 9, 2011)

alguien tubo este problema?

programe el pic 18f4620 y me paso algo raro. conectado el pic al celular, no hacia nada, el celular no respondia. ahora conectando al mismo tiempo el tx del pic al rx del cel y al rx del max232, puedo ver el envio de los comandos al terminal y al mismo tiempo el celular llama al numero programado. cuando desconecto el max del celular no pasa nada. por que puede pasar esto?
en cuanto a los mensajes de texto no hay forma de enviar, siempre me devuelve error pero esto lo comprobe que es un problema del celular por que intento enviar mensajes manualmente y no manda, dice error en el envio, no se si habra que configurar algo en el cel?

pego el codigo del programa escrito en c de mikroc:
el cristal usado es de 20MHZ


```
void main() {
   TRISD.B2 = 1;
   TRISD.B3 = 1;
   PORTB.B2 = 0;
   PORTB.B3 = 0;

   UART1_Init(9600);
   Delay_ms(1000);
   while(1){
     if(PORTD.B2 == 1){
       Delay_ms(20);
       UART1_Write_Text("at");
       UART1_Write(10);
       UART1_Write(13);
       Delay_ms(1000);
       UART1_Write_Text("at+cmgs=");
       UART1_Write(34);
       UART1_Write_Text("02216063440");
       UART1_Write(34);
       UART1_Write(10);
       UART1_Write(13);
       Delay_ms(100);
       UART1_Write_Text("soy el pic");
       UART1_Write(26);
       Delay_ms(1000);
     }else{
          if(PORTD.B3 == 1){
              Delay_ms(20);
              UART1_Write(13);
              UART1_Write_Text("atd>0221156063440");
              UART1_Write(10);
              UART1_Write(13);
              Delay_ms(5000);
              UART1_Write_Text("ath");
              UART1_Write(10);
              UART1_Write(13);
              Delay_ms(1000);

            }else
             while(PORTD.B3 == 1 || PORTD.B2 == 1){
             }

         }
  }
}
```

ericklarva, moyano, gzaloprgm que opinan ustedes?

me olvidaba comentar que viendo con el osciloscopio en el tx del pic cuando no transmite, en vez de estar en nivel alto, se ve como  entrecortada la señal, sera esto que hace que el celular no reconozca los comandos?

cuando conecto al max232, estando conectado el celular tabien, esta señal en el pic es alta y estable.


----------



## ericklarva (Feb 9, 2011)

Lo único lógico posible es que tengas dañado el buffer del TX del PIC, lo cual es extraño mas no imposible.
Podrías checar en las configuraciones a ver si no estás omitiendo algo por ahí, se supone en teoría debes poner al TX como salida. Si ni por más le hayas el problema tu solución es meterle una resistencia de 470 o 560 Ohms en paralelo entre 5v y TX. 
Cualquier resultado comentas, con respecto a tu programa la verdad ni idea.
Saludos


----------



## sdel (Feb 9, 2011)

ericklarva dijo:


> Lo único lógico posible es que tengas dañado el buffer del TX del PIC, lo cual es extraño mas no imposible.
> Podrías checar en las configuraciones a ver si no estás omitiendo algo por ahí, se supone en teoría debes poner al TX como salida. Si ni por más le hayas el problema tu solución es meterle una resistencia de 470 o 560 Ohms en paralelo entre 5v y TX.
> Cualquier resultado comentas, con respecto a tu programa la verdad ni idea.
> Saludos



Hola eric y gracias por responder, al fin mande mensaje pero desde el terminal. el problema era una configuracion en el celular, en conectividad seleccione la opcion gsm para mensajes, estaba en automatico.

cuando decis que puede estar dañado el buffer tx del pic no puede ser, por que el pic conectado con la pc envia bien los comandos al terminal:

pic->pc    anda bien puedo leer los comandos en el terminal.

pic-> celular  no pasa nada.

pic -> celular y al mismo tiempo pic -> pc logre realizar una llamada.

por que conectado al mismo tiempo pc celular y pic anda?

pd: ahora revisando mi codigo me doy cuenta que no selecciono el modo texto para mensajes.


----------



## ericklarva (Feb 10, 2011)

Bueno, no se si por curioso has medido voltaje entre la terminal de entrada del MAX( RX ) a tierra, tiene un PullUp interno que lo levanta hasta los 5V. Es por esto que cuando conectas el TX del PIC al MAX, en cualquier configuración, siempre vas a tener envío de datos.
Por eso preguntaba si tienes configurado el pin del puerto como salida, es importante. No estoy muy seguro pero me parece recordar que dependiendo de las posibles configuraciones de un solo PIN en el PIC es posible que te pida conectarle un PullUp externo.
Una manera fácil de comprobarlo es que conectes la resistencia externa de 5V al PIN RX del PIC.
Mientras le doy una leida al PDF a ver que encuentro.
Saludos
PD.Bueno le di una "checadita" al PDF, MMM, según debes configurar los pines a "1", dale una leida a la página 213 del PDF solo para asegurar que todo están en orden. Si es así, solo significaría que el buffer del PIC estuviera dañado.


----------



## sdel (Feb 10, 2011)

Gracias denuevo eric, yo no configure manualmente el pin tx como salida por que se supone que la funcion UART1_Init(9600) lo hace sino me equivoco. de todas formas voy a configurarlo manualmente y por las dudas me voy a comprar un 628 que es baratito y tiene usart.

te cuento lo que medi: en el tx del max medi con el osciloscopio y hay exactamente 5V cuando no transmite, y el tx del pic cuando no transmite la señal es de 5V pero entrecortado, varia entre 5V y 0V, supongo que esta variacion de tension hace confundir al celular cuando el pic envia los datos?

lo del pull ap no lo sabia, ahora q me decis voy a poner la r como me indicas.

pregunto: cual es el pdf al que haces referencia?

gracias, una vez que pruebe comento los resultados. saludos


----------



## ericklarva (Feb 10, 2011)

Es correcto lo que dices de la configuracion I/O del módulo USART así lo marca el PDF de este micro, lo localicé en la microchip, sin embargo no está de más intentarlo, yo así lo he trabajado y no me ha dado problemas. Lo que comentas de los pulsos entrecortados me hace pensar aún más que el buffer tenga algún daño, un corto accidental o por ESD, suele pasar...tego algunos PICs con el Reset dañado, son irreprogramables .
Lo del PullUp es porque algunas configuraciones como el HalfDuplex requieren un voltaje estable sin comunicación, se supone integran un PullUp, pero es sano colocarle uno externo. En tu caso debe de funcionar ya que sigo pensando que es problema del buffer, por lo tanto un valor hasta de 4.7KOhms te debe solucionar esto...lo malo es que ese PIC así se va a quedar .
Saludos


----------



## sdel (Feb 11, 2011)

Gracias eric. sigo con los resultados negativos :enfadado:

probe colocando la resistencia pull ap pero no se soluciono, si bien la tension si, era estable, al momento de transmitir como que ni se mosqueaba el pic, no me acuerdo que valor use creo que 1K, vos me dijiste de 4,7K tendra algo que ver esto?

de todas maneras cambie de pic, use un 16f628a y no funciona nada. sin embargo la simulacion en proteus anda bien. envia los datos al terminal.

voy a seguir intentando y comento. saludos


----------



## ericklarva (Feb 11, 2011)

Extraño, y más extraño que nadie opine!!!
Puedes probar con valores más elevados, aunque la verdad sigo sin entender bien el porque de tu fallo( como dirían en mi país, " un caso para la araña" ).
El hecho que funcione con el MAX en paralelo solo puede significar la falta de un PullUp.
Ahora que si lo probaste con otro PIC y no así funcionó, quiere decir entonces que es un problema de configuraciones en el compilador, que programa usas??
Saludos


----------



## sdel (Feb 11, 2011)

uso mikroc, voy a intentar de pasar el codigo en ccs y compilarlo a ver si tengo algun resultado, ensima el grabador de los pic 16f que tengo graba cuando quiere y para grabar un pic es un martirio jeje, insistire con el pic18 nose, voy a compilar en ccs, le cambio la r de pull up aver q pasa.

gracias eric


----------



## Moyano Jonathan (Feb 11, 2011)

tendrías que poner el circuito que usas ...una solución (en vez de usar el MAX232) sería usar buffers adaptadores CD4050 de tecnología CMOS.


----------



## sdel (Feb 12, 2011)

Hola moyano, el circuito que uso entre el pic y el celular es directo.
tx del pic  al  rx del celular

y rx del pic al tx del celular.

y entre pic y la pc uso el max232 y no hay problema, lo mismo entre celular y pc uso max232 y todo bien.

hoy segui intentando y no logre nada, quize intentar con otros pic y no logro quemarlos, ya comentare los resultados

gracias


----------



## sdel (Feb 14, 2011)

Hola, dejo una imagen del tx del pic cuando no esta transmitiendo y no esta conectado al max232.

saludos


----------



## ericklarva (Feb 14, 2011)

MMM, si que es raro, lo curioso también es que el PIN TX del PIC es al mismo tiempo el CK del modo síncrono y los pulsos están más que parecidos a pulsos de reloj. Yo creo que debe ser algún error de configuración del periférico, solo como comentario, tu configuración de Reset, Xtal y el capacitor de Bypass entre los pines de VDD y GND del PIC están como deben estar?
Saludos


----------



## sdel (Feb 15, 2011)

Hola eric dejo una foto del circuito que uso para alimentar el pic y como esta configurado mikroc, el capacitor que vos decis va directo entre los dos pines del pic de alimentacion, y las dos masas?


----------



## ericklarva (Feb 15, 2011)

Hola Sdel, la primera foto la tienes como tal? es decir, con los capacitores que te marca?
No te puedo garantizar que tu problema esté con los capacitores de bypass, pero si te puedo decir que son altamente importantes y hay que colocarlos siempre, al igual que los capacitores que debe llevar todo cristal según lo marca cualquier PDF que revices de PICs, son dos capacitores, uno conectado a cada PIN del cristal y de ahí a GND, ayudan a estabilizar la oscilación del mismo. Normalmente para cristales de 4MHz se usan de 33pF.
Los de bypass ayudan a que los "ruidos" de otros componentes o de la fuente puedan afectar al PIC, de igual forma te ayudan para cuando el PIC consume ciertos picos de corriente que podrían ocasionar que se resetée, van entre VDD y GND, de preferencia en cada PIN de vdd que tenga el PIC( 10uF ).
La opción de "power up timer" se aconseja usar ya que no permite que el PIC "arranque" hasta que el voltaje no se estabilice...te evita algunos dolores de cabeza para cuando trabajas en Proto ;D.
Saludos


----------



## sdel (Feb 15, 2011)

Gracias eric muy buena explicacion, en el cristal de 20Mhz tengo dos capacitores de 22pf a masa, y el circuito de alimentacion es el mismo de la foto, lo que no tengo son los capacitores que nombras, a la noche voy a intentar agregarselos y comento, saludos


----------



## sdel (Feb 16, 2011)

Hola eric te debo un asado jeje, anoche probe agregando los capacitires y andubooo, pude llamar con el pic sin conectarlo al max, asi que era eso, los capacitores...

ahora tengo que cargarle credito al celular y seguir con el codigo del programa. mando un saludo y muchas graciaaas

cuando avanze comento mas...


----------



## ericklarva (Feb 16, 2011)

Jaja, tampoco me esperaba que el problema anduviera por ahí, pero si lo estás montado en Proto era de lo más posible entonces. Que bueno que se resolvió, por lo menos ahora ya hay un conocimiento más. Son imprescindibles esos capacitores de Bypass, no sabes cuantos dolores de cabeza sufrí al principio por no colocarlos, hasta en el PCB hay que estar concientes.
Saludos


----------



## Moyano Jonathan (Feb 16, 2011)

A mi me había sucedido un problema similar al usar un cristal de 20Mhz....el programa era el mismo....y no funcionaba..luego con el cristal de 4Mhz...se normalizó la situación y comenzó a funcionar.

rarezas de la electrónica...


----------



## sdel (Feb 17, 2011)

si, lo tengo en un proto, ya me voy a poner a hacer la plaquita. cosas raras de la electronica como dice moyano jeje.. saludos


----------



## sdel (Feb 19, 2011)

Hola, estube haciendo unas pruebas y tube algunos resultados:

con el pic pude marcar un numero para llamar y enviar un mensaje, pero el mensaje que envia por ejemplo al pic le digo que envie el mensaje hola, en el celular destinatario el mensaje que recibe es:
at

at+cmgf=1

at+cmgs="#########"

hola

por que puede pasar esto?

loque todavia no puedo y lo que me parece mas importante es recibir un mensaje y leerlo con el pic.
El pic le envia bien los comandos al celular, y este los interpreta bien y responde, esto lo comprobe con el terminal. lo que pasa es que el pic no interpreta bien los datos recibidos por el telefono, supongo que sera por la tension de tx del celular? que apenas llega a los 3V.
sera por esto?

alguna sugerencia?

saludos


----------



## Moyano Jonathan (Mar 6, 2011)

Una consulta frecuente en este hilo es la posibilidad de procesar los comandos que enviamos mediante mensajes de texto a nuestro microcontrolador. Buscando por la red una manera sencilla de hacerlo, encontré un código en C de CCS ( Que puede portarse a otras plataformas facilmente ). El mismo toma comandos definidos por el usuario y luego los procesa para realizar alguna acción determinada.

Sin ir mas lejos este es el código:

```
#include <16f876a.h>       // Definiciones del PIC 16F876A
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT // Los Fuses de siempre
#use delay(clock=4000000) // Oscilador a 4 Mhz
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)// RS232 Estándar

// CONSTANTES /////////////////////////////////////////////////////////////////

int const lenbuff=32; // Longitud de buffer, Ajustar
                      // a lo que desees (o te sea posible)

// VARIABLES EN RAM ///////////////////////////////////////////////////////////

int xbuff=0x00;      // Índice: siguiente char en cbuff
char cbuff[lenbuff]; // Buffer
char rcvchar=0x00;   // último carácter recibido
int1 flagcommand=0;  // Flag para indicar comando disponible 

// Declaración de Funciones ///////////////////////////////////////////////////

void inicbuff(void);        // Borra buffer 
int addcbuff(char c);       // añade carácter recibido al buffer
void echos(char c);         // Eco selectivo sobre RS232
void procesa_comando(void); // Procesa comando

// INTERRUPCIONES /////////////////////////////////////////////////////////////

#int_rda
void serial_isr() {    // Interrupción recepción serie USART

  rcvchar=0x00;        // Inicializo carácter recibido 
  if(kbhit()){         // Si hay algo pendiente de recibir ...
    rcvchar=getc();    // lo descargo y ...
    addcbuff(rcvchar); // lo añado al buffer y ...
    echos(rcvchar);    // hago eco (si procede).
  }
}

// Desarrollo de Funciones ////////////////////////////////////////////////////

void echos(char c){ // Echo selectivo ----------------------

  switch(c){
    case 0x0D: printf(" [Ent] "); // Si he pulsado la tecla [Intro]
               break;
    case 0x08: printf(" [Del] "); // Si he pulsado la tecla [Retroceso]
               break;
    case 0x1B: printf(" [Esc] "); // Si he pulsado la tecla [Escape]
               break;
    default:   putc(rcvchar);     // Echo de cualquier otro carácter
  }
}

void inicbuff(void){ // Inicia a \0 cbuff -------------------
  int i;

  for(i=0;i<lenbuff;i++){   // Bucle que pone a 0 todos los
    cbuff[i]=0x00;          // caracteres en el buffer
  }
  xbuff=0x00;               // Inicializo el índice de siguiente
                            // carácter
}

int addcbuff(char c){ // Añade a cbuff -----------------------

  switch(c){
    case 0x0D:           // Enter -> Habilita Flag para procesar
      flagcommand=1;     // Comando en Main
      break;
    case 0x08:           // Del -> Borra último carácter del Buffer
      if(xbuff>0) cbuff[--xbuff]=0x00;
      break;
    case 0x01B:          // Esc -> Borra el Buffer completamente
      inicbuff();
      break;
    default:
      cbuff[xbuff++]=c; // Añade carácter recibido al Buffer
  }
}


// Programa Principal /////////////////////////////////////////////////////////

void main() {

  inicbuff(); // Borra buffer al inicio

  printf("\r\n\** RS232 Buffered **\r\n\r\n"); // Presenta menú
  printf("[Enter] Procesa comando\r\n");
  printf("[Escape] Borra todo el buffer\r\n");
  printf("[Delete] Borra último carácter del buffer\r\n");
  printf("[\\w] Comando Escribe\r\n");
  printf("[\\r] Comando Lee\r\n");
  printf("\r\n");

  enable_interrupts(int_rda); // Habilita Interrupción RDA
  enable_interrupts(global);  // Habilita interrupciones

  do {

    if(flagcommand) procesa_comando(); // Si hay comando pendiente
                                       // de procesar ... lo procesa.

  } while (TRUE);

}

// Procesador de Comandos /////////////////////////////////////////////////////

void procesa_comando(void){

  int i;
  char arg[lenbuff]; // Argumento de comando (si lo tiene)

  flagcommand=0; // Desactivo flag de comando pendiente.
  printf("\r\nProcesando ... "); // Monitorizo procesando ...

  for(i=0;i<lenbuff;i++){ // Bucle que pone a 0 todos los
    arg[i]=0x00; // caracteres en el argumento
  }

  if(cbuff[0]=='\\'&&cbuff[1]=='r'){ // Comparo inicio del buffer con comando "\r"

    printf("Leyendo ... ");         [B]// Aqui lo que deseemos hacer con comando "\r"[/B]

  }

  if(cbuff[0]=='\\'&&cbuff[1]=='w'){ // Comparo inicio del buffer con comando "\w"
    i=2;
    do{ // Extraemos argumento del buffer 
      arg[i-2]=cbuff[i]; // a partir del 3er byte y hasta \0.
    }while(cbuff[++i]!=0x00);

    printf("Escribiendo %s ... ",arg);[B]// Aqui lo que deseemos hacer con comando "\w"[/B]
                                      // Monitorizamos el argumento.
  }

  inicbuff(); // Borro buffer.

  printf("Procesado.\r\n\r\n"); // Monitorizo procesado.
```
 
El autor de este código Diego alias "RedPIC" lo explica en su página: http://picmania.garcia-cuervo.net/picc.php#COMBUF232


----------



## sdel (Mar 7, 2011)

ya mismo lo estoy probando, gracias moyano. esto me saca la cabeza, ya probe con distintos codigos y compiladores, hasta en assembler y no logro que el pic interprete nada. pense que era por la diferencia en los niveles de la señal pero puse una compuerta and en el tx del celular y el pic ni se mosquea, quiza tendria que comprar un modulo gsm para hacer las pruebas.

pregunto: 
despues de la ultima linea : printf("Procesado.\r\n\r\n"); // Monitorizo procesado.

iria la llave de cierre del main no?


----------



## ericklarva (Mar 8, 2011)

Hola de nuevo Sdel, perdón por meterme de nuevo . Creo que sería una muy buena idea que probaras el PIC con hypertérminal antes que con el cel...corre un programa muy simple donde metas caracteres al PIC y checa que este los interprete de alguna forma que regrese al hypertérminal una respuesta para que sepas que la configuración de recepción es correcta...
Saludos


----------



## Moyano Jonathan (Mar 8, 2011)

> pregunto:
> despues de la ultima linea : printf("Procesado.\r\n\r\n"); // Monitorizo procesado.
> 
> iria la llave de cierre del main no?


 
Si , eso es correcto.



> Hola de nuevo Sdel, perdón por meterme de nuevo . Creo que sería una muy buena idea que probaras el PIC con hypertérminal antes que con el cel...corre un programa muy simple donde metas caracteres al PIC y checa que este los interprete de alguna forma que regrese al hypertérminal


 
Tendrías que hacer como te dice erik ....es mucho mas facil probar los programas de esa manera.


----------



## sdel (Mar 8, 2011)

hola moyano, erick no pidas perdon, al contrario es de gran ayuda sus comentario.
la verdad lo que me recomiendan ya lo tengo probado, el pic conectado con el hiperterminal envia bien los comandos y queda a la espera de una respouesta, desde el terminal le mando algo y en el proto el pic me lo muestra en un lcd, y asi funciona con algunos detalles a corregir. despues la otra prueba es enviarle los comandos desde el pic al celular y el cel interpreta bien lo que le manda el pic por que conectando el tx del cel al rx del terminal puedo ver la respuesta del celular al pic pero si el tx del cel lo pongo en el rx del pic no pasa nada

ahora adjunto el archivo simulado con proteus, el codigo fuente en c18 y el hex. si alguno puede probarlo y decirme si tiene los mismos resultados que yo seria una gran ayuda.

el celular es un sony ericsson t290a y las pruebas las hago con el pic18f4620.

en el codigo solo intento leer los primeros 10 caracteres que le enviaria el pic para mostrarlo en el lcd y uso el comando rec read para leer un mensaje ya leido solo de prueba.

bueno cuendo puedan y si quieren probar el archivo de simulacion les agradezco. saludosss


----------



## ericklarva (Mar 8, 2011)

Ya revisé lo que tienes en el archivo que es lo mismo de la página, aquí habría un detalle a checar y es la velocidad de tu PIC, recuerda que no es lo mismo escribir en el hypertérminal que recibir la trama enviada desde el Cel. Según el programa lo agrega a un buffer y de ahí se va a un eco que compara por un switch que tipo de caracter se envió, lo cual considero puede tomarle algunos ciclos importantes al PIC que pueden hacer que se pierda información importante...
Si el programa lo usas como está, sería prudente que le quites la parte del eco, aunque lo mejor es que hagas una rutina que se dedique a recibir los caracteres sin que nada mas lo interrumpa y de ahí entonces sacarlo por el LCD y/o hacer otras pruebas.
Saludos


----------



## sdel (Mar 9, 2011)

hola eric, pido dispulpas el archivo que subi es lo que habia subido moyano y yo me confundi jej.
ahora subo mi codigo y hex con el archivo de proteus para simularlo,  al circuito lo probe con oscilador de 4Mhz y de 20Mhz y los resultados son los mismos. pero ahora eric me hiciste pensar otra idea y es que el pic trate los caracteres recibidos por medio de interrupciones, voy a probarlo y comento, gracias.

 saludos


----------



## ericklarva (Mar 9, 2011)

Revisando el programa solo me queda la duda de como se reciben los datos desde el usart ya que la rutina
getsUSART(sms,10); no la tienes dentro del programa principal, solo puedo asumir que el problema esté ahí. Como te dije en el post anterior, el cel no hace pausas entre caracter y caracter por lo que si la rutina en el PIC no está pendiente de esto pues se puede quedar el PIC esperando hasta que se cumpla que reciba 10 caracteres...también puede pasar que el cel no te envíe 10 caracteres que  no suena muy creible pero puede pasar.
Lo que pienso es que si este programa lo pruebas entre hyperterminal y el cel y solo en el hyperterminal funciona bien, quiere decir que no se está cumpliendo los 10 caracteres de recepción desde el Cel por lo que habría que checar el porque de esto.
Saludos


----------



## sdel (Mar 10, 2011)

Hola eric, la rutina getsUSART(sms,10) es una funcion de la libreria del compilador c18 no se como esta implementada.

modifique el programa y ahora lo que hago una vez que mando los comandos at para leer el mensaje es quedarme en un bucle y esperar recibir caracteres hasta encontrar una coma",", pero los guardo en un buffer a medida que llegan por medio de interrupciones. 

es decir: una vez que mando el comando para leer msj habilito interrupcion y empieza a leer lo que va llegando. uso un oscilador de 20Mhz, los resultados? no anda jeje.

la verdad que no entiendo.
por mas que el cel envie todos los caracteres concecutivamente, el tiempo de periodo de la señal del puerto es de unos 100 us y ese tiempo es suficiente para tratar la rutina de interrupcion y mas teniendo en cuenta que con un cristal de 20M un ciclo de instruccion es de 200ns.
asi que no encuentro logica a por que el pic no recibe los datos del cel.
subo denuevo el codigo por si alguien lo quiere probar, yo me rindo. voy a seguir con esto cuando consiga un modulo gsm.

no entiendo como a rizi le funciono, sera el pic?


----------



## ericklarva (Mar 10, 2011)

Hola de nuevo Sdel, no te me desanimes siempre hay solución para todo...vamos desde el comienzo, yo lo que creo puede estar pasando aquí es que dejas al PIC en espera de recibir cierta cantidad de caracteres, y sino los recibe ahí se queda!!! Pon algún Sw externo que te permita sacar al PIC de ese estado y checar que has recibido en el buffer, y cuantos caracteres recibiste. Que tal que de repente el Cel te este respondiendo solo OK o ni eso, puede ser que las sentencias de printf no esten completas, que se yo, lo que más te importa ahora es saber que cel te está respondiendo.
Si es así, entonces te concentras más en el PIC, posiblemente sean problemas de configuración o del mismo C18.
Un consejo, no inicialices las variables desde su declaración, acostúmbrate a inicializarlas desde el main o dentro de la subrutina donde se usen, algunos compiladores no siempre respetan esto y puedes romperte la cabeza por algo tan simple.
Checa entonces y comentas de nuevo, no tires la toalla jejeje que casi siempre los problemas más difíciles son de soluciones simples.
Saludos
Si el Cel no te está respondiendo o solo te envía el "OK", quiere decir que el printf tiene problemas o que algo más te falta para que el Cel lo interprete bien.


----------



## sdel (Mar 12, 2011)

ericklarva dijo:


> Hola de nuevo Sdel, no te me desanimes siempre hay solución para todo...vamos desde el comienzo, yo lo que creo puede estar pasando aquí es que dejas al PIC en espera de recibir cierta cantidad de caracteres, y sino los recibe ahí se queda!!! Pon algún Sw externo que te permita sacar al PIC de ese estado y checar que has recibido en el buffer, y cuantos caracteres recibiste. Que tal que de repente el Cel te este respondiendo solo OK o ni eso, puede ser que las sentencias de printf no esten completas, que se yo, lo que más te importa ahora es saber que cel te está respondiendo.
> Si es así, entonces te concentras más en el PIC, posiblemente sean problemas de configuración o del mismo C18.
> Un consejo, no inicialices las variables desde su declaración, acostúmbrate a inicializarlas desde el main o dentro de la subrutina donde se usen, algunos compiladores no siempre respetan esto y puedes romperte la cabeza por algo tan simple.
> Checa entonces y comentas de nuevo, no tires la toalla jejeje que casi siempre los problemas más difíciles son de soluciones simples.
> ...



jeje, gracias eric, gracias por el animo, voy a hacer lo que me decis. por las pruebas que hice, el cel si responde a los comandos enviados desde el pic, esto lo pude ver por el hiperterminal conectando el tx del cel en paralelo al pic con el terminal. lo que voy hacer ahora es recibir un solo caracter. el primero que llegue veo cual es y ver si el pic esta recibiendo datos.

te mando un abrazo eric, cuando tenga algo comento. saludos


----------



## bacocio (Mar 13, 2011)

hola amigos, hace tiempo que estoy sigueindo este tema y he hecho un programa para recibir y enviar sms, pero quede estancado. El programa funciona, inicia con AT luego lo configua en modo texto, realiza una llamada de prueba y la corta y finalmente envia el comando para que este atento a recibir un mensaje. luego pasa al programa principal que enciende y apaga un led cada 200 ms. esta ahi hasta qe recibe una llamada que envia el comando RING desde el telefono a la pic, ahi deberia encenderse otro led. el problema que en proteus funciona bien pero al momento de implementarlo en la pic no funciona, hace todo pero no llega al parpadeo de los leds.

me podrian ayudar porfavor, les dejo el programa que he hecho. gracias 

#include <16f628.h>
#use  delay(clock=4000000)
#use  rs232 (baud=9600, bits=8, parity=N,xmit=PIN_B2,rcv=PIN_B1)
#include <stdlib.h>
#byte TRISA = 0x85
#byte PORTA = 0x05

#fuses xt,nowdt,nobrownout,nolvp,noprotect   // Fusibles

int i;
char  dato[3];
char  mensaje[6];
char  ok[3];

#INT_rda
 void rda_isr()//función de interrupción por recepción de datos USART              
{
  gets(dato);
  gets (mensaje);

   if(dato[0]=='R'&&dato[1]=='I'&&dato[2]=='N'&&dato[3]=='G') //enciende led
   output_high(PIN_A3);
   else
   output_low(PIN_A3);
   return;
 }

void  main()
{
enable_interrupts(INT_RDA);      // Interrupcion RS232
enable_interrupts(INT_EXT);    // interrupcion externa
ext_int_edge(H_TO_L);            // por flanco de bajada
enable_interrupts(GLOBAL); 
disable_interrupts(INT_RDA);
set_tris_a(0x00);                // puerto A como salida
OUTPUT_A(0x00);               // estabiliza la salida a cero
output_high(PIN_A0);
printf("AT\r\n");               // Le llama la atención al teléfono.  
gets(ok);
delay_ms(1000);
printf("AT+CMGF=1\r\n"); // Modo texto
gets(ok);
delay_ms(1000);
printf("ATD87663847;\r\n");         // realiza una llamada telefonica  
delay_ms(5000); 
delay_ms(5000);
printf("AT+CHUP\r\n");             // corta la llamada.  
delay_ms(1000); 
printf("AT+CNMI=1,2,0,0,0\r\n");           // espera mensaje  
delay_ms(1000); 
enable_interrupts(INT_RDA);

while(TRUE)
     {
      output_high(PIN_A0);
      delay_ms(200);
      output_low(PIN_A0);
      delay_ms(200);
     }
}


----------



## sdel (Mar 14, 2011)

puede ser que tu pic se quede esperando datos del usart, como me pasa a mi.


----------



## bacocio (Mar 14, 2011)

claro quedaba esperando datos pero ya lo solucione, el problema es que cuando llamo al cel este no reconoce la palabra RING. alguien sabe como se puede solucionar por favor??


----------



## ericklarva (Mar 15, 2011)

Hola bacocio, dos detalles super importantes...la función "gets()" no la estás colocando dentro de tu rutina por lo que no se sabe exáctamente como opera la recepción, lo obvio sería pensar en que solo transfiere el dato recibido a la variable que estás colocando, el gran problema aquí es que tu jamás incrementas la variable del buffer( mensaje,dato ) por lo tanto como puedes checar que recibiste el "RING" si solo el primer registro del buffer almacena los datos recibidos??
La otra es que tu comparación del if puede funcionarte así como está si corriges la parte de almacenamiento en buffer, pero en lo personal yo te recomendaria implementar un contador que además de apuntar a la dirección dentro de los buffers te sirva para saber en que momento recibes la cantidad de datos necesario para entonces compararlos con el string "RING".
Checa estas dos y comentas.
Saludos


----------



## bacocio (Mar 16, 2011)

ok, voy a checar esos dos tips que me dijiste, pero lo hare el viernes en la noche, ya que estoy realizando mi practica en la semana.

Otra cosa, por que si quito los gets(ok) del programa cuando envia los comandos al celular este se queda pegado en la interrupcion rs232, me explico, al enviar el ultimo comando, el printf("AT+CNMI=1,2,0,0,0\r\n"); el micro no pasa a la parte de encender y apagar el led constantemente?

le puse esos gets(ok), por que asi me permite llegar hasta esa parte.

gracias


----------



## ericklarva (Mar 17, 2011)

en tu pregunta está la misma respuesta entonces, si te das cuenta tanto ok como dato tienen una longitud de 3 bytes, al parecer entonces( no me explico como ) la función gets() te llena el buffer con los datos recibidos, pero recuerda que la función se cicla en esperar a que lleguen esos datos, por lo que si solo te llegan 3 o 4 al momento de poner gets(mensaje) el sistema se va a quedar esperando recibir más y si no lo hace simplemente se cicla. Y como solo activas la interrupción después de esperar 1seg, creo es lógico suponer que el Cel te esta respondiendo en un tiempo mucho menor...checa de nuevo sin la instrucción Delay().
Saludos


----------



## bacocio (Mar 19, 2011)

pucha..  probe sacando los delay, y probe solamente con un ok, o sea, cuando envio AT y la respuesta es OK este deberia encender un led, peor no paso nada. Creo que es problema de conexion, estoy utilizando el cable DKU-5 conctado directamente a la pic, sin resistencias ni zener. Quisas por ahi anda el problema, lo otro, probe los pines del conector al cel y estos son 6, 7, y el 2, donde el 2 es Gnd, en otros lados dicen que hay que ocupar los pines 6,7 y 8. pero creo que utilizando el 2 igual funcionaria por que es comun.

Si alguien tiene un ejemplo de como recibir el mensaje y encender un led con un RING o un OK, me lo podria prestar porfa.

Gracias


----------



## ericklarva (Mar 19, 2011)

NO has probado por hyperterminal para saber que tus conexiones están bien???
Sino lo has hecho, empieza por ahí. De nada te serviría un programa "funcional" sino estás seguro que te estás comunicando bien con el Cel.
Saludos


----------



## bacocio (Mar 19, 2011)

si hice la prueba, por hyperterminal y por el serial port monitor de CCS, en ambos tengo respuesta del telefono.


----------



## ericklarva (Mar 19, 2011)

Entonces si ya hiciste esa prueba no queda de otra más que confirmar que el programa es el problema, como dato curioso es que tanto tu bacocio como Sdel usan el mismo compilador que es C18...será por ahí que también el probleam sea en común a la función gets()???
Traten de cambiar de compilador como al CCS y prueben su código.
Saludos
Ok...debido a una recién formateada de mi PC no había instalado el CCS, y como la función "gets()" nunca la usé no sabía que le pertenecía al CCS. En fin, les dejo lo que la ayuda explica sobre esta función:


> *Reads characters* (using GETC()) into the string  *until a  RETURN* (*value 13*) *is encountered*.  The string is terminated with a 0.   Note that INPUT.C has a more versatile GET_STRING function.


Lo resaltado en negro define drásticamente el porque del problema.


----------



## bacocio (Mar 19, 2011)

claro, estoy ocuapando el CCS con la PIC 16F877A.

tanto como el en hyperterminal como en serial port monitor, pude enviar sms, llamar, cortar una llamada, leer memoria, recibir mensajes, pero, con la pic no puedo recibirlos.

solamente, llamar, enviar mensaje cuando se presiona un pulsador con la interrupcion externa.

ahora conecte un display lcd a la pic para ver que me guarda en el string. pero no se ve nada, conecte el cel a la pic y le envie el comando AT para recibir un OK pero no muestra nada el lcd

** En la interrupcion rs232 puse un gets() para capturar el string completo, y no caracter por caracter.

#INT_rda
 void rda_isr()//función de interrupción por recepción de datos USART              
 {
   gets(buffer);
   if(buffer[0]=='O'&&buffer[1]=='K')
   output_high(PIN_D3);
   delay_ms(1000);
   output_low(PIN_D3); 
   lcd_putc('\f'); 
   for(i=0;i<10;i++)
   printf(lcd_putc,"%c",buffer_);
   for(i=0;i<10;i++)
   buffer=0;
 }

pero sigue sin funcionar_


----------



## ericklarva (Mar 19, 2011)

bacocio te respondí brevemente en el mensaje anterior, cuando usas el gets() no se aconseja que uses interrupción alguna, tu buffer debe ser n+1 donde n es número de caractéres máximos que debes recibir. Si le pones una variable buffer con una menor cantidad de bytes vas a desbordar el puntero y corromper tu programa. Siempre ten en mente esto.
Un  ejemplo de uso puede ser este:

```
char  string[30];

gets(string);
 if(strcmp(string, password))
    printf("OK");
```
donde password puede ser otro buffer de valor variable o constante, es decir:

```
const char password[]="RING";
```
ó

```
char password[4];//Ya luego tu le pones con que string compararlo
```
Espero con esto puedas trabajar mejor.
Saludos
Puedes probar haciendo esto, sin la interrupción:

```
char dato[6];


printf("AT+CHUP\r\n");             // corta la llamada.  
delay_ms(1000); 
printf("AT+CNMI=1,2,0,0,0\r\n");           // espera mensaje
gets( dato );
if(strcmp(dato, "RING")){
    output_high(PIN_A0);
    delay_ms(1000);
    output_low(PIN_A0);
}else{
    output_high(PIN_A3);
    delay_ms(1000);
    output_low(PIN_A3);
}
//delay_ms(1000); 
//enable_interrupts(INT_RDA);
```


----------



## bacocio (Abr 14, 2011)

gracias por los comentarios,  me sirvieron bastante. logre hacer encender un led con un ring, pero ahora tengo otro problema. Al colocar la interrupcion por usart, la pic queda en blanco. Hace todo lo que esta en void main(), hasta el while(true), ahi deberia mostrar la conversion A/D de dos potenciometros conectados a los pines A0 y A1. pero el display LCD queda en blanco. alguien me podria ayudar por favor.

gracias

#include "16f877a.h"                    // Pic a utilizar
#device adc=10                         // Usa resolución de 10 bits
#use delay(clock=20000000)       // Cristal 20 MHz
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <string.h>
#include <stdlib.h>

#fuses hs,nowdt,nobrownout,nolvp,noprotect   // Fusibles
#define use_portb_lcd TRUE
#include "lcd420.c"
#byte TRISD = 0x88
#byte PORTD = 0x08


 #INT_RDA  
void serial_isr(void)
{  
}

   long int temperatura;
   long int humedad;
   long int esc_humedad;
   long int esc_temperatura;
   long int extremo=500;
   long int extremo_2=45; 
   char     dato_mensaje[];
   char     mensaje[60]={0};
   int      est=2;
   int      est_t=2;
   int      i=0;

  void serial(void){
      disable_interrupts(INT_RDA);

    if(kbhit()){
         mensaje_ = getc();
         while(mensaje != '\r')
        {
        i++;
         mensaje=getc(); 
         }
     }
      lcd_putc('\f');
for(i=0;i<15;i++)
{
 printf(lcd_putc,"%c",mensaje);
}
enable_interrupts(INT_RDA);


void main ()
{
      lcd_init(); 
      set_tris_d(0x00);                // puerto D como salida
      lcd_putc("Inicializando");  
      PORTD=0x00;
      output_high(PIN_D2);
      printf("ATQ0\r\n"); 
      lcd_putc('\f'); 
      lcd_putc("ATQ0");
      delay_ms(1000);
      printf("AT+CMGF=1\r\n"); // Modo texto
      lcd_putc('\f');
      lcd_putc("AT+CMGF=1");
      delay_ms(1000);
      printf("ATD87663847;\r\n"); // realiza una llamada telefonica  
      lcd_putc('\f');
      lcd_putc("ATD87663847;");
      delay_ms(5000); 
      delay_ms(5000);
      printf("AT+CHUP\r\n"); // corta la llamada.  
      lcd_putc('\f');
      lcd_putc("AT+CHUP");
      delay_ms(1000); 
      printf("AT+CNMI=1,2,0,0,0\r\n"); // espera mensaje  
      lcd_putc('\f');
      lcd_putc("AT+CNMI=1,2,0,0,0");
      delay_ms(1000); 
      lcd_putc('\f');
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

   while (true)
      {
         setup_adc (adc_clock_internal);                                     
         setup_adc_ports(RA0_RA1_analog_RA3_REF);

         set_adc_channel (0);                // Elige canal analogico a medir
         delay_us (20);                      //espera 20 microseg
         temperatura=read_adc ();                  // Hace conversión A/D
         lcd_gotoxy(1,1);      // Acomoda cursor LCD
         printf(lcd_putc,"Temp= %lu ",temperatura); 

         set_adc_channel (1);                // Elige canal analogico a medir
         delay_us (20);                      //espera 20 microseg
         humedad=read_adc ();                  // Hace conversión A/D
         esc_humedad=(humedad*60)/1023;
         lcd_gotoxy(1,2);
         printf(lcd_putc,"Humed= %lu ",esc_humedad); 

         if (temperatura>extremo)
         {
           for(est_t;est_t>1;est_t--)
           {
              output_high(PIN_D1);
              printf("AT+CSCA=\"+5698890005\"\r\n");
              delay_ms(500);
              printf("AT+CMGS=\"xxxxxxxx\"\r\n");
              delay_ms(500);
              printf("ALERTA 2\r\n");
              putc(26);
              printf("\r\n");
              //output_high(PIN_D1);
              //delay_ms(300);
           }
        }
         else
         {
         output_low(PIN_D1);
         est_t=2;
         }

        if (esc_humedad>extremo_2)
        {
           for(est;est>1;est--)
           {
              output_high(PIN_D0);
              printf("AT+CSCA=\"+5698890005\"\r\n");
              delay_ms(500);
              printf("AT+CMGS=\"xxxxxxxx\"\r\n");
              delay_ms(500);
              printf("ALERTA\r\n");
              putc(26);
              printf("\r\n");
              //output_high(PIN_D0);
              //delay_ms(300);
           }
        }
         else
         {
         output_low(PIN_D0);
         est=2;
         }
         //delay_ms (300);
      }
}_


----------



## sdel (Abr 15, 2011)

Hola bacocio, como va, y el lcd ya te muestra algo antes?

te hago una pregunta de tu codigo, vos pudiste leer un mensaje?
el siguiente comando: AT+CNMI=1,2,0,0,0 que aparentemente usas para esperar un mensaje es un comando standart? donde se guarda el mensaje?
te pregunto esto por que yo en mi proyecto que esta en paginas anteriores no hubo caso no pude leer un mensaje de ninguna manera, igual nose si ese comando estara en el celu que use yo el se t290.

saludos


----------



## bacocio (Abr 15, 2011)

hola sdel, si , si me muestra los comandos que estoy enviando, el ATQ0, ATDXXXXXXX; , pero lo que no puedo es recepcionar mensajes. al momento de poner la interrupcion, el display queda en blando. o sea muestra los mensajes que te dije anteriormente, pero al momento de medir el analogo digital queda en blando. 
yo creo que la interrupcion por usart esta mal puesta


----------



## ronald aliaga (Abr 20, 2011)

estimados señores.....
quisiera por favor que me puedan colaborar con un circutio que me esta quitando el sueño, y es precisamente el de conectar un microcontrolador a un celular sony erickson k750i tengo entendido que tiene puerto serial para manejar su modem busuqe los pinout y no tengo ni idea de como conectarlo ni donde .
aclaro que spude manejar su modem del celular mediante la computadora mediante comandos AT, ahora lo que quiero es manejarlo para que el microcontrolador mande un sms por medio del modem del celular necesito saber si alguien ya probo esto con el modelo del celular.

porfavor ayudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........


----------



## Moyano Jonathan (Abr 21, 2011)

Busqueda rápida de google: http://forum.gsmhosting.com/vbb/archive/t-218264.html


----------



## ronald aliaga (Abr 21, 2011)

Moyano Jonathan dijo:


> Busqueda rápida de google: http://forum.gsmhosting.com/vbb/archive/t-218264.html




moyano gracias por la direccion tome en cuenta tu sugerencia y muchas gracias pero lamentablemente hize la conexion con indica:

tx del microcontrolador al pin de rx del celular   (pin 11 del cel k750i)
puse tierra comun a la alimentacion del microcontrolador y del celular, regule voltage con un  
                                  680 ohm
zener   tx micro  ------/\/\/\/\-----|-------------------------rx del microcontrolador
                                              ---
                                               /\   diodo zener 3.3
                                             ----
                                               |
                                              tierra 

es asi como o arme y estoy seguro que los comados at que mando son los correctos por que ya lo trabaje desde la compu con el driver de conversion usb a serial propio de sony ericsson

les pido que me puedan ayudar porfa si debo darles mas datos no hay problema
gracias de ante mano


----------



## ericklarva (Abr 21, 2011)

He aquí la respuesta del porque no te funciona: http://pinouts.ru/CellularPhones-P-W/se_k750i_pinout.shtml
Saludos


----------



## ronald aliaga (Abr 21, 2011)

gracias ericklarva tu respuesta no s tan clara sin embargo viendo la pagina que me sugieres y segun los pin out de este celular no hay conexion rs 232 eseso lo que quieres decir???????

con lo del ingles no voy tan bien pero con lo poco que revise no hay nada que tenga que ver con modem rs232 de este modelo en la pagina que me sugieres.

gracias de todas maneras estare mas atento y sperando pronta ayuda graciassssssss


----------



## ericklarva (Abr 21, 2011)

Si así es, no tiene USART, es USB directo. Sin embargo dice que los pines 5 y 6 son para comunicacion de datos:


> * DTMS stands for Data To Mobile Station( RX Cel )  	* DFMS stands for Data From Mobile Station( TX Cel )


Puedes probar ahí a ver que tal te funciona.
Saludos


----------



## mariacontenis (Abr 22, 2011)

Que tal hermano pues yo he podido enviar comndos at pero no recibir, me podrias yudar con un ejemplo bsico para la recepción de comandos AT. Ya he leido la informacion de este block y todo esta interesante pero me gustaria una simulcion del transmisor y del receptor, gracias..


----------



## mariacontenis (Abr 24, 2011)

puedes poner el codigo de transmision y recepcion del ring, por favor...


----------



## oman (May 11, 2011)

sdel dijo:


> Hola estube colgado con el proyecto pero volvi jej.
> sigo haciendo las pruebas con el celular y el hiperterminal.
> el celular es sony ericsson t290, hasta hora pude leer un mensaje nuevo y realizar llamadas desde el terminal, lo que no logro es enviar un mensaje, nose por que me dice error, pego una imagen de mi prueba en el hiperterminal.
> 
> ...



buen dia, a mi me paso igual a ti. el prolema era que at+csca estaba mal configurado.
creo, depende del lugar donde te encuentres, en mexico yo puse at+csca= +5294100001410 de telcel. luego los demas comandos y funciono a la perfeccion.

tienes que investigar tu correspondiente at+csca. espero y te sirva.

saludos.


----------



## francq (May 17, 2011)

traka dijo:


> EDITO:
> Me voy a responder a mi mismo, buscando y buscando vi que el RS232 del pic tiene un buffer de dos caracteres, por lo tanto, necesito del uso de interrupciones.
> El codigo de interrupciones que postee anteriormente, tengo codigo para que me muestre por pantalla lcd a traves de I2C el codigo leido, lo cual supongo crea un retardo muy grande, que era el problema(no le daba tiempo a recoger todos los caracteres).
> Solución: creo una variable char buffer[300]; y voy añadiendo al final lo que me llega al saltar la interrupción.



hola k tal ammigo un saludo.
estoy realizando un proyeco similar al tuyo en diferencia que el telefono celular que estoy utlizando es el nokia 3220, ya hago llamadas con el pic, puedo mandar mensajes sin problemas con el pin mi problema al resivir un mensaje en el pic y al momento de mostrar ese mensaje  en la lcd salamente se aprecia un AT (algo parecido entendi que te paso a ti). creo que el problema esta en la interrupcion usar de pic, programo en picc ya estado haciendo varios intentos sin fortuna. te agradesco cualquier ayuda para resolver este problema... saludos y que estes bien.


----------



## francq (May 18, 2011)

1Roland1 dijo:


> La duda es como filtrar el sms luego de leerlo con AT+CMGD=1 en CCS ya que solo nos interesaria el sms como tal y se recibe esto :
> +CMT: “+541155554444,”10/9/22,14:12:34”
> MENSAJE
> Entonces toca filtrar MENSAJE, ya lo he hecho y funciona perfecto en simulacion pero ya en la practica tiene fallas. Si alguien puede postear algo de codigo explicando esto se les agradece,



leyendo en el foro me tope con tu caso que es algo me pasa a mi y  ya no hayo realmente que hacer.. bueno para empezar estoy realizando un proyecto el cual al enviar un sms (de cualquier otro cel) me va activar una bomba  para llenar deposito de agua. el recibir este mensaje en la terminal del pozo, se activa dicha bomba y me devuelve un mensaje diciendome el valor de unas variables (nivel de agua del deposito y temparatura de agua).

bueno ya tengo muchos avances como:
uso el telefono celular nokia 3220  controlandolo mediante comandos AT y programo en pic CCs y asm
1) pueda hacer llamadas a otros cel con hyperterminal y con el pic no hay problema es eso.
2) puedo manda mensajes mediante hypertermina y con el pic incluso ya puedo mandar las variables en el mensaje.
3) puedo recibir mensajes solamente en hyperterminal..

por lo que para concluir este proyecto me falta recibir mensajes con elpic pero cuando llega el mensaje al cel (al nokia 3220) no puedo guardarlo en la memoria del pic para poderlo decodificar y despues mostrarlo en la lcd... 

pienso que el error que posiblemente tengo es la habilitacion de interrupciones (en CCS)al momento de que llega el mensaje, cuando llega el mensaje lo tomo como un string y despues lo muestro el la lcd y nada mas me muestra en la lcd una A enseguida de un T. otra prueba que el hecho es con asm de ir checando caracter por caracater y guardandolo en la memoria de pic y mosrandolo en la lcd, pero sin resultados satisfactorios..

si tienes alguna sugerencia que me puedas dar para solucionar este problema sera bien recibida. espero tu respuesta

k estes bien y saludos..


----------



## 1Roland1 (May 18, 2011)

francq dijo:


> leyendo en el foro me tope con tu caso que es algo me pasa a mi y  ya no hayo realmente que hacer.. bueno para empezar estoy realizando un proyecto el cual al enviar un sms (de cualquier otro cel) me va activar una bomba  para llenar deposito de agua. el recibir este mensaje en la terminal del pozo, se activa dicha bomba y me devuelve un mensaje diciendome el valor de unas variables (nivel de agua del deposito y temparatura de agua).
> 
> bueno ya tengo muchos avances como:
> uso el telefono celular nokia 3220  controlandolo mediante comandos AT y programo en pic CCs y asm
> ...


Bueno hace tiempos tuve este problema pero ya lo resolví. Para lograr filtrar solo el sms debes contar los 0D y los 0A que hay al inicio y fin de esa cadena. Es sencillo, luego en proyectos mas avanzados surgió ademas de obtener el sms la necesidad de guardar el numero del cel que envía el sms para luego compararlo igualmente lo hice filtrando las comillas, comas " , es sencillo....



			
				1Roland1 dijo:
			
		

> Bueno hace tiempos tuve este problema pero ya lo resolví. Para lograr filtrar solo el sms debes contar los 0D y los 0A que hay al inicio y fin de esa cadena. Es sencillo, luego en proyectos mas avanzados surgió ademas de obtener el sms la necesidad de guardar el numero del cel que envía el sms para luego compararlo igualmente lo hice filtrando las comillas, comas " , es sencillo....



Lo que realmente recibe tu pic desde el cel es esto:

0D0A+CMT: "+59395680131",,"11/03/04,12:09:27-20"0D0A
AQUI VA EL TEXTO DEL SMS0D0A

Entonces si te fijas en los 0D y 0A en las "comillas" y las ,,, comas por ahi tienes que jugar con eso y lograras filtrar lo que sea. Espero te sirva

Saludos


----------



## francq (May 18, 2011)

muchas gracias por tus respuestas roland are lo que me indicas para probar.. y espero publicar resultados positivos muy pronto...


----------



## mariacontenis (May 27, 2011)

Amigos de favor puedes ayudarme a transladar este codigo a 20Hhz, el problema es que no he podido configurar el tmr0. A 4Mhz trabaja bien, cambio los fuses para 20Mhz pero el tmr0 no lo se. Pueden ayudarme porfavor... 


      #include <18F4550.h>
      #fuses NOWDT, WDT128, XT, NOPROTECT, BROWNOUT, NOPUT, NOCPD
      #fuses NOSTVREN, NODEBUG, NOLVP, NOWRT, NOWRTD, NOIESO, NOFCMEN, NOPBADEN
      #fuses NOWRTC, NOWRTB, NOEBTR, NOEBTRB, NOCPB, NOLPT1OSC, MCLR, NOXINST
      #use delay(clock=4000000)
      #use i2c(Master, SDA=PIN_A0, SCL=PIN_A1)

      #byte pb        =0xF81                           // Dirección del puerto B para la familia 18Fxx5
      #bit  t_ok      =pb.5                            
      #bit  t_mas     =pb.6
      #bit  t_mns     =pb.7

      #byte intcon   =0xFF2
      #byte intcon3  =0xFF0
      #bit  intf     =intcon.1
      #bit  intf1    =intcon3.0
      #bit  intf2    =intcon3.1

      #include <lcd4x20d.c>
      #include <ds1307.h>
      #include <menu.h>

      void actualizar_salidas(void);
      void actualizar_pantalla(void);      
      void lectura_rtc(void);

      unsigned int8 hora_actual, mins_actual;
      unsigned int8 n;

      void main()
   {
      port_b_pullups(true);
      setup_adc_ports(NO_ANALOGS);
      lcd_init();

      menu_modo();

      intf=0; intf1=0; intf2=0;
      setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64);
      set_timer0(49911);

      //enable_interrupts(INT_EXT);
      //enable_interrupts(INT_EXT1);
      //enable_interrupts(INT_EXT2);
      enable_interrupts(INT_TIMER0);
      enable_interrupts(GLOBAL);

         while(true)
      {
         actualizar_salidas();
         actualizar_pantalla();
      }
   }


      void lectura_rtc(void)
      {
      leer_ds1307();
      }

      void actualizar_salidas(void)
      {
      hora_actual=registros_ds1307[horas];
      mins_actual=registros_ds1307[minutos];
      }

      void actualizar_pantalla(void)
      {
      lcd_gotoxy(1,1);
      printf(lcd_putc,"%02u:%02u:%02u %02u/%02u/%02u",registros_ds1307[horas],registros_ds1307[minutos],registros_ds1307[segundos],registros_ds1307[dias],registros_ds1307[meses],registros_ds1307[anios]);
      }


      #INT_TIMER0
      interrupcion_tmr0()
      {
      n++;
      lectura_rtc();
      if(n==30){n=0;;}
      set_timer0(49911);
      }


----------



## oman (May 28, 2011)

1Roland1 dijo:


> Bueno hace tiempos tuve este problema pero ya lo resolví. Para lograr filtrar solo el sms debes contar los 0D y los 0A que hay al inicio y fin de esa cadena. Es sencillo, luego en proyectos mas avanzados surgió ademas de obtener el sms la necesidad de guardar el numero del cel que envía el sms para luego compararlo igualmente lo hice filtrando las comillas, comas " , es sencillo....
> 
> 
> 
> ...



buen dia a todos.

te saludo con la grata novedad, que en mi proyecto pic-nokia 3220, ya puedo leer los mensajes y desifrarlos para una determinada aplicacion, solo que me aparecio un problema del cual no he podido resolver, bien a hora lo voy a expliacar experando que alguien me pueda orientar.

codigo que funciona bien: este parte de codigo funciona perfectamente para recibir un mensaje.
#include <16f877a.h>
#FUSES nowdt,xt,noprotect
#use delay (clock=4000000)
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7,bits=8,stop=1)
.
.
#int_rda
void serial_isr() // Interrupcion recepcion serie USART
{
   rcvchar=0x00;  //inicializo el caracter recibido
   rcvchar=getchar();   // lo descargo 
   addcbuff(rcvchar); //lo añado al buffer
}


solo que haora tengo la necesidad de poner una interrupcion extra, externa que es por rb0. con la funcionalidad que a la hora que se active mandar un mensaje, entoces hago lo abitual y tambien lo habilito correctamente.      solo que haora, al poner el codigo relacionado con la interrupcion externa rb0, la simulacion deja de funcionar correctamente, es como si de alguna manera el solo poner el codigo relacionado con la interrupcion rb0, la interupcion  #int_rda dejara de hacer su tarea correctamente.     si canselo la parte correspondiente a la #int_rda poniendolo como texto de ayuda /*todo la funcion #int_rda*/, la interupcion externa por rb0 funciona correctamente, si haora hago lo contrario poniendo como texto de ayuda /*toda la funcion #int_ext */, la interrupcion  #int_rda vuenbe a hacer todo su trabajo correctamente.

en conclusion el poner el codigo de #int_ext, afecta el funcionamiento de la #int_rda. 

#include <16f877a.h>
#FUSES nowdt,xt,noprotect
#use delay (clock=4000000)
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7,bits=8,stop=1)
.
.

#int_ext
void ext_isr(void)//Interrupcion externa que cuando se activa manda un mensaje al 
{        //al usuario con los datos de los sensores del sistema. 
   delay_ms(50);
   enviarMSM();
}

#int_rda
void serial_isr() // Interrupcion recepcion serie USART
{
   rcvchar=0x00;  //inicializo el caracter recibido
   rcvchar=getchar();   // lo descargo 
   addcbuff(rcvchar); //lo añado al buffer
}


espero ser claro, si necesitan mas datos para entenderme mejor solo diganmelo.

sin mas que decir, me despido, saludos.


----------



## mariacontenis (May 28, 2011)

Por que no compartes tus codigos de transmision y recepcion, yo ten go el Motorola C168i y no logro recibir sms y sacar el dato por el pic para encender un led.

Te lo agradezco.


----------



## kitobarra (Jun 1, 2011)

Saludos no se si te interese pero en este blog http://microcon-unp.blogspot.com encotraras aplicaciones GSM y GPS con PIC en usando el compilador PIC Basic Pro compiler.. alli hay aplicaciones como las que te interesa..alli pudes bajar un ebook




bacocio dijo:


> gracias por los comentarios,  me sirvieron bastante. logre hacer encender un led con un ring, pero ahora tengo otro problema. Al colocar la interrupcion por usart, la pic queda en blanco. Hace todo lo que esta en void main(), hasta el while(true), ahi deberia mostrar la conversion A/D de dos potenciometros conectados a los pines A0 y A1. pero el display LCD queda en blanco. alguien me podria ayudar por favor.
> 
> gracias
> 
> ...


----------



## cesarogonzal (Sep 30, 2011)

sdel dijo:


> Hola estube colgado con el proyecto pero volvi jej.
> sigo haciendo las pruebas con el celular y el hiperterminal.
> el celular es sony ericsson t290, hasta hora pude leer un mensaje nuevo y realizar llamadas desde el terminal, lo que no logro es enviar un mensaje, nose por que me dice error, pego una imagen de mi prueba en el hiperterminal.
> 
> ...



es posible que sea tarde. pero la razon es que el <ctrlz> va imediatamente despues del mensaje. al parecer tecleas <enter> antes de <ctrlz>


----------



## oman (Sep 30, 2011)

buen dia cesarogonzal.
no me aparece la imagen que mensionas, hay algunos sony ericsson que no soportan el comando at+cmgs.

ENVIAR MENSAJES DE TEXTO A UN NUMERO
	AT+CMGF=1		ESTABLECER MODO DE SMS (0= MODO PDU, 1 = MODO TEXTO)
	AT+CMGS="3157423221"	ESTABLECER NUMERO DESTINO
				una vez al darle enter queda el siguente prompt ">" y luego se escribe el mensaje                   de max 180 caracteres
	CONTROL Z		= ENVIAR EL DECIMAL 26, EN VISUAL ES      MSCOMM1.OUTPUT = Chr(26) Y LO ENVIA 

	EL CELULAR RESPONDE	+CMGS: 52   DONDE 52 ES EL NUMERO DE CARACTERES A ENVIAR

que este comando sirve para enviar un mensaje directamente sin almacenarlo en la bandeja de salida del celular.


hay una segunda manera de mandar un mensaje de texto usando otros dos comandos. es un poco mas complicado que la primera por que tendrias que hacer una rutina de recepcion para saber en que posicion esta guardado el mensaje, para luego enviarlo.

AT
OK
AT+CMGF=1
OK
AT+CMGW="+85291234567"
> A simple demo of SMS text messaging.
+CMGW: 1

OK
AT+CMSS=1
+CMSS: 20

OK


lo que tienes que hacer es rebisar si el sony soporta el comando AT+CMGS, si no lo soporta que creo es lo mas probable entonces tienes dos opciones la primera usar los comandos AT+CMGW y AT+CMGS, para el envio del mensaje. la segunda obcion es que te consigas un nokia 3220 es el que yo use y me funciono bien. te recomiendo que entres a esta pagina http://www.developershome.com/sms/ puedes aprender bastante.


discumpa mis falta de ortografia, pero casi no tengo tiempo de contestar.

hasta luego.


----------



## cesarogonzal (Oct 1, 2011)

oman dijo:


> buen dia cesarogonzal.
> no me aparece la imagen que mensionas, hay algunos sony ericsson que no soportan el comando at+cmgs.
> 
> ENVIAR MENSAJES DE TEXTO A UN NUMERO
> ...



de veras te agradesco mucho por responder. - la razon por la que ando dando vueltas por ahi es que necesito que un pic lea el mensaje y ejecute una accion depende de lo que diga el mensaje. (ejm: "alarma on"). estoy trabajando con un pic 16f877 y me gustaria que reconociera al menos 8 mensajes diferentes. pero no tengo idea de como es el truco en ASM. imagino que comparando la entrada con uno guardado, pero no se como entrarle.
si ya lo hiciste. porfa. solo necesito un ejemplo.


----------



## oman (Oct 1, 2011)

buen dia. 

yo *h*i*c*e algo como tu proyecto pero lo hice en c, yo te recomendaria que con el RS232 del pic crees un buffer(un array) para almacenar los datos que llegan al pic, con la interrupcion de la comunicacion de preferencia. una vez que ya logres almacenarlos es muy facil procesarlos fijate en la libreria de string. claro yo lo hice en c, para *h*a*c*erlo en asm solo tienes que adaptar los pasos men*c*ionados.


----------



## cesarogonzal (Oct 2, 2011)

oman dijo:


> buen dia.
> 
> yo *h*i*c*e algo como tu proyecto pero lo hice en c, yo te recomendaria que con el RS232 del pic crees un buffer(un array) para almacenar los datos que llegan al pic, con la interrupcion de la comunicacion de preferencia. una vez que ya logres almacenarlos es muy facil procesarlos fijate en la libreria de string. claro yo lo hice en c, para *h*a*c*erlo en asm solo tienes que adaptar los pasos men*c*ionados.



disculpame hermano. tengo idea de como llamar y mandar mensajes. de hecho ya lo hice con el hyperterminal. pero recibir con el cel y el pic accione depende de lo que diga el mensaje no tengo ninguna idea. si aunque me mostraras una parte de la programacion. no importa que sea en c. yo buscaria la manera de aprender bien y hacerlo todo en c.


----------



## Pull1988 (Oct 28, 2011)

Una pregunta amigos alguien sabe hacer un programa en pbp que compare la cabecera de un sms y que solo le llegue a un pic el cuerpo del sms?


----------



## elektronische (Dic 21, 2011)

Saludos, primero que todo muchisimas gracias a Moyano Jonathan por todo lo que ha publicado, me ha sido de gran utilidad, estoy trabajando con un Siemens A56 el cual recibe comandos AT de un PIC18F4550, con los cuales envía un SMS a un determinado número ante una señal de alarma. Todo esto funciona correctamente, pero tengo un inconveniente y es que en ciertas ocasiones el celular se apaga en el momento en que se van a enviar los comandos o a veces envía el mensaje e inmediatamente se apaga. Esto es problema de voltajes? Tengo conectado directamente los cables Rx del Cel a Tx del PIC y Tx del Cel a Rx del PIC, además del celular sale un tercer cable que es GND, el cual estoy llevando a la tierra común de todo el circuito. Agradezco cualquier ayuda.


----------



## ericklarva (Dic 21, 2011)

No será que le estás enviando un comando para que se apague???
O como es el apagado, abrupto??
Saludos.


----------



## elektronische (Dic 21, 2011)

ericklarva dijo:


> No será que le estás enviando un comando para que se apague???
> O como es el apagado, abrupto??
> Saludos.


Sí, el apagado es abrupto y a veces se presenta antes de enviarle los comandos, por eso pensaba que podría ser problema de voltajes.

Edit: Parece que ya lo he solucinado, el pin Rx del celular a veces estaba recibiendo más de 5V, le he puesto una resistencia entre el pin Tx del PIC y el Rx del celular y se ha solucionado.


----------



## ronald aliaga (Dic 21, 2011)

buenosi se apaga puede ser por los voltages como ya te lo dijieron, sin embargo talvez te sirva entender para que uso quieres manejar un celular, luego de varias vueltas yo preferi trabajar con un modem gsm directamente utilize el modem gsm de enfora y va bien en cuanto a llamdas y sms que es hasta donde hize la prueba.


----------



## cesarogonzal (Ene 10, 2012)

elektronische dijo:


> Saludos, primero que todo muchisimas gracias a Moyano Jonathan por todo lo que ha publicado, me ha sido de gran utilidad, estoy trabajando con un Siemens A56 el cual recibe comandos AT de un PIC18F4550, con los cuales envía un SMS a un determinado número ante una señal de alarma. Todo esto funciona correctamente, pero tengo un inconveniente y es que en ciertas ocasiones el celular se apaga en el momento en que se van a enviar los comandos o a veces envía el mensaje e inmediatamente se apaga. Esto es problema de voltajes? Tengo conectado directamente los cables Rx del Cel a Tx del PIC y Tx del Cel a Rx del PIC, además del celular sale un tercer cable que es GND, el cual estoy llevando a la tierra común de todo el circuito. Agradezco cualquier ayuda.



hola. el tren de pulsos que manda y recibe el pic es de 5v mientras que el del celelular es de 3.7v. el voltaje del emisor del pic lo puedes bajar con una resistencia y un diodo zener. que es el mas importante. los 5v del receptor no siempre es necesario. sin embargo lo puedes convertir con un transistor. es muy facil. en google sale como hacerlo.


----------



## elektronische (Feb 2, 2012)

Ahora que ya logré que funcionara bien el envío de sms desde el pic, estoy tratando que este lea el primer sms que está almacenado en el celular, para ello, debo enviarle este comando AT:

AT+CMGR=1

Lo he probado en hyperterminal y me lee correctamente esto:
0791751330512411040AA1034084375200002120203170420A0131

Para lograr que se enviaran sms desde el pic, tuve que enviarle aparte de los comandos conocidos, este comando AT con el mensaje en formato PDU al celular y funcionó bien:
          printf("079175133051000311000A9103408437520000AA2FD332081D0695DDE3B29B9C26BF41EC3028CC0ECBDB6116485EB6A7E76110BD0E0AD6E9EFF6DB9E66BB00");

Mi duda es, hay forma que el pic así mismo como le envía en formato ASCII el mensaje en PDU, lo pueda leer en ese mismo formato, para tener algo como:

if ( puerto rx pic = 0791751330512411040AA1034084375200002120203170420A0131 )

y que se encienda un led o algo bien básico para comprobar que el pic está leyendo correctamente esa cadena. Esta lectura se haría por el puerto Rx del PIC?

Agradezco sus sugerencias.


----------



## cbrizuela (Feb 9, 2012)

Favor comparti el codigo realizado en el 2012


----------



## rienqui (Abr 5, 2012)

amigo elektronische, podrias compartir el codigo que hicite en el pic para enviarle los comandos at al cel y poder enviar lo mensajes? de antemano muchisimas gracias, quiero adaptarlo a mi proyecto, ya tengo la interfaz en el pc (netbeans) en el cual  ingreso el cel de de destino y el mensaje, ya estoy enviando estos datos al pic por conxion usb (pic 18f4550) para corroborar que los datos me llegaron bn los estoy vidualizando en una lcd y todo esto funciona, ahora lo que quiero es que este mensaje que lo envie desde la interfaz en el pc se envie al celular(MODEM) y por medio de los comandos AT se envien a otro celular 
GRACIAS nuevamente


----------



## cesarogonzal (Abr 7, 2012)

hola que tal? como han estado??? ire al grano.. como no pude comprobar nunca un nokia decente (solo nuevos con tecnologia symbian -- esta tecnologia guarda los mensajes en una direccion inaccesible para los comandos AT-- y solo por datos usb), solo un sony ericcson pero por datos usb y solo aceptaba modo pdu, me di a la tarea de conseguir el nokia 3220 (muy raro en mi pais) del que la mayoria habla en los proyectos con su respectivo cable ca-42... cambie el SO a windows XP e instale el PC suite de Nokia (uno no tan nuevo) logre que la computadora me reconozca el 3220 por medio de pcsuite. pero cuando trato de hacer coneccion por el Hyperterminal para hacer los ensayos no hace nada.. lei que el modo modem del celular se activa con el pcsuite, pero cuando se apaga se desactiva. trato de activarla y nunca apagarlo pero tampoco nada.. las personas que lo han hecho como lo hicieron parfa???????


----------



## cesarogonzal (Abr 7, 2012)

amigo tengo tu mismo problema. si ya lo solucionsate por favor instruyeme. lo digoo porque la publicacion tiene algun tiempo ya....


----------



## Moyano Jonathan (Abr 7, 2012)

> Favor comparti el codigo realizado en el 2012





> amigo elektronische, podrias compartir el codigo que hicite en el pic para enviarle los comandos at al cel y poder enviar lo mensajes?





> lei que el modo modem del celular se activa con el pcsuite, pero cuando se apaga se desactiva. trato de activarla y nunca apagarlo pero tampoco nada.. las personas que lo han hecho como lo hicieron parfa???????





> amigo tengo tu mismo problema. si ya lo solucionsate por favor instruyeme. lo digoo porque la publicacion tiene algun tiempo ya....



Gente, espero no les moleste lo que les voy a escribir:

1 - Una de las políticas del foro es ayudar siempre y cuando se vea un trabajo de investigación por detrás.

Es decir, si vos primero hiciste un programa y no te funcionó:
a - revisar que no tenga errores de sintaxis.
b - revisar que la lógica sea correcta.
c - preguntar dudas puntuales en el foro.

Lo que no se hace: Pedir a gente que ha investigado algo y desarrollado ...el código listo para que otro lo vea sin siquiera entender como funciona.

Dicho eso, espero me entiendan, les dejo lo que necesitan:


```
// Pruebas MODEM SIM300 - Ejercicio Nº3.
// Ejercicio: Envío de mensajes y recepción del OK.
// Microcontrolador utilizado: PIC16F88.
// Plataforma: PLC12 - Módulo de desarrollo GSM.
// Programador: Moyano Jonathan.
// Versión del compilador: v4.114

// Definimos el microcontrolador utilizado.
#include <16F88.h>
// Conversor de 10 bits con justificación a la derecha.
#device ADC=10
// Configuramos velocidad de operación.
#use delay(clock=8000000) // Clock: 8Mhz.

// Configuramos fusibles de programación.
#fuses INTRC_IO    // Oscilador interno.
#fuses NOWDT       // No utilizamos el perro guardian.
#fuses NOPROTECT   // Memoria de programa no protejida.
#fuses PUT         // Power-up timer activado.
#fuses NOMCLR      // NO Master clear reset.
#fuses NOBROWNOUT  // Reset por bajo voltaje desactivado.
#fuses NOLVP       // Programación con bajo voltaje desactivado.
#fuses NOCPD       // Memoria EEPROM no protejida.
#fuses NOWRT       // NO habilitar escritura en memoria FLASH.
#fuses NODEBUG     // No incluir código para debug.

// Configuramos los puertos RS232 utilizados.
#use rs232(baud=9600, xmit=PIN_B5,rcv=PIN_B2,errors,stream=SIM300)  // RS232 - SIM300.
#use rs232(baud=9600, xmit=PIN_B3,rcv=PIN_B0,errors,stream=DEBUG)   // RS232 - DEBUG.

// Utilizamos el modo de acceso rápido a los puertos.
#use fast_io(A)
#USE fast_io(B)

// Incluimos librerías utilizadas.
#include <string.h>   // Funciones para el manejo de cadenas.
#include "AUXILIAR.c" // Funciones generales de configuración.
#include "SIM300.c"   // Funciones de control del módulo GSM SIM300.


///////////////// Recepción de datos del modem GSM ////////////////////

#int_RDA

void RDA_isr()
{
USART_buffer[USART_nextRec]=fgetc(SIM300);
if(USART_buffer[USART_nextRec]!=0x0A)USART_nextRec++;
if(USART_nextRec==bytes_for_USART_buffer)USART_nextRec=0;
}

void main() {

 configurar_parametros();  // Configuramos parámetros principales.
 SIM300_on();              // Encendemos el módulo GSM SIM300.
 enviar_SMS(msg,tel1);     // Enviamos mensaje con la función.
 
  while(true){}
 
   }
```


```
// Funciones de configuración del módulo SIM300.
// Versión 0.1 estable.
// Programador: Moyano Jonathan.

// Declaramos funciones usadas:

void  SIM300_on(void);                        // Encendemos y configuramos el módulo SIM300.
short responde_OK(void);                      // Determina si un comando AT responde OK.
void  enviar_SMS(char *texto, char *tel);     // Envía un mensaje de texto a un número especificado.

// desarrollo de las funciones del modem:

void SIM300_on(void){

  // Habilitamos interrupciones.
 enable_interrupts(GLOBAL);
 enable_interrupts(int_rda);
 
  PSSIM300_OFF          // Apagamos la fuente del SIM300.
  SIM300_PWRKEY_OFF     // PRWKEY=0;
  delay_ms(1000);       // Esperamos 1 seg.
  PSSIM300_ON           // Encendemos la fuente del SIM300.
  delay_ms(500);        // Esperamos 1/2 seg.
  SIM300_PWRKEY_ON      // PWRKEY=1;
  delay_ms(1500);       // Esperamos 1-1/2 seg.
  SIM300_PWRKEY_OFF     // PRWKEY=0;
  delay_ms(30000);      // Esperamos 40 segundos el Call Ready.
  fputs("AT",SIM300);
  delay_ms(10000);     
  fprintf(SIM300,"AT\n\r");                    // Comando de verificación.
  delay_ms(500);                               // Esperamos 500ms.
  responde_OK();                               // Espera la respuesta al comando.
  fprintf(SIM300,"ATE0\n\r");                  // Eco OFF.
  delay_ms(500);                               // Esperamos 500ms.
  responde_OK();                               // Espera la respuesta al comando.
  fprintf(SIM300,"AT+CMGF=1\n\r");             // Configuramos modo texto.
  delay_ms(500);                               // Esperamos 500ms.
  responde_OK();                               // Espera la respuesta al comando.
  fprintf(SIM300,"AT+CPMS=\"SM\",\"SM\"\n\r"); // Selecciono la mememoria SIM para recibir y leer SMS.
  delay_ms(500);                               // Esperamos 500ms.
  responde_OK();                               // Espera la respuesta al comando.
  fprintf(SIM300,"AT+CNMI=2,2,0,0,0\n\r");     // Los mensajes de texto, una vez recibidos son enviados directamente al buffer de la USART.
  delay_ms(500);                               // Esperamos 500ms.
  responde_OK();                               // Espera la respuesta al comando.
  inicializo_buffer();                         // Limpiamos el buffer de recepción.
  
}

short responde_OK(void){

// Si el modem responde OK -> retorna 1. caso 
// contrario retorna 0.

short respuesta=0x00;

ptr=strstr(USART_buffer,OK_RESP);    // Busca el comando OK en el buffer.
    if(strncmp(ptr,OK_RESP,2)==0){   // Si lo encuentra.. 
       respuesta=0x01;               // respuesta válida --> 0x01.
       OUT1_ON OUT2_OFF              // Enciende LED1. (OK).
   }else{respuesta=0x00;             // Enciende LED2. (ERROR).
         OUT1_OFF OUT2_ON }          // Si no lo encuentra, respuesta errónea --> 0x00.
 inicializo_buffer();                // Limpiamos el buffer de recepción.        
 return(respuesta);                  // Retornamos con la respusta al comando.
 
}


void enviar_SMS(char *texto, char *tel){

 fprintf(SIM300,"AT+CMGS=\"%s\"\r",tel); // Teléfono al cúal le enviaremos el mensaje.
 delay_ms(500);                          // Esperamos 500ms.
 fprintf(SIM300,"%s",texto);             // Imprimimos mensaje a enviar.
 delay_ms(500);                          // Esperamos 500ms.
 fprintf(SIM300,"%c",0x1A);              // Comando para enviar el mensaje. Equivale al CRTL+Z.
 delay_ms(5000);                         // Esperamos 5 segundos.
 responde_OK();                          // Espera la respuesta al comando.
 
}
```


```
// Configuraciones y funciones generales para PLC12.
// Programador: Moyano Jonathan.

// Declaramos funciones usadas:

void configurar_parametros(void);  // Parámetros iniciales del programa.
void inicializo_buffer(void);      // Borramos el buffer de recepción.

/* Definimos el hardware utilizado:

---------
Puerto A:
---------
RA0 ----> OUT1       --> salida digital 1.
RA1 ----> OUT2       --> Salida digital 2.
RA2 <---- AN0        --> Entrada analógica 0.
RA3 <---- AN1        --> Entrada analógica 1.
RA4 ----> Relé       --> salida potencia.
RA5 ----- N/A (MCLR)
RA6 <---- INP1       --> Entrada digital 1.
RA7 <---- INP3       --> Entrada digital 3.

---------
Puerto B:
---------
Rb0 <---- Rx_DEBUG   --> Entrada RS232 - Debug.
Rb1 <---- INP4       --> Entrada digital 4.
Rb2 <---- Rx_SIM300  --> Entrada RS232 - GSM.
Rb3 ----> Tx_DEBUG   --> Salida  RS232 - Debug.
Rb4 ----> SIM300_PS  --> SIM300  Power Supply. ON=1 OFF=0
Rb5 ----> Tx_SIM300  --> Salida  RS232 - GSM.
Rb6 ----> PowerKey_SIM300 --> ON/OFF SIM300. ON=0 OFF=1
Rb7 <---- INP2       --> Entrada digital 2.

*/

// Definimos macros de hardware:

#define PULSADOR1 PIN_A6 // Pulsador 1 - Activo en nivel bajo.
#define PULSADOR2 PIN_B7 // Pulsador 2 - Activo en nivel bajo.
#define PULSADOR3 PIN_A7 // Pulsador 3 - Activo en nivel bajo.
#define PULSADOR4 PIN_B1 // Pulsador 4 - Activo en nivel bajo.

#define PWRKEY   PIN_B6 // Pin PWRKEY SIM300.
#define PSSIM300 PIN_B4 // Fuente del SIM300.
#define OUT1     PIN_A0 // OUT 1 - Activo a nivel alto.
#define OUT2     PIN_A1 // OUT 2 - Activo a nivel alto.
#define RELAY    PIN_A4 // RELE  - Activo a nivel alto.

#define OUT1_ON  output_high(OUT1);  // Encendemos OUT1.
#define OUT1_OFF output_low(OUT1);   // Apagamos   OUT1.
#define OUT2_ON  output_high(OUT2);  // Encendemos OUT2.
#define OUT2_OFF output_low(OUT2);   // Apagamos   OUT2.
#define RELAY_ON output_high(RELAY); // Encendemos RELE.
#define RELAY_OFF output_low(RELAY); // Apagamos   RELE.

// Estado de las entradas digitales.
#define ESTADO_PULSADOR1 input(PULSADOR1)
#define ESTADO_PULSADOR2 input(PULSADOR2)
#define ESTADO_PULSADOR3 input(PULSADOR3)
#define ESTADO_PULSADOR4 input(PULSADOR4)

// Estado de las salidas digitales.
#define ESTADO_OUT1 input(OUT1)
#define ESTADO_OUT2 input(OUT2)
#define ESTADO_RELE input(RELAY)

// Macros del módulo SIM300.

#define SIM300_PWRKEY_ON    output_high(PWRKEY);  // SIM300 ON.
#define SIM300_PWRKEY_OFF   output_low(PWRKEY);   // SIM300 OFF.

#define PSSIM300_ON  output_high(PSSIM300);       // Power Supply SIM300 ON.
#define PSSIM300_OFF output_low(PSSIM300);        // Power Supply SIM300 OFF.

// Variables interrupciones.
#define bytes_for_USART_buffer 75                   // Tamaño del buffer de la USART.

volatile int8 USART_buffer[bytes_for_USART_buffer]; // Buffer de la USART.

volatile int8 USART_nextRec=0;                      // Contador de caracteres recibidos.

// Punteros.
char *ptr;

// Comandos soportados: (v0.1)

/*
OK   >> Comando de respuesta del módulo.
*/

char OK_RESP[]="OK";   // Comando: 2 caracteres.


// Variables auxiliares.

int8 i=0;  

// Variables para mensajes de texto.

// Teléfonos de destinatarios:
char tel1[12]="xxxxxxxxxx";
// Mensajes fijos.
char msg[14]="HOLA MUNDO !!";


// desarrollo de funciones de usuario:

void  configurar_parametros(void) {

// Configuramos E/S:
set_tris_a (0b11101100); // RA7 a RA0.
set_tris_b (0b10000111); // RB7 a RB0.
// Configuramos el oscilador.
setup_oscillator(OSC_8MHZ);
// Desactivamos las interrupciones.
disable_interrupts(GLOBAL);
disable_interrupts(INT_rda);
// Configuramos el conversor AD.
SETUP_ADC(ADC_CLOCK_DIV_16); // Clock/16.
SETUP_ADC_PORTS(sAN2|sAN3|VSS_VDD); // Canal AD: 2 y 3 ; referencia: 0 - VDD.

// Iniciamos los puertos:
RELAY_OFF // Apagamos   RELE.
OUT1_OFF  // Apagamos   OUT1.
OUT2_OFF  // Apagamos   OUT2.

}

void inicializo_buffer(void){ 

 USART_nextRec=0; // Inicializo el contador de datos entrantes.
  for(i=0; i<=bytes_for_USART_buffer; i++){ // Borro el contenido del buffer de datos.
   USART_buffer[i]='\0';}

}
```

Los códigos están pensados para un SIM340D, lo demás lo pueden investigar


----------



## rienqui (Abr 7, 2012)

muchas gracias amigo


----------



## RodFIE (Jul 26, 2012)

Estoy tratando de hacer la conexión de un celular nokia 6101 a un pic 18f4550. Ya probé en hiperterminal todos los comandos y funcionaron bien. A la hora de conectar el celular al micro, puedo hacer una llamada exitosamente usando comandos AT pero el problema se viene en el cable Rx. Al querer leer la respuesta del celular, nunca obtengo nada. Espero alguien me pueda ayudar.


----------



## motitaverde (Jul 27, 2012)

RodFIE dijo:


> Estoy tratando de hacer la conexión de un celular nokia 6101 a un pic 18f4550. Ya probé en hiperterminal todos los comandos y funcionaron bien. A la hora de conectar el celular al micro, puedo hacer una llamada exitosamente usando comandos AT pero el problema se viene en el cable Rx. Al querer leer la respuesta del celular, nunca obtengo nada. Espero alguien me pueda ayudar.




Si puedes subir el diagrama? tal vez el problema este en el circuito...


----------



## RodFIE (Jul 27, 2012)

Lo que pasa es que tengo un Pickit, y le bajé el voltaje a 3.3 volts para poder trabajar con los mismos niveles de voltaje que el celular.


----------



## motitaverde (Jul 27, 2012)

ahh ok... puedes probar con algun circuito (interfaz) con transistores o max232 para que puedas trabajar con niveles logicos a 5v. a mi me ha sucedido lo mismo, pero agrego la interfaz y se corrige el problema, solo tienes que cambiar el codigo de true a false o viceversa ya que la interfaz invierte los datos.


----------



## RodFIE (Jul 27, 2012)

Pues voy a intentarlo, gracias. Aún así se me hace raro que si pueda yo enviarle datos sólamente.


----------



## cal (Jul 28, 2012)

hola sabes si el sony ericson w200 se puede conectar con la pc por el hyperterminal
yo prove 
y nada ademas cual es el pin de tx y rx solo tiene conexion por usb 
ayuda  por fa tu ya lo hiciste con el k750 y dime la conexion es directa a la pc claro con sus diodos de 3.3v paro nada mas
crees que el SE w200 tiene tx y rx


----------



## cal (Ago 9, 2012)

muy bien amigo. 
sabes si el sony ericsson t106 puede hacer lo mismo como conectar cmon la pc y si tiene comandos at creo que no sierto


----------



## Leandro alt (Sep 4, 2012)

Nestor Nieto dijo:


> Hace un año implemente la notificacion de alarmas a traves de SMS en un sistema SCADA, arme una aplicacion en VB6 que se conecta . . . .


hola nestor yo estoy arrancando hacer un proyecto con pic y un celular sony ericsson la cuestion es que necesito informacion sobre los comandos at de este celular y si podes el circuito para coonectarlo con el pic gracias de todos modos


----------



## sdel (Sep 4, 2012)

Yo con un sony ericsson t290 logre enviar sms y realizar llamadas con un pic, lo que no logre nunca fue leer un mensaje con el pic, es decir enviarle al pic un sms, intente de varias formas y con distintos compiladores y lenguajes, use assembler, c18, c de ccs y no hubo caso. Nunca pude encontrar el problema.

Lo mejor para un sistema serio es usar esta plaquita desarrollada por mcelectronics, viene con el sim900, solo hay que conectarle el pic por usart y enviarle los comandos at.


http://issuu.com/mcelectronics/docs/microstick_gsm


----------



## Leandro alt (Sep 4, 2012)

lograste realizar una llamada al sony ericsson y de ahi que el pic atraves de esa llamada realice un proceso??
porq lo que quiero lograr es eso realizar una llamada y de acuerdo a esa llamada poder abrir un porton. no se si usar un celular como módem o comprar un modem GPRS para que me reciba la llamada si me podes ayudar con esto te agradecería ya que estoy indeciso por cual tomar.. de todos modos mucha gracias por la ayuda.


----------



## sdel (Sep 12, 2012)

Leandro alt dijo:


> lograste realizar una llamada al sony ericsson y de ahi que el pic atraves de esa llamada realice un proceso??
> porq lo que quiero lograr es eso realizar una llamada y de acuerdo a esa llamada poder abrir un porton. no se si usar un celular como módem o comprar un modem GPRS para que me reciba la llamada si me podes ayudar con esto te agradecería ya que estoy indeciso por cual tomar.. de todos modos mucha gracias por la ayuda.



Lo mejor es usar un modulo, yo con el celular logre cosas a medias. Por ejemplo con el pic no pude lograr leer un sms nuevo, si bien el celular le respondía los comandos, el pic no lograba leerlos. Use compuertas para adaptar niveles de tensión, use bjt, etc. Al final desistí y compre la plaquita del enlace de arriba.

Saludos.


----------



## Meta (Sep 12, 2012)

sdel dijo:


> Lo mejor es usar un modulo, yo con el celular logre cosas a medias. Por ejemplo con el pic no pude lograr leer un sms nuevo, si bien el celular le respondía los comandos, el pic no lograba leerlos. Use compuertas para adaptar niveles de tensión, use bjt, etc. Al final desistí y compre la plaquita del enlace de arriba.
> 
> Saludos.



Para que el celular o movil pueda leerlo, debe controlarlo al 100%. 

Para tenerlo más fácil, un módulo para ello con ejemplos incluido.





https://docs.google.com/file/d/0B6UWkqxoeNcNbTFaM3BpTzdVOUE/edit

Un saludo.


----------



## Leandro alt (Oct 1, 2012)

esta muy bueno ese modulo el tema es que no esta aca en la Argentina no sabes de alguna empresa que se dedique hacer estos modulos??sabes mas o menos al precio en que pueden estar
el MCE MicroStick GSM es igual al que decis?? gracias por los aportes.


----------



## ricbevi (Oct 1, 2012)

Leandro alt dijo:


> esta muy bueno ese modulo el tema es que no esta aca en la Argentina no sabes de alguna empresa que se dedique hacer estos modulos??sabes mas o menos al precio en que pueden estar
> el MCE MicroStick GSM es igual al que decis?? gracias por los aportes.



Hola...En argentina tenes también en  Cika (http://www.cika.com/ ) y otros el SIM900 y su Kit de desarrollo.
Saludos.

Ric.


----------



## Moyano Jonathan (Oct 1, 2012)

Yo personalmente tengo el kit de desarrollo de SIMCOM para el SIM900 (de Cika) y me parece que por el momento es lo mejor que bien (en cuanto a diseño). Eso si el precio es un poco prohibitivo, U$S120, pero al comprarlo tenes algo completo y funcional.

saludos !


----------



## ronnyleiva (Oct 28, 2012)

hola yo tengo problema de comunicar el cel 3220 con el pic para enviar un comando at estoy usando flowcode y ni idea por donde empesar


----------



## Mandi (Nov 10, 2012)

Hola! Alguien que pueda orientarme?? Planteo lo que llevo hasta ahora: uso un sony ericsson k500i 
responde a comandos AT y ya comprobé con la hyperterminal enviando un SMS a otro celular desde la hyperterminal con el sony ericsson. 
Lo que quiero hacer es enviar un SMS pero utilizando un micro (atmega32) en lugar de la PC, conectado a el celular. He investigado y he visto que algunos lo han hecho, pero yo no he podido encontrar la forma.
De antemano Gracias por su aportación!


----------



## AG-1 (Nov 20, 2012)

Leandro alt dijo:


> lograste realizar una llamada al sony ericsson y de ahi que el pic atraves de esa llamada realice un proceso??
> porq lo que quiero lograr es eso realizar una llamada y de acuerdo a esa llamada poder abrir un porton. no se si usar un celular como módem o comprar un modem GPRS para que me reciba la llamada si me podes ayudar con esto te agradecería ya que estoy indeciso por cual tomar.. de todos modos mucha gracias por la ayuda.


 

Si unicamente quieres manejar un puerto, puedes utilizar un modem GSM que disponga de al menos un puerto de salida y que permita cargarle una aplicacion embebida. Implementas la aplicacion, la subes al modem y listo(de esta forma el circuito que realices sera bastante simple)


----------



## Leandro alt (Feb 2, 2013)

Hola sdel, sabes que compre el modulo microstick gsm y estoy empezando hacer un proyecto. Quería saber si me podes ayudar a utilizar este modulo ya que vos ya lo has usado lo que quiero es realizar una llamada de un celular al modulo y de ahi que el modulo me reconosca el numero y que me envie una señal a un pic y de ahi abrir un porton. 
         Si sabes de donde puedo sacar ejemplos o algo que me ayude a comprender como tengo que hacer te agradeceria muchisimo.
         Si tenes alguna duda de lo que quiero hacer preguntame y te explico mejor.
         Desde ya muchas gracias. Saludos cordiales


----------



## royer17486 (Jun 27, 2013)

mi problema es el siguiente *ç*:
conecte un celular nokia 3220 con un pic 16f877A y logra envar
mensajes de texto ,, hasta ahi todo bien .
el conflicto surge a raiz de q*UE* deseo recibir mensajes a ese celular y obtener el numero  de destinatario y el mensaje q*UE* envia para poder desactivar un sistema de alarma q*UE* estoy realizando..

no se si es por mi conexion  la cual es directa con un inversor hexadecimal para nivelar los voltajes entre el TX(celular) y RX(PIC) o por el codigo ya probe todo lo q*UE* pude encontrar tanto con interrupciones como con funciones usando los comantos AT para leer sms 
perr no funciona te agradeceria me des una ayudita en ese asunto por favor..

envia los comandos al celular pero no puede recabar la respuesta q*UE* envia el celular... ayuda por favor


----------



## Chico3001 (Jun 27, 2013)

Y el diagrama?? y el programa??

Adivinos no somos...


----------



## royer17486 (Jun 27, 2013)

Este es el código.

```
#include ".....\SMS\sms.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LED  PIN_C0

char NUMERO[]="123456789";
int buffer[80];
char ok[]="OK";
char clave[]="ON";

#int_rda
void rda_isr(void){
if(kbhit()!=0)
{
//buffer[i++]=getc();
gets(buffer);
DatoRx=1;
}
}


void leer()
{
printf("AT+CMGL=");
putchar(0x22);
printf("REC UNREAD");
putchar(0x22);
putchar(0X0D);


if(DatoRx==1){
   if(strstr(buffer,clave)!=null&&strstr(buffer,NUMERO)!=NULL)
   { 
   lcd_putc("\fALARMA ON");
    output_high(STATUS_LED);
    init_buffer();
    delay_ms(500);
      DatoRx=0;
    flac=0;
    activado=1;
    }
}


void main()
{ 
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   enable_interrupts(Global);
   enable_interrupts(INT_RDA);
printf("AT+CMGF=1");
putchar(0X0D);
delay_ms(500);
printf("AT+CNMI=1,2,0,0,0");
putchar(0X0D);

  while (TRUE) 
    {       
         leer_sms();
      if(activado==1)
       {
         output_high(LED);
       }
          
   }
  
}
```

Lo q*ue* necesito es recabar la información de los mensajes recibidos pero no leídos.


----------



## drago109 (Jul 25, 2013)

royer17486 dijo:


> Este es el código.
> 
> ```
> #include ".....\SMS\sms.h"
> ...


 
Buenas amigo. Esta semana empecé un proyecto igual que el tuyo para activar y desactivar una alarma.

Puedo enviar mensajes desde el pic sin problemas. Pero  al momento de recibir un mensaje en el pic y querer darle una función  al pic se me pega sin respuesta.

Por favor si solucionaste me puedes decir como lo hiciste. Seria de gran ayuda.

EStoy usando el pic16f877a, un modulo gsm SIM900 y programo con CCS Compiler.

un ejemplo de una función al leer el mensaje.

while (true){
   IF (kbhit () ){      //Detecto si hay un carácter en la entrada
   gets(dato);                  //Leer Mensaje de llegada después del enter que envía el SIM900
   }

if(dato[1]== 'R' &&dato[2]== 'I' &&dato[3]=='N' &&dato[4]=='G'){  //Detecta si 
//el mensaje dice RING
delay_ms(100);
puts("ATH");                //Tranco la llamada
delay_ms(300);
putchar(0x0d);            //Envió un enter por acaso
printf("ATZ\r");             //Restauro el SIM900
delay_ms(2000);
output_high(pin_E2);   //Pongo en alto el pin E2 para activar la alarma
lcd_init();
}


Saludos


----------



## nitsuga2585 (Oct 31, 2013)

buenas si alguien me puede ayudar estuve todo el dia con esto, tengo un pic18f4550 y un cel nokia 3220. la comunicacion con el nokia y la pc atraves de virtual terminal no tengo problemas pero no logro comunicar el nokia con el pic. programo en c18 estos son los comandos que utilizo para enviar:


```
putsUSART(dato1);         //dato1="AT\r\n";

    Delay10KTCYx(256);    
    Delay10KTCYx(256);
    Delay10KTCYx(256);    
    Delay10KTCYx(256);

    putsUSART(dato2);                 //dato2=AT+CMGF=1\r\n"
    Delay10KTCYx(256);
    Delay10KTCYx(256);
    Delay10KTCYx(256);    
    Delay10KTCYx(256);

    putsUSART(dato3);                  //dato3="AT+CMGS=\"2995510765\"\r\n";
    Delay10KTCYx(256);
    Delay10KTCYx(256);
    Delay10KTCYx(256);    
    Delay10KTCYx(256);
    Delay10KTCYx(256);
    Delay10KTCYx(256);
    Delay10KTCYx(256);    
    Delay10KTCYx(256);

    putsUSART(dato4);                 //dato4="Esto es una prueba";
    Delay10KTCYx(256);
    Delay10KTCYx(256);    
    Delay10KTCYx(256);

    putcUSART(0x1A);              //ese comando es ctl +z
       putsUSART(dato5);          //"\r\n"
    Delay10KTCYx(256);
    Delay10KTCYx(256);    
    Delay10KTCYx(256);           
    Delay10KTCYx(256);

    CloseUSART();            //cierra el puerto
```

por favor diganme cual es el error


----------



## nitsuga2585 (Nov 26, 2013)

bueno me contesto yo solo jaj, me faltaba el comando del enter. y todabia no lo probe pero mando los comandos letra por letra no como string, me resultaba mas facil verlos en el osciloscopio. ademas ahi me di cuenta que tenia mal identificado los cables, eso fue porque pense que el conector al cel empezaba en una rendija cuando en realidad empezaba en la siguiente jaj. ahora estoy viendo como mandar un string del micro (c18) al visual basic (c#) por medio de un textbox


----------



## mariacontenis (Feb 26, 2014)

Este programa lo que hace es detectar un RING cuando llamas por celular y después de ello inicia un contador descendente de 30 segundos a 0. De los 29 a los 27 segundos enciende un led y después de ello lo apaga (este led es para activar una carga por 2 segundos). El problema es que si lo hace pero solo una vez y después de hacer todo el ciclo ya no lo vuelve ah realizar, es decir marco al numero y ya no lo hace otra vez. alguien me puede orientar o dar su opinión.


```
#include <18F4550.h>
         #fuses PLL1,CPUDIV1,USBDIV,XTPLL,NOFCMEN,NOIESO,PUT,NOBROWNOUT,VREGEN,NOWDT,NOPBADEN,MCLR,NOSTVREN,NOLVP,NODEBUG,PROTECT,NOSTVREN,NOCPB,NOWRT      
         #use delay(clock=48000000) 
         //#include <lcd4x20.c>
         #use rs232(baud=9600, xmit=PIN_c6, rcv=PIN_c7, parity=N, bits=8)
         #byte porta = 0xF80 #byte portb = 0xF81 #byte portc = 0xf82 #byte portd = 0xf83 #byte porte = 0xf84
         #priority rda       
         
         #define BUFFER_SIZE 60 //Buffer size you can adjust this size
         char buffer[BUFFER_SIZE];            // buffer
         char b=0x00;                     // Last characters recived
         int  xbuff=0x00;
         int i; 
          
         int segundos=30,start=0;
         int1 desbordamiento=0;
         
         #INT_TIMER0
         void retardo_trm0 (void)
         {
         set_timer0(18660); desbordamiento=1;
         }        
         
         #int_RDA  
         RDA_isr() { if(kbhit()){b=getc();buffer[xbuff++]=b;}return 0;}
           
         void inicbuff(void)
         {for(i=0;i<buffer_size;i++){ buffer[i]=0x00; restart_wdt(); } xbuff=0x00; }
            
         void main()
         { 
         //lcd_init();
         inicbuff(); 
         enable_interrupts(int_rda); 
         enable_interrupts(INT_TIMER0);
         setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
         set_timer0(18660);
         enable_interrupts(global);
         
         
         while (true)
         {//lcd_gotoxy(2,1); printf(lcd_putc,"%02u",segundos);
         if(buffer[2]=='R' && buffer[3]=='I' && buffer[4]=='N' && buffer[5]=='G') { delay_ms(100); start=1;}  
         if (start==1 && desbordamiento==1) { desbordamiento=0; segundos--; }       
         if (segundos<=29 && segundos>=27){ output_high(pin_a0);}                                                               
         if (segundos<=26 && segundos>=1){ output_low(pin_a0); 
         if (segundos==0){ segundos=30; start=0; inicbuff(); }}                                                                         
         }         
         }
```



El PDF adjunto les indica como recibir sms. Bien explicado espero les sea de gran ayuda.


----------



## papirrin (Feb 27, 2014)

ya viste si se tiene que reiniciar alguna bandera en la interrupcion RDA.

estuve viendo y podria ser esta:


> bit 3 SSPIF: Master Synchronous Serial Port Interrupt Flag bit
> 1 = The transmission/reception is complete (must be cleared in software)
> 0 = Waiting to transmit/receive


----------



## mariacontenis (Feb 27, 2014)

Que tal amigo, gracias por responder. Lo que yo había hecho hera desabilitar la interrupción rda después del if que detectaba el RING y la volvía a habilitar cuando segundos= 0. Pero un flag como bandera no lo hice. Donde podría ir?


----------



## papirrin (Feb 27, 2014)

aqui:

        #int_RDA  
         RDA_isr() { if(kbhit()){b=getc();buffer[xbuff++]=b;}return 0;pir1.3=0;}

el registro es el pir1 y el bit es el 3, no se que compilador utilizas por eso pongo pir1.3 pero podria ser otra manera de llamarlo.


----------



## papirrin (Feb 27, 2014)

me quede pensando, si es CCS me parece que es asi:


> #int_RDA
> RDA_isr() { if(kbhit()){b=getc();buffer[xbuff++]=b;}return 0;clear_interrupt(int_rda);}


----------



## mariacontenis (Feb 27, 2014)

Ok, lo voy aplicar y posteó el código cuando este haciendo lo requerido. Gracias por tu cooperar
En el foro todopic no me contestó nadie.

De cualquier manera cualquier ayuda es bienvenida. Gracias amigos del foro.


----------



## mariacontenis (Mar 21, 2014)

Bien, pues ya logré encender un led con una llamada a celular.
Después de detectar un RING enciende un led durante 2 segundos y lo apaga.

Aquí se los dejo. Dios les bendiga hnos.


```
#include <18F4550.h>
         #fuses PLL1,CPUDIV1,USBDIV,XTPLL,NOFCMEN,NOIESO,PUT,NOBROWNOUT,VREGEN,NOWDT,NOPBADEN,MCLR,NOSTVREN,NOLVP,NODEBUG,PROTECT,NOSTVREN,NOCPB,NOWRT      
         #use delay(clock=48000000,RESTART_WDT) 
         //#include <lcd4x20.c>
         #use rs232(baud=9600, xmit=PIN_c6, rcv=PIN_c7, parity=N, bits=8,restart_wdt)
         #byte porta = 0xF80 #byte portb = 0xF81 #byte portc = 0xf82 #byte portd = 0xf83 #byte porte = 0xf84
         #priority rda       
         
         #define BUFFER_SIZE 60                          
         char buffer[BUFFER_SIZE];                      
         char b=0x00;                                    
         int  xbuff=0x00;
         unsigned int16 seg=0;
         int1 desborde=0,star=0;
         
         #INT_RTCC                                    
         void clock_isr() 
         { set_timer0(19531); desborde=1; } 
         
         #int_RDA
         RDA_isr() { if(kbhit()){ b=getc(); buffer[xbuff++]=b; } return 0; clear_interrupt(int_rda); }
         
         void inicbuff(void)
         { int i; for(i=0;i<buffer_size;i++){ buffer[i]=0x00; restart_wdt(); } xbuff=0x00; }            
         
         void main()
         { 
         //lcd_init();
         inicbuff();
         setup_timer_0(RTCC_INTERNAL | RTCC_DIV_256 );
         set_timer0(19531);        
         enable_interrupts(INT_RTCC);
         enable_interrupts(INT_RDA); 
         enable_interrupts(GLOBAL);
         star=0; desborde=0;
         
         while (true)
         {
         //lcd_gotoxy(2,1); printf(lcd_putc,"%02lu",seg);
         if (buffer[2]=='R' && buffer[3]=='I' && buffer[4]=='N' && buffer[5]=='G') { printf("AT+CHUP");delay_ms(100); inicbuff(); star=1;}  
         if (star==1 && desborde==1) {desborde=0; seg++;}       
         if (seg>=1 && seg <=3) {output_high(pin_a0);}                                                               
         if (seg>=4 && seg<=15) {output_low(pin_a0);}
```


----------



## kapotik (Jun 29, 2014)

hola necesito enviar un mensaje a multiples destinatarios, alguien sabe como seria en comandos at?
saludos


----------



## Chico3001 (Jun 30, 2014)

Creo que no puedes.. forzosamente necesitas usar variasveces el mismo comando AT


----------



## ElFabroDeLaGente (Feb 23, 2016)

Hola. ¿Qué tal?
Tengo un shield GSM/GPRS SIM900 y un Arduino Mega 2560.
Lo único que logré hacer hasta ahora, es que la placa envíe mensajes de texto y también llame a un celular.

Lo que no me funciona es recibir mensajes o llamadas desde un celular.
Adjunto el código para recibir SMS desde el celular porque la verdad no sé por qué no me funciona.

El programa debería de encender un LED conectado al pin 13 de la Mega 25560 cada vez que se manda un SMS desde un celular hacia la placa GSM.


```
#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8);

char incoming_char=0;

void setup()
{
  Serial.begin(19200); // for serial monitor
  SIM900.begin(19200); // for GSM shield
  SIM900power();  // turn on shield
  delay(20000);  // give time to log on to network.

  SIM900.print("AT+CMGF=1\r");  // set SMS mode to text
  delay(100);
  SIM900.print("AT+CNMI=2,2,0,0,0\r"); 
  // blurt out contents of new SMS upon receipt to the GSM shield's serial out
  delay(100);
}

void SIM900power()
// software equivalent of pressing the GSM shield "power" button
{
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(9, LOW);
  delay(7000);
}

void loop()
{
  // Now we simply display any text that the GSM shield sends out on the serial monitor
  if(SIM900.available() >0)
  {
    incoming_char=SIM900.read(); //Get the character from the cellular serial port.
    Serial.print(incoming_char); //Print the incoming character to the terminal.
    analogWrite(13,255);
    delay(2000);
    analogWrite(13,0);
    delay(2000);
  }
}
```


----------



## nelsonr (Jul 5, 2016)

Hola compañeros tengo una duda con los comandos AT
Cuando estoy configurando la preferencia de almacenado
AT+CPMS=\"SM\",\"SM\"\r" . Yo mando el comando al módem y el módem me
responde  OK MS:5,30,5,30.
Entiendo que el módem comprendio lo enviado por que me devuelve el OK
pero eso números (5,30,5,30.) que significan.
El módem es un SIM900


----------



## ricbevi (Jul 5, 2016)

nelsonr dijo:


> Hola compañeros tengo una duda con los comandos AT
> Cuando estoy configurando la preferencia de almacenado
> AT+CPMS=\"SM\",\"SM\"\r" . Yo mando el comando al módem y el módem me
> responde  OK MS:5,30,5,30.
> ...



Hola...En la actualidad tenes 5 mensajes almacenados de 30 posibles de capacidad.
Puedes consultar aquí o en la pagina del fabricante tiene unos lindos archivos PDF con toda la información y comandos.
Saludos.

Ric.


----------



## AG-1 (Jul 5, 2016)

Hola nelsonr:
El modem devuelve el estado de los almacenamientos preferidos seleccionados....

Del numero total de mensajes que puede almacenar la tarjeta SIM (esa en concreto 30) :
5 del total de 30 están utilizados  como leídos, para leer o para borrar.
5 del total de 30 están utilizados como mensajes para enviar o enviados.

Salu2.



nelsonr dijo:


> Hola compañeros tengo una duda con los comandos AT
> Cuando estoy configurando la preferencia de almacenado
> AT+CPMS=\"SM\",\"SM\"\r" . Yo mando el comando al módem y el módem me
> responde  OK MS:5,30,5,30.
> ...


----------



## nelsonr (Jul 5, 2016)

Muchas gracias compañero por su ayuda. Y discúlpeme pero ahí intrusiones que por mas que lea el manual me quedan dudas.


----------



## German Alvizo (Ago 24, 2016)

*H*ola*.* *¿Q*u*é* tal*?* *E*ncontr*é* este modem entre mis cosas del trabajo.
*¿A*lg*u*ien que me diga qu*é* aplicaci*ó*n le puedo dar, o si ya est*á*n descontinuados*?*
*G*racias.


----------



## nelsonr (Ago 24, 2016)

Hola compañeros tengo una consulta yo estoy usando el kbhit() para atrapar cadenas que lleguen a mi Pic por el #use rs232.
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, stream=COM1)
Este puerto lo tengo conectado a un módem GSM sim900 con el fin es de recibir mensajes SMS y enviar la cadena al Pic y poderlos procesar. Si la cadena que llega del módem producto del sms  llega al pic con el símbolo !, Me debe tomar el resto de la cadena ignorando el simbolo de !. 
De esta manera se hace para distintas cadenas que lleguen con caracteres específicos al PIC por medio del kbhit().
Cada cadena que llegue al PIC con esta característica debe hacer algo en particular en el programa .
Pero mi problema esta en que hay veces que funciona todo bien sin problemas pero hay veces que no responde cuando le mando un sms al módem sim900

Mi pregunta es, en ISIS de Proteus hay alguna forma que yo pueda mandarle datos al Pic para emullar una cadena enviada por el moden esto con el fin de saber si es que estoy dejando alguna variable que no cumpla con lo necesario al momento de que entre al el dato al kbhit().
O la intermitencia que tengo es producto de que  necesito algo mas para poder acoplar correctamente el pic con mi  modem sim900.
Cuando estoy emulando mi proyecto en proteus 7 no encuentro donde puedo ver los valores que están tomando las variables en ejecución.
Les agradezco los comentario de ante mano.
Nota estoy usando un pic16f877a , pic ccs compiler y proteus 7


----------



## nelsonr (Sep 6, 2016)

hola a todos una pregunta, yo quiero tomar un sms que tengo guardado en la sim y enviarlo a un numero x via sms,  pero no estoy claro de como seria el método apropiado  si primero tengo que cargar el mensaje en el buffer o  hay alguna forma de enviarlo sin cargarlo.
Les agradezco el tiempo dedicado.


----------



## nelsonr (Abr 30, 2017)

Buen dia me pueden ayudar con la diferencia de sms y mensajes  push, y como se maneja el las notificaciones  push en un pic


----------

