You are on page 1of 99

UNIVERSIDAD CATOLICA DE TEMUCO FACULTAD DE INGENIERIA

Sistema de control mediante mensajes SMS y Microcontroladores

Por FELIPE ANDRES CSER AEDO

Trabajo de Ttulo presentado a la Facultad de Ingeniera de la Universidad Catlica de Temuco Para Optar al Ttulo de Ingeniero de Ejecucin en Informtica -Temuco, 2006-

UNIVERSIDAD CATOLICA DE TEMUCO FACULTAD DE INGENIERIA COMISION EXAMEN DE TITULO

Este Examen de Ttulo ha sido realizado en la Escuela de Ingeniera Informtica:

Presidente Comisin:

..................................................................................... Sr. Oriel Herrera Gamboa

Profesor Gua:

......................................................................................... Sr. Luis Alberto Caro Valdivia Ingeniero Civil en Informtica

Profesor Informante:

....................................................................................... Sr. Alejandro Mellado Gatica Ingeniero de Ejecucin en Informtica Magster en Telecomunicaciones ............................................................................... Sr. Luis Alberto Caro Valdivia Ingeniero Civil en Informtica

Secretario Acadmico de la Escuela.

Temuco,...................................................................

Dedicado: A toda la gente que estuvo desde el comienzo Algunos siguen hasta hoy, Gracias Totales.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

INDICE
INDICE DE CONTENIDOSi INDICE DE FIGURAS.vi INDICE DE TABLASviii

1. Anlisis del Proyecto.1 1.1. Descripcin general del proyecto.1 1.2. Objetivo general..2 1.3. Objetivos especficos y resultados...2 1.4. Justificacin..3

2. Microcontroladores.4 2.1. Qu es un Microcontrolador? ..4 2.2. Arquitectura bsica de los Microcontroladores..4 2.2.1. Arquitectura Von Neumann...4 2.2.2. Arquitectura Harvard6 2.3. Componentes de un Microcontrolador7 2.3.1. Procesador...7 2.3.1.1. 2.3.1.2. 2.3.1.3. CISC..7 RISC..8 SISC..8

2.3.2. Memoria9 2.3.2.1. ROM con mscara..9

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

ii

2.3.2.2. 2.3.2.3. 2.3.2.4. 2.3.2.5.

OTP10 EPROM.10 EEPROM, E2PROM o E 2 PROM11 FLASH ...12

2.4. Puertas de E/S12 2.5. Reloj principal. 13 2.6. RECURSOS ESPECIALES. 14 2.6.1. Temporizadores o Timers..15 2.6.2. Perro guardin o Watchdog.. 15 2.6.3. Proteccin ante fallo de alimentacin o Brownout.16 2.6.4. Estado de reposo de bajo consumo. 16 2.6.5. Conversor A/D (CAD). 17 2.6.6. Conversor D/A (CDA). 17 2.6.7. Comparador analgico18 2.6.8. Modulador de anchura de impulsos o PWM18 2.6.9. Puertos digitales de E/S..18 2.6.10. Puertas de comunicacin.19 2.6.10.1. UART..19 2.6.10.2. USART19 2.6.10.3. Puerta Paralela..19 2.6.10.4. USB 19 2.6.10.5. BUS IC.. 19 2.6.10.6. CAN. 20

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

iii

3. LA FAMILIA DE LOS PIC . 21 3.1. Introduccin..21 3.2. La Familia PIC..21 3.2.1. Gama enana. PIC12CXXX..21 3.2.2. Gama baja. PIC16C5XX con instrucciones de 12 bits22 3.2.3. Gama media. PIC16CXXX con instrucciones de 14 bits22 3.2.4. Gama alta: PIC17CXXX con instrucciones de 16 bits 24

4. El Microcontrolador PIC12F675...25 4.1. Descripcin del Microcontrolador. 25 4.2. Conversin Anloga Digital (A/D). 26 4.2.1. Conversor A/D del PIC12F675...26 4.2.2. Registros de Configuracin.27

5. Sensor de Temperatura LM34..29

6. Java 31 6.1. Archivos Jar...32 6.2. Cmo crear un Archivo Jar? ..................................................................33 7. Que es un Socket? . 34 7.1. Socket TCP 34 7.2. Socket UDP 35 7.3. Diferencias principales entre TCP y UDP Sockets..36

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

iv

8. Bluetooth.37 8.1. Caractersticas 37

9. Servicio de Mensajes Cortos (SMS) 38 9.1. Definicin..38 9.2. Introduccin 38 9.3. Beneficios del Servicio de Mensajes Cortos (SMS).41 9.4. Elementos de la Red y su Arquitectura ..42 9.5. Elementos de Sealizacin. 45 9.6. Mensaje Corto Originado (MO - SM). 46 9.7. Mensaje Corto Terminado (MT - SM).46 9.8. Aplicaciones para SMS .46

10. Nuevas Tecnologas. 49

11. Comandos AT.52 11.1.Control de llamadas. 52 11.2.Leer Mensajes. 52 11.3.Envi de Mensajes53 11.4.Leer un Mensaje SMS..54 11.5.Enviar un SMS.. 58

12. Desarrollo de la Aplicacin ..60 12.1.Descripcin de la aplicacin realizada.. 60

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

12.2.Descripcin de acciones61

13. Algunos Ejemplos de la Aplicacin Realizada. .63 13.1. Leyendo mensaje entrante (Aplicacin de Prueba)63 13.2. Pruebas de Mensajes (Aplicacin de Prueba).64 13.3. Salida de Llamada entrante (Aplicacin de Prueba)..65 13.4.Comprobando Puerto de Comunicaciones 66 13.5.Recepcin y envi de mensajes SMS67 13.6.Consultas SQL.. 68 13.7.Respaldo de la Base de Datos 69

14. Cdigos Fuentes 70 14.1. Cdigo Cliente Socket ..70 14.2. Cdigo Servidor Socket.. 72 14.3. Cdigo Conversin A/D, sensor de T.. 74 14.4. Cdigo Envi y Recepcin de Mensajes SMS.76

15. Conclusin. 87

16. Bibliografa 88

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

vi

INDICE DE FIGURAS

Figura 1. Arquitectura Von Neumann..4 Figura 2. Arquitectura Harvard.6 Figura 3. Gama Enana PIC12F675....22 Figura 4. Gama Media PIC16F84...23 Figura 5. El Microcontrolador PIC12F675.....25 Figura 6. Registro TRISIO....27 Figura 7. Registro ADCON0 ........27 Figura 8. Registro ANSEL....28 Figura 9. Sensor de T LM34...29 Figura 10. Crear Archivos JAR....33 Figura 11. Dispositivo Bluetooth DBT-122....37 Figura 12. Servicio de Bsqueda de Personas Paging ..40 Figura 13. Red Celular SMS44 Figura 14. Lectura de un Mensaje SMS ,54 Figura 15. Modelo de Compresin de un Mensaje SMS.57 Figura 16. Envo de un Mensaje SMS58 Figura 17. Modelo de Recepcin y Envo de Mensajes SMS60 Figura 18. Leyendo un Mensaje Entrante..63 Figura 19. Configuracin de la Memoria Interna..64 Figura 20. Llamada Entrante65 Figura 21. Comprobando el Puerto de Comunicaciones66 Figura 22. Recepcin y Envo de Mensajes SMS67

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

vii

Figura 23. Consultas Sql.68 Figura 24. Respaldo BD..69

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

viii

INDICE DE TABLAS

Tabla 1. Nuevas Tecnologa s..49 Tabla 2 . Estructura del Mensaje Recibido.55 Tabla 3 . Estructura del Mensaje Enviado.59

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

1. Anlisis del Proyecto


1.1. Descripcin General del Problema.

El uso de Celulares desde hace algunos aos dejo de ser objeto de lujo o status social en nuestro pas es mas se ha vuelto un instrumento indispensable para la comunicacin como bien seala la pagina www.mundoenlinea.cl que 6,1 de cada 10 Chilenos posee un celular y que los mensajes de texto o SMS durante el 2004 sumaron mas de 494 millones en nuestro pas se hace evidente que cada es mas necesaria la comunicacin y por consiguiente la integracin que de tecnologa y diversas aplicaciones que van haciendo del telfono celular el computador del futuro. Dentro de los servicios conocidos esta el de los juegos de azar, los mensajes a correos electrnicos, los envos de mensajes a concursos televisivos, etc. Todo esto es la respuesta a necesidades nacidas gracias al celular ya que este al integrar tecnologa y servicios es una herramienta comercial muy potente y de amplia gama de servicios. Es por esto que hay que aprovechar la tecnologa disponible y crear aplicaciones que satisfagan necesidades cotidianas.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

