Anda di halaman 1dari 15

Redes de rea Local e Interconexin de Redes

Prctica 5

Control PC de un mvil mediante comandos Hayes (AT+)


1.- Introduccin
El auge de los ltimos aos en la telefona celular permite que hoy en da cualquier usuario pueda comunicarse y conectar con Internet desde prcticamente cualquier punto de nuestra geografa. Los mviles actuales (2.5G, 3G) no solo dan servicio de telefona, son tambin agendas, reproductores multimedia, cmara de fotos y permiten el acceso a Internet a velocidades hasta hace poco reservadas a lneas ADSL. Una utilidad de los mviles actuales poco conocida es la posibilidad que tienen de ser utilizados como mdem. Pueden ser usados para transmitir datos de un PC a Internet o a otro mvil utilizando la red celular. Los mviles GSM (denominados de segunda generacin o 2G) funcionan como mdems de 9.6 Kbps. Una velocidad lenta para los requerimientos actuales, pero suficiente para mandar pequeos mensajes de texto o SMS (Small Message System). Ms actuales, los mviles 2.5G (GPRS) pueden funcionar como mdems de 40Kbps de bajada y 9.6Kbps de subida de datos y los mviles 3G (UMTS) pueden funcionar como mdems de hasta 2Mbps en condiciones ideales de funcionamiento.

1
Los profesores agradecen la colaboracin de Vicente Sancho Guijarro en la realizacin de la prctica.

Redes de rea Local e Interconexin de Redes DISCA - UPV

2.- Objetivos de la prctica


La prctica tiene por objetivo el control mdem de un mvil desde un ordenador personal mediante comandos Hayes. Estos comandos pueden ser enviados al mvil desde el PC mediante un cable, conexin IrDA o mediante enlace inalmbrico BlueTooth. Utilizaremos esta ltima opcin. Como ejercicio prctico se propone configurar un PC al que se le conecta un sensor/alarma por la puerta paralelo y un mvil (modem) por la puerta BlueTooth. Hay que desarrollar un programa que detecte si salta la alarma del sensor y entonces mandar un SMS a travs del mdem.

Atencin: La realizacin de esta prctica requiere el uso de un telfono mvil. Para algunos ejercicios, no todos, se requiere que el mvil pueda acceder a la red celular (para hacer una llamada, para mandar un SMS, etc.). Estos accesos a la red celular, algunos al menos, tienen un coste econmico que DEBE SER ASUMIDO POR EL ALUMNO propietario del mvil. Dado que el laboratorio de redes no proporciona mviles con acceso a la red celular, el alumno es libre de decidir si quiere o no hacer los ejercicios propuestos. Una alternativa razonable, si no se quiere asumir ningn coste econmico por error de programacin, es utilizar el mvil habindole quitado el mdulo SIM del operador telefnico (no todos los telfonos mviles son operativos cuando se les quita el SIM).

Redes de rea Local e Interconexin de Redes DISCA - UPV

3.- Conexin PC-mvil y verificacin


1. Arranque Windows XP e instale el adaptador BlueTooth en el PC. XP indicar Nuevo Hardware encontrado listo para utilizarse. 2. Active el BlueTooth en el mvil y seleccione la opcin Telfono visible. 3. En el PC; Inicio Configuracin Panel de Control Dispositivos BlueTooth. En la pestaa Dispositivos pulsar agregar. El PC iniciar un escaneado para ver cuales dispositivos estn en sus inmediaciones. Esto puede llevar un par de minutos. Seleccione <su mvil> y pulse siguiente.

4. El asistente para agregar dispositivos BlueTooth le preguntar si quiere/debe utilizar una clave de paso para poder vincular el dispositivo al PC. Utilice una clave de paso. Puede usar la opcin Deseo elegir mi propia clave. Utilice una clave de al menos 8 dgitos y no utilice secuencias triviales como 12345678. Tenga en cuenta que en el laboratorio sus compaeros hacen la misma prctica. 5. El mvil le pedir que introduzca la clave de paso para la vinculacin con el PC. Tiene un tiempo limitado para meter la clave (unos 30 segundos). Si todo va bien, el mvil se vincula al PC y este le informa de los puertos serie (COM) asignados al mvil.

Redes de rea Local e Interconexin de Redes DISCA - UPV

