CTC-028, Módulos GSM SIMCOM Revisiones 1 2 3 Comentario técnico: CTC-028 Componente: Módulos GSM SIMCOM Autor: Sergio R. Caprile, Senior Engineer Fecha Comentarios 21/07/05 APN Personal 21/11/07 Generalización 11/08/10 Apéndice (+CGATT SIM900) Si bien nada reemplaza la lectura del manual del usuario, proponemos un simple sistema en breves y cortos pasos, sin polling ni máquinas de estados, para enviar y recibir datos mediante el módulo GSM, ya sea vía TCP o UDP. 1. Selección de APN: La selección del APN se realiza mediante el comando AT+CSTT, según cuál sea nuestro proveedor, deberemos ingresar uno de los siguientes comandos: ➢ Personal: AT+CSTT="gprs.personal.com.ar","gprs","adgj" ➢ CTI Móvil: AT+CSTT="internet.ctimovil.com.ar","gprs","gprs" ➢ ex-Unifón: AT+CSTT="internet.gprs.unifon.com.ar","wap","wap" * (De todos modos, debería consultar y confirmar con el proveedor de telefonía celular esta información) Conexión a la red GPRS: mediante el comando AT+CIICR Solicitud de dirección IP: mediante el comando AT+CIFSR, el cual, luego de un tiempo, devuelve la 2. 3. 4. 5. 6. 7. 8. dirección IP obtenida. Establecimiento de la conexión con el sitio remoto: sea TCP o UDP el protocolo empleado, se debe "realizar una conexión". En el caso de TCP, es necesario, en el caso de UDP, mantiene un estado de conexión interno para aceptar datagramas del destino solicitado. La conexión se establece mediante el comando AT+CIPSTART, que devuelve el mensaje CONNECT OK cuando la conexión se establece (TCP) o inmediatamente (UDP). El comando tiene la forma AT+CIPSTART="protocolo","dirección IP","port", por ejemplo: AT+CIPSTART="UDP","200.114.232.92","2020" Envío de datos: Indicamos al módulo que queremos enviar datos mediante el comando AT+CIPSEND. Podemos simplemente enviar AT+CIPSEND y recibir un prompt, lo que nos permite enviar los datos y terminarlos con <CTRL-Z>, o bien AT+CIPSEND=<longitud> y luego los datos sin terminador. El módulo nos contesta SEND OK al realizar la operación Recepción de datos: cualquier dato que el extremo remoto nos envíe, aparecerá por la interfaz como si fuera una respuesta del módulo Finalización de la conexión: mediante el comando AT+CIPCLOSE. Cesión de la dirección IP: Una vez terminada la sesión, cedemos la dirección IP para que el sistema la pueda asignar a otro móvil, mediante el comando AT+CIPSHUT A continuación, un ejemplo, donde resaltamos los comandos enviados para diferenciarlos de las respuestas del módulo, y omitimos el eco local, el cual puede eliminarse mediante el comando ATE0, standard del set de comandos Hayes (AT). Los caracteres ASCII no imprimibles figuran con su nombre entre <>: AT+CSTT="internet.ctimovil.com.ar","gprs","gprs"<CR> <CR><LF> OK<CR><LF> AT+CIICR<CR> <CR><LF> OK<CR><LF> AT+CIFSR<CR> <CR><LF> 170.51.251.112<CR><LF> AT+CIPSTART="UDP","200.114.232.92","2020"<CR> <CR><LF> CTC-028 1 CTC-028, Módulos GSM SIMCOM CONNECT OK<CR><LF> <CR><LF> <CR><LF> OK<CR><LF> AT+CIPSEND<CR> <CR><LF> > Este es el cuerpo de mi mensaje UDP<SUB><CR> <CR><LF> SEND OK<CR><LF> De este modo aparecería cualquier respuesta del servidor remoto AT+CIPCLOSE<CR> <CR><LF> OK<CR><LF> AT+CIPSHUT<CR> <CR><LF> OK<CR><LF> CTC-028 2 CTC-028, Módulos GSM SIMCOM Apéndice: SIM900 y derivados En algunos casos, luego de un tiempo de conexión a la red GSM, se produce una desconexión de GPRS. En este caso, tanto AT+CSTT como AT+CIICR o AT+CIFSR pueden retornar ERROR. Para determinar el estado de conexión GPRS, utilizaremos el comando: AT+CGATT?<CR> <CR><LF> +CGATT: 0<CR><LF> <CR><LF> OK<CR><LF> En caso que como en este ejemplo, nos devuelva el valor 0, significa que estamos desconectados. Para restablecer la conexión ingresamos el comando: AT+CGATT=1<CR> <CR><LF> OK<CR><LF> y ya podemos realizar la operatoria descripta en este documento. CTC-028 3