Está en la página 1de 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

Secretario Acadmico ...............................................................................


de la Escuela. Sr. Luis Alberto Caro Valdivia
Ingeniero Civil en Informtica

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 i

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

2.3.1.2. RISC..8

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

2.3.2.3. EPROM.10

2.3.2.4. EEPROM, E2PROM o E 2 PROM11

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

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

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 2

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 3

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 4

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 5

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 6

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 7

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 8

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 9

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 Kbps Tecnologa Caract. Obs.

800 AMPS analgica y La calidad de los

MHz 9.6 (Advanced estrictamente para enlaces era muy


1
Mobile Phone voz baja (2400 bauds).

System) la seguridad no

exista

800 TDMA Se pueden ofrecer Soportan

900 9.6 CDMA servicios velocidades de


2
1900 a 14.4 GSM auxiliares, como informacin ms

MHz datos, fax y SMS altas por voz, pero

(Short Message limitados en

Service) comunicacin de

datos.

1900 56 GPRS Cuenta con ms La tecnologa

MHz a 144 EDGE capacidades 2.5G es ms


2.5
adicionales que rpida, y ms

los sistemas 2G econmica para

actualizar a 3G.

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 Atencin

ATA Contestar llamada

ATD Comando para Llamar

ATH 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 Leer Mensaje

AT+CMGS Enviar Mensaje

AT+CMGF=1 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 Lo que significa el dato Definicin

N = 6,
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 5689450002 Numero SMSC = +65-98540020 El Numero SMSC actual

7 04 Siempre es 04 Primer Octeto del msj. SMS

8 0A M = 10 bytes 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 : +65-


10 to 14 5669719328 Numero del remitente.
96173982

15 00 - Protocolo identificador

16 00 - Esquema de cdigo de datos


Facultad de Ingeniera. Carrera de Ingeniera de Ejecucin en Informtica 56

05 Ao

01- Enero Dias y Horas .


17 to 23 50101141725223
11 Dia del Mes 50101141725223 -> 05-01-11-14-27-25-32

14:27:25:32 Hora

Largo del Msj. Actualmente recibido,


24 05 Largo del Msj. Actual en hexadecimal.
en este caso "Hello"

Este es el Nuevo Mensaje Recibido Mensaje Actual Recibido codificado en


25 to 29 C8329BFD06
"Hello" formato de 7 bits

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 59

Byte Dato Lo que significa el dato Definicin

Largo del Informacin SMSC. Aqu el

Usa la Informacin SMSC interna del largo es 0, lo que significa que el SMSC
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 total de "A1" + "5669719328" = 10


3 0A Largo del tipo y del nmero de recipiente.
bytes

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 El numero del SMS en el recipiente.
+6596173982

10 00 - Protocolo Identificador

11 00 - Esquema de codificacin de dato.

12 FF Ignorado 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 El Mensaje codificado a enviar.
04028140 "Hello World"

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 ' GPO como etrada GP2 salida


ADCON0 = %01000001 ' Vref activado, AN0 A/D pines 3,2
ANSEL = %00010001 ' seteo AN0 como Analogo y FOCS/8
CMCON =%00000111 ' Comparadores = OFF

nCmd Var Byte


nVal var Byte
nTI VAR BYTE
nTD VAR BYTE

nCmd = $FE : nVal = 0

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

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.

También podría gustarte