1.2. Objetivo General

Lograr la Interaccin del usuario con los procesos ligados al Microcontrolador por medio de mensajes cortos de texto SMS utilizando comandos programados para tales acciones.

1.3. Objetivos Especficos

1.- Controlar un Microcontrolador por medio del puerto de comunicaciones. 2.- Desarrollar una Aplicacin en Java que permita manejar informacin por medio del puerto de Comunicaciones. 3.- Desarrollar una Aplicacin en Java que permita el envo y recepcin de mensajes cortos de texto SMS. 4.- Integracin de Java y Microcontroladores.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

1.4. Justificacin

Debido al explosivo uso de los celulares y la integracin que sufren estos a lo largo del tiempo es muy atractivo como programador utilizar esta herramienta como un medio para generar aplicaciones que sean tiles y aplicables al mercado actual, es por esto que crear una aplicacin que por medio de mensajes cortos de texto SMS se puedan controlar eventos por medio de un microcontrolador no es algo fuera de nuestro alcance y amplia nuestra capacidad de interaccin con el medio por ejemplo tal como podemos pedir el estado del tiempo por SMS podramos activar la alarma de la casa o bien si esta se activa recibir un mensaje con la alarma, tambin se podra utilizar en el control de frigorficos, etc. Son tantos los problemas que podran encontrar solucin con una aplicacin de este tipo solo es cosa de usar la imaginacin.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

2. MICROCONTROLADORES 2.1. Qu es un Microcontrolador?

Un microcontrolador es un dispositivo electrnico capaz de llevar a cabo procesos lgicos. Estos procesos o acciones son programados en lenguaje ensamblador por el usuario, y son introducidos en este a travs de un programador.

2.2. Arquitectura bsica de los Microcontroladores 2.2.1. Arquitectura Von Neumann

La arquitectura tradicional de computadoras y microprocesadores se basa en el esquema propuesto por John Von Neumann, en el cual la unidad central de proceso, o CPU, esta conectada a una memoria nica que contiene las instrucciones del programa y los datos.

Figura 1. Arquitectura Von Neumann

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

Las principales limitaciones de esta arquitectura son: La longitud de las instrucciones es limitada por la unidad de longitud de datos por lo que se tiene que hacer varios accesos a memoria para buscar instrucciones complejas.

La velocidad de operacin esta limitada por el cuello de botella que se forma al tener un nico bus de datos e instrucciones.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

2.2.2. La arquitectura Harvard

La arquitectura conocida como Harvard, consiste simplemente en un esquema en el que el CPU esta co nectado a dos memorias por intermedio de dos buses separados. Una de las memorias contiene solamente las instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es llamada Memoria de Datos. Ambos buses son totalmente independientes y pueden ser de distintos anchos.

Figura 2. Arquitectura Harvard

Las ventajas de esta arquitectura son: a. Que el tamao de las instrucciones no esta relacionado con el de los datos, por lo que permite que cada instruccin solo ocupe una sola posicin de memoria de programa. b. Que la velocidad de acceso de aumenta al poseer acceso de instrucciones separado del acceso a los datos.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

2.3. Componentes de un Microcontrolador 2.3.1. Procesador

Es el elemento ms importante del microcontrolador y determina sus principales caractersticas, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el cdigo OP de la instruccin en curso, su decodificacin y la ejecucin de la operacin que implica la instruccin, as como la bsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales.

2.3.1.1.

CISC

Un gran nmero de procesadores usados en los micro controladores estn basados en la filosofa CISC (Computadores de Juego de Instrucciones Complejo). Disponen de ms de 80 instrucciones mquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actan como macros, es decir, que si las tuvisemos que implementar con instrucciones bsicas, acabaramos con dolor de cabeza.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

2.3.1.2.

RISC

Tanto la industria de los computadores comerciales como la de los microcontroladores estn decantndose hacia la filosofa RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador.

2.3.1.3.

SISC

En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especfico, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. Esta filosofa se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Especfico).

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

2.3.2. Memoria 2.3.2.1. ROM con mscara

Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. Si tenemos idea de cmo se fabrican los circuitos integrados, sabremos de donde viene el nombre. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se fabrican a partir de procesos fotoqumicos, donde se impregnan capas de silicio y oxido de silicio, y segn convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sita entre la luz y la oblea una mascara con agujeros, de manera que donde deba incidir la luz, esta pasar. Con varios procesos similares pero ms complicados se consigue fabricar los transistores y diodos micromtricos que componen un chip. El elevado coste del diseo de la mscara slo hace acons ejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

10

2.3.2.2.

OTP

El microcontrolador contiene una memoria no voltil de slo lectura programable una sola vez por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la co nstruccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo contenido.

2.3.2.3.

EPROM

Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas son de material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con material plstico.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

11

2.3.2.4.

EEPROM, E2PROM o E PROM

Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito" que confieren una gran fle xibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria EEPROM es infinito, por lo que no es recomendable una reprogramacin contina. Son muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modifi car cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

12

2.3.2.5.

FLASH

Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta.

2.4. Puertas de E/S

Las puertas de Entrada y Salida (E/S) permiten comunicar al procesador con el mundo exterior, a travs de interfaces, o con otros dispositivos. Estas puertas, tambin llamadas puertos, son la principal utilidad de las patas o pines de un microprocesador. Segn los controladores de perifricos que posea cada modelo de microcontrolador, las lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

13

2.5. Reloj principal

Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronizacin de todas las operaciones del sistema. Esta seal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen. Generalmente, el circuito de reloj est incorporado en el Microcontrolador y slo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cermico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energa y de calor generado.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

14

2.6. RECURSOS ESPECIALES

Los principales recursos especficos que incorporan los microcontroladores son:

Temporizadores o Timers. Perro guardin o Watchdog. Proteccin ante fallo de alimentacin o Brownout. Estado de reposo o de bajo consumo (Sleep mode). Conversor A/D (Analgico ->Digital). Conversor D/A (Digital ->Analgico). Comparador analgico. Modulador de anchura de impulsos o PWM (Pulse Wide Modulation). Puertas de E/S digitales. Puertas de comunicacin.

A continuacin hablaremos de estos recursos especiales:

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

15

2.6.1. Temporizadores o Timers

Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores).Para la medida de tiempos se carga un registro con el valor adecuado y a continuacin dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algn mltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos.

2.6.2. Perro guardin o Watchdog

Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botn del reset y se reinicia el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del da. El Perro Guardin consiste en un contador que, cuando llega al mximo, provoca un reset automticamente en el sistema.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

16

Se debe disear el programa de trabajo que controla la tarea de forma que resetee al Perro Guardin de vez en cuando antes de que provoque el reset. Si falla el programa o se bloquea (si cae en bucle infinito), no se refrescar al Perro guardin y, al completar su temporizacin, provocar el reset del sistema.

2.6.3. Proteccin ante fallo de alimentacin o Brownout

Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentacin (VDD) es inferior a un voltaje mnimo (brownout). Mientras el voltaje de alimentacin sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. Esto es muy til para evitar datos errneos por transiciones y ruidos en la lnea de alimentacin.

2.6.4. Estado de reposo de bajo consumo

Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algn acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energa, (factor clave en los aparatos porttiles), los microcontroladores disponen de una instruccin especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

17

consumo, en el cual los requerimientos de potencia son mnimos. En dicho estado se detiene el reloj principal y se congelan sus circuitos asociados, quedando sumido en un profundo sueo. Al activarse una interrupcin ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo.

2.6.5. Conversor A/D (CAD)

Los microcontroladores que incorporan un Conversor A/D (Analgico/Digital) pueden procesar seales analgicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas seales analgicas desde las patillas del circuito integrado.

2.6.6. Conversor D/A (CDA)

Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente seal analgica que saca al exterior por una de las patillas del chip. Existen muchos circuitos que trabajan con seales analgicas.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

18

2.6.7. Comparador analgico

Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que acta como comparador entre una seal fija de referencia y otra variable que se aplica por una de las patitas de la cpsula. La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor o menor que la otra. Tambin hay modelos de microcontroladores con un mdulo de tensin de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.

2.6.8. Modulador de anchura de impulsos o PWM

Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a travs de las patitas del encapsulado.