No todos los mviles tienen la capacidad de actuar como modem estndar con vnculo BlueTooth, que es en nuestro caso el servicio requerido. Y tampoco todos los mviles, aunque den el servicio de modem estndar, aceptan todos los comandos Hayes. 6. Para ver si nuestro mvil tiene propiedades de mdem: Inicio Configuracin Panel de Control Opciones de telfono y mdem. Vamos a la pestaa de Modem. Podemos ver si aparece listado nuestro modem y a que puerta est vinculado. Pulsando en el botn Propiedades y seleccionando la pestaa Diagnstico podemos pulsar el botn Consultar mdem. Esto manda una secuencia de comandos al mdem e informa al usuario si los comandos son soportados por el modem.

7. Para verificar la conexin PC-mdem utilizaremos el hyperterminal de Windows. Inicio Programas Accesorios Comunicaciones Hyperterminal. Este programa se limita a sacar por la puerta serie lo que tecleemos. Debemos indicar como puerta serie la COMxx de salida asignada al mvil. (ver punto 5). Tambin podemos seleccionar Mdem estndar con vnculo BlueTooth del men desplegable. (ver imagen).

Redes de rea Local e Interconexin de Redes DISCA - UPV

8. Teclee AT (sin comillas) y pulse <intro>. El modem debe contestar OK. Puede ser que al pulsar sobre el teclado no tenga eco en la pantalla. Pruebe a teclear ATE1 <intro> . El modem volver a contestar OK y activar el modo ECHO-on. A partir de ahora podr ver en la pantalla lo que va tecleando. Si tiene problemas con la comunicacin con el mvil a travs de esa puerta serie, puede probar alguna de estas opciones: a. Intente utilizar el otro puerto COM que se asign a su mvil. Intntelo tambin con modem estndar con vinculo BlueTooth b. En Archivo Propiedades vaya al men desplegable en Conectarse usando y seleccione Modem estndar con vnculo BlueTooth. En la misma ventana de dilogo, pulse el botn Configurar y seleccione como velocidad del puerto 9600 bit/seg. Vuelva a configurar como puerto serie el COM saliente. Intente ahora el comando AT c. Si el hyperterminal se cuelga en alguna de las pruebas, es muy probable que la puerta COM se quede bloqueada. Re-arranque Windows.

Redes de rea Local e Interconexin de Redes DISCA - UPV

4.- Comandos Hayes


La mayora de los mdems (tanto telefnicos como celulares) se controlan y responden a caracteres enviados a travs del puerto serie. El lenguaje de comandos para mdem ms extendido es de los comandos Hayes. Todos los comandos Hayes empiezan con la secuencia AT. La excepcin es el comando A/. Tecleando A/ se repite el ltimo comando introducido. El cdigo AT consigue la atencin del mdem. Lo que venga a continuacin es el comando que el modem debe ejecutar. Por ejemplo, los comandos: AT+CGMI AT+CGSN AT+CIMI Identity) mvil *#06#) Pide al mvil que identifique el fabricante Pide al mvil el nmero de serie Pide al mvil el IMSI (International Mobile Subscriber (no es el IMEI, el IMEI puede obtenerlo tecleando en el

Ejercicio-1
Pruebe los comandos anteriores teclendolos en el hyperterminal. Pruebe, adems, los comandos: AT+CSQ
- Devuelve el estado de calidad de la seal de cobertura. - Sintaxis: AT+CSQ | +CSQ: <rssi>,<ber> <rssi> = 0 indica -113 dBm o menos = 1 indica -111 dBm = 2..30 indica -109..-53 dBm = 31 indica -51dBm o ms = 99 indica desconocido <ber> = 99 indica porcentaje desconocido - Respuesta: +CSQ: 13,99

AT+CBC

- Devuelve el estado de carga de la batera. - Sintaxis: AT+CBC | +CBC: <bcs>, <bcl> <bcs> = 0 indica que el telfono est conectado a una batera. <bcl> = 0 indica que el telfono tiene la batera agotada. = 1..100 indica el porcentaje de carga que an queda por agotar. - Respuesta: +CBC:0,56

AT+CPBR=<indice inicial> [,<indice final>]

- Leer una entrada de la agenda de contactos. - Sintaxis: AT+CPBR=<indice inicial> [,<indice final>] | +CPBR: <ndice>, <nmero>, <tipo>, <texto> <ndice> indica el ndice de la agenda de contactos.

Redes de rea Local e Interconexin de Redes DISCA - UPV <nmero> indica el nmero de telfono almacenado en el ndice. <tipo> indica el tipo de tipo de nmero de telfono. Por defecto, 129 o 145 si incluye el prefijo internacional +. <text> indica el texto asociado al nmero de telfono, normalmente, el nombre del contacto. - Respuesta a AT+CPBR=8: +CPBR: 8,"646123456",129,"Gospel"