2.6.9. Puertos digitales de E/S

Todos los microcontroladores destinan parte de su patillaje a soportar lneas de E/S digitales. Por lo general, estas lneas se agrupan de ocho en ocho formando Puertos. Las lneas digitales de las Puertos pueden configurarse como Entrada o como Salida cargando un 1 un 0 en el bit

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

19

correspondiente de un registro destinado a su configuracin.

2.6.10. Puertas de comunicacin

Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan:

2.6.10.1. UART, adaptador de comunicacin serie asncrona.(Ej: Puerto Serie) 2.6.10.2. USART, adaptador de comunicacin serie sncrona y asncrona 2.6.10.3. Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. 2.6.10.4. USB (Universal Serial Bus), que es un moderno bus serie para los PC. 2.6.10.5. Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

20

2.6.10.6. CAN (Controller rea Network), para permitir la adaptacin con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automviles. En EE.UU. se usa el J185O.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

21

3. LA FAMILIA DE LOS PIC


3.1. Introduccin

Los PIC son una familia de microcontroladores fabricados por Microchip cuya arq uitectura, capacidades, juego de instrucciones y especialmente su bajo costo lo hacen muy til en pequeas aplicaciones as como parte de otras aplicaciones de mayor envergadura sustituyendo a gran cantidad de circuitos lgicos convencionales.

3.2. La Familia PIC

Existen PICs de cuatro gamas distintas: 3.2.1. Gama enana. PIC12CXXX

Se trata de un grupo de PIC de reciente aparicin que ha acaparado la atencin del mercado. Su principal caracterstica es su reducido tamao, al disponer todos sus componentes de 8 patitas adems de disponer de 6 lneas de E/S. Se alimentan con un voltaje de corriente continua comprendido entre 2,5 V y 5,5 V, y consumen menos de 2 mA cuando trabajan a 5 V y 4 MHz. El formato de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de 33 o 35 instrucciones, respectivamente. Algunos modelos incluyen conversores A/D y memoria EEPROM de datos.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

22

Figura 3. Gama Enana Pic12F675

3.2.2. Gama baja. PIC16C5XX con instrucciones de 12 bits

Con una memoria de programa (ROM o EPROM) de 12 bits y de 512, 1024 o 2048 palabras y una memoria de datos de 8 bits de 25, 72 o 73 bytes. Trabajan hasta 20 MHz y disponen de 12 o 20 lneas de E/S de alta corriente, un temporizador y de 33 instrucciones. Adems, como el resto de los PICs disponen de perro guardin, Autoinicilizacin (POR o Power on Reset), modo de bajo consumo (SLEEP), reloj interno mediante cristal o red RC y proteccin contra lectura del cdigo.

3.2.3. Gama media. PIC16CXXX con instrucciones de 14 bits

Es la gama ms variada y completa de los PIC. Abarca modelos con encapsulado desde 18 patas hasta 68, cubriendo varias opciones que integran abundantes perifricos. Dentro de esta gama se halla el famoso PIC16X84 y sus variantes.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

23

El ancho de la memoria de programa es de 14 bits, pudiendo ser ROM, EPROM o EEPROM. Incluyen interrupciones, conversores A/D, mayor nmero de temporizadores y otras caractersticas segn el modelo. Su juego de instrucciones es de 35.

Figura 4. Gama Media PIC16F84

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

24

3.2.4. Gama alta: PIC17CXXX con instrucciones de 16 bits

Estos microcontroladores poseen un verdadero bus de datos y direcciones, pudiendo trabajar con memoria externa. El ancho de la memoria de programa es de 16 bits y el nmero de instrucciones aumenta a 55 o 58 segn el modelo. Quizs la caracterstica ms destacable de los componentes de esta gama es su arquitectura abierta, que consiste en la posibilidad de ampliacin del microcontrolador con elementos externos. Para esto, las patitas sacan al exterior las lneas de los buses de datos, direcciones y control, a las que se conectan memorias o controladores de perifricos. Esta facultad obliga a estos componentes a tener un elevado nmero de patitas comprendido entre 40 y 44. Esta filosofa de construccin del sistema es la que se empleaba en los microprocesadores y no suele ser una prctica habitual cuando se emplean microcontroladores.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

25

4. El Microcontrolador PIC12F675 4.1. Descripcin del PIC12F675

Este Microcontrolador posee 8 pines en un encapsulado DIP, adems cuenta con una memoria de programa de 1k de 14bit de ancho, un oscilador interno de 4Mhz y 6 puertas de comunicacin GP0-GP5 siendo GP3 solo de entrada.

Figura 5. El Microcontrolador PIC12F675

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

26

4.2. Conversin Anloga Digital (A/D)

La conversin A/D es esencial en el uso de los microcontroladores ya que ellos solo pueden procesar informacin digital. Las seales Anlogas usualmente de sensores, tienen que ser convertidas a nmeros binarios para que el micro las pueda procesar. Los convertidores A/D son dispositivos electrnicos que establecen una relacin entre el valor de la seal en su entrada y la palabra digital obtenida en su salida. La relacin se establece en la mayora de los casos, con la ayuda de una tensin de referencia.

4.2.1. Conversor A/D del PIC12F675

La mayor caracterstica de este Microcontrolador es poseer 4 canales para conversin A/D de 10bit (1024) que van desde AN0 AN3.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

27

4.2.2. Registros de Configuracin

Para la conversin A/D necesitamos configurar los siguientes registros:

Trisio es el registro de configuracin para las E/S si es 0 es salida si es 1 entrada.

Figura 6.Registro Trisio

Adcon0 es el registro de control A/D

Figura 7.Registro ADCON0 El bit0 es el bit de status de conversin A/D El bit1 es el bit de status de conversin en progreso. Los bit2-3 son los bits selectores de canales Anlogos. El bit6 es el bit de Vref. 0 = vdd, 1= Vref pin. El bit7 es el bit de formato A/D 0 = izquierda, 1 = derecha.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

28

Ansel es el registro de seleccin anloga.

Figura 8.Registro ANSEL

Los bit0-3 son los bits selectores de Anlogos o Digitales 0 = Digital, 1 = Anlogo. Los bit4-6 son los bits selectores del clock de conversin.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

29

5. Sensor de Temperatura LM34

Este es un sensor de temperatura de precisin. Esta calibrado para proveer una salida de 10mVolts por grado de temperatura. Puede medir temperaturas entre los -50 y los 128C.

Figura 9.Sensor de T LM34

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

30

Por ejemplo para transformar el valor entregado por el censor se utiliza la siguiente formula:

F = 9/5 * C + 32

Los Valores entregados por el sensor estn en grados Fahrenheit.

32 F = 0 C Por Ejemplo:

F = 9/5 * 50C +32 F = 122 F

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

31

6. Java
Java es el primer lenguaje que tiene la virtud de ser compilado e interpretado de forma simultnea. Cuando un programador realiza una aplicacin o un applet en Java y lo compila, en realidad, el compilador no trabaja como un compilador de un lenguaje al uso. El compilador Java nicamente genera el denominado ByteCode. Este cdigo es un cdigo intermedio entre el lenguaje mquina del procesador y Java. Evidentemente este cdigo no es ejecutable por s mismo en ninguna plataforma hardware, pues no se corresponde con el lenguaje de ninguno de los procesadores que actualmente se conocen (habr que esperar a ver qu ocurre con los procesadores Java). Por lo tanto, para ejecutar una aplicacin Java es necesario disponer de un mecanismo que permita ejecutar el ByteCode. Este mecanismo es la denominada Mquina Virtual Java. En cada plataforma (Unix, Linux, Windows 95/NT, Macintosh, etc.) existe una mquina virtual especfica. As que cuando el ByteCode llega a la mquina virtual, sta lo interpreta pasndolo a cdigo mquina del procesador donde se est trabajando, y ejecutando las instrucciones en lenguaje mquina que se deriven de la aplicacin Java. De este modo, cuando el mismo ByteCode llega a diferentes plataformas, ste se ejecutar de forma correcta, pues en cada una de esas plataformas existir la mquina virtual adecuada. Con este mecanismo se consigue la famosa multiplataforma de Java, que con slo codificar una vez, podemos ejecutar en varias plataformas.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

32

6.1. Archivos JAR Un JAR es un formato de archivo empaquetado estndar que permite entre otras cosas ordenar el cdigo precompilado.

6.2. Cmo crear un archivo JAR?

Los parmetros ms usados son: c: Crea un nuevo contenedor v: Genera salida detallada en salida estndar f: Especifica nombre de archivo contenedor m: Incluir informacin del archivo manifest especificado

Un Archivo manifest contiene una estructura definida con varios parmetros que indican informacin sobre el contenido del paquete. El parmetro ms usual es Main-Class que indica la clase que se ejecuta por defecto al ejecutar el paquete completo, de esta forma el paquete funciona como si fuera un archivo ejecutable (*.EXE) multiplataforma.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

33

C:\jbproject\socket\classes>jar cvfm serversock.jar MANIFEST.MF socket

Manifest-Version: 1.0 Created-By: 1.4.1_02 (Sun Microsystems Inc.) Main-Class: socket.Aplicacion1

Figura 10.Crear Archivos JAR

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

34

7. Qu es un socket?

Todos hemos odo hablar de la palabra winsock, winsockets, o socket a secas. Tiene una mala traduccin: al pie de la letra es "enchufe", y en algunos sitios, lo traducen por conexin, canal, o palabras similares.... Un socket no es nada ms que la combinacin de una mquina y un puerto, con otra mquina (que puede ser incluso la misma) y otro puerto. Aqu nos surge un nuevo concepto: puerto. Vamos a hablar un poco de l, antes de retomar la pregunta anterior.

7.1. Qu es un puerto?

Veamos el concepto nicamente bajo el sentido del TCP/IP. Puerto, no es nada ms que un numero de 16 bits. Por tanto un nmero entre 1 y 65535 (2 elevado a 16 menos 1)

Para qu sirven?.... Depende de la aplicacin o del programa que quiera usar ese puerto. Los puertos 1024 hacia abajo estn reservados a las rutinas del sistema operativo, o mejor dicho a los programas estndares del TCP/IP.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

35

Las RFC son los documentos en los que se empez a publicar el estndar TCP/IP. En ellos se han definido (y se van definiendo), todos los estndares del protocolo, y podemos considerarlos como la "Biblia" que hay que respetar al pie de la letra (si no, el TCP no funcionara...)

En dichas especificaciones, estn definidos los servicios bsicos que nos suministra o puede suministrar una mquina con ese protocolo. En ellas, estn definidas las funcionalidades de los puertos 1024 e inferiores. Por ejemplo, el puerto 80 se reserva para un posible servidor web. El 21 para un posible servidor ftp. Etc.... 7.2. Tipos de sockets:

TCP sockets (En Java implementados en la clase Socket): Ofrecen una comunicacin fiable y libre de errores, garantizando que los mensajes llegarn ordenados, sin duplicados y sin prdidas. Antes de comenzar la transmisin necesitan una fase previa de establecimiento de la conexin.

UDP sockets (User Datagram Protocol en Java implementados en la clase DatagramSocket): Ofrecen un servicio no fiable de comunicacin. Los paquetes pueden llegar duplicados, desordenados, o pueden perderse sin llegar a su destino. La comunicacin es mucho ms rpida que en los TCP Sockets, y no necesitan una fase de establecimiento de conexin.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

36

7.3. Diferencias principales entre TCP y UDP sockets:

1. Los sockets UDP no hacen diferenciacin entre mquina cliente o servidor. Utilizan la misma clase de socket para el envo de datos y la escucha de conexiones entrantes. 2. Los sockets UDP no permiten tratar la conexin de red como un stream(flujos), es decir, UDP siempre trabaja con paquetes datagrama individuales. 3. Un socket datagrama puede recibir datos desde mltiples host diferentes. El socket no est dedicado a una nica conexin como los TCP.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

37

8. Bluetooth
8.1. Caractersticas

Bluetooth -Diente Azul- es una te cnologa de transmisin de datos que permite la creacin de Redes de rea Personal (Personal Area Networks), permitiendo a los usuarios transmitir datos a una velocidad de 1 Mbps hasta una distancia de 100 metros en la frecuencia de 2,4 GHz.

Figura 11.Dispositivo Bluetooth DBT-122

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

38

9. Servicio de Mensajes Cortos (SMS)


9.1. Definicin

Servicio de Mensajes Cortos (SMS) es servicio inalmbrico aceptado globalmente este permite la transmisin de mensajes alfanumricos entre clientes de telfonos mviles y sistemas externos tales como correo electrnico, paging (Servicio de radio unidireccional que permite el envi de mensajes escritos para los aparatos de paging numricos o alfanumricos) y sistemas de mensajes de voz.

9.2. Introduccin

SMS apareci en escena en 1991 en Europa, donde la tecnologa inalmbrica digital echo races. El Standard Europeo para inalmbrica digital, es ahora conocida globalmente como el Standard para mviles (GSM), incluye el servicio de mensajera corta desde el principio. En Norte Amrica, SMS estuvo disponible en las redes inalmbricas digitales construidas por los primeros pioneros tales como BellSouth Mobility y Nextel. En 1998, con el desarrollo de las redes basadas en GSM como el servicio de comunicacin personal (PCS), cdigo de acceso por divisin mltiple (CDMA), y acceso por divisin de tiempo (TDMA), estos mtodos ayudaron a la completa implementacin del SMS.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

39

El SMS punto a punto provee un mecanismo para transmitir mensajes cortos de y hacia equipos Mviles (Celulares). Tras el envo de un mensaje, este no sigue directamente para el destinatario sino para un centro de mensajes (SMSC), que lo almacena y enva posteriormente. Este centro hace tambin la cobranza posterior del servicio. El centro de mensajes reencamina despus el mensaje para el destinatario, cuando el mvil est conectado a la red. De esta manera y al contrario de los servicios de "pager" es posible tener la certeza que el mensaje lleg a su destino, porque el centro de mensajes puede notificar el remitente caso la operacin falle.

Una caracterstica del servicio es que en un equipo Mvil activo es capaz de recibir o enviar un mensaje corto en cualquier momento, independiente si hay o no una llamada de voz o datos en progreso. SMS tambin garantiza la entrega de los mensajes cortos por la red. Errores temporales son identificados y el mensaje es guardado en la red hasta que el destino este disponible.

SMS esta caracterizado por entrega de paquetes fuera de banda y un bajo uso del ancho de banda para la transferenc ia de mensajes. Las primeras aplicaciones de SMS estaban enfocadas en eliminar el sistema alfanumrico pager el cual es un sistema de bsqueda de personas tipo Beeper que permita una comunicacin unidireccional, en cambio SMS permite mensajera en las dos direcciones y servicios de notificacin,

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

40

principalmente mensajes de voz. Al madurar la tecnologa y las redes se fueron agregando una variedad de servicios como el correo electrnico y la integracin del fax, servicios de bsqueda, bancos interactivos y servicios de informacin. Aplicaciones de inalmbricas tales como el modulo de identidad del subscriptor (SIM) con capacidades de realizar acciones de activacin, debito y edicin de perfil.

Figura 12. Servicio de bsqueda de personas Paging

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

41

9.3. Beneficios del Servicio de Mensajes Cortos (SMS)

Los beneficios del servicio SMS para el proveedor son los siguientes:

El aumento de llamadas gracias a las capacidades de notificacin del SMS en las redes inalmbricas.

Una alte rnativa al servicio de bsqueda de personas alfanumrico Paging.

Activa el acceso inalmbrico a datos para usuarios de empresas. Provisiones de servicios con valor agregado como el e-mail, buzn de voz, la integracin de fax, etc.

Proporciona una herramienta administrativa para servicios como avisos de precios, descargas en forma inalmbrica.

Los beneficios del SMS a los clientes se centran en la conveniencia, flexibilidad y la integracin de servicios de mensajes y acceso a datos. Desde esta perspectiva, el beneficio es ser capaz de usar un equipo mvil como una extensin del computador.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

42

9.4. Elementos de la Red y su Arquitectura

Los elementos de red necesarios para proveer el servicio SMS, son: Las Entidades de Mensajera Corta (Short Messaging Entities - SME): Es una entidad que puede enviar o recibir mensajes cortos. Puede ser localizada en la red fija, la estacin mvil u otro centro de servicio. El Centro de Servicio de Mensaje Corto (Short Message Service Center - SMSC) es el responsable de la transmisin, almacenamiento y envo de mensajes cortos entre el SME y la estacin mvil. El Centro de Conmutacin Mvil SMS (SMS Gateway/Interworking Mobile Switching Center - SMS GMSC) es un centro de conmutacin de mensajes encargado de recibir el mensa je del SMSC, interrogar al registro de localizacin local por la informacin de encaminamiento, y entregarlo al MSC que da servicio a la estacin mvil. Registro de Localizacin Local. (Home Location Register - HLR): Es la base de datos para el almacenamiento permanente y manejo de perfiles de servicio y subscripciones. El HLR provee la informacin de encaminamiento hacia el cliente indicado. El HLR tambin informa al SMSC del intento de entrega de un mensaje corto a una estacin mvil que ha resultado fallido. Registro de Localizacin del Visitante (Visitor Location Register - VLR): El VLR es la base de datos que contiene la informacin temporal acerca de los cliente s. Esta informacin se necesita por el MSC (Mobile Switching Center - MSC) que ejecuta las funciones de conmutacin del

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