Ejercicio-2
Atencin: El comando a continuacin har que el mvil realice una llamada telefnica. Si no se descuelga el terminal llamado, este ejercicio no supondr coste econmico alguno. En cualquier caso es responsabilidad del propietario del mvil realizar o no este ejercicio. Para el ejercicio se requiere que el mvil est conectado a una red celular (por lo tanto, debe tener el SIM instalado) ATD<numero> - Inicia una llamada telefnica al nmero indicado. - Sintaxis: ATD123456789 para una llamada de Datos. ATD123456789; para una llamada de Voz. (Importante la notacin ';') ATD>"Pepe"; para llamar al contacto almacenado en la agenda con el texto asociado Pepe.

Ejercicio-3
Atencin. Los comandos a continuacin harn que el mvil mande un SMS. El envo de SMSs no es gratuito. El coste depende del operador de telefona celular. (Coste tpico 0,15). Es responsabilidad del propietario del mvil realizar o no este ejercicio. No todos los mviles aceptan estos comandos. Este ejercicio est probado en un Nokia 6600 y debera funcionar bien al menos en mviles de este fabricante. Con Siemens (modelo SL-55) el ejercicio no funcion. AT+CMGF=1 {modo texto}

AT+CMGS="<num. Telfono>" {incluya las comillas} > escriba el texto del SMS y termine con <CTRL-Z>

Redes de rea Local e Interconexin de Redes DISCA - UPV

5.- Ejemplo de aplicacin prctica


Todas las libreras, programas, y cdigo fuente para la realizacin de este ejercicio se encuentran en la web de la asignatura. El objetivo es desarrollar una aplicacin que compruebe el estado de un pin concreto del puerto paralelo de un equipo informtico. Cuando este pin se ponga a alto nivel deber mandar un comando por Bluetooth a un telfono mvil para que ste realice una llamada. La solucin a este problema podra servir, por ejemplo, para implementar un sistema de alarma, en el cual un sensor estuviera conectado al puerto paralelo y pusiera un pin del puerto paralelo a alto nivel cuando ste se activara. Al activarse el sensor, el telfono mvil conectado por Bluetooth al ordenador podra llamar a un nmero, o bien, mandar un mensaje (SMS) al nmero que le indiquemos para avisarnos de la activacin del sensor.

La aplicacin LPT1XP
Para simular el sensor y hacerlo ms cmodo de activar, se ha utilizado una aplicacin en la cual podemos modificar el estado de los pines de nuestro puerto paralelo sin necesidad de manipularlo fsicamente o de conectar algn perifrico a l. Dicha aplicacin se llama LPT1XP y tiene licencia freeware, la cual est descrita en el fichero Licencia.txt que acompaa a la aplicacin. Est escrita en Visual Basic y viene acompaada por su cdigo fuente. Para el desarrollo de esta aplicacin se ha usado la librera la librera io.dll, que es la misma que se usar en la aplicacin a desarrollar, por lo que nos puede servir de ejemplo del uso de esta librera en otro lenguaje de programacin como es Visual Basic.

Redes de rea Local e Interconexin de Redes DISCA - UPV

Pantalla principal de LPT1XP

Como muestra la figura, podemos ver el estado de los puertos que componen el puerto paralelo. Los marcados en verde se corresponden con el puerto de entrada de datos. Podemos cambiar el estado de dichos pines simplemente pulsando sobre ellos. En la barra de botones nos aparecen tres botones. El primero de ellos, el del crculo rojo con un aspa roja en su interior, sirve para cerrar el programa. Con el botn de en medio podemos cambiar la visin del puerto paralelo, pudiendo conmutar entre la visin del conector hembra y la del conector macho. En la barra de estado nos aparece cual estamos viendo actualmente. Por ltimo, si pulsamos el botn de la interrogacin nos aparecer ayuda sobre el funcionamiento del puerto paralelo mostrndonos su funcionamiento interno, as como los nombres que se le da a cada uno de los pines.