43

sistema y las llamadas de control hacia y desde otros telfonos o sistemas de datos. Estacin Base del sistema. (Base Station System - BSS): Todas las funciones relacionadas con la radio se ejecutan en la BSS, la cual consiste en unos controladores de estacin base (Base Station Controllers - BSCs) y estaciones base transceptoras (Base Transceiver Stations - BTSs) que se encargan de transmitir la voz y el trafico de datos entre las estaciones mviles. La Estacin Mvil (Mobile Station - MS): Es el terminal inalmbrico capaz de recibir y originar mensajes cortos, as como llamadas de voz. La infraestructura de sealizacin de la red inalmbrica est basada en el Sistema de Sealizacin N 7 (SS7).

Sistema de Sealizacin N 7 (Signalig System 7 SS7). SMS hace uso de la Parte de Aplicacin Mvil (Mobile Application Part - MAP), la cual define los mtodos y mecanismos de comunicacin en redes inalmbricas y usa los servicios de la Parte de Aplicacin de Capacidades de Transaccin de SS7 (SS7 Transaction Capabilities Aplication Part - TCAP). La capa de servicio de SMS hace uso de las capacidades de sealizacin del MAP y habilita la transferencia de mensajes cortos entre entidades pares.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

44

Figura 13. Red Celular SMS

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

45

9.5. Elementos de Sealizacin

Las Siguientes operaciones MAP(Mobile Application Part - MAP) son necesarias:

Una vez un mensaje se enva, es recibido por el Centro de Servicio de Mensaje Corto (SMSC) que debe enviarlo entonces al dispositivo mvil apropiado. Para hacer esto, el SMSC enva un requerimiento de SMS al registro de localizacin (HLR) para encontrar al cliente. Una vez el HLR recibe la llamada, responde al SMSC informando el estado del cliente: inactivo o activo y en dnde est. Si la respuesta es inactivo, entonces el SMSC almacenar el mensaje por un periodo de tiempo y cuando el cliente activa su dispositivo, el HLR enva una notificacin de SMS al SMSC, que intentar la entrega. Si el estado es activo, entonces el sistema llama al dispositivo, y si responde, el mensaje se entrega. El SMSC recibe la verificacin de que el mensaje se recibi por el usuario terminal y etiqueta el mensaje como enviado para no tratar de enviarlo de nuevo.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

46

9.6. Mensaje Corto Originado (MO - SM)

Los MO-SM se transportan desde el dispositivo mvil hacia el SMSC y pueden ser destinados a otros Clientes de mviles, o situados en redes fijas.

9.7. Mensaje Corto Terminado (MT - SM)

Los MT-SM se transportan desde el SMSC hacia el dispositivo mvil, y pueden ser entregados al SMSC por abonados mviles o por otros medios.

Por ejemplo es muy comn utilizar las pginas Web gratuitas que tienen muchos ISPs para crear SMS.

9.8. Aplicaciones para SMS

Los SMS fueron inicialmente diseados para soportar mensajes de tamao limitado, en la mayora de los casos notificaciones o paginas alfanumricas, pero se estn descubriendo nuevos usos, que han hecho que este mercado explote.

Servicios de notificacin: Los servicios de notificacin son unos


servicios SMS ampliamente utili zados. Ejemplos de servicios de

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

47

notificacin usando SMS son los mensaje de notificacin de correo de voz, notificacin de correo electrnico, recordatorio de citas, horarios de reuniones, etc.

Interconexin de redes de correo electrnico: Los servicios de correo


electrnico existentes pueden ser fcilmente integrados con SMS para proveer correo electrnico bidireccional a la mensajera corta. Interconexin de redes de bsqueda: Servicios de bsqueda integrados con SMS pueden permitir a los abonados inalmbricos digitales ser accesibles a travs de interfaces de bsqueda existentes en otras redes. Servicios de informacin: Se puede proporcionar una amplia variedad de servicios de informacin, incluyendo partes meteorolgicos, informacin del trafico, informacin de entretenimiento (cines, teatros, conciertos), informacin financiera (cotizaciones de bolsa, servicios bancarios, servicios de corretaje, etc.), y directorios. Servicios de datos mviles: El SMSC tambin puede ser usado para enviar datos inalmbricos cortos. Los datos inalmbricos pueden ser servicios interactivos donde las llamadas de voz estn involucradas. Algunos ejemplos de servicios de esta naturaleza incluyen despachos rpidos, manejo de inventarios, confirmacin de itinerarios, procesamiento de rdenes de ventas y manejo de contactos de clientes. Atencin de clientes y administracin: El SMSC tambin puede ser usado para transferir datos binarios que pueden ser interpretados por la estacin mvil, sin ser presentados al cliente. Esta capacidad le permite

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

48

a los operadores administrar sus clientes al proveerlos de la capacidad de programar las estaciones mviles.

Servicios de localizacin: La habilidad de rastrear la localizacin de un objeto mvil, o de un usuario, es muy valiosa tanto para los proveedores como para los clientes. Esta aplicacin, de nuevo, solo necesita un intercambio de pequeas cantidades de informacin, tales como la longitud y latitud en un momento preciso del da, y quizs otros parmetros como velocidad, temperatura o humedad.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

49

10.

Nuevas Tecnologas

A continuacin un vistazo a algunas tecnologas en el rea de la telefona Mvil.

Gen

Frecuecia
800

Kbps Tecnologa
AMPS 9.6 (Advanced

Caract.
analgica y

Obs.
La calidad de los

MHz

estrictamente para enlaces era muy baja (2400 bauds). la seguridad no exista

Mobile Phone voz System)

800

TDMA 9.6 a 14.4 CDMA GSM

Se pueden ofrecer Soportan servicios auxiliares, como datos, fax y SMS (Short Message Service) velocidades de informacin ms altas por voz, pero limitados en comunicacin de datos.

900 1900 MHz

1900

56 a 144

GPRS EDGE

Cuenta con ms capacidades adicionales que los sistemas 2G

La tecnologa 2.5G es ms rpida, y ms econmica para actualizar a 3G.

2.5

MHz

Tabla 1. Nuevas Tecnologas

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

50

AMPS (Advanced Mobile Phone System): Red Analgica de Telefona


Mvil es la forma ms simple de la transmisin de la voz. Son menos seguras y sufren interferencias cuando la seal es dbil. Algunos de los sistemas analgicos que existen son: AMPS, NMT y ETACS.

TDMA (Acceso mltiple por divisin de tiempo): Comprime las


conversaciones (digitales), y las enva cada una utilizando la seal de radio por un tercio de tiempo solamente. La compresin de la seal de voz es posible debido a que la informacin digital puede ser reducida de tamao por ser informacin binaria (unos y ceros). Debido a esta compresin, la tecnologa TDMA tiene tres veces la capacidad de un sistema analgico que utilice el mismo nmero de canales.

CDMA (Acceso mltiple por divisin de cdigo): despus de digitalizar la


informacin, la transmite a travs de todo el ancho de banda disponible. Varias llamadas son sobrepuestas en el canal, y cada una tiene un cdigo de secuencia nico. Usando a la tecnologa CDMA, es posible comprimir entre 8 y 10 llamadas digitales para que estas ocupen el mismo espacio que ocupara una llamada en el sistema analgico.

GSM (Global System for Mobile Communications): GSM es un estndar


internacional de comunicaciones digitales celulares. GPRS (General Packet Radio Services): Permite a las redes celulares una mayor velocidad y ancho de banda sobre el GSM, mejorando las capacidades de acceso mvil a la Internet.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

51

El principal problema de esta tecnologa resulta de su incompatibilidad con los aparatos GSM existentes, inclusive con los que ya soportan el protocolo WAP para acceso a la Internet. Asimismo, pocos son los modelos con tecnologa GPRS. EDGE (Enhanced Data for Global Evolution): Tecnologa que facilita a las redes GSM y TDMA la capacidad de suministrar servicios de telefona mvil de tercera generacin. El EDGE utiliza una tcnica de modulacin de frecuencias electromagnticas que junto a evoluciones en el protocolo de radio permite a los operadores usar los espectros de las frecuencias 800, 900 y 1800 Mhz de manera ms eficiente. EDGE soporta la transmisin de datos, servicios y aplicaciones multimedia.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

52

11.

Comandos AT

11.1.Introduccin

Una herramienta fundamental en el proyecto es el uso de comandos AT ya el equipo mvil recomunica con la aplicacin a trav s de estos estableciendo una conversacin del tipo pregunta respuesta, ya que todo comando enviado al equipo mvil generara una respuesta inmediata lo que se traduce mas tarde en poder generar la lista de parmetros necesarios para leer y enviar mensaje SMS.

11.2.Control de Llamada Estos son algunos de los comandos mas comunes para el control de llamadas.

AT ATA ATD ATH

Atencin Contestar llamada Comando para Llamar Desconectar una llamada

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

53

11.3.Comandos SMS Estos son los comandos que hacen posible el envi y recepcin de mensajes de texto SMS.

AT+CMGR AT+CMGS AT+CMGF=1

Leer Mensaje Enviar Mensaje Formato del msj

AT+CSCA="+5698890005" Configuro el centro de servicio ENTE L

AT+CNMI=2,1,0,0,0 Configuracin de aviso sobre nuevo Msj.

AT+CMGS="N del Receptor", Mensaje AT+CPMS ="ME","ME" Configura la memoria 1 y memoria 2 como la memoria interna del celular.

AT+CMGD=N Borra el mensaje de la posicion N

AT+CMGL=? Listado de comandos para ver msj en distintas carpetas. +CMGL: ("REC UNREAD","REC READ","STO UNSENT","STO SENT","ALL")

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

54

Para Telfonos Mviles, SMS usa el codificado PDU en el cual el mensaje es encapsulado. Esta estructura se le da al Telfono Mvil para realizar el evento de enviar o recibir mensajes SMS. 11.4. Leer un Mensaje SMS

Figura 14.Lectora de un Mensaje SMS El comando AT+CMGR=1 lee el mensaje la de ubicacin 1. Cada ves que llega un nuevo mensaje es indexado en una direccin de memoria del Telfono Mvil.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

55

El SMS recibido puede ser decodificado en base al la siguiente estructura.

Byte

Dato N = 6,

Lo que significa el dato

Definicin

Largo del SMSC - N 0 06 "91" - 1 byte Tamao del SMSC + Numero. "56 89 45 00 02" - 5 bytes Tipo de numero SMSC

0x81 numero de plan por defecto 1 91 numero Internacional 0x91 numero Internacional

0xA1 Numero de plan Nacional 2-6 7 8 5689450002 04 0A Numero SMSC = +65-98540020 Siempre es 04 M = 10 bytes El Numero SMSC actual Primer Octeto del msj. SMS El largo del tipo y numero del remitente

Tipo de numero de remitente 0x81 - numero de plan por defecto


9 91 Numero Internacional 0x91 - numero Internacional

0xA1 - Numero de plan Nacional El numero del remitente actual : +6510 to 14 5669719328 96173982 15 16 00 00 Protocolo identificador Esquema de cdigo de datos Numero del remitente.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 05 Ao

56

01- Enero 17 to 23 50101141725223 11 Dia del Mes

Dias y Horas .

50101141725223 -> 05-01-11-14-27-25-32

14:27:25:32 Hora Largo del Msj. Actualmente recibido, 24 05 en este caso "Hello" Este es el Nuevo Mensaje Recibido 25 to 29 C8329BFD06 "Hello" formato de 7 bits Mensaje Actual R ecibido codificado en Largo del Msj. Actual en hexadecimal.

Tabla 2.Estructura del Mensaje Recibido

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

57

El mensaje recibido es representado por un formato de 7 bit. El mensaje "Hello" seria representado por la cadena "0x48 0x65 0x6C 0x6F" de 7 bits.

Figura 15.Modelo de Compresin de un Mensaje SMS

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

58

11.5. Enviar un SMS

Para enviar un mensaje SMS, se usa el Comando GSM: AT+CMGS Ejemplo de lectura en el HyperTerminal.

Figura 16.Envo de un Mensaje SMS El comando AT+CMGS = 27, pre -notifica al Celular que el PDU que ser enviado contiene 27 bytes de datos.

El dato pasado al Telfono despus del "AT+CMGS" contiene al PDU. La siguiente figura muestra la estructura del mensaje enviado:

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica Byte Dato Lo que significa el dato

59
Definicin

Largo del Informacin SMSC. Aqu el Usa la Informacin SMSC interna del 0 00 celular guardado en el telfono tiene que ser usado. 1 11 Siempre 11 Primer octeto del envi de mensaje. Mensaje de referencia. El valor "00" 2 00 configura el numero de mensaje por referencia del telfono. largo es 0, lo que significa que el SMSC

Largo total de "A1" + "5669719328" = 10 3 0A bytes Largo del tipo y del nmero de recipiente.

Tipo de numero de recipiente 0x81 - Numero de plan por defecto


4 A1 Numero de Plan Nacional

0x91 - Numero Internacional


0xA1 - Numero de plan Nacional Numero del SMS de destino: 5 to 9 5669719328 +6596173982 10 11 12 00 00 FF Ignorado Protocolo Identificador Esquema de codificacin de dato. Periodo de Validez Largo del Mensaje actual en 13 10 El Msj. Posee un largo de 16 caracter es Hexadecimal. C8329BFD065DDF723619 Este es el Msj. Codificado a enviar 14 to 27 04028140 "Hello World" El Mensaje codificado a enviar. El numero del SMS en el recipiente.

Tabla 3.Estructura del Mensaje Enviado

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

60

12. Desarrollo de la Aplicacin


12.1. Descripcin de la aplicacin realizada

Cumpliendo el objetivo general del proyecto se realizo una aplicacin que interacta con los procesos ligados a los microcontroladores por medio de mensajes de texto SMS. Para ello se realizo una aplicacin en Java que acta como servidor el cual esta encargado de interactuar por medio de comunicacin serial con un microcontrolador en este caso el 12F675 y con un telfono mvil.

Figura 17. Modelo de recepcin y envo de mensajes SMS.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

61

12.2. Descripcin de acciones

A continuacin se describen paso a paso el proceso de envo y recepcin de mensajes de la aplicacin.

Un usuario de telefona mvil solicita un servicio de temperatura por medio de mensaje de texto SMS.

El mensaje SMS es recibido por el dispositivo mvil conectado al servidor (MODEM con soporte para SMS o bien un telfono mvi l con cable de datos o bluetooth).

El dispositivo mvil acusa la recepcin de un mensaje SMS por medio de comandos AT que son enviados por Bluetooth al puerto serial virtual generado para este propsito.

El servidor interpreta el comando AT y le enva al dispositivo mvil un nuevo comando pidiendo leer el mensaje entrante.

El dispositivo mvil enva el mensaje al servidor. El servidor lee el mensaje si este contiene el texto temperatura llama al microcontrolador el cual le enva la temperatura actual al servidor.

Una vez obtenida la temperatura ambiente el servidor procede a enviarla por medio de comandos AT al dispositivo mvil.

El dispositivo mvil se encarga de realizar el envo del mensaje con la temperatura generada por el servidor.

El servidor registra en una base de datos el remitente y su mensaje.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

62

Una variacin del modelo de recepcin y envi sucede cuando al recibir un mensaje SMS el texto contenido en este no corresponda a ni un servicio prestado por el servidor por lo que no responder el mensaje recibido al remitente.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

63

13.

Algunos Ejemplos de la Aplicacin Realizada

A continuacin se muestran las pantallas con las salidas de datos correspondientes a la aplicacin en su etapa de pruebas y etapa final.

13.1. Leyendo mensaje entrante (Aplicacin de Prueba)

Aqu se ve la informacin tal cual es enviada por el dispositivo mvil al servidor de mensajes.

Figura 18. Leyendo mensaje entrante

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

64

13.2. Prueba de Mensajes (Aplicacin de Prueba)

Esta es una prueba de la configuracin de la memoria interna del dispositivo mvil para el envi y recepcin de mensajes.

Figura 19.Configuracin de la Memoria Interna

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