Explicacin de la solucin
Para la implementacin de la solucin se ha optado por usar el lenguaje C usando para ello la plataforma MS Visual C++ 6.0. Los ficheros de cdigo adjuntados son los siguientes: io.h / io.cpp Se trata de una librera usada para la comunicacin con los puertos paralelos y serie desde Windows. En este caso se ha usado nicamente para la comunicacin con el puerto paralelo. Para el correcto funcionamiento de la librera, el fichero io.dll debe ubicarse en el directorio C:\Windows\System\ bien en la misma carpeta que el ejecutable. Se requieren permisos de administrador para la primera ejecucin de esta librera. serial.h / serial.cpp Con la ayuda de esta librera se ha accedido al puerto serie virtual (BlueTooth serializado) que est enlazado al telfono mvil de una manera fcil. Esta librera puede ser usada tanto desde Windows como desde Linux. StdAfx.h / StdAfx.cpp 9

Redes de rea Local e Interconexin de Redes DISCA - UPV

Esta librera es requerida por io.h y es utilizada durante el precompilado. Principal.cpp Este fichero contiene el cdigo de la aplicacin que a continuacin pasaremos a comentar. Para empezar, se han cargado las libreras necesarias. Las dos primeras ya se han comentado antes y nos dan la interfaz necesaria para poder comunicarnos con los puertos serie y paralelo de nuestro equipo. La librara stdio.h es la estndar de entrada/salida y la usamos principalmente para poder mostrar mensajes por pantalla (printf).
#include "io.h" #include "serial.h" #include <stdio.h>

Seguidamente definimos las constantes que usaremos. La primera se corresponde con la direccin base del puerto paralelo, la cual suele ser 0x378. La segunda constante es el nombre del puerto virtual creado para la comunicacin Bluetooth. En este caso el puerto era el COM4, pero se deber cambiar al nombre del puerto asociado al mvil en cada caso, el cual ser de la forma COMx.
#define PORTADDRESS 0x378 #define PUERTOBT "COM4"

Ya dentro de la funcin main, nos disponemos a abrir la comunicacin con el puerto paralelo. Para ello llamamos a LoadIODLL(), la cual simplemente carga la librera io.dll, y a isDriverInstalled(), la cual comprueba que el controlador (driver) del puerto paralelo est instalado para que podamos acceder correctamente a l. Si estas dos funciones fallaran, devolveran un 0, por lo que se nos devolvera un error por pantalla y saldra del programa.
if(LoadIODLL() == 0 && IsDriverInstalled() == 0) { printf("\n**ERROR** No se ha podido inicializar el driver."); getchar(); exit(1); }

Si todo ha ido bien, ya podemos leer del puerto paralelo. Para ello usamos la funcin GetPortBit, la cual recibe como parmetros la direccin base del puerto (PORTADDRESS) y el nmero de bit de entrada a leer, devolviendo el valor de dicho bit. Devolver 0 si est activo y -1 si no lo est. En este caso hemos puesto que compruebe el primer bit de entrada (D0). Ntese que esta comprobacin se ejecuta continuamente, ya que est dentro de un bucle, el cual slo ejecuta esa comprobacin. Cuando se active el bit saldr del bucle y seguir avanzando en el cdigo.
printf("Esperando a que se active la entrada 1 del puerto paralelo..."); while(GetPortBit(PORTADDRESS,0) == 0); printf("\nPuerto 0 *ACTIVO*\n");

Una vez ha llegado la activacin del bit que interesa, se tiene que abrir el puerto serie dedicado a la conexin Bluetooth y mandar el comando AT

10

Redes de rea Local e Interconexin de Redes DISCA - UPV

correspondiente. Para abrir el puerto se ha creado un objeto de tipo CSerial, cuya clase est definida en serial.h. En el constructor de dicha clase hay que pasarle dos argumentos. El primero es el nombre del puerto, el cual lo hemos definido en la constante PUERTOBT, y la velocidad del puerto. Al ser una conexin Bluetooth, le podemos poner una velocidad de 115200 bps (B115200). Una vez abierto el puerto, se llama al mtodo Write del objeto que acabamos de crear pasndole como argumento la cadena a mandar. En este caso mandamos el comando ATD123; que se encarga de llamar al nmero 123. De esta forma el mvil se pondr a llamar al nmero 123.
printf("\nLlamando..."); CSerial puerto = CSerial(PUERTOBT,B115200); puerto.Write("\nATD123;\r");

Para probar el programa deberemos arrancar primero la aplicacin LPT1XP y desactivar todas las entradas del puerto paralelo (D0-D7) ya que por defecto aparecen activadas. Una vez hecho esto ya podemos ejecutar el cdigo explicado. ste se quedara a la espera de que activemos la entrada D0. Para activarla pinchamos sobre ella (2 de la fila superior empezando por la derecha) en el programa LPT1XP. Una vez activa observamos que nuestro programa ha salido del bucle y est mandando el comando AT al mvil.