65

13.3. Salida de Llamada entrante (Aplicacin de Prueba)

Al recibir una llamada este es mostrado por pantalla.

Figura 20.Llamada Entrante

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

66

13.4.Comprobando Puerto de Comunicaciones

Cuando el programa se activa busca la conexin con el dispositivo mvil aqu vemos el puerto com4 que es el puerto serial por defecto para el dispositivo Bluetooth en este caso.

Figura 21.Comprobando puerto de comunicaciones

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

67

13.5. Recepcin y envi de mensajes SMS

Una ves recibido un mensaje el servidor valida que sea un comando conocido y acta segn el resultado.

Figura 22.Recepcin y Envo de Mensajes SMS

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

68

13.6.Consultas SQL

Aqu vemos distintas opcione s para consultar a una base de datos la cual se encarga de registrar los mensajes entrantes, estos pueden ser consultados por da, meses anteriores, mes actual, temperaturas enviadas y otros mensajes.

Figura 23.Consultas Sql

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

69

13.7.Respaldo de la Base de Datos

La informacin de la base de datos puede ser respaldada en la opcin Respaldar BD., para ello se utilizo por medio de la ejecucin de un archivo BAT el compresor ARJ muy utilizado en la poca del sistema operativo DOS.

Figura 24.Respaldo BD

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

70

14.

Cdigo Fuente

14.1.Cdigo Fuente Cliente Socket

public String host= "127.0.0.1"; // Defino donde esta el server (localhost) *********************************************************** // conectarse al servidor y procesar mensajes del servidor public void ejecutarCliente() { // conectarse al servidor, obtener flujos, procesar la conexin try { conectarAServidor(); // Paso 1: crear un socket para realizar la conexin obtenerFlujos(); // Paso 2: obtener los flujos de entrada y salida

procesarConexion(); // Paso 3: procesar la conexin } // el servidor cerr la conexin catch ( EOFException excepcionEOF ) { System.err.println( "El cliente termino la conexin" ); }

// procesar los problemas que pueden ocurrir al comunicarse con el servidor catch ( IOException excepcionES ) { excepcionES.printStackTrace(); } finally { cerrarConexion(); // Paso 4: cerrar la conexin }

} // fin del mtodo ejecutarCliente

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

71

// conectarse al servidor private void conectarAServidor() throws IOException { mostrarMensaje( "Intentando realizar conexin\n" );

// crear Socket para realizar la conexin con el servidor cliente = new Socket( InetAddress.getByName( servidorChat ), 12345 );

// mostrar la informacin de la conexin mostrarMensaje( "Conectado a: " + cliente.getInetAddress().getHostName() ); }

// obtener flujos para e nviar y recibir datos private void obtenerFlujos() throws IOException { // establecer flujo de salida para los objetos salida = new ObjectOutputStream( cliente.getOutputStream() ); salida.flush(); // vacar bfer de salida para enviar informacin de encabezado // establecer flujo de entrada para los objetos entrada = new ObjectInputStream( cliente.getInputStream() ); mostrarMensaje( "\nSe recibieron los flujos de E/S\n" ); }

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

72

14.2.Servidor Socket

// configurar y ejecutar el servidor public void ejecutarServidor() { // configurar servidor para que reciba conexiones; procesar las conexiones try { // Paso 1: crear un objeto ServerSocket. // ServerSocket(Puerto,LongitudCola) servidor = new ServerSocket( 12345, 100 ); while ( true ) {

try { esperarConexion(); // Paso 2: esperar una conexin. obtenerFlujos(); } // Paso 3: obtener flujos de entrada y salida. procesarConexion(); // Paso 4: procesar la conexin.

// procesar excepcin EOFException cuando el cliente cierre la conexin catch ( EOFException excepcionEOF ) { System.err.println( "El servidor termin la conexin" ); } finally { cerrarConexion(); // Paso 5: cerrar la conexin. ++contador; } } // fin de instruccin while

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

73

} // fin del bloque try // procesar problemas con E/S catch ( IOException excepcionES ) { excepcionES.printStackTrace(); }

} // fin del mtodo ejecutarServidor

// esperar que la conexin llegue, despus mostrar informacin de la conexin private void esperarConexion() throws IOException { mostrarMensaje( "Esperando una conexin\n" ); conexion = servidor.accept(); // permitir al servidor aceptar la conexin mostrarMensaje( "Conexin " + contador + " recibida de: " + conexion.getInetAddress().getHostName() ); } // obtener flujos para enviar y recibir datos private void obtenerFlujos() throws IOException { // establecer flujo de salida para los objetos salida = new ObjectOutputStream( conexion.getOutputStream() ); salida.flush(); // vaciar bfer de salida para enviar informacin de encabezado // establecer flujo de entrada para los objetos entrada = new ObjectInputStream( conexion.getInputStream() ); mostrarMensaje( "\nSe recibieron los flujos de E/S\n" ); }

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

74

14.3.Cdigo Conversin A/D, sensor de T

include "modedefs.bas"

DEFINE OSC 4 deFINE OSCCAL_1K 1 TRISIO = %00000011 ADCON0 = %01000001 ANSEL = %00010001 CMCON =%00000111 nCmd Var Byte nVal var Byte nTI VAR BYTE nTD VAR BYTE ' GPO como etrada GP2 salida ' Vref activado, AN0 A/D pines 3,2 ' seteo AN0 como Analogo y FOCS/8 ' Comparadores = OFF