11

Redes de rea Local e Interconexin de Redes DISCA - UPV

Apndice-A: Comandos Hayes de Nokia


NOKIA GSM AT COMMAND SET

Call Control
ATA ATD ATH ATL ATM ATO ATP ATT AT+CSTA AT+CRC Answer Command Dial Command Hang Up Call Monitor Speaker Loudness Monitor Speaker Mode Go On-Line Set Pulse Dial as Default Set Tone Dial as Default Select Type of Address Cellular Result Codes

Data Card Control Commands


ATI ATS ATZ AT&F AT&V AT&W AT&Y AT+CLCK AT+COLP AT+GCAP AT+GMI AT+GMM AT+GMR AT+GSN Identification Select an S-register Recall Stored Profile Restore Factory Settings View Active Configuration Store Parameters in Given Profile Select Set as s Powerup Option Facility Lock Command Connected Line Identification Presentation Request Complete Capabilities List Request Manufacturer Identification Request Model Identification Request Revision Identification Request Product Serial Number Identification

Phone Control Commands


AT+CBC AT+CGMI AT+CGMM AT+CGMR AT+CGSN AT+CMEE AT+CPAS AT+CPBF AT+CPBR AT+CPBS AT+CPBW AT+CSCS AT+CSQ Battery Charge Request Manufacturer Identification Request Model Identification Request Revision Identification Request Product Serial Number Identification Report Mobile Equipment Error Phone Activity Status Find Phone Book Entries Read Phone Book Entry Select Phone Book Memory Storage Write Phone Book Entry Select TE Character Set Signal Quality

Computer Data Card Interface Commands


ATE ATQ ATV ATX AT&C AT&D Command Echo Result Code Suppression Define Response Format Response Range Selection Define DCD Usage Define DTR Usage

12

Redes de rea Local e Interconexin de Redes DISCA - UPV AT&K AT&Q AT&S AT+ICF AT+IFC AT+IPR Select Flow Control Define Communications Mode Option Define DSR Option DTE-DCE Character Framing DTE-DCE Local Flow Control Fixed DTE Rate

Service
AT+CLIP AT+CR AT+DR AT+ILRR Calling Line Identification Presentation Service Reporting Control Data Compression Reporting DTE-DCE Local Rate Reporting

Network Communication Parameter Commands


ATB AT+CBST AT+CEER AT+CRLP AT+DS Communications Standard Option Select Bearer Service Type Extended Error Report Radio Link Protocol Data Compression

Miscellaneous Commands
A/ Re-Execute Command Line AT? Command Help AT*C Start SMS Interpreter AT*T Enter SMS Block Mode Protocol AT*V Activate V.25bis Mode AT*NOKIATEST Test Command AT+CESP Enter SMS Block Mode Protocol

SMS Commands SMS Text Mode


AT+CSMS AT+CPMS AT+CMGF AT+CSCA AT+CSMP AT+CSDH AT+CSCB AT+CSAS AT+CRES AT+CNMI AT+CMGL AT+CMGR AT+CMGS AT+CMSS AT+CMGW AT+CMGD Select Message Service Preferred Message Storage Message Format Service Centre Address Set Text Mode Parameters Show Text Mode Parameters Select Cell Broadcast Message Types Save Settings Restore Settings New Message Indications to TE List Messages Read Message Send Message Send Message from Storage Write Message to Memory Delete Message

SMS PDU Mode


AT+CMGL AT+CMGR AT+CMGS AT+CMGW List Messages Read Message Send Message Write Message to Memory

13

Redes de rea Local e Interconexin de Redes DISCA - UPV

Apndice B: Capacidad de mandar/recibir SMS con comandos AT+

14

Redes de rea Local e Interconexin de Redes DISCA - UPV

Apndice C: Referencias
http://www.activexperts.com/files/activsms/manual.htm#CHAP_GSMOUT SMS and Pager Toolkit by ActiveXperts Software para aadir capacidades de manejo de SMS a aplicaciones VBasic.NET, C#.NET, Visual C++, ASP.NET, PHP, Java, http://foro.elhacker.net/index.php?topic=161120.0 Comandos AT para Nokia 8310. Algunos son especficos de este mvil y slo funcionan en l, pero la mayora son genricos y funcionan en la mayora de los mviles con BlueTooth. http://www.solocodigo.com/index.php?opt=viewitem&id=339&type=1&n ode=27 Programa LPT1XP

15

Anda mungkin juga menyukai