nCmd = $FE : nVal = 0 ini: ADCON0.1 = 1 loop: if ADCON0.1 = 1 then loop nTI=(((ADRESH-32)*5)/9) nTD=(((ADRESH-32)*5)//9) ' da inicio a la conversion A/D

if nTI >= 27 then high GPIO.4 HIGH GPIO.5 Serout GPIO.2,N9600,[#nTI,".",#nTD,10] Pause 1000

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

75

else low GPIO.4 low GPIO.5 Serout GPIO.2,N9600,[#nTI,".",#nTD,10] pause 1000 endif goto ini end

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

76

14.4.Cdigo Envio y Recepcion de Mensajes SMS

package msms; import java.io.*; import java.util.*; import javax.comm.*; import java.awt.*; import java.awt.event.*; import javax.swing.*;

class SimpleRead implements Runnable, SerialPortEventListener{ static CommPortIdentifier portId; static Enumeration portList; static OutputStream outputStream; static boolean outputBufferEmptyFlag = false; static String defaultPort = "COM4"; static InputStream inputStream; static SerialPort serialPort; static String nOpcion = "AT\r"; static boolean lIni = true; static String smsInd = ""; static String smsInd2 = ""; static String smsRemitente = ""; Thread t; Thread readThread; JTextArea jTextArea1 = new JTextArea();

public void SimpleRead(){

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

77

boolean

portFound = false;

portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (portId.getName().equals(defaultPort)) { System.out.println("Found port: "+defaultPort); jTextArea1.append("Puerto Encontrado: "+defaultPort+"\n"); portFound = true; try { serialPort = (SerialPort) portId.open("SimpleReadApp", 0); } catch (PortInUseException e) {}

try { inputStream = serialPort.getInputStream(); } catch (IOException e) {} try { serialPort.addEventListener(this); } catch (TooManyListenersException e) {}

serialPort.notifyOnDataAvailable(true); try { serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) {} System.out.println("FC. LEE "); try {

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

78

outputStream = serialPort.getOutputStream(); } catch (IOException e) {} try { inputStream = serialPort.getInputStream(); } catch (IOException e) {} try { serialPort.addEventListener(this); } catch (TooManyListenersException e) {} serialPort.notifyOnDataAvailable(true); } } } if (!portFound) { System.out.println("port " + defaultPort + " not found."); jTextArea1.append("Puerto " + defaultPort + " No Funciona.\n"); } SwingUtilities.invokeLater( new SalidaRunnable(Marco1.jTextArea1, jTextArea1.getText() ) ); }

public void run() { System.out.println("ESCUCHANDO..."); SimpleRead(); SimpleWrite sw2= new SimpleWrite(outputStream,nOpcion); Thread thread2 = new Thread(sw2); thread2.setDaemon(true); thread2.start();

while(true)

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

79

{ try { Thread.sleep(2000); } catch (InterruptedException e) { serialPort.close(); } } }

public void serialEvent(SerialPortEvent event) { switch (event.getEventType()) { case SerialPortEvent.BI:

case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE:

case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR:

case SerialPortEvent.RI:

case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break;

case SerialPortEvent.DATA_AVAILABLE:

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

80

byte[] readBuffer = new byte[220]; // buffer de largo 220 try { while (inputStream.available() > 0) { int numBytes = inputStream.read(readBuffer);

} String str= new String(readBuffer); if( lIni){ nOpcion ="ATE0\r"; SimpleWrite sw0 = new SimpleWrite(outputStream, nOpcion); nOpcion ="AT+CNMI=2,1,0,0,0 \r"; sw0 = new SimpleWrite(outputStream, nOpcion); nOpcion ="AT+CMGF=1\r"; sw0 = new SimpleWrite(outputStream, nOpcion); nOpcion = "at+cpms=\"ME\" ,\"ME\"\r"; sw0 = new SimpleWrite(outputStream, nOpcion); nOpcion ="at+cmgl=\" REC UNREAD\"\r"; sw0 = new SimpleWrite(outputStream, nOpcion); lIni=false; } if(str.indexOf("OK")!=-1 ) { jTextArea1.append("OK \n"); System.out.println("OK"); }

if(str.indexOf("ERROR")!=-1 ) { jTextArea1.append("ERROR Encontrado \n");

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

81

System.out.println("ERROR Encontrado"); } if(str.indexOf("CMGS")!=-1 ) // aviso de envio de MSJ { jTextArea1.append("MSJ Enviado \n"); System.out.println("MSJ Enviado ");

} if(str.indexOf("CMTI") !=-1) // aviso de msj recibido { smsInd = str.substring(14,16); jTextArea1.append("MSJ Recibido :"+smsInd.trim()+"\n"); if(smsInd.endsWith(",")){ smsInd = smsInd.substring(14,15); } nOpcion = "at+cpms=\"ME \",\"ME\"\r"; SimpleWrite sw1 = new SimpleWrite(outputStream, nOpcion); nOpcion = "at+cmgr="+smsInd.trim()+" \r"; sw1 = new SimpleWrite(outputStream, nOpcion);

}// END CMTI if((str.indexOf("CMGR") !=-1)) //leer msj.// {

if ( (str.indexOf("UNREAD") != -1)) { smsRemitente = str.substring(23, 34); if (smsRemitente.indexOf(" \"") != -1) { smsRemitente = smsRemitente.substring(0, 8); } else{

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

82

smsRemitente = smsRemitente.substring(3, 11); } } String strsms = new String(readBuffer); if (str.lastIndexOf("\r") != -1) { int numBytess = inputStream.read(readBuffer); strsms = new String(readBuffer); strsms = strsms.toLowerCase(); strsms = strsms.substring(0,strsms.indexOf("\r")); jTextArea1.append("\n MSJ: " + strsms.trim() + " \n");

if (strsms.indexOf("temperatura") != -1){ StringBuffer buffer = new StringBuffer(smsRemitente); char arreglo[] = new char[buffer.length()]; buffer.getChars(0, buffer.length(), arreglo, 0); //****Pido la t al micro**** SwingUtilities.invokeLater(new Micro());

//****Inicializo el modem para envio de datos**** nOpcion = "AT+CPMS=\"SM\",\"SM\"\r"; //Configuro para el envio de Msj SimpleWrite sw2 = new SimpleWrite(outputStream, nOpcion); nOpcion = "AT+CSCA=\"+5698890005\"\r"; // servidor de MSJ SMS sw2 = new SimpleWrite(outputStream, nOpcion); nOpcion = "AT+CMGS=\"" + smsRemitente + "\",\r"; sw2 = new SimpleWrite(outputStream, nOpcion);

//**********Llama al Micro*****************************

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

83

BufferedReader in = new BufferedReader(new FileReader("out.txt")); String line; String tempe = ""; //= jTextArea1.getText().replaceAll("\r\n?", "\n"); while ( (line = in.readLine()) != null) { tempe += line; } in.close(); jTextArea1.append(tempe + "\n"); //*****Envio la temperatura******* nOpcion = "LA T ES:" + tempe + " \032"; sw2 = new SimpleWrite(outputStream, nOpcion); jTextArea1.append("\n TEMPERATURA ENVIADA \n"); //****** Registro() Almacena El Msj En la BD.************ SwingUtilities.invokeLater( new Registro(smsRemitente,"Temperatura : "+tempe+"" ) ); }

else { // si no es MSJ de T lo Borro jTextArea1.append("\nEL COMANDO ENVIADO NO ES VALIDO!!!\n"); jTextArea1.append("\nMSJ ELIMINADO...\n"); nOpcion = "at+cpms=\"ME\",\"ME\"\r"; SimpleWrite sw3 = new SimpleWrite(outputStream, nOpcion); nOpcion = "at+cmgd=" + smsInd.trim() + "\r"; sw3 = new SimpleWrite(outputStream, nOpcion); //****** registro en BD *************

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

84

SwingUtilities.invokeLater(new Registro(smsRemitente, strsms)); } } }// END CMGR

if((str.indexOf("CMGL")!=-1)){ // listado de Msj's System.out.println("********"+str.trim() ); smsInd = str.substring(9, 11); if ( (str.indexOf("UNREAD") != -1)){

jTextArea1.append("UNREAD CMGL" + smsInd.trim() + "\n"); System.out.println("UNREAD CMGL --- >"); if (smsInd.endsWith(",")) { smsInd = smsInd.substring(0,1); } jTextArea1.append("MSJ EN MEMORIA "+smsInd.trim()+"\n"); System.out.println("MSJ EN MEMORIA --- >" ); nOpcion = "at+cmgr=" + smsInd.trim() + "\r"; SimpleWrite sw4 = new SimpleWrite(outputStream, nOpcion); }

} // END CMGL

if(str.indexOf("+CMS ERROR: 500")!=-1){ jTextArea1.append("\n NO HAY MAS MSJ's \n"); System.out.println("\n NO HAY MAS MSJ's \n" ); }

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

85

if(str.indexOf("RING") !=-1) { jTextArea1.append("\n LLAMADA ENTRANTE!!! \n"); System.out.println("\n LLAMADA ENTRANTE!!! \n" ); }

} catch (IOException e) {} SwingUtilities.invokeLater( new SalidaRunnable( jTextArea1,jTextArea1.getText()) ); SwingUtilities.invokeLater( new SalidaRunnable(Marco1.jTextArea1, jTextArea1.getText() ) ); jTextArea1.setText(""); //SwingUtilities.invokeLater( new EnviaDatos(jTextArea1.getText() ) ); break; } } public SimpleRead() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { } } class SimpleWrite implements Runnable { static String XMSJ = "AT\r";

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

86

static OutputStream outputStream; Thread t; SimpleWrite(OutputStream outputStream,String nOpcion) { //Listo Para Enviar MSJ this.outputStream=outputStream; XMSJ = nOpcion; t=new Thread(this); t.run(); } public void run() { try{ Thread.sleep(1000); outputStream.write(XMSJ.getBytes()); }catch(IOException e) {System.out.println(e);} catch(InterruptedException e) {} } }

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

87

15.

Conclusin.

Gracias a los puntos vistos anteriormente se ha logrado dar una alternativa para generar servicios por medio de mensajes de texto SMS (Short Message System) de forma independiente ya que las compaas de telefona venden el servicio pero no hay acceso a los programas que hacen este servicio. Con esto se amplia la variedad de servicios a ofrecer ya sea en forma particular o bien ofrecer este servicio a terceros sin que las compaas de telefona celular se tomen el monopolio de este tipo de servicios.

Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica

88

16.

Bibliografa.

www.todopic.com.ar http://perso.wanadoo.es/luis_ju www.hvwtech.com www.cursoderobotica.com.ar/robotica/Libros/control.htm www.cursoderobotica.com.ar/robotica/Libros/analogico.htm http://www.ifent.org/Lecciones/digitales/secuenciales/ConvertA_D.htm http://java.sun.com/products/javacomm/index.jsp www.multingles.net/docs/conceptosTCP.htm www.programacion.com/java/tutorial/red/11 www.itapizaco.edu.mx/paginas/JavaTut/froufe/index.html www.mysql-hispano.org/page.php?id=24&pag=1 http://bibuct.uct.cl/ALEPH http://voltio.ujaen.es/casanova/pics/intro.htm http://usuarios.lycos.es/sfriswolker/pic/cuatro.htm http://www.telefonos-moviles.com/ Titulo: Como Programar en Java Autor: Deitel, Harvey M. 5a. ed. 2004.

You might also like