INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo...

161
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD PROFESIONAL “ADOLFO LÓPEZ MATEOS” INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA Diseño y Construcción De Un Sistema De Comunicación Vía BluetoothPROYECTO TERMINAL QUE PARA OBTENER EL TÍTULO DE: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA PRESENTA: Oswaldo Rodríguez Pérez ASESORES: Dra. Carmen Beatriz Rodríguez Estrello Ing. Guillermo Santillán Guevara MÉXICO, D.F. ENERO 2015

Transcript of INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo...

Page 1: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD PROFESIONAL “ADOLFO LÓPEZ MATEOS”

INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

“Diseño y Construcción De Un Sistema De Comunicación Vía Bluetooth”

PROYECTO TERMINAL

QUE PARA OBTENER EL TÍTULO DE: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

PRESENTA:

Oswaldo Rodríguez Pérez

ASESORES:

Dra. Carmen Beatriz Rodríguez Estrello Ing. Guillermo Santillán Guevara

MÉXICO, D.F. ENERO 2015

Page 2: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente
Page 3: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

AGRADECIMIENTOS:

A mi madre, por estar en los momentos importantes de mi vida, por ser el ejemplo para salir adelante y por los consejos que me han sido de gran ayuda para mi vida y crecimiento. Gracias por tus guardias, por tus desvelos, por la dedicación que tienes por todos tus hijos y por confiar en mí al darme la oportunidad de culminar esta etapa de mi vida.

A l Dr. Vladimir por su apoyo, interés y paciencia para que se llevaran a cabo este proyecto,

Un agradecimiento muy grande a mis asesores de Tesis la Dra. Carmen Beatriz Rodríguez Estrello y el Ing. Guillermo Santillán Guevara pues ellos fueron los que guiaron este proyecto.

Al INSTITUTO POLITÉCNICO NACIONAL por ser mi segunda casa y

brindarme la oportunidad de formarme y mostrarme el sentido de su lema “la técnica al servicio de la patria”

Page 4: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

I | Página

“Diseño y

Construcción De Un

Sistema De

Comunicación Vía

Bluetooth”

Page 5: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

II | Página

INTRODUCCIÓN

En los últimos años, los teléfonos móviles han experimentado una gran evolución, desde los

primeros equipos grandes y pesados, pensados sólo para hablar por teléfono en cualquier

parte, a los últimos modelos, que permiten la comunicación, no solo por voz, sino el envío de

datos. Para ello, en los teléfonos actuales se ha utilizado Android, que es un sistema

operativo y una plataforma de software libre, basado en Linux para teléfonos móviles.

Además, también usan este sistema operativo tablets, netbooks, reproductores de música e

incluso PC’s. Android permite programar en un entorno de trabajo para aplicaciones sobre

una máquina virtual Dalvik (una variación de la máquina de Java con compilación en tiempo

de ejecución). Además, lo que le diferencia de otros sistemas operativos, es que Android es

de código libre.

Actualmente existen en el mercado una serie de tecnologías mediante las cuales podemos

enviar información o incluso realizar conexiones entre diferentes aparatos electrónicos sin la

necesidad del uso de cables, los cuales funcionan de forma eficiente pero su instalación y

configuración en ocasiones es bastante engorrosa, tal es el caso del estándar Bluetooth para

redes personales inalámbricas

El trabajo desarrollado en esta Tesis se basa en la conexión de dispositivos en una red de

área personal con el fin de controlar y monitorear una casa habitación de manera remota a

través de un teléfono inteligente.

Page 6: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

III | Página

PLANTEAMIENTO DEL PROBLEMA

El monitoreo y control remoto de las casas habitación es un tema de actualidad en aumento

constante, la demanda de mejorar la calidad de vida de las personas ha exigido un desarrollo

tecnológico continuo. Se han diseñado diferentes elementos que día a día pasan de ser lujos

a necesidades.

El control y monitoreo de una casa habitación es una de las necesidades que actualmente se

pueden solucionar con redes de área personal, en combinación con el uso de teléfonos

celulares.

La idea principal en esta Tesis es investigar sobre el monitoreo remoto y local, aplicando los

conceptos en una vivienda colocando equipos para soluciones automatizadas, haciendo que

interactúen en base a un sistema de seguridad y que tengan la capacidad de ser

controlados por medio de un teléfono celular, ya sea mediante el uso de la tecnología

Bluetooth o mediante Mensajes de Texto.

Page 7: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

IV | Página

OBJETIVO GENERAL

Diseñar y construir un sistema de comunicación bidireccional vía Bluetooth entre un

microprocesador (sistema de control) y un teléfono inteligente (acceso remoto y local) para

monitorear procesos de una casa habitación.

OBJETIVOS PARTICULARES

Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende

realizar una conexión simple entre un teléfono inteligente y un microcontrolador mediante la

tecnología Bluetooth y Mensajes de Texto. Para ello, es necesario dividir este trabajo en 4

partes fundamentales para el buen entendimiento del mismo:

• Se dará una visión global de la tecnología Bluetooth y cuáles son sus

principales características, así como el funcionamiento y la estructura de los elementos que

ocuparemos en este trabajo (teléfonos celulares y microcontroladores).

• Se expondrán los conceptos más importantes para la elaboración de una

aplicación para Android, se realizará mediante 2 Aplicaciones; la primera realizará una

conexión inalámbrica entre teléfono celular inteligente y un microcontrolador vía Bluetooth,

para enviar información entre ellos, la segunda Aplicación, a través de la validación de un

Mensaje de Texto, mandará señales de control al microcontrolador vía Bluetooth

• Se diseñará un programa para el microcontrolador MSP430 de Texas

Instruments, explotando sus principales características y, recopilando todos los datos

enviados por los sensores una vez que el usuario así lo requiera.

• Se pondrán a prueba los elementos del sistema de comunicación,

ejemplificando las características elementales de los sensores que utilizamos para censar las

variables a controlar de una casa habitación.

Page 8: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

V | Página

JUSTIFICACIÓN

A lo largo de los estudios de Ingeniería en Comunicaciones y Electrónica, con especialidad

en Comunicaciones se estudian diferentes lenguajes de programación y mecanismos de

comunicación, así como el uso de microcontroladores. Actualmente, es factible programar

los teléfonos celulares como cualquier PC, lo que nos permite usar un teléfono celular para

un número infinito de aplicaciones.

Los microcontroladores están conquistando el mundo, están presentes en nuestro trabajo, en

nuestra casa y en nuestra vida, en general. Pero la invasión acaba de comenzar y el

nacimiento del siglo XXI será testigo de la conquista masiva de estas diminutas

computadoras, que gobernarán la mayor parte de los aparatos que fabricamos y usamos los

humanos.

Por otro lado, los dispositivos móviles disponen de diferentes herramientas de comunicación

como Bluetooth, 3G, Wi-Fi, herramientas de medición como acelerómetro, giroscopio,

barómetro concentrados en un dispositivo que cabe en la palma de la mano; tal es el abanico

de posibilidades que en algunas misiones espaciales han sido utilizados como un aparato

más de medición.

Por estas razones, en este trabajo de Tesis se desarrollan 2 aplicaciones para un teléfono

celular con sistema operativo Android capaz de enviar y transmitir información vía remota y

local, así como enviar y procesar mensajes de texto para decidir y leer el estado de las

diferentes variables que interactúan en una casa habitación. Este trabajo de Tesis no

consiste únicamente en la captura de datos y su presentación al usuario mediante el uso de

texto, sino en aplicar técnicas como programación orientada a objetos, analizar y generar

una clasificación sobre los estilos de operación en base a un análisis de las características

de los sensores sobre los que se ha diseñado este proyecto. El objetivo final es permitir el

control y monitoreo de una casa habitación.

Page 9: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

VI | Página

METODOLOGÍA

La obtención de la información necesaria para la presente investigación es realizada por

medio de una investigación en las ciencias de la ingeniería. Se presentan una serie de

elementos que vinculan la forma habitual para el monitoreo y control a distancia de una casa

habitación. A través del uso de cotidiano de los teléfonos celulares y la amplia gama de

conectividad que estos nos permiten, se elige la tecnología Bluetooth como medio de

conexión. Gracias a la versatilidad que presentan los microcontroladores y al uso de

ellos en la práctica estudiantil, es posible proponer un modelo de conexión mediante un

módulo Bluetooth el cual permite una comunicación bidireccional, esta última función

marca la pauta para la elección de mecanismos (sensores) que permitan interpretar los

diferentes procesos que se llevan a cabo en una casa habitación y así detallar los

siguientes bloques definidos.

Realizar una investigación sobre: teléfonos celulares, comunicación Bluetooth,

microcontroladores y sensores.

Identificar los componentes idóneos en base a los requerimientos del monitoreo

de una casa habitación.

Diseñar una serie de programas que permitan la conexión entre un teléfono

celular y un microcontrolador para la obtención de datos y su presentación.

La información para el desarrollo de este proyecto es de fuentes principalmente

primarias: como lo son libros, artículos de revistas científicas y materias cursadas

durante la carrera de ingeniería en comunicaciones y electrónica, permitiendo la

elaboración de esta Tesis.

Page 10: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

VII | Página

ANTECEDENTES

BeeWi:

La compañía BeeWi Simply Wireless se dedica a ofrecer productos con la última tecnología

en Wi-Fi y Bluetooth en Europa. Esta compañía tiene un vehículo a escala, copia de un Mini

Cooper, controlado por smarthphones (incluye la plataforma Android). La transferencia de

datos se lleva a cabo mediante Bluetooth, lo que limita su espacio de trabajo entre 10-15

metros.

Tiene dos formas de controlarlo, la primera es usando la pantalla táctil de manera que

mediante presionar la pantalla se indica la dirección y sentido de giro de las llantas. Por su

parte; la segunda forma es usando los acelerómetros del teléfono móvil para indicar sentido

de giro y dirección (Figura A y B).

Figura A [1]. Figura B [1].

En la Figura A y se observa la interfaz para el control mediante la pantalla táctil y en la Figura

B Interfaz para el control usando los acelerómetros (Motion Control). Este vehículo utiliza tres

baterías AA, es compatible con versiones iguales o superiores a Android 2.1 y hace uso de

servomotores para la dirección. Es necesario descargar la aplicación para el dispositivo

móvil desde el Android/Play Store, sin ningún costo.

Page 11: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

VIII | Página

AR.Drone:

La compañía Parrot, se dedica a la creación y desarrollo de dispositivos controlados por

teléfonos celulares cuenta con las siguientes certificaciones en calidad: ISO 9001, ISO TS

16949 e ISO 14001. El proyecto a analizar es el AR Drone. Es una cuadricóptero controlado

por teléfonos móviles incluyendo plataforma Android. Sin duda alguna es el invento con

más tecnología y desarrollo actualmente (Figura C). Los controles y la transmisión de video

se llevan a cabo por conexión Wi–Fi, tiene control táctil y de igual forma utilizando los

acelerómetros. Para la seguridad del dispositivo se cuenta con una pantalla de emergencia

en el celular y sensores de contacto para bloquear las hélices. Cuenta con 2 cámaras,

horizontal y vertical con una cobertura de 93º y 64º respectivamente.

Tiene sensores de distancia como el altímetro (6 metros), sensores de posición como los

acelerómetros y el girómetro, finalmente cabe mencionar que tiene piloto automático y

estabilizador automático también. Sin duda es el producto más completo de nuestros

días, la batería es de litio y tiene una duración de 12 minutos en el aire, tiempo razonable

tomando en cuenta todo lo que contiene.

Figura C [2]

El AR Drone está construido de fibra de carbón y plástico de alta resistencia PA66. Tiene

tecnología MEMS (Micro electro-mechanical systems; Sistema Micro Electro-Mecánico).

Los motores que utiliza son de tipo brushless (4 motores), finalmente, es importante

conocer que la resolución es VGA (640x480 pixeles).

Page 12: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

IX | Página

Índice

INTRODUCCIÓN .................................................................................................................... II

PLANTEAMIENTO DEL PROBLEMA ................................................................................... III

OBJETIVO GENERAL ......................................................................................................... IV

OBJETIVOS PARTICULARES............................................................................................. IV

JUSTIFICACIÓN ................................................................................................................... V

METODOLOGÍA ................................................................................................................... VI

ANTECEDENTES................................................................................................................ VII

CAPÍTULO 1 | MARCO TEÓRICO...................................................................................... 2

1.1 Redes De Comunicaciones. ............................................................................... 2

1.1.1 Redes De Área Personal (PAN). .................................................................. 5

1.1.2 Redes De Área Local (LAN). ........................................................................ 5

1.1.3 Redes De Área Amplia (WAN). .................................................................... 6

1.2 La Tecnología Bluetooth. .................................................................................... 6

1.2.1 Protocolos Utilizados En El Estándar Bluetooth............................................. 9

1.2.2 Canales. ...................................................................................................... 10

1.2.3 Trama y Paquete. ....................................................................................... 12

1.2.4 Principios Operativos. ............................................................................... 14

1.2.5 Modos Bluetooth. ....................................................................................... 16

1.3 Teléfonos Celulares. ........................................................................................... 20

1.3.1 Generaciones De Los Teléfonos Celulares. .................................................. 20

1.3.2 Arquitectura De Los Teléfonos Celulares. ............................................... 22

1.3.3 Sistemas Operativos De Los Teléfonos Celulares................................... 25

1.3.4 Versiones De Android. ............................................................................... 28

1.4 Microcontroladores. .......................................................................................... 30

1.4.1 Tipos De Microcontroladores. ................................................................... 30

Page 13: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

X | Página

1.4.2 Arquitectura De Los Microcontroladores. ................................................ 31

1.5 Mensajes De Texto. ........................................................................................... 32

1.6 Funcionamiento De Los SMS En Android. ...................................................... 33

CAPÍTULO 2 | ESTRUCTURA DEL PROGRAMA EN ANDROID. ................................... 35

2.1 Android. ............................................................................................................. 35

2.2 Plataformas De Desarrollo. ............................................................................... 35

2.3 Aplicaciones En Android. ................................................................................. 38

2.3.1 Estructura De Las Aplicaciones Para Android. ........................................ 39

2.3.2 Estructura De Un Proyecto Para Android Con ECLIPSE. ........................ 40

2.4 Manejo De Bluetooth En Android. .................................................................... 42

2.5 Transmisión De Datos Utilizando Bluetooth. .................................................. 44

2.6 Descripción De La Aplicación Realizada En Android. .................................... 49

2.6.1 Validación De Usuario. .............................................................................. 52

2.6.2 Comunicación Bluetooth. .......................................................................... 53

2.6.3 Comunicación Remota. ............................................................................ 56

2.6.4 Recepción y Procesamiento. ..................................................................... 57

CAPÍTULO 3 | ESTRUCTURA DEL PROGRAMA EN EL MICROCONTROLADOR. ...... 61

3.1 Tarjeta De Desarrollo. ....................................................................................... 61

3.2 Entorno De Desarrollo Para El MSP340. .......................................................... 66

3.3 Lenguaje De Programación. ............................................................................. 68

3.4 Descripción Del Programa Realizado Para El Microcontrolador MSP430 ..... 74

CAPÍTULO 4 | IMPLEMENTACIÓN Y PRUEBAS. ........................................................... 83

4.1 Sensores. ........................................................................................................... 83

4.1.1 Descriptores Estáticos De Un Sensor ...................................................... 83

4.1.2 Tipos De Sensores. ................................................................................... 84

4.2 Puesta En Marcha. ............................................................................................ 90

Page 14: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

XI | Página

Conclusiones ................................................................................................................. 100

Bibliografía .................................................................................................................... 102

Glosario de Términos.................................................................................................... 104

Glosario de Acrónimos ................................................................................................. 106

Anexo 1 Identificador Base Único Universal (UUID) ................................................. 111

Anexo 2 Código Fuente De Las App´s ......................................................................... 122

Anexo 3 Programa En Energía ..................................................................................... 135

Anexo 4 Especificaciones De Los Sensores ............................................................... 142

Anexo 5 Módulo Bluetooth ........................................................................................... 147

Page 15: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

1 | Página

CAPÍTULO 1 |“MARCO

TEÓRICO”

Page 16: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

2 | Página

CAPÍTULO 1 | MARCO TEÓRICO

1.1 Redes De Comunicaciones.

El objetivo de las redes de comunicaciones es ofrecer servicios de transferencia de información

entre equipos terminales a través de señales eléctricas. Por lo tanto, los equipos terminales son

aquellos elementos de red usados para acceder a los servicios de transferencia de información

que ofrece la red [3].

Las redes de información o datos varían en tamaño y capacidad, pero todas las redes tienen

cuatro elementos básicos en común:

Protocolos y estándares. Utilizados para regular cómo se envían, direccionan, reciben e

interpretan los mensajes.

Los mensajes o unidades de información que viajan de un dispositivo a otro.

La forma de interconectar los dispositivos a través de un medio físico que puede

transportar los mensajes de un dispositivo a otro.

Los dispositivos de la red que intercambian mensajes entre sí.

Modelo OSI.

El modelo de referencia para la interconexión de sistemas abiertos OSI (Open Systems

Interconnection) es un marco de referencia para definir la arquitectura de redes, en términos de

los cuatro elementos descritos anteriormente. El modelo OSI surge de la necesidad de

interconectar sistemas de procedencia diversa para el intercambio de información. Los

estándares definidos en el modelo OSI describen las reglas generales que deben seguir los

equipos de comunicaciones para que el intercambio de datos sea posible dentro de una

infraestructura que esté compuesta de una gran variedad de equipos de diferentes proveedores

[4]. El modelo OSI se divide en capas; en la Figura 1.1 se muestran las siete capas numeradas,

cada una de las cuales realiza una función específica.

Page 17: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

3 | Página

Figura 1.1 Capas del modelo OSI.

Las funciones definidas en cada capa son:

Física: Establece las especificaciones para realizar la transmisión, tales como medio de

transmisión, conectores, interfaces.

Enlace de datos: Establece los protocolos del control directo de enlaces y acceso al

medio.

Red: Especifica los protocolos de conectividad y selección de ruta entre sistemas.

Transporte: Establece los protocolos de conexiones extremo a extremo, detección de

fallas y control de flujo.

Sesión: Establece los protocolos de administración y terminación de sesiones entre

aplicaciones.

Presentación: Establece la estructura y formato de los datos garantizando que sean

legibles.

Aplicación: Define las especificaciones para suministrar los servicios de la red a los

procesos de aplicaciones.

Page 18: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

4 | Página

Las reglamentaciones y los estándares permiten la interoperabilidad de todas las redes

existentes. La IEEE es la principal generadora de estándares y son creados en el marco de las

reglamentaciones creadas por el FCC (Federal Communications Commission; Comité Federal

de Comunicaciones). Estos son algunos estándares de los cuales están integrados las

normativas para la interoperabilidad de los medios alámbricos e inalámbricos.

802.1 Definición Internacional de Redes. En este estándar se establece la relación entre

los estándares 802 del IEEE y el Modelo de Referencia para Interconexión de Sistemas

Abiertos OSI de la ISO (Organización Internacional de Estándares).

802.2 Control de Enlaces Lógicos. Define el protocolo de control de enlaces lógicos

(LLC) del IEEE, el cual asegura que los datos sean transmitidos de forma confiable por

medio del enlace de comunicación.

La Figura 1.2 muestra los elementos de una red típica, incluyendo dispositivos, medios y

servicios unidos por reglas, que trabajan en forma conjunta para enviar mensajes.

CAMBIAR REGLAS POR PROTOCOLOS

Figura 1.2 Elementos de la red.

Page 19: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

5 | Página

La estructura de las redes pueden variar dependiendo de factores como:

• El tamaño del área cubierta.

• La cantidad de usuarios conectados.

• La cantidad y tipos de servicios disponibles.

Dependiendo de estos factores, las redes pueden clasificarse como redes de área local, redes

de área amplia y redes de área personal.

1.1.1 Redes De Área Personal (PAN).

La red de área personal es una red para una persona. Su configuración básica está integrada

por los dispositivos que están situados en el entorno personal y local del usuario, con un

alcance limitado a un par de metros. Permite establecer una comunicación con diferentes

dispositivos capaces de proporcionar servicios de intercambio de datos, aplicaciones de control

y compartir recursos. Para aumentar la movilidad de los usuarios en la PAN se crearon las

redes WPAN (Wireless Personal Area Network, Red Inalámbrica de Área Personal) orientados a

dispositivos portátiles, donde el estándar mas conocido es el Bluetooth [5].

1.1.2 Redes De Área Local (LAN).

Una red de área local se caracteriza por el área que cubre, están limitadas a distancias

comprendidas de cientos de metros y escasos kilómetros. Están instaladas en edificios o

complejos formados por varios edificios cercanos entre sí. Las LAN ya sea cableada o

inalámbrica WLAN (Wireless Local Area Network, Red de Área Local Inalámbrica) están

diseñadas para transportar datos entres terminales, PC´s y otros dispositivos; incorporan la

capacidad de transportar señales de voz y video. La mayoría de las redes LAN son

estrictamente privadas y el control administrativo que rige las políticas de seguridad y control de

acceso está implementado en el nivel de red del modelo OSI [6].

Page 20: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

6 | Página

1.1.3 Redes De Área Amplia (WAN).

Para interconectar las redes LAN separadas por grandes distancias, los proveedores de

servicios de telecomunicaciones TSP, operan grandes redes regionales que pueden abarcar

largas distancias. Tradicionalmente, los TSP transportan las comunicaciones de voz y de datos

en redes separadas; estas redes que conectan las redes LAN en ubicaciones separadas

geográficamente que se conocen como redes WAN (Wide Area Network, Redes De Área Amplia).

Aunque la organización mantiene todas las políticas y la administración de las redes LAN en

ambos extremos de la conexión, las políticas dentro de la red del proveedor del servicio de

comunicaciones son controladas por el TSP. Las redes WAN utilizan dispositivos de red

diseñados específicamente para realizar las interconexiones entre las redes LAN. Las LAN y

WAN son de mucha utilidad para las organizaciones individuales, conectan a los usuarios

dentro de la organización y permiten gran cantidad de formas de comunicación.

1.2 La Tecnología Bluetooth.

Bluetooth empezó a concebirse en Ericsson Mobile Communications AB (Suecia) en 1994

como el efecto colateral de un proyecto sobre enlaces de comunicadores múltiples conectados

a la red celular mediante teléfonos. En el año 2002, apareció el grupo de interés en la

tecnología Bluetooth SIG (Special Interest Group; Grupo de Interés Especial) en el que

aparecían Ericsson, Toshiba, IBM e Intel como empresas promotoras de la tecnología; más

tarde se sumaron otros promotores como 3Com, Lucent, Microsoft y Motorola generándose el

consorcio Bluetooth; actualmente el Bluetooth SIG cuenta con más de 2000 empresas.

El objetivo de este grupo fue favorecer actividades relativas a mejorar la interoperabilidad entre

dispositivos diseñados para redes personales inalámbricas y con ello favorecer el desarrollo de

procesos de comunicación. Para tratar el tema de la interoperabilidad en términos únicamente

de métrica/evaluación en cuanto a características técnicas, se realizan las pruebas de

productos Bluetooth mediante los protocolos denominados Blue Units.

Page 21: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

7 | Página

Se basan en kits de desarrollo producidos por la firma inglesa CSG parte de la firma

estadounidense Cadence Design Systems a los que se puede acceder a través de Ericsson

Microelectronics AB (Suecia), AU System y Sigma ComTec.

Actualmente, para que un producto pueda considerarse que cumple con el estándar Bluetooth

tiene que cumplir una serie de protocolos y perfiles.

Los protocolos describen cómo se realizan las tareas básicas como señalización, gestión de

enlace y lo que se conoce como SDP (Service Discovery , Descubrimiento de Servicio),

determina qué servicios están disponibles desde y a través de otros dispositivos Bluetooth.

Los perfiles describen la forma en que diferentes protocolos y procedimientos básicos funcionan

conjuntamente en diferentes productos y aplicaciones Bluetooth, los perfiles están considerados

como la primera aproximación en términos de conseguir la interoperabilidad.

Además, se ha creado recientemente el Bluetooth Measurement Initiative (Iniciativa de Medición

Bluetooth) dentro del Bluetooth SIG cuyo objetivo es desarrollar hardware y software para

las pruebas de interoperabilidad. En la actualidad, Bluetooth es utilizado como un estándar para

el desarrollo de redes de área personal (PAN).

En el estándar IEEE 802.15.1 se describe la arquitectura de una WPAN basada en Bluetooth.

Este estándar consta solamente de dos capas:, PHY ( Physical Layer ; Capa Física) y las

subcapas MAC (Medium Access Control; Control de Acceso al Medio) y LLC (Logical Link

Control; Control de Enlace Lógico).

En la Figura 1.3 se muestra la pila de capas del modelo OSI , en las capas de enlace de datos

y física de modelo se presenta la tecnología inalámbrica Bluetooth y su relación con este

estándar. Como se puede observar las subcapas LLC (Logical Link Control; Control de Enlace

Lógico) y la MAC, abarcan las funciones deseadas para la Capa de Enlace de Datos.

Page 22: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

8 | Página

Figura 1.3 Capas del protocolo Bluetooth.

El objetivo del estándar IEEE 802.15 es establecer las bases para permitir la comunicación

inalámbrica entre dispositivos en áreas reducidas (concretamente cables de telefonía,

auriculares, teclados y ratones) mediante un protocolo de comunicaciones inalámbricas de corta

distancia, que opere en la banda libre ISM (Industrial, Científica y Mecánica) de 2.4 GHz y

permita la transmisión de voz y datos en rangos de distancia pequeña [7].

Dependiendo de la radiofrecuencia usada, el alcance puede variar desde 1 metro hasta incluso

100 metros.

La velocidad de transferencia también varía en función de la versión de Bluetooth, habiendo

aumentado desde 1 Mbps en sus orígenes, hasta 24 Mbps de las últimas versiones.

Page 23: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

9 | Página

1.2.1 Protocolos Utilizados En El Estándar Bluetooth.

Los protocolos definidos en el estándar 802.15.1 se describen a continuación:

LMP (Protocolo de Gestión del Enlace): Este protocolo se encarga de labores de

enlace, en este caso, control y configuración, negociación y control del tamaño de los

paquetes. Del mismo modo se encarga de tareas de seguridad, como

autentificación y encriptación.

HCI (Interfaz de Control de Host): Provee de una interfaz de comandos a la

capa de banda base y del protocolo LMP. En general, ofrece un método uniforme para

acceder a las capacidades de los distintos módulos Bluetooth de banda base, que

pueden ser muy heterogéneos. De esta forma se abstrae al host de labores dependientes

del medio físico y de la tecnología más concreta.

L2CAP (Capa de Adaptación y Control de Enlace Lógico): Esta capa se encarga del

multiplexado de diversas fuentes heterogéneas. Al ser heterogéneas, los paquetes que

se reciben de capas superiores pueden ser muy distintos. Así esta capa se encarga de

la segmentación y reensamblado eficientes. Por último entre capas L2CAP hay

intercambio sobre calidad de servicio (QoS), de forma que se controlan los recursos que

se usan y se controla que se cumpla.

Sobre la base que aportan los protocolos anteriores se pueden desarrollar aplicaciones.

El objetivo que se plantean los desarrolladores de Bluetooth es que los usuarios tienen

que poder disfrutar de las mismas aplicaciones y herramientas con las que han

trabajado y que les han dado buenos resultados.

El cambio se produce sin que se aprecien diferencias, de forma transparente, sino más

bien por el disfrute de la nueva capacidad inalámbrica que les aporta BT. De esta

forma encontramos los siguientes protocolos adoptados:

RFCOMM: Es un conjunto simple de protocolos de transporte , se basa en la idea de ofrecer

los mismos servicios que aporta la comunicación por cable mediante Bluetooth. Sobre la

base de L2CAP, se trata de emular puertos serie. Esta es una de las claves del éxito de

BT: Se emulan las conexiones RS232 entre dispositivos mediante un enlace inalámbrico.

Page 24: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

10 | Página

PPP, TCP/IP: Son los protocolos clásicos definidos por la IETF en el modelo de Internet.

En este caso se sustentan sobre la base de Bluetooth.

OBEX: Se trata de un protocolo de intercambio de datos, originalmente pensado para

usarse con tecnología infrarroja. Se ha adaptado este protocolo para usarse sobre Bluetooth.

SDP (Protocolo de Descubrimiento de Servicio): Este protocolo no puede

considerarse un protocolo adoptado como tal, ya que permite descubrir los servicios

que proporciona un determinado dispositivo Bluetooth. Usando la información que ofrece

SDP, podemos encontrar los servicios y características que brinda, tras el

establecimiento del enlace.

HID (Dispositivos de Interfaz Humana): Es una especificación originaria de USB

(Bus Universal en Serie) para controlar dispositivos como teclados, controles de video juego ,

ratones. Siguiendo con su filosofía, Bluetooth dio soporte a esta tecnología, prestando los

mismos servicios. El usuario final no nota la diferencia, salvo por el hecho de que ahora su

ratón no tiene cable.

1.2.2 Canales.

La tecnología inalámbrica de Bluetooth proporciona una cobertura de corto alcance que ha sido

optimizado para el ahorro de energía, operación adecuada de la batería, tamaño pequeño y

para ser utilizada en aparatos personales de bajo peso.

El estándar Bluetooth especifica que una red construida bajo este estándar debe ser capaz de

soportar canales síncronos de comunicación para telefonía de voz y canales de comunicación

asíncronas para comunicación de datos. Dichas facilidades permiten una amplia gama de

aplicaciones y de aparatos que trabajen en una WPAN.

Por ejemplo, un teléfono celular puede usar canales circuit-switched (conmutación de circuitos)

para transportar audio desde y para un receptor en el encabezado mientras se encuentra

utilizando un canal packet-switched (conmutación de paquetes) para intercambiar datos con

una computadora portátil.

Page 25: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

11 | Página

Para solucionar las interferencias Bluetooth utiliza un método de salto de frecuencia pseudo-

aleatoria llamado FH/TDD (Frequency Hop/Time-Division Duplex; Salto de Frecuencia/División

de Tiempo Dúplex.

Se utiliza un transceptor de FFH (Fast Frequency-Hop; Modulación por Salto de Frecuencia) de

1600 saltos/s y modulación binaria FSK (Frequency Shift Keying; Modulación por

Desplazamiento de Frecuencia) para transmitir símbolos con una tasa de 1 símbolo/s.

La técnica del salto de frecuencias, basada en FSK, cuando se combina con una modificación

del canal seleccionado dinámicamente, se denomina AFH (Adaptive Frequency Hopping; Salto

de Frecuencia Adaptable), y permite reducir las interferencias con otras tecnologías

inalámbricas (muy frecuentes en ese rango del espectro, en el que abundan las redes Wi-Fi),

aprovechando las frecuencias que presenten mejores características como canal de

comunicación en cada momento.

Se utiliza también una trama rápida de TDD (Time Division Duplex; Dúplex por División de

Tiempo) para permitir enlaces Full Dúplex en capas superiores. El sistema es dúplex,

dividiendo el uso del canal en intervalos temporales de 625 µs llamados slots o ranuras de

tiempo, de forma que los paquetes puedan utilizar slots de transmisión y de recepción, de

manera alternativa.

Esto da lugar a una frecuencia de salto de 1600 veces por segundo, en la que un paquete de

datos ocupa un slot para la emisión y otro para la recepción y que pueden ser usados

alternativamente, dando lugar a un esquema de tipo TDD, (como se puede ver en la Figura 1.4).

De esta manera se pueden conseguir transceptores de banda estrecha con una gran inmunidad

a las interferencias.

Page 26: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

12 | Página

Figura 1.4 Ranuras de transmisión y recepción.

En el canal, la información se intercambia a través de paquetes. Cada paquete se transmite en

una frecuencia diferente dentro de la secuencia de espera. Un paquete normalmente cubre una

sola ranura, pero se puede extender de tres a cuatro ranuras.

Para tráfico de datos, de manera unidireccional es posible transmitir un máximo de 723.2 kbps

entre dos dispositivos. El canal asíncrono puede soportar un enlace asimétrico de 721 kbps

como máximo en cualquier dirección, mientras que permite 57.6 kbps en la dirección de

retorno. También puede soportar un enlace simétrico de 432.4 kbps.

Un canal bidireccional soporta un tráfico de voz entre dos dispositivos con una velocidad de

hasta 64 kbps. La inestabilidad para el tráfico de voz se mantiene bajo al usar ranuras de

tiempo pequeñas en la transmisión. En países donde la banda está abierta a 80 canales o más,

espaciados todos ellos a 1 MHz. Se han definido 79 saltos de portadora, y en aquellos donde la

banda es más estrecha se han definido 23 saltos.

1.2.3 Trama y Paquete.

La Figura 1.5 muestra el formato general del contenido de una ranura de tiempo, trasmitida al

aire en una WPAN de Bluetooth.

Page 27: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

13 | Página

Figura 1.5 - Trama de información.

La mayoría de los paquetes incluyen una cabecera del paquete. El encabezado del paquete

está siempre presente en los paquetes transmitidos en los canales con características físicas

que soportan los enlaces físicos, comunicaciones lógicas, y enlaces lógicos.

El encabezado del paquete es utilizado por cada dispositivo receptor para determinar si el

paquete se dirige al dispositivo y se utiliza para encaminar el paquete internamente, indica el

tipo de trama, el tipo de corrección de errores , cuantas ranuras de longitud tiene la trama

transmitida, detectar retransmisiones y numerar las tramas. La carga útil del paquete se utiliza

para transportar los datos del usuario. La interpretación de estos datos es dependiente de la

comunicación lógica. Para las comunicaciones lógicas los mensajes y señales se transportan

en la carga del paquete, junto con los datos generales del usuario de las aplicaciones.

Así, se utiliza un protocolo de pregunta y respuesta, un flujo cifrado de datos, y una clave de

sesión modificable durante la conexión. Para verificar la identidad de los participantes en la

comunicación, se utiliza la dirección de la unidad Bluetooth (cada dispositivo tiene una dirección

única de 48 bits), una clave privada de usuario (generada durante la fase inicial), y un número

aleatorio creado en cada unidad.

Page 28: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

14 | Página

Una vez establecidas estas relaciones, se pueden enviar los paquetes de información. Su

estructura se compone de un código de acceso de 72 bits, una cabecera de 54 bits con

información de control, bits de acceso de dirección, de control de tráfico, de retransmisión, de

tipo de paquete, y por último la información como tal, que puede tener una longitud de 0 a 2745

bits, como se ve en la Figura 1.5. El código de acceso revisa cada transmisión, y si un paquete

no contiene el código correcto, se rechaza [8].

1.2.4 Principios Operativos.

Cuando dos dispositivos (o más) establecen la conexión mediante Bluetooth, forman lo que se

denomina una piconet. Al hacerlo, una de las unidades (la que establece la piconet,

normalmente) gestionará el tráfico en el canal, pasando a ser la unidad maestro. El resto se

conectarán a ella, como esclavos. El papel del maestro puede cambiar, siempre y cuando sólo

haya uno en cada momento.

Dado que todas las unidades tienen que sincronizar a la perfección sus retransmisiones para

poder “seguir el ritmo de saltos” del canal, es necesario que los esclavos ajusten mediante

pequeñas correcciones sus relojes con el reloj del maestro, mientras dure la conexión. El

maestro, por su parte, controlará el tráfico, reservando slots para enlaces síncronos, o

sondeando slots convenientes para los enlaces asíncronos, ya que admite ambos tipos de

conexiones (de hecho también se consideran los enlaces isócronos, con tasa de envío variable

pero temporizados como los síncronos).

En cuanto a la seguridad, hay un nivel de protección integrado directamente en el chip de

radiofrecuencia de los dispositivos Bluetooth, útil cuando se integran en sistemas que no

aportan mayor procesamiento de la información.

A la hora de transmitir los paquetes, la potencia utilizada por el dispositivo es muy baja (siendo

éste uno de los puntos fuertes de Bluetooth). Un paquete cubre normalmente una ranura pero

se puede extender hasta cubrir cinco ranuras. Bluetooth puede soportar un canal de datos

síncrono.

Page 29: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

15 | Página

Especificaciones Bluetooth.

La especificación Bluetooth define un canal de comunicación de máximo 720kbps con un rango

óptimo que va de los 10 metros hasta 100 metros. Esta tecnología limita la potencia de

salida exactamente al valor necesario. Por ejemplo, si el dispositivo receptor indica que se

encuentra a unos pocos metros del transmisor, éste último modifica la fuerza de la señal que

emite para ajustarla al valor exacto. Mediante esta tecnología también se puede desplazar el

modo de operación a baja potencia cuando se pare el volumen de tráfico o alcance un valor

bajo.

Este modo de baja potencia solamente se ve interrumpido por señales muy cortas con el

propósito de verificar la conexión establecida. En la Tabla 1 se pueden apreciar las

especificaciones técnicas de la tecnología Bluetooth.

Alcance 10 m (0 dBm)

Alcance opcional 100 m (+ 20 dBm)

Potencia normal transmitida 0 dBm (1mW)

Potencia opcional transmitida -30 a + 20 dBm (100 mW)

Sensibilidad del receptor -70 dBm

Banda de frecuencia 2400 - 2483 MHz

Máxima transferencia de datos Asimétrica: 732.2 kbps Simétrica: 432,6 kbps

Máximo número de usuarios Activos: 8 Inactivos: > 200

Tabla 1 Especificaciones Bluetooth.

La clasificación de los dispositivos Bluetooth como “Clase 1”, “Clase 2”, “Clase 3”, es

únicamente una referencia en cuanto a la potencia de transmisión del dispositivo y alcance del

mismo, siendo totalmente compatible los dispositivos de una clase con otra. Para el caso de

radio Clase 1, se utilizan hasta 100 mW para alcanzar 30 metros de distancia. Lo más común es

utilizar radio Clase 2, que puede transmitir a entre 5 y 10 metros, con 2.5 mW de potencia.

Page 30: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

16 | Página

Conforme los dispositivos han ido modernizándose, cada vez su sensibilidad a la señal es

mejor, por lo que es necesaria menos potencia para una correcta comunicación, o, lo que es lo

mismo, la distancia máxima efectiva es mayor para una potencia dada (Tabla 2).

Clase Potencia máxima permitida (mW) Alcance(aproximado)

Clase 1 100 mW ~30 metros

Clase 2 2.5 mW ~5-10 metros

Clase 3 1 mW ~1 metro

Tabla 2 Clases del protocolo de comunicación Bluetooth.

En lo referente a la velocidad de transmisión, en la versión 4.0 de Bluetooth ,se alcanzan hasta

los 24 Mbps, cantidad muy superior al megabit por segundo de la versión 1 (que, en la práctica,

rondaba los 720 kbps).En la versión 2, la mejora de velocidad se alcanza si ésta implementa

EDR, (Enhanced Data Rate, Velocidad de Datos Mejorada), que es una característica opcional

(Tabla 3).

Versión Velocidad

Versión 1.2 1 Mbps

Versión 2.0 EDR 3 Mbps

Versión 3.0 HS 24 Mbps

Versión 4.0 24 Mbps

Tabla 3 Velocidades de transmisión del protocolo de comunicación Bluetooth

1.2.5 Modos Bluetooth.

El sistema Bluetooth posibilita la conexión punto – punto y la conexión punto–multi-punto. En la

conexión punto – multi-punto varias unidades Bluetooth comparten el mismo canal. Dos o más

unidades que comparten el mismo canal forman una piconet . Existe una unidad maestro y

pueden existir hasta 7 unidades esclavo activas. Estos dispositivos pueden estar en cualquiera

de los siguientes estados:

Page 31: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

17 | Página

Active. En este modo tanto el maestro como el esclavo participan de forma activa en el canal

escuchando, transmitiendo o recibiendo los paquetes. El maestro y el esclavo están

sincronizados.

Sniff. En este modo el esclavo en vez de estar escuchando en cada slot el mensaje del

maestro, revisa algunos periodos de tiempo, ahorrando potencia en aquellos instantes en los

que se encuentra “durmiendo”.

Hold. En este modo un dispositivo de forma temporal puede no soportar paquetes e ir a un

modo de baja potencia para que el canal esté disponible.

Park. En este estado es cuando un esclavo no necesita participar en el canal de la piconet pero

todavía quiere permanecer sincronizado con el canal. Si varias piconets tienen áreas de

cobertura que se superponen forman una scatternet o red dispersa.

Scatternet. Una red dispersa es un tipo de red que se forma entre dos o más dispositivos con

capacidad Bluetooth, tales como teléfonos inteligentes y electrodomésticos. Una red dispersa

se compone de al menos dos piconets, estos dispositivos Bluetooth son unidades de pares que

actúan como esclavos o maestros.

Redes dispersas se forman cuando un dispositivo en una piconet, sea un maestro o un esclavo,

decide participar como esclavo al maestro de otra piconet. Este dispositivo se convierte

entonces en el puente entre las dos piconets, la conexión de ambas redes; En la Figura 1.6 se

muestran los modos de conexión.

Figura 1.6 a) Piconet con un esclavo, b) Múltiples esclavos, c) Scatternet

Page 32: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

18 | Página

Para establecer la piconet, la unidad maestro debe conocer la identidad del resto de unidades

que están en modo standby (suplente) en su radio de cobertura. El maestro o aquella unidad

que inicia la piconet transmite el código de acceso continuamente en periodos de 10 ms,

que son recibidas por el resto de unidades que se encuentran en standby.

El tren de 10 ms de códigos de acceso de diferentes saltos de portadora, se transmite

repetidamente hasta que el receptor responde o bien se excede el tiempo de

respuesta.

Cuando una unidad emisora y una receptora seleccionan la misma portadora de salto, la

receptora recibe el código de acceso y devuelve una confirmación de recibo de la señal, es

entonces cuando la unidad emisora envía un paquete de datos que contiene su identidad y

frecuencia de reloj actual.

Después de que el receptor acepta éste paquete, ajustará su reloj para seleccionar el canal de

salto correcto determinado por emisor.

De éste modo se establece una piconet en la que la unidad emisora actúa como maestra y la

receptora como esclava.

Después de haber recibido los paquetes de datos con los códigos de acceso, la unidad maestro

debe esperar un procedimiento de requerimiento por parte de las esclavas, diferente al

proceso de activación, para poder seleccionar una unidad específica con la que comunicarse.

En la Figura 1.7 se muestran los diferentes estados de una conexión vía Bluetooth.

Page 33: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

19 | Página

Figura 1.7 Estados de una conexión.

Enlace físico.

En la especificación Bluetooth se definen dos tipos de enlace físico:

Enlace de sincronización de conexión orientada (SCO).

• Conexión simétrica punto a punto entre maestro y esclavo.

• El maestro utiliza slots de tiempo reservados a intervalos regulares.

• El maestro puede soportar más de 3 enlaces simultáneos mientras que los esclavos 3

como máximo.

• Los paquetes de configuración nunca son retransmitidos.

• Principalmente este tipo de enlace se utiliza para transmitir información de voz

con un radio de transmisión de 64kbps.

Page 34: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

20 | Página

Enlace asíncrono de baja conexión (ACL).

• Conexiones simétricas o asimétricas punto-multipunto entre maestro y esclavo.

• Conexión utilizada para la transmisión de datos.

• Se aplica retransmisión de paquetes.

• Se definen para este tipo de conexión los slots 1,3 y 5.

• La máxima velocidad de envío es de 721 kbps en una dirección y 57.6 kbps en la otra

[9].

1.3 Teléfonos Celulares.

Se define teléfono móvil o celular como un dispositivo electrónico de comunicación inalámbrica,

normalmente de diseño reducido que tiene las mismas funciones que cualquier teléfono de

línea fija. Su rasgo característico principal es que se trata de un dispositivo portable e

inalámbrico, esto es, que la realización de llamadas no es dependiente de ningún tipo de

cableado para llevar a cabo la conexión a la red telefónica. Aunque su principal función es la

comunicación de voz, como cualquier otro teléfono convencional, un celular incorpora un

conjunto de funciones adicionales, tales como mensajería instantánea, agenda, juegos,

cámara fotográfica, acceso a Internet, reproducción de video e incluso GPS y reproductor Mp4.

1.3.1 Generaciones De Los Teléfonos Celulares.

1G: Móviles de Primera Generación.

Surgidos a partir de 1973, su tamaño y peso eran muy grandes. Para los móviles de primera

generación la transmisión funcionaba de manera analógica. El hecho de que fueran

analógicos traía consigo una serie de inconvenientes, tales como que solo podían ser utilizados

para la transmisión de voz (el uso de mensajería instantánea era algo solo visible en un futuro

muy lejano).

Page 35: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

21 | Página

Los estándares más utilizados para telefonía de primera generación:

• NMT: Nordic Mobile Telephone – Telefonía Móvil Nórdica.

• AMPS: Advanced Mobile Phone System – Sistema Telefónico Móvil Avanzado.

2G: Segunda Generación.

La denominada ”segunda generación” marca el paso de la telefonía analógica a la digital, que

permitió, mediante la introducción de una serie de protocolos, la mejora del manejo de

llamadas, más enlaces simultáneos en el mismo ancho de banda y la integración de otros

servicios adicionales al de la voz, de entre los que destaca el Servicio de Mensajes Cortos

SMS (Short Message Service). Estos protocolos fueron implementados por diversas compañías,

siendo este hecho el origen de uno de los principales problemas de esta generación la

incompatibilidad entre protocolos, debido a que el radio de utilización del teléfono quedaba

limitado al área en el que su compañía le diera soporte.

Estándares más utilizados:

• GSM: Global System for Mobile Communications - Sistema Global para Comunicaciones

Movíles

• CDMA: Code Division Multiple Access - Acceso Múltiple por División de Código.

• GPRS: General Packet Radio Service - Servicio General de Radio por Paquetes.

3G: Tercera Generación.

El año 2001 fue un año revolucionario en el ámbito de la telefonía móvil, ya que supuso la

aparición de los primeros celulares que incorporaban pantalla LCD a color, hecho que habría

un inmenso abanico de posibilidades en cuanto a adaptación de nuevas funciones se refiere.

Así el usuario operaba dispositivos con cámara fotográfica digital, posibilidad de grabar videos

y mandarlos con un sistema de mensajería instantánea, juegos , sonido Mp3 o poder

mantener conversaciones por videoconferencia gracias a una tasa de transferencia de

datos más que aceptable y a un soporte para internet correctamente implementado (correo

Page 36: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

22 | Página

electrónico, descargas, etc.). Todo este conjunto de nuevos servicios integrados en el teléfono

celular.

Estándares más utilizados:

• UMTS: Universal Mobile Telecommunications System - Servicios Universales de

Comunicaciones Móviles.

4G: Cuarta Generación.

La tecnología 4G implica un cambio radical en la red de comunicación, es posible establecer

conexiones a una velocidad de 1Gbps, y obtener transferencias de hasta 100 Mbps; para lograr

esas tasas de velocidades, la cuarta generación está basada por completo en IP. Esto hará

posible que la convergencia entre los dispositivos móviles y otros equipos, tales como

computadoras de escritorio ofrezcan una velocidad de acceso de hasta 100 Mbps. descendente

y 50 Mbps en enlace ascendente, siempre manteniendo los estándares de seguridad entre

dispositivos. La idea fundamental sobre la que se encuentra basada esta nueva tecnología de

comunicación móvil ofrece una de las redes más estables y veloces para la conexión a Internet.

Estándares más utilizados:

• LTE: Long Term Evolution - Evolución a Largo Plazo (Tecnología de banda ancha

inalámbrica).

1.3.2 Arquitectura De Los Teléfonos Celulares.

Hay una clara diferencia en cuanto al microprocesador que utilizan los teléfonos móviles con

respecto al de una PC. Los teléfonos móviles utilizan microprocesadores que tienen un menor

consumo de energía y una menor potencia, además de un conjunto de instrucciones mucho

más reducido. ARM es el principal proveedor de la industria de los microprocesadores

integrados de 32 bits, ofreciendo una amplia gama de procesadores basados en una

arquitectura común que ofrecen un alto rendimiento y es líder en eficiencia energética y costo

del sistema.

Page 37: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

23 | Página

La arquitectura ARM es de las más utilizadas, debido a su gran simplicidad. Los denominados

"Smartphone" utilizan microprocesadores con este tipo de arquitectura, así como el iphone de

Apple y los equipos con Android ; hoy en día la tecnología ARM se utiliza en más del 95% de

los teléfonos móviles del mundo y más de un cuarto de todos los dispositivos electrónicos, los

fabrican empresas como Nvidia, Samsung o Qualcomm.

Frente a estos compite Intel con su línea X86, que se venden con el nombre de Intel Atom

tanto para móviles como PDAs; estos son más eficientes en cuanto a energía y permiten

integrar el chip en dispositivos reducidos que alcancen grandes temperaturas. La arquitectura

ARM se describe generalmente como un conjunto reducido de instrucciones (RISC), ya que

incorpora las características típicas de la arquitectura RISC:

Un archivo de registro uniforme de load/store architecture (arquitectura de carga

/almacenamiento), donde el procesamiento de datos funciona únicamente en el

contenido del registro, no directamente sobre el contenido de la memoria. Simples

modos de direccionamiento, con toda la load/store addresses (direcciones de carga /

almacenamiento) determina a partir de contenido de los registros y los campos de

instrucción.

Mejoras en una arquitectura RISC básicos permiten que los procesadores ARM logren

un buen equilibrio de alto rendimiento, el tamaño de código pequeño, bajo consumo de

energía y el área pequeña.

Arquitectura ARM.

La arquitectura ARM es un procesador RISC de 32 bits usado en un amplio número de

aplicaciones, son los procesadores más populares en el mundo utilizados en sistemas

integrados, hoy en día, cerca del 75% de los procesadores de 32 bits poseen este chip en su

núcleo. La tecnología ARM es ampliamente usada en el diseño de “system-on-chip” formando el

núcleo del sistema, también la encontramos a la vanguardia en el desarrollo de nuevos

sistemas móviles.

Page 38: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

24 | Página

Las diferentes familias de arquitectura ARM están estandarizadas por un núcleo procesador y

periféricos estándares que ayudan a manejar la complejidad y compatibilidad de diferentes

sistemas. Según se han ido desarrollando las diferentes familias de la arquitectura ARM como

son ARM7, ARM9, ARM10, ARM11, han ido incrementado los adelantos tecnológicos, brindado

un incontable número de herramientas para desarrollar proyectos con esta arquitectura.

La mayoría de las compañías electrónicas internacionales han tomado la arquitectura ARM

como el principal instrumento para el adelanto tecnológico, debido a que ofrece un extenso

número de productos para el desarrollo de proyectos como; microprocesadores RISC de 16/32

bits, procesador de datos, procesador 3D, librerías digitales, memorias integradas, periféricos,

software, herramientas de desarrollo; muchas de las cuales son de libre acceso ( como se

muestra en la Figura 1.8). Debido a esto es necesario hacer un estudio de la arquitectura ARM,

sus diferentes familias, fabricantes y herramientas de desarrollo para sentar bases teóricas

con la finalidad de conocer los beneficios que brinda y poder desarrollar diferentes tipos de

aplicaciones de acuerdo con los avances electrónicos que se den en el mundo.

Figura 1.8 Arquitectura ARM.

Page 39: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

25 | Página

1.3.3 Sistemas Operativos De Los Teléfonos Celulares.

La telefonía móvil cambío el entorno actual de una forma significativa, esta revolución ha

impulsado el desarrollo de los nuevos equipos que ofrecen unas capacidades similares a una

PC, lo que permite que puedan ser utilizados para leer nuestro correo o navegar por internet.

Pero a diferencia de una PC, un teléfono móvil siempre está en el bolsillo del usuario, y permite

el uso de aplicaciones mucho más cercanas al usuario. Para poder manejar estos equipos es

necesario el uso de sistemas operativos; los sistemas operativos mas usados son :

iPhone,Symbian, Windows Phone, BlackBerry, Palm, Java Mobile Edition, Linux Mobile (LiMo),

sin embargo Android presenta una solución con las siguientes cualidades:

Plataforma realmente abierta. Es una plataforma de desarrollo libre basada en Linux y de

código abierto. Una de sus grandes ventajas es que se puede usar el sistema sin pagar

regalías.

Adaptable a cualquier tipo de Hardware. Android no ha sido diseñado exclusivamente para

su uso en teléfonos y tabletas. Hoy en día podemos encontrar relojes, cámaras,

electrodomésticos y gran variedad de sistemas que se basan en este sistema operativo.

Esté hecho tiene sus evidentes ventajas, pero también va a suponer un esfuerzo adicional al

programador.

La aplicación ha de funcionar correctamente en dispositivos con gran variedad de tipos de

entrada, pantalla, memoria, etc. Esta característica contrasta con la estrategía de Apple. En iOS

tenemos que desarrollar una aplicación para iPhone y otra diferente para iPad.

Portabilidad asegurada. Las aplicaciones finales son desarrolladas en Java lo que nos

asegura que podrán ser ejecutadas en cualquier tipo de CPU, tanto presente como futuro. Esto

se consigue gracias al concepto de maquina virtual.

Arquitectura basada en componentes inspirado en internet. Por ejemplo, el diseño de la

interfaz de usuario se hace en XML, lo que permite que una misma aplicación se ejecute en un

móvil de pantalla reducida o en una televisión

Page 40: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

26 | Página

Gran cantidad de servicios incorporados. Por ejemplo, la localización basada en tanto GPS

como en redes, bases de datos con SQL, reconocimiento y síntesis de voz, navegador,

multimedia, etc.

Filosofía de dispositivo siempre conectado a internet.

Optimizado para baja potencia y poca memoria. Por ejemplo, Android utiliza la Maquina

Virtual Dalvik. Se trata de una implementación de Google a la máquina virtual de Java

optimizada para dispositivos móviles.

Alta calidad de gráficos y sonido. Gráficos vectoriales suavizados animaciones inspiradas en

flash, gráficos en 3D basados en OpenGL. Incorpora codecs estándar más comunes de audio y

video incluyendo H.264 (AVC), Mp3, AAC.

En la Tabla 4 se muestran las características de los cinco principales sistemas operativos para

celulares y en la Figura 1.9 su interfaz gráfica.

Apple iOS 7 Android 4.3 Windows Phone 8.1 BlackBerry 10 Symbian OS 10.1

Figura 1.9 Interfaz gráfica de los sistemas operativos móviles actuales.

Page 41: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

27 | Página

Compañía Apple Open Handset

Alliance

Windows RIM Symbian

Foundation

Núcleo Del SO Mac OS X Linux Windows CE Mobile OS Mobile OS

Familia CPU soportada ARM ARM, MIPS,

Power, X86

ARM ARM ARM

Lenguaje de programación

C++ (POO) Java, C++

(POO)

C++ JAVA C++

Licencia de Software Propietaria Software libre y

abierto

Propietaria Propietaria Software libre

Año de lanzamiento 2013 2013 2013 2013 2012

Motor del navegador web

Web-kit Web-kit Pocket Internet

Explorer

Web-kit Web-kit

Soporte Flash NO SI NO SI SI

HTML5 SI SI Parcial SI NO

Tienda de aplicaciones App Store Google Play Windows

Marketplace

Black Berry

App Word

Ovi Store

Numero de aplicaciones

400.000 900.000 50.000 30.000 50.000

Costo por publicar $ 99 / año $ 25 una vez $ 99 / año Sin Costo $ 1 una vez

Plataforma de desarrollo

Mac Windows. Mac,

Linux

Windows Windows, Mac Windows,

Mac, Linux

Interfaz personalizable No SI SI SI SI

Actualizaciones automáticas del S.O.

SI Depende del

fabricante

Depende del

fabricante

SI SI

Soporte De Memoria Interna

No SI NO SI SI

Fabricante único SI NO NO SI NO

Variedad de dispositivos

Modelo

Único

Muy Alta Baja Baja Muy Alta

Tabla 4 - Comparativa de sistemas operativos móviles actuales.

Page 42: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

28 | Página

1.3.4 Versiones De Android.

El sistema operativo Android, al igual que los propios teléfonos móviles, ha evolucionado

rápidamente, acumulando una gran cantidad de versiones:

Cupcake: Android Versión 1.5

Características: Widgets, teclado QWERTY virtual, copiar y pegar, captura de vídeos y

poder subirlos a YouTube directamente.

Donut: Android Versión 1.6

Características: Añade a la anterior la mejoría de la interfaz de la cámara, búsqueda por voz, y

navegación en Google Maps.

Eclair: Android Versión 2.0, 2.1

Características: Mejoras en Google Maps, salvapantallas animado, incluye zoom digital para la

cámara, y un nuevo navegador de internet.

Froyo: Android Versión 2.2.X

Características: Incluye hostpot Wi-Fi, mejora de la memoria, más veloz, Microsoft Exchange y

video-llamada.

Ginger Bread: Android Versión 2.3.X

Características: Mejoras del consumo de batería, el soporte de vídeo en línea y el teclado

virtual, e incluye soporte para pagos mediante NFC.

Honey Comb: Android Versión 3.X

Características: Mejoras para tablets, soporte Flash y Divx, integra Dolphin, multitarea pudiendo

cambiar de aplicación dejando las demás en espera en una columna, widgets y home page

(pagina de inicio) personalizable.

Page 43: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

29 | Página

Ice Cream Sandwich: Android Versión 4.0.X

Características: Multiplataforma (tablets, teléfonos móviles y netbooks), barras de estado,

pantalla principal con soporte para 3D, widgets redimensionables, soporte usb para teclados,

reconocimiento facial y controles para PS3.

Jelly Bean: Android Versión 4.1, 4.2, 4.3

Características: Fluidez de la interfaz de usuario, sincronismo vertical, triple búffer y aumento de

la velocidad del procesador al tocar la pantalla. Se mejoran las notificaciones con un sistema de

información expandible personalizada. Los widgets de escritorio pueden ajustar su tamaño y

hacerse sitio de forma automática al situarlos en el escritorio.

El dictado por voz puede realizarse sin conexión a Internet .Se introducen varias mejoras en

Google Search. Se potencia la búsqueda por voz con resultados en forma de ficha. La función

Google Now permite utilizar información de posición, agenda y hora en las búsquedas. Se

incorporan un nuevo soporte para usuarios internacionales: como texto bidireccional y teclados

instalables. Para mejorar la seguridad las aplicaciones son cifradas. También se permite

actualizaciones parciales de aplicaciones.

KitKat: Android Versión 4.4

Características: Los componentes principales de Android han sido recortados para reducir sus

requerimientos de memoria, y se ha creado una nueva API que permite adaptar el

comportamiento de la aplicación en dispositivos con poca memoria. Más visibles son algunas nuevas características de la interfaz de usuario. El modo de inmersión

en pantalla completa oculta todas las interfaces del sistema (barras de navegación y de estado)

de tal manera que una aplicación puede aprovechar el tamaño de la pantalla completa.

WebViews (componentes de la interfaz de usuario para mostrar las páginas Web) se basa

ahora en el software de Crome de Google y por lo tanto puede mostrar contenido basado en

HTM5. Se mejora la conectividad con soporte de NFC para emular tarjetas de pago tipo HCE,

soporte para protocolo Bluetooth versión 4.0 y soporte para mandos infrarrojos. También se

mejoran los sensores para disminuir su consumo y se incorpora un sensor contador de pasos.

Page 44: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

30 | Página

Se facilita el acceso de las aplicaciones a la nube con un nuevo marco de almacenamiento.

Este marco incorpora un tipo específico de content provider conocido como document provider,

nuevas intenciones para abrir y crear documentos y una ventana de dialogo que permite al

usuario seleccionar ficheros. Se incorpora un administrador de impresión para enviar

documentos a través de Wi-Fi a una impresora. Se añade un content provider para gestionar

los SMS. Desde una perspectiva técnica, hay que destacar la introducción de la nueva máquina

virtual ART, que consigue tiempos de ejecución muy superiores a la máquina Dalvik. Sin

embargo, todavía está en una etapa experimental. Por defecto se utiliza la máquina virtual de

Dalvik, permitiendo a los programadores activar opcionalmente ART para verificar que sus

aplicaciones funcionan correctamente.

1.4 Microcontroladores.

Un microcontrolador es un circuito integrado programable que contiene todos los componentes

necesarios para controlar el funcionamiento de una tarea determinada, como el control de un

horno microondas, un teclado de computador, un robot, un sistema de alarma, etc. Para esto, el

microcontrolador utiliza muy pocos componentes asociados.

Un sistema con microcontrolador debe disponer de una memoria donde se almacena la

configuración, sólo sirve para realizar la tarea asignada. La utilización de un microcontrolador

en un circuito reduce notablemente el tamaño y número de componentes y en consecuencia,

disminuye el número de averías, el volumen y el peso de los equipos, entre otras ventajas.

1.4.1 Tipos De Microcontroladores.

Existe una gran diversidad de microcontroladores, quizá la clasificación más importante sea

entre microcontroladores de 4, 8, 16 ó 32 bits. Aunque las prestaciones de los

microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits, la realidad es que los

microcontroladores de 8 bits dominan el mercado y los de 4 bits se resisten a desaparecer, la

razón de esta tendencia es que los microcontroladores de 4 y 8 bits son apropiados para la gran

mayoría de las aplicaciones.

Page 45: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

31 | Página

Lo que hace absurdo emplear microcontroladores más potentes y consecuentemente más

caros, uno de los sectores que más utiliza el mercado del microcontrolador es el mercado de

los teléfonos móviles, de hecho, algunas de las familias de microcontroladores actuales se

desarrollaron pensando en este sector, siendo modificadas posteriormente para adaptarse a

sistemas más genéricos. También los modernos microcontroladores de 32 bits van afianzando

sus posiciones en el mercado, siendo las áreas de más interés el procesamiento de imágenes,

las comunicaciones, las aplicaciones militares, los procesos industriales y el control de los

dispositivos de almacenamiento masivo de datos.

Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores

actuales.

CISC: Un gran número de procesadores usados en los microcontroladores están basados en la

filosofía CISC (Computadores de Juego de Instrucciones Complejo). Disponen de más de 80

instrucciones máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes,

requiriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que

ofrecen al programador instrucciones complejas que actúan como macros.

RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores

están tendiendo hacia la filosofía RISC (Computadores de Juego de Instrucciones Reducido).

En estos procesadores el repertorio de instrucciones máquina 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.

SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de

instrucciones, además de ser reducido, es “específico”, o sea, las instrucciones se adaptan a las

necesidades de la aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC

(Computadores de Juego de Instrucciones Específico).

1.4.2 Arquitectura De Los Microcontroladores.

Un microcontrolador dispone normalmente de los siguientes componentes:

• Procesador o CPU (Unidad Central de Procesamiento).

Page 46: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

32 | Página

• Memoria RAM para contener los datos.

• Memoria para el programa tipo ROM / PROM / EPROM

• Líneas de E/S para comunicarse con el exterior.

• Diversos módulos para el control de periféricos (Temporizadores, Puertas Serie y

Paralelo,CAD: Conversores Analógico / Digital, CDA: Conversores Digital / Analógico, etc.).

• Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de Von

Neumann, en la actualidad se emplea más la arquitectura Harvard.

La arquitectura de Von Neumann se caracteriza por disponer de una sola memoria principal

donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a

través de un sistema de buses único (direcciones, datos y control).

La arquitectura Harvard dispone de dos memorias independientes una, que contiene sólo

instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de

acceso y es posible realizar operaciones (lectura o escritura) simultáneamente en ambas

memorias

1.5 Mensajes De Texto.

El servicio de mensajes cortos SMS es un servicio que comenzó a ofrecerse con la segunda

generación de telefonía celular para almacenar y reenviar cadenas de texto. Un mensaje SMS

es una cadena alfanumérica de hasta 140 caracteres o de 160 caracteres de 8 bits, y cuyo

encapsulado incluye una serie de parámetros.

En principio, se emplean para enviar y recibir mensajes de texto normal, pero existen

extensiones del protocolo básico que permiten incluir otros tipos de contenido, dar formato a los

mensajes o encadenar varios mensajes de texto para permitir mayor longitud (formatos de SMS

con imagen de Nokia, tonos IMY de Ericsson, estándar EMS para dar formato al texto e incluir

imágenes y sonidos de pequeño tamaño).

Page 47: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

33 | Página

MMS o Servicio Multimedia, se refiere a los mensajes de texto que incluyen archivos adjuntos,

como fotos, vídeos o imágenes. Aunque utiliza una tecnología diferente a los textos de SMS,

puedes enviar y recibir mensajes MMS utilizando la misma aplicación de mensajería.

1.6 Funcionamiento De Los SMS En Android.

Cuando se envía un SMS, el teléfono lo envía primero a un Centro de Servicio de Mensajería

Corta o SMSC, que envía una solicitud al registro de posiciones, o HLR, una base de datos de

información de teléfonos. El HLR identifica si el teléfono al se está enviando mensajes de texto

está disponible o no, y cuál es la red en la que se está actualmente.

Para un teléfono no disponible, el HLR guarda los mensajes hasta que el teléfono se encuentra

disponible; para un teléfono disponible, envía una notificación al SMSC. El SMSC envía el texto

en un formato , y el teléfono del destinatario recibe una página y responde, luego llega el SMS.

Los textos de SMS están limitados a 160 caracteres.

Los dispositivos Android utilizan la aplicación de mensajería por defecto para enviar y recibir

mensajes de texto SMS.

Esta aplicación muestra todos los textos que se han enviado o recibido en "hilos", similares a

las conversaciones de correo electrónico que se pueden ver en línea.

La aplicación notifica automáticamente en la barra de estado si hay nuevos textos, y también

puede sonar o encender un led de notificación, dependiendo de la configuración del equipo en

uso.

Si se requiere enviar un texto de más de 160 caracteres, la aplicación automáticamente lo

dividirá en dos o más mensajes

Page 48: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

34 | Página

CAPÍTULO 2 |“ESTRUCTURA

DEL PROGRAMA EN ANDROID”

Page 49: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

35 | Página

CAPÍTULO 2 | ESTRUCTURA DEL PROGRAMA EN ANDROID.

2.1 Android.

Android es un sistema operativo con un núcleo basado en Linux, diseñado para ser utilizado en

dispositivos móviles, aunque se ha empezado a introducir en diferentes dispositivos como

televisores, refrigeradores etc. Tras Android hay una alianza de 84 compañías para su

desarrollo y mantenimiento llamada Open Handset Alliance liderada por Google y se dedica

al desarrollo de estándares abiertos para dispositivos móviles.

Aunque el desarrollo de aplicaciones se podría realizar sobre el propio núcleo en lenguaje C o

C++, Android ofrece su propia maquina virtual (Dalvik), que ejecuta programas como si fuese

dispositivo móvil real, los procesos que ejecuta están limitados por los recursos y abstracciones;

no es posible realizar llamadas telefónicas, utilizar el adaptador Bluetooth de la PC, enviar y

recibir mensajes de texto. Cabe señalar que la Dalvik está optimizada para requerir poca

memoria y diseñada para ejecutar varios procesos, delegando al núcleo subyacente el soporte

de aislamiento entre aplicaciones.

Android es un sistema operativo multiplataforma, libre y gratuito, en el que para programar ó

incluirlo en un dispositivo no hay que pagar nada, lo cual ha permitido la creación de

una gran comunidad de desarrolladores, en la que no solo se crean nuevas aplicaciones para

él, sino que también lo han mejorado mediante nuevas versiones del núcleo encargado de

gestionar recursos (Kernel) o del mismo sistema operativo. La ventaja de disponer de un

sistema operativo abierto, es manejar una de las herramientas más potentes para el desarrollo

de software de forma gratuita.

2.2 Plataformas De Desarrollo.

El desarrollo de programas para Android se hace habitualmente con el lenguaje de

programación Java y para poder gestionar todas las versiones del sistema operativo es

necesario un software que se encargue tanto de la sincronización de los paquetes y de ejecutar

el código Java en una PC.

Page 50: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

36 | Página

Esta tarea es realizada por el Android SDK (Software Development Kit, Kit de Desarrollo de

Software) que es un conjunto de herramientas de desarrollo de software que permite crear

aplicaciones para una versión del sistema en concreto.

Los elementos que intervienen en el desarrollo de aplicaciones en Android son los siguientes:

1. Java

2. Android SDK

3. Android ADT

4. IDE

Java es un lenguaje de programación que se usa para el desarrollo de aplicaciones que

mediante software, convierten a un dispositivo en un elemento multitarea.

El SDK de Android es un conjunto de herramientas de desarrollo, comprende un depurador de

código, biblioteca, un simulador de teléfono etc.

Android ADT es un controlador diseñado para darle un entorno estable al dispositivo, creando

una interfaz de usuario basados en la API (Application Programming Interface, Interfaz de

Programación de Aplicaciones) que corresponde a la versión de Android elegida.

Eclipse (Figura 2.1) es uno de los programas que permite el desarrollo de aplicaciones en

Android. Eclipse es un programa compuesto por un conjunto de herramientas de programación

de código abierto multiplataforma para desarrollar aplicaciones.

El entorno de desarrollo integrado (IDE) de Eclipse emplea manejadores (plugin´s) para

proporcionar toda su funcionalidad al frente de la plataforma de desarrollo. Adicionalmente

permite usar otros lenguajes de programación como son C o C++ y Python.

Dispone de un editor de texto con resaltado de sintaxis, la compilación es en tiempo real. Tiene

pruebas unitarias con control de versiones de Android mediante el emulador, integración para la

creación de proyectos, clases, etc.

Page 51: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

37 | Página

Figura 2.1 Logo de Eclipse

Android Studio (Figura 2.2) es un entorno de desarrollo de Android basado en IDE (entorno de

desarrollo integrado) que es una aplicación de software que proporciona servicios integrales

para el desarrollo de software. Ofrece distintas características y mejoras con respecto a Eclipse,

ofrece un sistema de construcción a base del lenguaje específico de dominio (DSL) en lugar del

tradicional XML permite construir variantes y generación de APK múltiple, plantillas de apoyo

para los servicios de Google, Herramientas para elegir el rendimiento, y compatibilidad de

versiones.

Figura 2.2 Logo de Android Studio

Page 52: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

38 | Página

NetBeans IDE (Figura 2.3) es el IDE oficial para Java, mediante sus editores de texto ,

analizadores de código, y convertidores, actualiza de forma más rápida que Android Studio y

Eclipse sin problemas las aplicaciones desarrolladas para poder utilizar las nuevas

construcciones del lenguaje Java 8, como operaciones funcionales, y las referencias a métodos

predefinidos de programación.

Analizadores y convertidores proporcionan la búsqueda a través de múltiples aplicaciones al

mismo tiempo, haciendo coincidir los patrones para la conversión a las nuevas construcciones

del lenguaje Java 8. NetBeans IDE establece el estándar para el desarrollo de tecnologías de

vanguardia gracias a su constante mejora.

Figura 2.3 Logo de NetBeans IDE

2.3 Aplicaciones En Android.

La estructura de las aplicaciones en Android se orienta al usuario o al dispositivo. En cualquier

caso, usuario y dispositivo se expresan en un “contexto”, y este último, además, tiene unas

características físicas determinadas, ejecuta una u otra versión del sistema.

Las aplicaciones Android se escriben nativamente en Java, las herramientas de su SDK

compilan el código, junto con ciertos recursos y datos particulares de la aplicación, en un

paquete Android cuya extensión es APK (Application PacKage File, Aplicación paquete de

archivos) dicho paquete es considerado una aplicación.

Page 53: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

39 | Página

Los componentes de las aplicaciones son los bloques de construcción esenciales, cada uno es

un punto diferente mediante el cual el sistema puede acceder a las aplicaciones, y aunque no

todos los componentes son en realidad puntos de acceso a nivel del usuario algunos dependen

de los otros (lo que en programación se conoce como hilo), cada uno desempeña un papel en

específico. Cada uno sirve para un propósito distinto, por lo que tienen diferentes ciclos de vida

que definen la manera en que los mismos son creados y destruidos.

2.3.1 Estructura De Las Aplicaciones Para Android.

En la Figura 2.4 se muestran los componentes de las aplicaciones en Android.

Figura 2.4 Componentes de las aplicaciones en Android.

Actividades: Representa una pantalla con su correspondiente interfaz de usuario.

Intents: Son mensajes que generan notificaciones o cambios de estado, que al ser recibidos por

actividades o servicios pueden levantar procesos.

Page 54: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

40 | Página

Vistas: Son los componentes de la interfaz de usuario, donde a través de grupos logran una

jerarquía, esto se logra a través de un archivo XML (Extensible Markup Language, Lenguaje de

Marcas Extensible) utilizado para almacenar datos en forma legible.

Servicios: Son componentes que ejecutan operaciones en segundo plano y no tienen una

interfaz de usuario.

Proveedor de Contenido: Representa la abstracción para almacenar y obtener datos

permanentes en aplicaciones diferentes.

Receptores de Difusión: Son componentes que responden a avisos y anuncios de difusión tipo

broadcast. Estos avisos provienen del sistema (batería baja, una llamada entrante, etc.).

Manifiesto: Es el archivo donde se configura la aplicación, contiene la definición de los aspectos

principales de la aplicación, su identificación (nombre, versión, icono,) sus componentes

(actividades, mensajes,) o los permisos necesarios para su ejecución.

Así cuando se crea una aplicación se debe tener en cuenta las características de los dispositivos a los que se dirige, tanto en lo relacionado con el hardware como con la versión de Android que lo controla.

2.3.2 Estructura De Un Proyecto Para Android Con ECLIPSE.

Eclipse genera automáticamente la estructura de carpetas necesaria para poder generar

posteriormente la aplicación. Esta estructura es común para cualquier aplicación,

independientemente de su tamaño y complejidad. En la Figura 2.5 se muestran los elementos

creados inicialmente para un nuevo proyecto Android en el entorno de desarrollo de Eclipse.

Page 55: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

41 | Página

Figura 2.5 Esqueleto de una aplicación.

Carpeta src: Contiene todo el código fuente de la aplicación, código de la interfaz

gráfica, clases auxiliares, etc. Inicialmente, Eclipse creará el código básico de la

pantalla Actividad principal de la aplicación, siempre bajo la estructura del paquete Java

definido.

Carpeta res: Contiene todos los recursos de imágenes, vídeos, cadenas de texto,

etc.

Carpeta gen: Contiene una serie de elementos de código generados automáticamente

al compilar el proyecto. Cada vez que se genera un proyecto, la maquinaria de

Page 56: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

42 | Página

compilación de Android genera por nosotros una serie de ficheros fuente en Java

dirigidos al control de los recursos de la aplicación.

Carpeta assets: Contiene todos los demás ficheros auxiliares necesarios para la

aplicación (que se incluirán en su propio paquete), como por ejemplo ficheros de

configuración, de datos, etc.

Así podemos definir que Android utiliza un motor Java de fondo y una interfaz gráfica que utiliza

XML. Un esquema podría ser este:

Motor Java<—>Interfaz XML<—>Usuario

2.4 Manejo De Bluetooth En Android.

El SDK de Android incluye soporte para la pila de interconexión Bluetooth. El API de Bluetooth

permite la conexión inalámbrica con otros dispositivos Bluetooth, en nuestro caso

habilitando características punto a punto y multipunto.

Las tareas realizadas con respecto a la conexión Bluetooth de nuestra aplicación son :

1. Escaneo de otros dispositivos Bluetooth.

2. Consulta del adaptador Bluetooth para identificar los dispositivos Bluetooth emparejados.

3. Establecer canales RFCOMM.

4. Conectarse con otros dispositivos a través del SDP (Service Discovery, Descubrimientos De

Servicio).

5. Transferir / recibir datos con otros dispositivos.

En la Figura 2.6 se muestran las clases que podemos encontrar en la API de Android para

Bluetooth, las cuales son:

Page 57: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

43 | Página

BluetoothAdapter: Representa el adaptador Bluetooth local y es el punto de entrada para

todas las interacciones Bluetooth. Mediante su uso se pueden descubrir otros

dispositivos Bluetooth, una lista de los dispositivos emparejados, inician un

“BluetoothDevice” usando una dirección MAC conocida y crear un

“BluetoothServerSocket” para escuchar las comunicaciones de otros dispositivos.

BluetoothDevice: Representa un dispositivo Bluetooth remoto. Se usa para solicitar

una conexión con un dispositivo remoto a través de un “BluetoothSocket” o consultar

información acerca del dispositivo (nombre, dirección, clase, estado, etc.).

BluetoothSocket: Representa la interfaz para un socket Bluetooth (parecido a un socket

TCP). Es el punto de conexión que permite a una aplicación el intercambio de datos con

otro dispositivo Bluetooth mediante el uso de InputStream y OutputStream.

BluetoothServerSocket: Representa un server socket abierto que mantiene la escucha

para peticiones de entrada (parecido a un ServerSocket TCP). Para la conexión de dos

dispositivos Android, un dispositivo debe abrir el server socket con esta clase. Cuando el

dispositivo Bluetooth remoto hace la petición de conexión a ese dispositivo, el

“BluetoothServerSocket” retornará un “BluetoothSocket” cuando la conexión sea

aceptada.

BluetoothClass: Describe las características generales y capacidades del

dispositivo Bluetooth. Es un conjunto de propiedades de solo lectura. Sin embargo, no

es fiable del todo ya que no describe todos los perfiles Bluetooth y servicios soportados

por el dispositivo.

Bluetoothadmin : Es el paquete principal de la aplicación y el resto de paquetes están

incluidos en él. Las clases que se encontrarán dentro de este paquete serán las

“Activities”, es decir las pantallas gráficas de la aplicación.

Bluetoothadmin.libs : En este paquete se alojarán todas las clases importantes de la

aplicación incluyendo reglas, explorador de archivos, listeners de Bluetooth, listeners de

posición y librerías para guardar en memoria.

Bluetoothadmin.services : Será el paquete donde se alojen los servicios en segundo

plano de la aplicación.

Page 58: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

44 | Página

Bluetoothadmin.logic : Aquí se alojarán las clases estáticas de la aplicación, las cuales

se encargarán de guardar cierta lógica para el correcto funcionamiento.

Figura 2.6 Diagrama de paquetes de Bluetooth en Android.

Con esta estructura se realizará la implementación de la aplicación, asegurando cierta

independencia entre los tipos de clases así como las actividades de la misma, mejorando el

entendimiento del código fuente del software que se va a conectar con el microcontrolador

mediante el módulo de comunicación serial Bluetooth HC-06.

2.5 Transmisión De Datos Utilizando Bluetooth.

Hasta ahora, hemos dado una noción de las clases mas usadas para el uso de Bluetooth en

una App. En este apartado se mostrará como ocurre el intercambio de información por medio

del protocolo Bluetooth, para lo cual necesitaremos unas pequeñas nociones básicas de la

arquitectura cliente-servidor.

Page 59: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

45 | Página

En primer lugar, el protocolo Bluetooth no se diferencia gran cosa de otros protocolos como

TCP. El funcionamiento es básicamente el siguiente:

El servidor crea un socket de tipo BluetoothServerSocket y lo pone a la escucha de

peticiones de conexión.

El servidor se mantiene en espera ocupada atendiendo solicitudes de conexión

mediante el método accept(). Este método bloqueará el hilo hasta que una conexión

entrante sea recibida.

El cliente detecta un dispositivo Bluetooth (BluetoothDevice) a partir de la dirección del

dispositivo.

El cliente abre un nuevo socket de tipo BluetoothSocket a partir del dispositivo que

obtuvo previamente (Figura 2.7).

Figura 2.7 Detección de dispositivos.

El cliente realiza, a través del socket, una solicitud de conexión. Esta llamada es

bloqueante, por lo que el resultado sólo podrá ser éxito o fracaso (Figura 2.8).

Page 60: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

46 | Página

Figura 2.8 Solicitud de conexión.

El servidor acepta la conexión, notificándoselo al cliente. A continuación, abre un socket

de tipo BluetoothSocket como resultado de aceptar la conexión (Figura 2.9)

Figura 2.9 Confirmación de la solicitud de conexión.

Page 61: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

47 | Página

El cliente recibe la notificación del servidor, dando como resultado una conexión correcta

y muestra una señalización de espera ocupada

Tanto cliente como servidor obtienen los flujos de entrada y salida de su respectivo

socket (Figura 2.10).

Figura 2.10 Dispositivos sincronizados.

El hilo de la conexión comienza a validar el flujo de entrada esperando obtener datos. Si

la lectura se realiza, se envían los datos a la interfaz a través de un Handler.

El envío de datos se realiza mediante la escritura en el flujo de salida (Figura 2.11)

Page 62: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

48 | Página

Figura 2.11 Enlace establecido para la transmisión.

. En este punto debemos tener claros los siguientes conceptos:

Cada uno de los elementos involucrados (servidor, cliente y conexión) estará gestionado

por un hilo independiente.

El servidor hace uso de dos sockets: un socket para aceptar las conexiones entrantes

(BluetoothServerSocket) y otro para establecer la conexión (BluetoothSocket).

El socket de la conexión es abierto en el momento en el que se acepta una conexión

entrante (método accept()), y se le pasará como parámetro al hilo encargado de

mantener la conexión.

El cliente hace uso de un sólo socket (BluetoothSocket). Se obtiene a partir del

BluetoothDevice al cual se pretende conectar, y una vez solicitada y aceptada la

conexión (método connect()) se le pasa como parámetro al hilo encargado de mantener

la conexión.

Page 63: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

49 | Página

En un principio ambos dispositivos involucrados en la conexión actúan como clientes y

como servidores, esperando conexiones entrantes y también pudiendo solicitarlas.

El servidor será, finalmente, el primero de los dispositivos que acepte una conexión

entrante. Normalmente (pero no necesariamente, ya que pueden desearse conexiones

simultaneas), el proceso de aceptar conexiones se detendrá mientras exista una

conexión activa.

El proceso de descubrimiento consume muchísimos recursos, por lo que conviene

detener el proceso en caso de que se encuentre en marcha.

2.6 Descripción De La Aplicación Realizada En Android.

Para cumplir con los objetivos de esta Tesis, se realizaron dos aplicaciones en Android

llamadas Sistema Casa y Sistema Usuario, respectivamente. En la Figura 2.12 se muestra un

diagrama de comunicación del proyecto. La aplicación SistemaCasa permite la comunicación

bidireccional vía Bluetooth entre un teléfono inteligente con sistema operativo Android y un

microcontrolador Texas Instrumens de la familia MSP430.

El microprocesador permite tomar la lectura a los valores de los sensores externos conectados

al microcontrolador. Desde el teléfono celular es posible visualizar los datos de los sensores

conectados al microcontrolador e interactuar con estos. La aplicación SistemaUsuario permite

la interacción remota a través de comunicación via SMS entre dos teléfonos celulares y permite

la visualización de datos e interacción con el sistema local.

Page 64: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

50 | Página

Figura 2.12 Diagrama de comunicación

Primero se explicará el diseño elegido para la interfaz gráfica de Sistema Usuario y Sistema

Casa tanto a nivel de Activities como el flujo entre ellas.

Para ello, primero vamos a mostrar las clases (Tabla 5) relacionadas con las Activities que

hacen referencia a la interfaz gráfica del programa.

La manera de relacionarlas es mediante la actividad llamada “Login”, la cual tiene definidos

los métodos para gestionar la selección y el cambio de conexión de la aplicación con el

microcontrolador, a partir de ella se ligan el resto de actividades de la aplicación.

Antes de explicar el diseño y funcionamiento de cada una de las actividades y clases, vamos a

proceder a enumerarlas para poder explicar de una manera más directa, la lógica entre ellas y

lo podemos ver en la Tabla 5.

Page 65: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

51 | Página

Número Activity 1 Login

2 MainActivity

3 Distancia

4 Activity_Casa

Tabla 5 Numeración de Actividades.

Las clases de la Tabla 6 representan todas las reglas de la aplicación, así como los métodos

por los cuales se gestionan los procesos de conexión Bluetooth, envío, recepción y validación

de caracteres mediante SMS.

.

Tabla 6 Clases.

Nota: Para mas información revisar el código fuente en Anexo 1

En las siguientes secciones se describe a detalle las diferentes partes constitutivas del

programa.

Número Clase 1 Login

2 BtConnectionThread

3 MainActivity

4 Distancia

5 SMSReceiver

6 ConexionCasa

7 SendBluetooth

Page 66: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

52 | Página

2.6.1 Validación De Usuario.

Se trata del menú principal de la aplicación, es la encargada proporcionar confiabilidad

mediante la validación de un usuario y password, cuyos datos serán solo del conocimiento del

usuario. El tipo de conexión ya sea remoto o local también recae en esta interfaz, vinculando a

través de la pulsación de un botón los diferentes tipos de conexión. El diseño inicial se puede

observar en la Figura 2.13.

Login

Usuario

Password

Tipo De Conexión

Valido

Invalido

Ingresa Tu Password

Invalido

Valido

Ingresa Tu Usuario

Intruso

Remota Local

Error en la Validación

Figura 2.13 Diseño de la interfaz Login.

Si se pulsa el botón del logo sin haber ingresado ningún carácter en el editor de texto

que se encuentra debajo de texto en pantalla de Usuario y Password, a través de un

texto en pantalla la App nos indicará que se debe ingresar un Usuario y un Password.

Si se ha ingresado un carácter en el editor de texto debajo del texto un pantalla Usuario

y se a pulsado el botón del logo, la App nos indicará que se debe ingresar un Password.

Page 67: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

53 | Página

Si se ha ingresado un carácter en el editor de texto debajo del texto de pantalla

Password y se a pulsado el botón del logo, la App nos indicará que se debe ingresar un

Usuario .

Si se han ingresado un carácter en los dos editores de texto y no cumple con la

validación del usuario mediante un cuadro de diálogo la App notificará un error en la

validación y un mensaje de “Intruso”.

Si se han ingresado los caracteres correctos de usuario y contraseña una vez pulsado el

botón del logo, la App notificará “Bienvenido” y mediante cuadro de diálogo validará el

tipo de conexión que se ha seleccionado vinculando a la siguiente actividad.

Nota : Establecida la validación, si se selecciona la actividad local y no se encuentra encendido

el adaptador Bluetooth del teléfono celular, mediante cuadro de diálogo la App solicitará al

usuario el permiso para activar o no el adaptador Bluetooth.

2.6.2 Comunicación Bluetooth.

En esta actividad se encuentran implícitas dos clases (MainActivity y BtConnectionThread) en

ellas se encuentran los métodos y elementos para la conexión Bluetooth. Una vez

seleccionado el tipo de conexión Local; si el usuario y password son correctos, el adaptador

Bluetooth del teléfono inteligente en su modalidad de maestro mandará una petición de

conexión al módulo Bluetooth HC-06.

En caso de que el adaptador Bluetooth del teléfono se encuentre encendido, el adaptador se

vinculará al módulo Bluetooth HC-06 con modalidad esclavo de manera automática mediante su

dirección MAC previamente descrita en el código fuente del programa, mostrando a través de

un texto en pantalla que la conexión fue establecida, como se ve en la Figura 2.14.

Page 68: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

54 | Página

Cabe señalar que para la compatibilidad en la velocidad de transmisión, gestión de enlace,

servicios de descubrimiento, creación del RFCOMM, el adaptador Bluetooth del teléfono

inteligente utiliza el UUID (Universally Unique Identifier, Identificador Universal Único) utilizando

el parámetro 00001101-0000-1000-8000-00805F9B34FB que define los indicadores de

protocolos mencionados anteriormente.

Nota: Para mas información revisar la hoja de especificaciones en el Anexo 1

Local

Luces

Cerraduras

Temperatura

Ultrasonico

Gas

Encender / Apagar

Valor

Valor

Valor

Encender / Apagar

Figura 2.14 Conexión exitosa, Bluetooth con el módulo Bluetooth HC-06.

Si el adaptador Bluetooth del teléfono inteligente se encuentra apagado, la App mediante un

cuadro de diálogo, solicitará el permiso para la activación del adaptador Bluetooth, mostrando a

través de un texto en pantalla que la solicitud de conexión fue rechazada, debido a que se

encuentra apagado en adaptador de Bluetooth del teléfono celular (Figura 2.15).

Page 69: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

55 | Página

On Click

Proceso de Señalización

Solicitud de conexion mediante MAC

con HT-06

Local con Exito

Local Sin Exito

Ignorada

Aceptada

Figura 2.15 Activación del adaptador Bluetooth para un teléfono inteligente y solicitud de

conexión errónea.

Bajo estos criterios, la App nos mostrará la actividad Main Activity sin la conexión entre estos

dos dispositivos. A partir de la vinculación entre el teléfono inteligente y el módulo Bluetooth

HC-06, queda establecido un canal RFCOMM, mostrando el led de señalización del módulo un

estado de conectado en su modalidad esclavo y en la App mediante el mensaje en pantalla

Conectado correctamente a: el módulo HC-06. Ya vinculados los dos dispositivos se podrá

realizar la transmisión de datos entre el microcontrolador y el teléfono inteligente.

Nota: Para poder utilizar el adaptador Bluetooth en Android es estrictamente necesario definir

en el manifets de nuestra App los permisos:

<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

BLUETOOTH: Necesario para realizar cualquier comunicación BT (pedir o aceptar conexiones,

enviar datos).

BLUETOOTH_ADMIN: Necesario para descubrimiento de equipos o configurar BT.

Page 70: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

56 | Página

2.6.3 Comunicación Remota.

Para el método de conexión a distancia, la App Sistema Usuario nos da la posibilidad de enviar

y validar SMS. El encargado de ello es la actividad Distancia (Figura 2.16). Para la validación de

caracteres de control, la clase SMSReceiver que soporta CDMA y GSM recibe como parámetro

una cadena de texto convirtiéndolo en una lista de matriz de cadenas, esto para interpretar el

mensaje que ha llegado. El tamaño de estas cadenas será menor o igual al máximo permitido

por un SMS.

En el método que se encarga de enviar el SMS se le proporciona como parámetro el número

de celular al que se va a enviar y los caracteres de control a distancia. En el caso de tener un

SMS de longitud mayor que lo permitido los procesos el sistema de control no se verán

afectados, debido a la validación de caracteres que realiza la clase SMSReceiver.

Remoto

Luces

Cerraduras

Temperatura

Proximidad

Nivel De Gas

LUCES

TEMPERATURA

ULTRASONICO

GAS

CERRADURAS

Palabra Clave :

Palabra Clave :

Palabra Clave :

Palabra Clave :

Palabra Clave :

Figura 2.16 Actividad distancia.

Si se pulsa el botón “Luces” la App enviará un mensaje al número previamente

establecido con los caracteres "LUCES"

Page 71: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

57 | Página

Si se pulsa el botón “Cerraduras” la App enviará un mensaje al número previamente

establecido con los caracteres "CERRADURAS"

Si se pulsa el botón “Temperatura” la App enviará un mensaje al número previamente

establecido con los caracteres "TEMPERATURA"

Si se pulsa el botón “Proximidad” la App enviará un mensaje al número previamente

establecido con los caracteres "ULTRASONICO"

Si se pulsa el botón “Nivel De Gas” la App enviará un mensaje al número previamente

establecido con los caracteres "GAS".

Nota: Para poder hacer uso del administrador de mensajes en Andriod es estrictamente

necesario definir en el manifets de nuestra App los permisos:

<uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" />

SEND_SMS: Enviar SMS sin usar la aplicación por defecto de Android

RECEIVE_SMS : Leer los SMS recibidos y validar los caracteres requeridos.

Para mas información acerca del código revisar Anexo 2

2.6.4 Recepción y Procesamiento.

Para esta parte, la comunicación es vía SMS: una vez que se recibe el mensaje, la aplicación

desarrollada Sistema Casa valida los caracteres y si la cadena de texto coincide con las

palabras de control: “LUCES”, "CERRADURAS", "TEMPERATURA", "ULTRASONICO", "GAS"

se establece la conexión vía Bluetooth de manera automática utilizando la estructura de las

clases SendBluetooth y BtConnectionThread, el módulo Bluetooth HC-06 en su modalidad

esclavo transmite los datos establecidos al microcontrolador. La Figura 2.17 nos muestra el

diagrama de comunicación que realiza la App Sistema Casa.

Page 72: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

58 | Página

Figura 2.17 Comunicación de la App Sistema Casa

A partir de la validación de los caracteres de control enviados en el SMS, el teléfono inteligente

y el módulo Bluetooth HC-06 quedan vinculados de manera automática. Los dos dispositivos

realizan la transmisión de datos para interactuar con los sensores como se observa en la

interfaz de usuario Activity_Casa (Figura 2.18).

Page 73: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

59 | Página

SMS

LUCES

CERRADURAS

TEMPERATURA

ULTRASONICO

GAS

Encender / Apagar

Valor

Valor

GAS

Encender / Apagar

INICIO

Si es :

NO

Figura 2.18 Actividad Casa.

En el Anexo 1 se presenta a detalle el código de la aplicación desarrollada en Android. Se

presenta el código para cada una de las aplicaciones desarrolladas ,además del código XML

para la interfaz gráfica. En el siguiente capítulo se describe tanto la aplicación como el circuito

utilizado para el microcontrolador.

Page 74: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

60 | Página

CAPÍTULO 3 |

“ESTRUCTURA DEL

PROGRAMA EN EL MICROCONTROLADOR”

Page 75: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

61 | Página

CAPÍTULO 3 | ESTRUCTURA DEL PROGRAMA EN EL MICROCONTROLADOR.

3.1 Tarjeta De Desarrollo.

Los microcontroladores de la línea MSP430 de Texas Instruments son microcontroladores de 16

bits, dichos microcontroladores se caracterizan por un extremadamente bajo consumo de

potencia, bajo costo, implementados con gran frecuencia en sistemas inalámbricos y/o de ultra

bajo consumo de energía, incluso menores que algunos microcontroladores de 8 bits

disponibles actualmente en el mercado y es una alternativa para el desarrollo de aplicaciones

con sensores, de seguridad, industriales, usualmente implementados con microcontroladores

de 8 o 16 bits.

El LaunchPad MSP430 es una placa que incluye un programador flash y una herramienta para

depuración (debugging), además de un dip de 14-20 pines y emulación integrada. La

programación flash se la realiza "en circuito" mediante el protocolo Spy Bi-Wire (JTAG de 2

líneas) y la memoria flash puede ser programada y borrada en segundos sin necesidad de una

fuente de voltaje externa. Como todo lo necesario para su programación y depuración está

incluido en la placa, simplemente se debe conectar el LaunchPad a un puerto USB de la PC y

está listo para programarse. La tarjeta incluye también leds, botones programables y 10

conexiones de pines para la conexión de dispositivos externos.

La placa LaunchPad contiene:

Socket de 14-/20-pin DIP (N)

Emulación flash incluida para depuración y programación

2 Leds programables

1 Led de encendido

1 botón programable

1 botón de reset

Page 76: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

62 | Página

El MSP430 está construido con una CPU de 16 bits usa una arquitectura Von Neumann, con

direccionamiento simple para las instrucciones y los datos.

La memoria se direcciona por bloque de 1byte, y los pares de byte se combinan en

forma endianness para hacer instrucciones de hasta 16 bits. Esta arquitectura tiene

reminiscencias del procesador DEC PDP-11. Este dispositivo tiene una gran variedad de

configuraciones que se agrupan en familias, con velocidades máximas de procesamiento y

capacidades de direccionamiento diferentes, y modelos con diferentes selecciones de entre los

siguientes periféricos: diferentes bloques y capacidades de memoria, oscilador interno,

temporizadores incluyendo un PWM, temporizador watchdog, USART, bus SPI, bus de

10/12/14/16-bit, conversores ADC/DAC y circuitos de apagado y reinicio.

Algunos periféricos opcionales no tan usuales incluyen comparadores (que se utilizan con el

temporizador para funcionar como un ADC simple), amplificadores operacionales dentro del

chip para el acondicionamiento de señales, conversores DAC de 12 bits, controlador de pantalla

LCD, multiplicador hardware, y DMA para el manejo de datos entre zonas de memoria y/o los

periféricos. A diferencia de las versiones anteriores con EPROM (PMS430E3xx) y ROM

enmascarada (MSP430Cxxx), estos dispositivos son programables en sistema a través de

JTAG o a través del BSL (Bootstrap Loader; Cargador de Arranque) usando RS-232.

CARACTERÍSTICAS PRINCIPALES EN LA CPU

ALU de 16 bits que efectúa operaciones lógicas (AND, OR, XOR), substracciones,

adiciones y comparaciones.

RISC con 27 instrucciones y 7 modos de direccionamiento.

Arquitectura Ortogonal, además cualquier instrucción se puede usar con cualquier modo

de direccionamiento.

Todos los registros en la CPU son completamente accesibles.

Las operaciones entre registros se llevan a cabo en un ciclo.

Los registros de 16 bits reducen la cantidad de veces que se accede a la memoria al

ejecutar una instrucción.

Page 77: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

63 | Página

El bus de direcciones de 16 bits permite el acceso y los saltos a lo largo de todo el mapa

de memoria.

El generador de constantes proporciona las 6 constantes más usadas para reducir el

tamaño del código y facilitar la programación a través de instrucciones emuladas.

Transferencias de memoria a memoria sin necesidad de registros intermedios.

Instrucciones y modos de direccionamiento para 8 y 16 bits (Byte y Word).

12 registros de propósito general que pueden almacenar tanto datos como direcciones.

Construida utilizando lógica estática con la cual no hay un mínimo de frecuencia de

operación, lo cual permita que la CPU pueda ser detenida.

Estas características son logradas al tomar las mejores características de la arquitectura RISC y

mejorarlas. Por ejemplo los PIC´s contienen un solo registro de trabajo (W) donde se almacena

un operando, el otro operando es tomado de otro registro, después se ejecuta la instrucción y el

resultado es almacenado ya sea en el registro de trabajo o en el otro registro que fue usado

como segundo operando, además el direccionamiento indirecto solo está disponible para un

único registro.

En el caso de los HCS12 de Freescale cuentan con un registro acumulador para almacenar

datos y dos registros índices para almacenar direcciones.

Al comparar la CPU de los MSP430 con otras CPU que pertenecen a microcontroladores

podemos notar que la arquitectura de los MSP430 nos permite una programación más eficiente,

reduce el tamaño de código que una aplicación pueda requerir, permite también realizar una

función específica con menos instrucciones que en otro tipo de microcontroladores y brinda al

desarrollador una flexibilidad y portabilidad que reduce el costo de los productos finales.

En la Figura 3.1 podemos observar los 16 registros que conforman la unidad central de

procesamiento (CPU), así como la unidad aritmética lógica (ALU) de 16 bits que puede recibir

sus operandos de cualquiera de los 16 registros, los cuales a través del bus de direcciones y

datos pueden acceder a cualquier parte de la memoria.

Page 78: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

64 | Página

Figura 3.1 CPU del MSP430

Page 79: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

65 | Página

Los siguientes diagramas (Figura 3.2) muestran la distribución de pines completo para el

LaunchPad MSP430G2452 y MSP430G2553 en Energía.

Energía es una plataforma de prototipos electrónicos de código abierto para el área de

ejecución basado Texas Instruments MSP430, su IDE es multiplataforma y compatible en Mac

OS, Windows y Linux que se basa en procesamiento. El equipo de Energía adopta la filosofía

de aprender haciendo y se basa en la idea que es más fácil trabajar directamente con el

hardware.

Figura 3.2 LaunchPad MSP430G2453 en Energía.

Page 80: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

66 | Página

3.2 Entorno De Desarrollo Para El MSP340.

Se utilizó el entorno de desarrollo llamado Energía que está constituido por un editor de texto

para escribir el código, un área de mensajes, una consola de texto, una barra de herramientas

con botones para las funciones comunes, y una serie de menús. Permite la conexión con el

hardware del MSP430 para cargar los programas y comunicarse con ellos. Energía utiliza lo que

denomina "sketch" (programa) para escribir el software. Estos programas son escritos en el

editor de texto. Existe la posibilidad de cortar/pegar y buscar/remplazar texto. En el área de

mensajes se muestra información mientras se cargan los programas y también muestran los

errores. La consola muestra el texto de salida para el entorno de Energía incluyendo los

mensajes de error completos, la barra de herramientas permite verificar el proceso de carga,

creación, apertura y guardado de programas, y la monitorización serie; elementos de la barra de

herramientas:

Verify/Compile: Revisa el código en busca de errores.

New: Crea un nuevo sketch.

Open: Presenta un menú de todos los programas sketch de su "sketchbook", (librería de

sketch). Un click sobre uno de ellos lo abrirá en la ventana actual.

Save: Salva el programa sketch

Upload to I/O Board: Compila el código y lo vuelca en la placa E/S del MSP430.

Serial Monitor: Inicia la Monitorización Serie.

Page 81: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

67 | Página

Sketchbook (Librería de Sketch).

El entorno de Energía incluye el concepto de "sketchbook": que es el lugar estándar para el

almacenamiento de sus programas (o "sketch"). Pueden ser normalmente ficheros de código

Energía (no extensiones), ficheros C (extensiones .c), ficheros c++ (.cpp), o ficheros de

cabecera (.h) como se observa en la Figura 3.3.

Libraries (Librerías).

Las librerías proporcionan funcionalidad extra para la utilización en "sketches", por ejemplo,

para trabajar con hardware o manipular datos. Esto insertará una o más sentencias #include al

principio del "sketch" y compilará la librería con su "sketch".

Debido a que las librerías se cargan a la placa junto con su "sketch", incrementan la ocupación

del espacio disponible. Si un "sketch" no precisa de una librería, simplemente borra su

sentencia #include en la parte inicial de su código.

Serial Monitor (Monitor Serie). Muestra los datos enviados desde la placa MSP430 (placa USB o serie). Para enviar datos a la

placa, se teclea el texto y se pulsa el botón "send" o “enter”, selecciona la velocidad (baud rate)

en el menú desplegable que coincida con el configurado en Serial.begin dentro de su "sketch".

Advertir que en Mac o Linux, la placa MSP430 se resetea (su "sketch" es reiniciado desde el

principio) cuando conecta con el monitor serie.

Page 82: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

68 | Página

Figura 3.3 Software Energía.

3.3 Lenguaje De Programación.

El lenguaje de programación del microcontrolador MSP430 de Texas Instrumens con el entorno

de Energía está basado en el lenguaje de programación C/C++ y soporta todas las

construcciones de C estándar y algunas funcionalidades de C++. Vincula la librería AVR Libc y

permite el uso de todas sus funciones. La estructura de programación con el ambiente del

software Energía es bastante simple y se compone de al menos dos partes. Estas dos partes

necesarias, o funciones, encierran bloques que contienen declaraciones o instrucciones.

void setup()

Sección de inicio de instrucciones

void loop() Sección de ejecución instrucciones

En donde setup () es la parte encargada de recoger la configuración y loop () es la que contiene

el programa que se ejecutará cíclicamente (de ahí el termino loop; bucle). La función de

configuración debe contener la declaración de las variables.

Page 83: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

69 | Página

Es la primera función que se ejecuta en el programa, se ejecuta sólo una vez, y se utiliza para

configurar o inicializar pinMode (modo de trabajo de las E/S), la configuración de la

comunicación en serie y otras. La función loop () contiene el código que se ejecutará

continuamente (lectura de entradas, activación de salidas, etc.). Esta función es el núcleo de

todos los programas de Energía y la que realiza la mayor parte del trabajo.

setup ()

La función setup () se invoca una sola vez cuando el programa empieza. Se utiliza para

inicializar los modos de trabajo de los pines, o el puerto serie. Debe ser incluido en un

programa aunque no haya declaración que ejecutar.

void setup ()

pinMode(pin, OUTPUT); // configura el 'pin' como salida

loop ()

Después de llamar a setup (), la función loop () hace precisamente lo que sugiere su nombre,

se ejecuta de forma cíclica, lo que posibilita que el programa responda continuamente ante los

eventos que se produzcan en la tarjeta

void loop () digitalWrite(pin, HIGH); // pone en uno (on, 5v) el ´pin´ delay(1000); // espera un segundo (1000 ms) digitalWrite(pin, LOW); // pone en cero (off, 0v.) el ´pin´ delay(1000);

Variables Una variable es una manera de nombrar y almacenar un valor numérico para su uso posterior

por el programa. Las variables son números que pueden variar continuamente en contra de lo

que ocurre con las constantes cuyo valor nunca cambia.

Page 84: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

70 | Página

Una variable debe ser declarada y, opcionalmente, asignarle un valor. El siguiente código de

ejemplo declara una variable llamada variableEntrada y luego le asigna el valor obtenido en la

entrada analógica del PIN2:

int variableEntrada = 0; // declara una variable y le asigna el valor 0

variableEntrada = analogRead(2); // la variable recoge el valor analógico del PIN2

'variableEntrada' es la variable en sí. La primera línea declara que será de tipo entero “int”. La

segunda línea fija a la variable el valor correspondiente a la entrada analógica PIN2. Esto hace

que el valor de PIN2 sea accesible en otras partes del código.

Una vez que una variable ha sido asignada, o re-asignada, se puede probar su valor para ver si

cumple ciertas condiciones o se puede utilizar directamente su valor. Como ejemplo ilustrativo

veamos tres operaciones útiles con variables: el siguiente código prueba si la variable

“entradaVariable” es inferior a 100, si es cierto se asigna el valor 100 a “entradaVariable” y, a

continuación, establece un retardo (delay) utilizando como valor “entradaVariable” que ahora

será como valor mínimo de 100.

if (entradaVariable < 100) // pregunta si la variable es menor de 100 entradaVariable = 100; // si es cierto asigna el valor 100 a esta delay(entradaVariable); // usa el valor como retardo

pinMode (pin, mode)

Esta instrucción es utilizada en la parte de configuración setup () y sirve para configurar el modo

de trabajo de un PIN pudiendo ser INPUT (entrada) u OUTPUT (salida).

pinMode(pin, OUTPUT); // configura ‘pin’ como salida

Los terminales del MSP430, por defecto, están configurados como entradas, por lo tanto no es

necesario definirlos en el caso de que vayan a trabajar como entradas.

Page 85: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

71 | Página

Los pines configurados como entrada quedan, bajo el punto de vista eléctrico, como entradas

en estado de alta impedancia. Estos pines tienen a nivel interno una resistencia de 20 KΩ a las

que se puede acceder mediante software. Estas resistencias se acceden de la siguiente

manera:

pinMode(pin, INPUT); // configura el ‘pin’ como entrada digitalWrite(pin, HIGH); // activa las resistencias internas

Las resistencias internas normalmente se utilizan para conectar las entradas a interruptores. En

el ejemplo anterior no se trata de convertir un pin en salida, es simplemente un método para

activar las resistencias interiores. Los pines configurados como OUTPUT (salida) se dice que

están en un estado de baja impedancia y pueden proporcionar 40 mA de corriente a otros

dispositivos y circuitos.

Esta corriente es suficiente para alimentar un diodo LED (no olvidando poner una resistencia en

serie), pero no es lo suficiente grande como para alimentar cargas de mayor consumo como

relés, solenoides, o motores.

DigitalRead (pin)

Lee el valor de un pin (definido como digital) dando un resultado HIGH (alto) o LOW (bajo). El

pin se puede especificar ya sea como una variable o una constante.

valor = digitalRead(Pin); // hace que 'valor sea igual al estado leído en ´Pin´

digitalWrite (pin, value)

Envía al ´pin´ definido previamente como OUTPUT el valor HIGH o LOW (poniendo en 1 o 0 la

salida). El pin se puede especificar ya sea como una variable o como una constante.

digitalWrite(pin, HIGH); // deposita en el 'pin' un valor HIGH (alto o 1)

El siguiente ejemplo lee el estado de un botón conectado a una entrada digital y lo escribe en el

pin de salida LED:

Page 86: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

72 | Página

int led = 13; // asigna a LED el valor 13 int boton = 7; // asigna a botón el valor 7 int valor = 0; // define el valor y le asigna el valor 0 void setup() pinMode(led, OUTPUT); // configura el led (pin13) como salida pinMode(boton, INPUT); // configura botón (pin7) como entrada void loop() valor = digitalRead(boton); // lee el estado de la entrada botón digitalWrite(led, valor); // envía a la salida ´led´ el valor leído

AnalogRead (pin)

Lee el valor de un determinado pin definido como entrada analógica con una resolución de 10

bits. Esta instrucción sólo funciona en los pines (A0-A7). El intervalo de valores que se pueden

leer oscila de 0 a 1023.

valor = analogRead(pin); // asigna a valor lo que lee en la entrada ´pin'

Nota: Las terminales analógicas (A0-A7) a diferencia de las terminales digitales, no necesitan

ser declarados como INPUT u OUPUT ya que son siempre INPUT´s.

AnalogWrite (pin, value)

Esta instrucción sirve para escribir un pseudo valor analógico utilizando el procedimiento de

modulación por ancho de pulso (PWM) a una de las terminales del MSP430 marcados como

“pin PWM”.

analogWrite(pin, valor); // escribe 'valor' en el 'pin' definido como analógico

Si se envía el valor 0, se genera una salida de 0 volts en la terminal especificada; un valor de

255 genera una salida de 5 volts de salida en el pin especificado. Para valores de entre 0 y 255,

el pin saca tensiones entre 0 y 5 volts; el valor HIGH de salida equivale a 5 volts.

Page 87: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

73 | Página

Teniendo en cuenta el concepto de señal PWM un valor de 64 equivaldrá a mantener 0 volts de

tres cuartas partes del tiempo y 5 volts a una cuarta parte del tiempo.

Un valor de 128 equivaldrá a mantener la salida en 0 la mitad del tiempo y 5 volts la otra mitad

del tiempo, y un valor de 192 equivaldrá a mantener en la salida 0 volts una cuarta parte del

tiempo y de 5 volts de tres cuartas partes del tiempo restante.

Debido a que esta es una función de hardware, en el pin de salida analógica (PWM) se

generará una onda constante después de ejecutada la instrucción analogWrite hasta que se

llegue a ejecutar otra instrucción analogWrite (o una llamada a digitalRead o digitalWrite en el

mismo pin).

Nota: Las salidas analógicas a diferencia de las digitales, no necesitan ser declaradas como

INPUT u OUTPUT.

El siguiente ejemplo lee un valor analógico de un pin de entrada analógica, convierte el valor

dividiéndolo por 4, y envía el nuevo valor convertido a una salida del tipo PWM o salida

analógica:

int led = 10; // define el pin 10 como ´led´ int analog = 0; // define el pin 0 como ´analog´ int valor; // define la variable ´valor´ void setup() // no es necesario configurar entradas y salidas void loop() valor = analogRead(analog); // lee el pin 0 y lo asocia a la variable valor valor /= 4; //divide valor entre 4 y lo reasigna a valor analogWrite(led, valor); // escribe en el pin10 valor

Delay (ms)

Detiene la ejecución del programa la cantidad de tiempo en ms que se indica en la propia

instrucción. De tal manera que 1000 equivale a 1seg.

delay(1000); // espera 1 segundo

Page 88: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

74 | Página

Serial.begin (rate)

Abre el puerto serie y fija la velocidad en baudios para la transmisión de datos en serie. El valor

típico de velocidad para comunicarse con la PC es 9600 bps, aunque otras velocidades pueden

ser soportadas.

void setup() Serial.begin(9600); // abre el Puerto serie // configurando la velocidad en 9600 bps

Nota: Cuando se utiliza la comunicación serie los pins digital 0 (RX) y 1 (TX) no pueden

utilizarse al mismo tiempo.

Serial.println (data)

Imprime los datos en el puerto serie, seguido por un retorno de carro automático y salto de

línea. Este comando toma la misma forma que Serial.print (), pero es más fácil para la lectura

de los datos en el Monitor Serie del software.

Serial.println(analogValue); // envía el valor 'analogValue' al puerto

3.4 Descripción Del Programa Realizado Para El Microcontrolador

MSP430

Para hacer que los dos dispositivos que se ocupan en esta Tesis (microcontrolador y un

teléfono inteligente) interactúen, se necesita que los dispositivos involucrados se comuniquen

entre sí utilizando un lenguaje o protocolo común entre ambos dispositivos. La forma más

común de establecer dicha comunicación es utilizando la comunicación serie, la comunicación

serie consiste en la transmisión y recepción de pulsos digitales, a una misma velocidad. El

transmisor envía pulsos que representan el dato enviado a una velocidad determinada, y el

receptor escucha dichos pulsos a esa misma velocidad. Esta técnica es conocida como

comunicación serie asíncrona.

Page 89: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

75 | Página

Para nuestro caso, la tarjeta MSP430 cuenta con un puerto serial, al cual se puede acceder

mediante dos pines digitales Rx (de recepción) y Tx (de transmisión). Energía facilita la

manipulación del proceso de envió de datos, esta velocidad es conocida como “baud rate” o

baudaje. La velocidad es determinada por el programador a través de la interfaz en pantalla con

una velocidad variable de 300, 1200, 2400, 4800, 9600, 14900 pulsos por segundo. El medio

utilizado es el UART (Receptor Asíncrono Universal) encargado de llevar acabo la

comunicación serial con el microcontrolador.

Una vez que tenemos los dos dispositivos conectados y que intercambian datos a una

velocidad de 9600 bits por segundo (también llamados baudios), el receptor capturará el voltaje

que le está enviando el transmisor, y 1/9600 bits por segundo, interpretará dicho voltaje como

un nuevo bit de datos.

Si el voltaje tiene valor HIGH (+5 volts en la comunicación con el MSP430), interpretará el dato

como 1, y si tiene valor LOW (0 volts), interpretará el dato como 0. De esta forma, interpretando

una secuencia de bits de datos, el receptor puede obtener el mensaje transmitido.

Los dispositivos electrónicos usan números para representar en bytes caracteres alfanuméricos

(letras y números). Para ello se utiliza el código estándar llamado ASCII (enlace), el cual asigna

a cada número o letra el valor de un byte comprendido entre el rango de 0 a 127.

El código ASCII es utilizado en la mayoría de los dispositivos como parte de su protocolo de

comunicaciones serie RS-232. Si el dispositivo transmitiría el número 90 la secuencia de

pulsos será como en la Figura 3.4.

Figura 3.4 Número 90 (que en binario es 01011010) transmitido mediante la interfaz serie RS-232.

Page 90: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

76 | Página

Otro punto importante, es determinar el orden de envío de los bits. La transmisión de cada byte

se envía en forma independiente, se transmiten 8 bits de datos de uno a uno comenzando con

el menos significativo y van precedidos con un bit de inicio (START) y detrás de ellos se coloca

un bit de alto (STOP). De acuerdo con las normas del formato estándar NRZ; en el otro

extremo el receptor del sistema de comunicación reconoce los caracteres por su bit de inicio y

bit de parada.

Entonces para que sea posible la comunicación serie, ambos dispositivos deben concordar en

los niveles de voltaje (HIGH y LOW), en la velocidad de transmisión, y en la interpretación de

los bits transmitidos.

Es decir, que deben de tener el mismo protocolo de comunicación serie (conjunto de reglas que

controlan la secuencia de mensajes que ocurren durante una comunicación entre dispositivos).

Generalmente se usa el protocolo serie llamado RS-232 tanto conectores y puertos serie que

utilizan dicha norma.

Los diferentes procesos que intervienen en el programa que controla elementos presentes en

una casa habitación, como lo son:

Encendido/Apagado de las luces de una habitación

Abrir/Cerrar las cerraduras de una habitación

Leer el valor de temperatura en una habitación

Detectar la presencia de algún intruso en un determinado lugar

Leer el valor del nivel de gas LP en un determinado lugar

Page 91: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

77 | Página

Los comandos a recibir para el control de estos procesos son:

1 Encender/Apagar la iluminación

2 Abrir/Cerrar las cerraduras

3 Leer el valor de temperatura en una habitación

4 Detectar la presencia de algún intruso en un determinado lugar

5 Leer el nivel de gas LP

Nota: Para el envío de datos por bluetooth entre el microcontrolador y el teléfono inteligente se

utiliza la App para Android Sistema Usuario.

Una vez establecida la conexión entre la App Sistema Usuario y el programa Sistema Versión 1

previamente cargado en el MSP430, los caracteres enviados vía Bluetooth entrarán en la

estructura del programa Sistema Versión 1 correspondiente, como se muestra en la Figura 3.5,

mostrando los valores censados mediante un Display LCD (mediante la sentencia lcd.print)

conectado al microcontrolador y a través de un Text View (Texto en Pantalla) incluido en la

aplicación Sistema Usuario.

Figura 3.5 Lectura de caracteres a través del puerto serial.

Para el caso del carácter “1” el programa interpretará el siguiente código (Figura 3.6), el cual

controla el estado de las luces de una habitación; enviando dicho estado a la interfaz serial que

se comunica con la App Sistema Usuario tanto como la interfaz LCD.

Page 92: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

78 | Página

Figura 3.6 Proceso Luces. Recibiendo el carácter “2”, el programa interpretará el siguiente código (Figura 3.7), el cual

controla el estado de las cerraduras de una habitación; enviando dicho estado a la interfaz

serial que se comunica con la App Sistema Usuario tanto como la interfaz LCD.

Figura 3.7 Proceso Cerraduras.

La modalidad de temperatura se emplea cuando se recibe el carácter “3”; el pin A0 ha sido

definido como entrada analógica. Se lee el valor de voltaje que proporciona el circuito integrado

LM35 que actúa como un sensor de temperatura y nos entrega una salida de voltaje

directamente proporcional a la temperatura en grados Celsius enviando la variable Temp a la

Page 93: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

79 | Página

interfaz serial que se comunica con la App Sistema Usuario tanto como la interfaz LCD (Figura

3.8).

Figura 3.8 Proceso Temperatura.

Si el valor de temperatura es mayor a 37 grados Celsius, el microcontrolador enviara una señal

de control que activara un led a través del P1_3 previamente programado como salida digital

como se muestra en la Figura 3.9.

Figura 3.9 Condición para el funcionamiento del led. El proceso de Proximidad se realiza al interpretar el carácter “4” recibido por la interfaz serial del

microcontrolador, el sensor funciona mediante la transmisión de una ráfaga de ultrasonido en

una frecuencia muy por encima del rango auditivo humano y provee un pulso de salida, el cual

corresponde con el tiempo requerido por el eco (rebote) para retornar hasta el sensor.

Page 94: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

80 | Página

Al medir la duración de este pulso se puede calcular fácilmente la distancia de un objeto

enviando la variable distance a la interfaz serial que se comunica con la App Sistema Usuario

tanto como la interfaz LCD (Figura 3.10).

Figura 3.10 Proceso Ultrasónico. En la modalidad final se recibe el carácter “5” que activa un detector de gas, el pin A6 ha sido

definido como entrada analógica, por el cual leemos la pureza del gas en una determinada área

como se muestra en la Figura 3.11

Figura 3.11 Proceso Gas.

Page 95: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

81 | Página

Cuando las concentraciones de gas superan un cierto nivel se da la indicación de un estado de

alarma (alto nivel de gas); el microcontrolador emite una señal de activación para un led (Figura

3.12).

Figura 3.12 Condición para activar el led de alarma.

En este capítulo se describieron tanto la tarjeta de desarrollo como el software que permite el

desarrollo de las aplicaciones y la aplicación desarrollada. De la aplicación se describieron los

módulos que permiten la comunicación vía Bluetooth con el teléfono inteligente y aquellos que

permiten la lectura de los sensores. En el siguiente capítulo se describen a detalle los sensores

utilizados así como las aplicaciones que permiten la comunicación.

Para mas información acerca del código fuente para los procesos de lectura y escritura, revisar

Anexo 3.

Page 96: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

82 | Página

CAPÍTULO 4 |

“IMPLEMENTACIÓN Y PRUEBAS”

Page 97: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

83 | Página

CAPÍTULO 4 | IMPLEMENTACIÓN Y PRUEBAS.

La elección de herramientas para el diseño del sistema control y monitoreo se realiza de

acuerdo a la necesidad y al tipo de desarrollo de software que se desea implementar mediante

el desarrollo de aplicaciones, que para nuestro caso, será mediante un teléfono inteligente. En

cuanto a la codificación de este sistema, se utilizó el lenguaje de programación JAVA y C++

teniendo como referencia la programación orientada a objetos (POO) , estos lenguajes de

programación permiten el diseño de interfaz multiplataforma de manera interactiva. El diseño de

la interfaz de usuario debe permitir interactuar con el usuario para enviar las instrucciones

necesarias hacia los diferentes dispositivos de control y así activar las diferentes aplicaciones

multimedia, permitiendo al usuario visualizar la información de las propiedades del sistema.

4.1 Sensores.

Un sensor es un dispositivo eléctrico y/o mecánico capacitado para detectar acciones o

estímulos (magnitudes físicas o químicas) en valores medibles para las magnitudes eléctricas,

las fases para la transformación se realizan en tres pasos.

Al ocurrir un fenómeno físico, éste es captado por el sensor que genera en su salida una

señal eléctrica dependiente del valor de la variable física.

La señal eléctrica es cambiada por un sistema de acondicionamiento de señal cuya

salida es un voltaje.

El sensor tiene una circuitería que transforma y/o amplifica el voltaje de salida la y se

envía a un ADC, que transforma la señal de voltaje continua en una señal discreta.

4.1.1 Descriptores Estáticos De Un Sensor

Los descriptores estáticos definen el comportamiento en régimen permanente del sensor.

Rango: Valores máximos y mínimos para las variables de entrada y salida de un sensor.

Page 98: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

84 | Página

Exactitud: La desviación de la lectura de un sistema de medida respecto a una entrada

conocida. El mayor error esperado entre las señales medida e ideal.

Repetitividad: La capacidad de reproducir una lectura con una precisión dada.

Reproducibilidad: Tiene el mismo sentido que la repetitividad excepto que se utiliza cuando se

toman medidas distintas bajo condiciones diferentes.

Resolución: La cantidad de medida más pequeña que se pueda detectar.

Error: Es la diferencia entre el valor medido y el valor real.

No linealidades: La desviación de la medida de su valor real, supuesto que la respuesta del

sensor es lineal.

No-linealidades típicas: saturación, zona muerta e histéresis.

Sensibilidad: Es la razón de cambio de la salida frente a cambios en la entrada

Excitación: Es la cantidad de corriente o voltaje requerida para el funcionamiento del sensor.

Ruido: Es la presencia de fluctuaciones aleatorias de una señal no pertenecientes al sensor

[10].

4.1.2 Tipos De Sensores.

Existen diferentes tipos de sensores en función del tipo de variable que se desea controlar, para

nuestro caso, el monitoreo de una casa habitación, ocuparemos los siguientes sensores.

Funcionamiento de los sensores de Ultrasonido

El ultrasonido son ondas sonoras, que tienen una frecuencia mayor que la máxima audible por

el oído humano. Ésta comienza desde unos 16 Hz y tiene un límite superior de

aproximadamente 20 KHz, mientras que nosotros vamos a utilizar sonido con una frecuencia de

40 KHz. A este tipo de sonidos es a lo que llamamos Ultrasonidos.

Page 99: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

85 | Página

El funcionamiento básico de los ultrasonidos como medidores de distancia se muestra de una

manera muy clara en el siguiente esquema, donde se tiene un receptor que emite un pulso de

ultrasonido que rebota sobre un determinado objeto y la reflexión de ese pulso es detectada por

un receptor de ultrasonidos (Figura 4.1)

Figura 4.1 Funcionamiento básico de los ultrasonidos.

Medición de distancia por Ultrasonidos (Sensor SRF04)

El objetivo de este circuito auxiliar es el de medir distancias, utilizando para ello dos

transceptores de ultrasonidos, uno emisor y otro receptor, basándonos en el tiempo que tarda la

señal en ir desde el emisor hasta el objeto obstáculo y volver rebotada desde éste hasta el

receptor. Midiendo dicho tiempo podemos calcular con suficiente precisión y exactitud la

distancia entre el objeto y nuestros transceptores (Figura 4.2).

Figura 4.2 Sensor ultrasónico HC-SR04

Page 100: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

86 | Página

Sensores de Temperatura

La temperatura es una magnitud referida a las nociones comunes de calor o frío; físicamente

es una magnitud escalar relacionada con la energía interna de un sistema termodinámico, más

específicamente, está relacionada directamente con la parte de la energía interna conocida

como energía cinética, que es la energía asociada a los movimientos de las partículas del

sistema, sea en un sentido rotacional, o en forma de vibraciones. A medida de que sea mayor la

energía cinética de un sistema, se observa que éste se encuentra más caliente; es decir, que su

temperatura es mayor.

Medición de Temperatura por el Sensor LM35

El circuito integrado LM35 (Figura 4.3) es un sensor de temperatura cuya tensión de salida es

linealmente proporcional con la temperatura en la escala Celsius (centígrada). Lo que nos

permite realizar medidas de temperatura a través de las entradas analógicas de nuestro

MSP430 (pines A0-A7) sin necesidad de emplear ninguna librería específica para su

programación. Posee una precisión aceptable para nuestra aplicación requerida, no necesita

calibración externa, posee sólo tres terminales, permite el censado remoto y es de bajo costo.

Figura 4.3 Circuito integrado LM35

Page 101: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

87 | Página

Sensores de Gas

Un sensor de gas es un sensor químico que se basa fundamentalmente en la toma de una

muestra de partículas que produce un cambio físico o químico de un material sensible (como el

aire), dichos sensores, mediante una circuitería de interface, provocan una señal eléctrica que

constituye la respuesta del sensor.

Medición de Gas Combustible por el Sensor MQ-2

El elemento de detección del nivel de gas combustible de nuestro sistema está constituido de

una capa de semiconductor de óxido de metal, formada en un substrato de alúmina con un

calentador integrado. En presencia de un gas perceptible, la conductividad del sensor aumenta

dependiendo de la concentración de gas y humo en el aire, el MQ-2 tiene alta sensibilidad a los

vapores de solventes orgánicos así como otros vapores volátiles también tiene sensibilidad a

una variedad de gases combustibles, tales como monóxido de carbono, características que le

hacen un buen sensor de fines generales (Figura 4.4)

Figura 4.4 Sensor de detección de gas MQ-2

Conexión de los Relevadores

En esta parte se muestra el esquema (Figura 4.5) utilizado para la conexión de relevadores y

así adaptar al sistema implementado entre el microcontrolador y el teléfono inteligente; equipos

que utilizan corriente eléctrica sinusoidal de 120 volts, para ello se utilizaran lámparas LED. La

conexión se hace de manera individual utilizando los pines del MSP430.

Page 102: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

88 | Página

Figura 4.5 Esquema de conexión individual del relevador.

Display LCD

La Pantalla de cristal líquido o LCD (Liquid Crystal Display) es un dispositivo controlado de

visualización gráfica para la presentación de caracteres, símbolos o incluso dibujos, para

nuestro es caso se dispone de 2 filas de 16 caracteres cada una y cada carácter dispone de

una Matriz de Puntos 5x7 pixeles. Este Dispositivo es controlado por el microcontrolador

MSP430 quién regula de todos los parámetros de presentación. El Display muestra en su

pantalla todos sus caracteres en negro; si no fuera así se deberá proceder al ajuste del

contraste. Para ello se debe instalar un potenciómetro tal y como se muestra en la Figura 4.6.

Figura 4.6 Conexión del potenciómetro de ajuste de contraste.

Page 103: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

89 | Página

Señales De Control

Los pines 4, 5 y 6 toman las señales de control del LCD. El pin 4 (RS) sirve para seleccionar el

registro de datos (DR) o el de instrucciones (IR), el pin 6 (E) permite habilitar o deshabilitar el

Display, por último los pines del 7 al 14 forman un bus de datos bidireccional de 8 bits (DB0-

DB7) por donde se escriben los datos e instrucciones.

Nota: En el Anexo 4 se encuentran las especificaciones técnicas de los sensores descritos

anteriormente.

Módulo Bluetooth

Los módulos HC Bluetooth son dispositivos que nos permite establecer una comunicación

mediante la interfaz serie Bluetooth. Estos módulos tienen dos modos de conexión: maestro y

esclavo.

El módulo Bluetooth HC-06 (Figura 4.7) es uno de los elementos medulares de nuestro

proyecto, debido en gran medida al sencillo tipo de conectividad. Los enlaces inalámbricos de

datos, encuentran en este pequeño dispositivo todo lo necesario para resolver conexiones

"Wireless" y a un bajo costo.

Figura 4.7 Módulo de comunicación serial Bluetooth HC-06.

La información técnica acerca de este módulo se presenta en el Anexo 5

Page 104: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

90 | Página

Durante los ensayos realizados, el módulo ha demostrado tener un solo punto débil: la escasa

(y confusa) información que existe sobre él. Una de las ventajas principales del módulo HC-06,

además de su pequeño tamaño y contar con la especificación V2.0+EDR del protocolo

Bluetooth de clase 2, es contar con buenas características de transmisión y recepción que le

brindan un alcance muy amplio (por tratarse de un sistema local Bluetooth), es el bajo consumo

de corriente que posee tanto en funcionamiento, como en modo de espera, es decir, alimentado

con energía, pero sin conexión o vinculado a otro dispositivo, por ejemplo, un móvil con sistema

operativo Android.

Otra característica interesante de este módulo es que una vez que ha realizado un enlace con

otro dispositivo es capaz de recordarlo en su memoria y no solicita validación alguna (“1234” por

defecto).

Otro detalle particular es que su tensión de alimentación de 3.6 volts y su bajo consumo (8mA

en transmisión/recepción activa) lo transforman en un dispositivo ideal para trabajar con

microcontroladores de la misma tensión de alimentación, logrando de este modo equipos

portátiles que pueden ser alimentados durante muchas horas por baterías recargables o

alcalinas AA, demostrando características excepcionales en aplicaciones médicas, o para

actividades recreativas donde la fuente energética debe ser liviana y portátil.

4.2 Puesta En Marcha.

El primer paso ha sido dotar al microcontrolador de los sensores y el módulo Bluetooth. Se

muestra un esquema de conexiones y fotos, una vez terminado el trabajo. El segundo paso ha

sido montar uno por uno los distintos elementos del sistema (Figura 4.8). También se muestran

fotos de todo este proceso.

Page 105: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

91 | Página

Figura 4.8 Esquema de conexiones del MSP430 con los sensores

En cuanto a los sensores, pueden ser alimentados a partir de 3.3 volts hasta 6 volts porque

así se especifica en su ficha técnica. Utilizaremos las terminales de entrada analógicas A0 - A7

del MSP430 para procesar las señales respectivamente.

Page 106: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

92 | Página

El módulo bluetooth por su parte se conectará mediante las terminales TX-O (transmit - output)

del bluetooth irá conectado al pin RX (Receive) del MSP430. De manera similar, la señal RX-I

(receive- input) del bluetooth irá conectada a la terminal TX (Transmit) del MSP430.

A continuación, mostraremos ejemplos de funcionamiento de nuestro sistema de

comunicación, observando la interfaz de usuario y un display LCD. En su configuración se

pueden observar las diferentes secciones de las que se compone la aplicación, donde cada una

de las secciones está destinada a la configuración de un módulo de la aplicación que están

realizadas con las librerías estándar de Android. Se necesita validar un usuario y password que

debe coincidir con el que programamos como seguridad. Utilizando nuestro teléfono inteligente

con Android con la App Sistema Usuario previamente instalada, procedemos a entrar al

escritorio de nuestro menú por defecto y abrimos nuestra aplicación, coincidiendo con la

validación de la actividad “Login” elegimos el tipo de conexión que deseamos usar. Para este

caso, en las pruebas descritas a continuación se á elegido la conexión Local.

Figura 4.9 Servicios Disponibles.

Page 107: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

93 | Página

Las variables que podemos visualizar, en tiempo real ya sea mediante la App “Sistema

Usuario” o mediante el display LCD se mostrarán en las siguientes figuras una vez que la

sincronización sea exitosa.

La selección de sensores nos permite seleccionar los valores medidos a mostrar en la

aplicación y que capturamos en el display LCD. Actualmente podemos disponer de la

activación /desactivación de luces y cerraduras, el monitoreo de temperatura, proximidad y

nivel gas o de humo.

Figura 4.10 Selección Luces.

Page 108: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

94 | Página

Figura 4.11 Selección Cerraduras.

Figura 4.12 Selección Temperatura.

Page 109: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

95 | Página

Figura 4.13 Selección Ultrasónico.

Figura 4.14 Selección Gas.

Page 110: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

96 | Página

Figura 4.15 Selección Gas detectando una concentración elevada de Gas.

Por último se presentan las pruebas realizadas a la App Sistema Casa, que es la aplicación que

estará instalada en el teléfono inteligente con sistema operativo Android, por medio de la cual

se podrá tener una conexión remota por medio de la validación de SMS con las palabras clave:

“LUCES”, "CERRADURAS", "TEMPERATURA", "ULTRASONICO", "GAS" con las cuales el

teléfono inteligente se vinculara automáticamente al módulo Bluetooth HC-06 que se encuentra

previamente conectado al microcontrolador MSP4340 . Mediante la validación de dichos

caracteres descritos en el SMS los dispositivos quedaran vinculados de manera automática

por medio de las clases ConexionCasa y SendBluetooth descritas en la App Sistema Casa.

Page 111: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

97 | Página

Figura 4.16 Validación de carácter LUCES recibido via SMS

Figura 4.17 Validación de carácter CERRADURAS recibido via SMS

Page 112: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

98 | Página

Figura 4.18 Validación de carácter TEMPERATURA recibido via SMS

Figura 4.19 Validación de carácter ULTRASÓNICO recibido via SMS

Page 113: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

99 | Página

Figura 4.20 Validación de carácter GAS recibido via SMS

Page 114: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

100 | Página

Conclusiones

Para finalizar, podemos observar que hemos conseguido realizar un sistema de comunicación

bidireccional, basada en reglas de la gestión de un protocolo de transmisión de información

Bluetooth. El usuario, puede ser capaz de transmitir y recibir datos mediante el uso de la

tecnología Bluetooth y a través de Mensajes de Texto acceder a ellos estando fuera del

alcance de la conexión Bluetooth, todo esto a través de un teléfono inteligente gracias a la

funcionalidad que nos brinda un sistema operativo de plataforma abierta como lo es Android así

como la versatilidad de un microcontrolador.

Ha sido necesario el estudio en profundidad del estándar Bluetooth. En nuestro caso nos

hemos centrado específicamente en la capa de protocolos HCI, para la configuración y control

de los módulos, y en el protocolo L2CAP para el envío y recepción de paquetes de datos.

Se concluye que con las pruebas que hemos realizado mediante la App “Sistema Usuario”

Bluetooth podemos asegurar que Bluetooth es un protocolo de comunicación de datos, para

redes de área personal inalámbricas que puede proveer a los usuarios de conectividad

transparente con otros dispositivos también habilitados para ello. A lo largo de este trabajo de

Tesis surgieron complicaciones imprevistas que han hecho cambiar el orden de alguna tarea

planificada. Por ejemplo la creación del “buffer” para la recepción de datos en la aplicación

Sistema Usuario.

Afortunadamente, el módulo Bluetooth HC-06, permite elegir la velocidad de transmisión lo cual

facilitó la realización de pruebas para poder trabajar en la comunicación con Android, sin la

versatilidad del módulo Bluetooth no se podría haber avanzado y el proyecto se habría

estancado.

Page 115: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

101 | Página

Posibilidades de trabajo futuro

Actualmente existen interfaces en las cuales ya está implementado la versión 4.0 del protocolo

Bluetooth, en el cual, entre otros adeptos, nos permite tener un rango del alcance de 100

metros y una velocidad de transmisión de 24 Mbps aproximadamente. Esto define la estructura

de un trabajo a futuro, en el cual pueden estar declarados en el código fuente de las App´s dos

o más módulos Bluetooth, y así el usuario puede elegir el módulo al que se quiera conectarse,

pudiendo así agregar más variables a controlar y dispositivos con que conectarse, con dichas

características se podrá explotar mejor el funcionamiento de un sistema cuyos parámetros sean

de un propósito más específico.

Page 116: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

102 | Página

Bibliografía

[1] Simply Wireless (2012). “BeeWi Simply Wireless”, Google Play, Recuperado el 20 de Enero

del 2014 de

https://play.google.com/store/apps/details?id=com.baracoda.android.bluetoothcar.remotecontrol

[2] Parrot SA (2013), “AR.FreeFlight ”, Google Play, Recuperado el 28 de Enero del 2014 de

https://play.google.com/store/apps/details?id=com.parrot.freeflight

[3] Martínez Jorge. (2002). “Redes de comunicaciones” (p. 9), Valencia: Universidad Politécnica

De Valencia

[4] Huidobro Moya José Manuel. (2005). “Sistemas Telemáticos” (p. 56), Madrid: Paraninfo

[5] Andreu Fernando, Pellejero Izaskun, Lesta Amaia. (2006). “Fundamentos y Aplicaciones de

Seguridad en Redes WLAN” (p. 3), Barcelona: Marcombo

[6] D. Black Uyless. (1987). “Redes de Transmisión de Datos y Proceso Distribuido” (p. 255),

Virginia: Ediciones Díaz de Santos

[7] Bluetooth SIG. (2001). “Specification of the Bluetooth System” (p. 7), EEUU: Bluetooth™

[8] IEEE Standard for Information technology. (2002). “IEEE Std 802.15.1” (p. 68), EEUU: IEEE

Computer Society

[9] Bluetooth® Products (2013). “Master Table of Contents & Compliance Requirements”,

(p.519), EEUU: BLUETOOTH SPECIFICATION

[10] Pallás Areny Ramón. (1993). “Adquisición y Distribución de Señales”, (p. 32), Barcelona:

Marcombo

Bluetooth SIG. (2015), “Specification Adopted”, Bluetooth Org, Recuperado el 15 de Febrero

del 2014 de https://www.bluetooth.org

Energía (2010) “Primeros pasos con Energia”, Energia Reference, Recuperado el 15 de

Febrero del 2014 de http://energia.nu/

Tomas Jesús. (2011). “El gran libro de Android”, México: Alfa Omega

Tomas Jesús, Carbonell Vicente. (2013). “El gran libro de Android Avanzado”. México: Alfa

Omega

Frank W, Collins Charlie, Sen Robi (2009). “Unlocking Android A Developer’s Guide”. Manning:

Universidad de Michigan

Page 117: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

103 | Página

Jürgens Björn, Haek Pérez Abraham, Bellido Toré Desirée (2012) “Tecnologías Inalámbricas”

España: Agencia de Innovación y Desarrollo de Andalucía IDEA

Amaro Soriana José Enrique. (2012). “Programación de Dispositivos Móviles a través de

Ejemplos” ”. México: Alfa Omega

Texas Instrumens, (2008) “MSP430x1xx Guía de Usuario” EEUU: Texas Instruments

Incorporated

Page 118: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

104 | Página

Glosario de Términos

Active En este modo tanto el maestro como el esclavo participan de forma

activa en el canal escuchando, transmitiendo o recibiendo los

paquetes. El maestro y el esclavo están sincronizados.

Baud Rate Velocidad en baudios o Velocidad en bits por segundo.

Baudio Numero de bits por segundo en un medio de transmisión digital.

Dalvik Máquina Virtual para dispositivos móviles con Android.

Endianness Formato en el cual se almacena los datos de más de un byte en una

PC.

Hold En este modo un dispositivo de forma temporal puede no soportar

paquetes e ir a un modo de baja potencia para que el canal esté

disponible.

InputStream Flujo de Entrada en la Trasmisión de Datos.

Kernel Núcleo del sistema operativo.

OutputStream Flujo de Salida en la Trasmisión de Datos.

Park En este modo es cuando un esclavo no necesita participar en el canal

de la piconet pero todavía quiere permanecer sincronizado con el

canal. Si varias piconets tienen áreas de cobertura que se

superponen forman una scatternet o red dispersa.

Piconet Red que se crea utilizando una conexión inalámbrica Bluetooth

formada por dispositivos maestros y esclavos.

RS-232 Interfaz que designa la norma para el intercambio de una serie de

datos entre un DTE (Equipo terminal de datos) y un DCE (Equipo de

comunicación de datos).

Scatternet Una red dispersa es un tipo de red que se forma entre dos o más

dispositivos con capacidad Bluetooth.

Slots Ranuras de Tiempo de Intervalos Temporales.

Page 119: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

105 | Página

Smartphone

Teléfono móvil construido sobre una plataforma informática, con una

mayor capacidad de almacenar datos y realizar actividades

semejantes a una minicomputadora, y con una mayor conectividad

que un teléfono móvil convencional.

Sniff En este modo el esclavo en vez de estar escuchando en cada slot el

mensaje del maestro, chequea algunos periodos de tiempo,

ahorrando potencia en aquellos instantes en los que se encuentra

“durmiendo”.

Page 120: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

106 | Página

Glosario de Acrónimos

ACL Enlace asíncrono de baja conexión.

AFH AFH (Adaptive Frequency Hopping; Salto de Frecuencia

Adaptable).

ALU Unidad Aritmética Lógica.

API API (Application Programming Interface; Interfaz de

Programación de Aplicaciones).

APP Programa que se instala en un dispositivo móvil, ya sea teléfono

o tablet y que se puede integrar a las características del equipo.

ARM Familia de microprocesadores producidos por la empresa ARM

Holdings.

ASCII Estándar Estadounidense para el intercambio de información.

AVR Familia de Los Microcontroladores RICS.

BSL BSL (Bootstrap Loader; Cargador de Arranque).

BT Abreviatura de Bluetooth.

CAD Convertidor Analógico Digital.

CDA Convertidor Digital Analógico.

CDMA CDMA (Code Division Multiple Access; Acceso Múltiple por

División de Código).

CPU CPU (Unidad Central de Procesamiento).

DLL DLL (Data Llink Layer; Capa de Enlace de Datos).

EDR EDR (Enhanced Data Rate; Velocidad de Datos Mejorada).

EMS EMS (Enhanced Messaging Service; Servicio de Mensajes

Mejorado).

EPROM Memoria Borrable y Programable.

FFH FFH (Fast Frequency-Hop; Modulación por Salto de Frecuencia).

FH/TDD FH/TDD (Frequency Hop/Time-Division Duplex; Salto de

Frecuencia/División de Tiempo Dúplex).

Page 121: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

107 | Página

FSK FSK (Frequency Shift Keying; Modulación por Desplazamiento de

Frecuencia).

GPS GPS (Global Positioning System; Sistema De Posicionamiento

Global).

GSM GSM (Global System for Mobile Communications; Sistema Global

para las Comunicaciones Móviles).

HCE HCE (Host Card Emulation; Emulación De Tarjeta a Host).

HCI HCI (Host Controller Interface; Interfaz de Control de Host).

HID HID (Human Interface Device; Dispositivo de Interfaz Humana).

HLR Registro de Ubicación de Base.

IETE Institución de Electrónica y Telecomunicaciones Ingenieros.

ISM ISM ( Industrial, Scientific and Medical; Banda Libre Industrial,

Científica y Mecánica).

L2CAP L2CAP (Logical Link Control and Adaptation Protocol; Capa de

Adaptación y Control de Enlace Lógico).

LLC LLC (Logical Link Control; Control de Enlace Lógico).

LMP LMP (Management Enlace Protocolo; Protocolo de Gestión del

Enlace).

MAC MAC (Medium Access Control; Control de Acceso al Medio).

MMS MMS (Multimedia Messaging System; Sistema de Mensajería

Multimedia).

NFC NFC (Near field Communication; Comunicación de Campo

Cercano).

OBEX Object Exchange; Intercambio de Datos.

OSI OSI (Open System Interconnection; Modelo de Interconexión de

Sistemas Abiertos).

PHY PHY (Physical Layer; Capa Física de Especificaciones).

PPP PPP (Point-to-point Protocol; Protocolo punto a punto).

PROM Memoria de Solo Lectura Programable.

Page 122: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

108 | Página

PWM Modulación por Ancho de Pulso.

QoS QoS (Quality Of Service; Calidad De Servicio).

RAM Memoria De Acceso Aleatorio.

RFCOMM RFCOMM ( Radio Frequency Communication; Comunicación por

Radio Frecuencia).

RISC RISC (Reduced Instruction Set Computer; Computador con

Conjunto de Instrucciones Reducidas).

ROM Memoria De Solo Lectura.

SCO Enlace de sincronización de conexión orientada.

SDK SDK ( Software Development Kit; Kit de Desallorro de Software).

SDP SDP (Service Discovery; Descubrimiento de Servicio).

SIG SIG (Special Interest Group; Grupo de Interés Especial).

SMS SMS (Short Message Service; Servicio de Mensajes Cortos).

SMSC Centro de Servicio de Mensajería Corta.

SPI SPI (Serial Periphelal Interface; Interfaz de Perifericos Serie).

TCP Protocolo de Control de Transmisión.

TCP/IP Protocolo de Control de Transmisión/Protocolo de Internet.

TDD TDD (Time Division Duplex; Dúplex por División de Tiempo).

UART UART (Universal Asynhronous Receiver Transmitter; Transmisor

Repeceptor Asincróno).

UMTS UMTS (Universal Mobile Telecommunications System; Sistema

Universal de Telecomunicasiones).

USART USART ( Universal Synchronous Asynhronous Receiver

Transmitter; Transmisor Repeceptor Sincrono Asincrono).

USB USB (Universal Serial Bus; Bus Universal En Serie).

UUID UUID (Universally Unique Identifier; Identificador Universal

Único).

Page 123: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

109 | Página

WAP WAP (Wireless Application Protocol; Protocolo de Aplicaciones

Inalámbricas).

WPAN WAP (Wireless Application Protocol; Protocolo de Aplicaciones

Inalámbricas).

XML XML (Exensible Markup Language; Lenguaje Extensible

Marcado).

Page 124: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

110 | Página

Anexo 1

“Identificador Base

Único Universal

(UUID)”

Page 125: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

111 | Página

Anexo 1 Identificador Base Único Universal (UUID)

Identificador único universal (UUID) formas cortas

El Bluetooth ® Servicio Discovery Protocol (SDP) define una manera de representar una gama de UUID (que son nominalmente 128 bits) en una forma más corta. Una gama reservada de valores 232 puede ser representada usando 32 bits (uuid32 denotado). De estos, un sub-rango de 216 valores se puede representar usando sólo 16 bits (uuid16 denotado).

Todos los valores en el rango de 232 que no están asignados en este documento están reservados pendientes futuras revisiones de este documento. En otras palabras, no tiene valor en este rango puede usarse excepto como se especifica en esta o en futuras revisiones de este documento. Valores UUID fuera de este rango pueden ser asignados como se describe en [ ISO-11578 ] para cualquier propósito los deseos asignadores.

Base identificador único universal (UUID) El UUID Base se utiliza para el cálculo de los UUID de 128 bits de "UUID cortas" (uuid16 y uuid32) como se describe en el SDP Especificación. Ver Service Discovery Protocol (SDP) en el Núcleo especificación Bluetooth.

NOTA: UUID cortos Actualmente, todos asignados son tipos uuid16.

Nombre UUID

UUID

BASE_UUID 00000000-0000-1000-8000-

00805F9B34FB

Identificadores de protocolo Los UUID en la tabla siguiente sólo se utilizarán en el atributo ProfileDescriptorList.

Protocolo Nombre UUID Protocolo de Especificaciones

SDP 0x0001 Bluetooth Core Especificaciones

UDP 0x0002 [NO USO DE PERFILES]

RFCOMM 0x0003 RFCOMM con TS 07.10

TCP 0x0004 [NO USO DE PERFILES]

TCS-BIN 0x0005 Control de telefonía Especificación / TCS binario [obsoleta]

Page 126: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

112 | Página

TCS-AT 0x0006 [NO USO DE PERFILES]

ATT 0x0007 Protocolo Atributo

OBEX 0x0008 Interoperabilidad IrDA

IP 0x0009 [NO USO DE PERFILES]

FTP 0x000A [NO USO DE PERFILES]

HTTP 0x000C [NO USO DE PERFILES]

WSP 0x000E [NO USO DE PERFILES]

BNEP 0x000F Encapsulación Protocolo de red Bluetooth (BNEP)

UPNP 0x0010 Extended Service Discovery (PESD) [obsoleta]

HIDP 0x0011 Perfil de dispositivo de interfaz humana (HID)

HardcopyControlChannel 0x0012 Hardcopy Cable Replacement Profile (HCRP)

HardcopyDataChannel 0x0014 Ver Hardcopy Cable Replacement Profile (HCRP)

HardcopyNotification 0x0016 Hardcopy Cable Replacement Profile (HCRP)

AVCTP 0x0017 / Protocolo Audio Video Control de Transporte (AVCTP)

AVDTP 0x0019 Audio / Video Transport Protocol Distribution (AVDTP)

Page 127: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

113 | Página

CMTP 0x001B Común Perfil RDSI Acceso (CIP) [obsoleta]

MCAPControlChannel 0x001E Protocolo de adaptación de varios canales (MGAP)

MCAPDataChannel 0x001F Protocolo de adaptación de varios canales (MGAP)

L2CAP 0x0100 Bluetooth Core Especificaciones

(Valor máximo 0xFFFF)

Tabla 1: Protocolo de Identificadores y nombres, Clases de servicios y perfil Identificadores

UUID en la tabla siguiente, que tienen un uso permitido de la clase de servicio se pueden usar en el atributo universal de ServiceClassIDList, pero no podrán ser utilizados en el atributo BluetoothProfileDescriptorList a menos que también se permite el uso del perfil en la tabla siguiente. Si una clase de servicio UUID se expone en la base de datos SDP de un producto, el producto que contiene el registro SDP deberá cumplir con la especificación que define el servicio correspondiente a la UUID.

UUID en la tabla siguiente que haber un uso permitido de perfil puede ser utilizado en el atributo universal de BluetoothProfileDescriptorList, pero no se utilizan en este atributo universal ServiceClassIDList a menos que el uso de la clase de servicio también está permitido por la tabla de abajo.

Por razones históricas, algunos UUID de la Tabla 2 se utilizan para identificar los perfiles en un atributo universal de BluetoothProfileDescriptorList así como clases de servicio en un atributo universal de ServiceClassIDList. Sin embargo, para los nuevos perfiles, Servicio de Clase UUID no se utilizará en un BluetoothProfileDescriptorList atributos y perfil UUID universales no se utilizarán en un atributo universal de ServiceClassIDList.

Servicio de Nombre de clase UUID Especificación Mascotas Uso

ServiceDiscoveryServerServiceClassID 0x1000 Bluetooth Core Especificaciones Servicio de

Clase

BrowseGroupDescriptorServiceClassID 0x1001 Bluetooth Core Especificaciones Servicio de

Clase

SerialPort 0x1101

Serial Port Profile (SPP)

NOTA: El ejemplo registro SDP en SPP v1.0 no

incluye un atributo BluetoothProfileDescriptorList,

pero algunas implementaciones también puede

utilizar este UUID para el Identificador de perfil.

Servicio de

Clase /

Perfil

Page 128: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

114 | Página

LANAccessUsingPPP 0x1102

Perfil de acceso LAN

[obsoleta]

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil.

Servicio de

Clase /

Perfil

DialupNetworking 0x1103

Dial-up Networking Profile (DUN)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil.

Servicio de

Clase /

Perfil

IrMCSync 0x1104

Perfil de sincronización (SYNC)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil.

Servicio de

Clase /

Perfil

OBEXObjectPush 0x1105

El perfil de Objetos (OPP)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Perfil.

Servicio de

Clase /

Perfil

OBEXFileTransfer 0x1106

File Transfer Profile (FTP)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil.

Servicio de

Clase /

Perfil

IrMCSyncCommand 0x1107 Perfil de sincronización (SYNC)

Auriculares 0x1108

Perfil de auriculares (HSP)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil.

Servicio de

Clase /

Perfil

CordlessTelephony 0x1109

Telefonía Inalámbrica Perfil (CTP)

. NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil

[obsoleta]

Servicio de

Clase /

Perfil

AudioSource 0x110A Advanced Audio Distribution Profile (A2DP) Servicio de

Clase

Page 129: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

115 | Página

AudioSink 0x110B Advanced Audio Distribution Profile (A2DP) Servicio de

Clase

A / V_RemoteControlTarget 0x110C Audio / Video Remote Control Profile (AVRCP) Servicio de

Clase

AdvancedAudioDistribution 0x110D Advanced Audio Distribution Profile (A2DP) Perfil

A / V_RemoteControl 0x110E

Audio / Video Remote Control Profile (AVRCP)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil.

Servicio de

Clase /

Perfil

A / V_RemoteControlController 0x110F

Audio / Video Remote Control Profile (AVRCP)

NOTA: La especificación v1.3 AVRCP y luego

exigir que 0x110E también se incluirá en la

ServiceClassIDList antes 0x110F por

compatibilidad hacia atrás.

Servicio de

Clase

Intercomunicador 0x1110

Perfil Intercom (ICP)

. NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil

[obsoleta]

Servicio de

Clase

Fax 0x1111

Perfil de fax (FAX)

. NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil

[obsoleta]

Servicio de

Clase

Auriculares - Audio Gateway (AG) 0x1112 Perfil de auriculares (HSP) Servicio de

Clase

WAP 0x1113 Requisitos de interoperabilidad para la tecnología

Bluetooth como WAP, Bluetooth SIG [obsoleta]

Servicio de

Clase

WAP_CLIENT 0x1114 Requisitos de interoperabilidad para la tecnología Servicio de

Page 130: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

116 | Página

Bluetooth como WAP, Bluetooth SIG [obsoleta] Clase

PANU 0x1115

Personal Profile Area Networking (PAN)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil de papel

PANU.

Servicio de

Clase /

Perfil

NAP 0x1116

Área Personal Perfil de redes (PAN)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil para el papel

del PAN.

Servicio de

Clase /

Perfil

GN 0x1117

Área Personal Perfil de redes (PAN)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil de papel GN.

Servicio de

Clase /

Perfil

DirectPrinting 0x1118 Perfil básico de impresión (BPP) Servicio de

Clase

ReferencePrinting 0x1119 Ver perfil de impresión básico (BPP) Servicio de

Clase

Perfil básico de imagen 0x111A Perfil básico de imagen (BIP) Perfil

ImagingResponder 0x111B Perfil básico de imagen (BIP) Servicio de

Clase

ImagingAutomaticArchive 0x111C Perfil básico de imagen (BIP) Servicio de

Clase

ImagingReferencedObjects 0x111D Perfil básico de imagen (BIP) Servicio de

Clase

Manos libres 0x111E Perfil manos libres (HFP)

NOTA: Se utiliza tanto como Clase Identificador

Servicio de

Clase /

Page 131: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

117 | Página

de Servicio y Identificador de perfil. Perfil

HandsfreeAudioGateway 0x111F Perfil manos libres (HFP) Servicio de

Clase

DirectPrintingReferenceObjectsService 0x1120 Perfil básico de impresión (BPP) Servicio de

Clase

ReflectedUI 0x1121 Perfil básico de impresión (BPP) Servicio de

Clase

BasicPrinting 0x1122 Perfil básico de impresión (BPP) Perfil

PrintingStatus 0x1123 Perfil básico de impresión (BPP) Servicio de

Clase

HumanInterfaceDeviceService 0x1124

Dispositivo de interfaz humana (HID)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil.

Servicio de

Clase /

Perfil

HardcopyCableReplacement 0x1125 Hardcopy Cable Replacement Profile (HCRP) Perfil

HCR_Print 0x1126 Hardcopy Cable Replacement Profile (HCRP) Servicio de

Clase

HCR_Scan 0x1127 Hardcopy Cable Replacement Profile (HCRP) Servicio de

Clase

Common_ISDN_Access 0x1128

Común Perfil RDSI Acceso (CIP)

. NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil

[obsoleta]

Servicio de

Clase /

Perfil

SIM_Access 0x112D SIM Access Profile (SAP)

NOTA: Se utiliza tanto como Clase Identificador

Servicio de

Clase /

Page 132: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

118 | Página

de Servicio y Identificador de perfil. Perfil

Acceso al directorio telefónico - PCE 0x112E Acceso a agenda telefónica (PBAP) Servicio de

Clase

Acceso al directorio telefónico - PSE 0x112F Acceso a agenda telefónica (PBAP) Servicio de

Clase

Acceso al directorio telefónico 0x1130 Acceso a agenda telefónica (PBAP) Perfil

Headset HS - 0x1131

Perfil de auriculares (HSP)

. NOTA: Ver errata # 3507

0x1108 y 0x1203 también deben ser incluidos en

la ServiceClassIDList antes 0x1131 para la

compatibilidad hacia atrás.

Servicio de

Clase

Mensaje Access Server 0x1132 Perfil de acceso a mensaje (MAP) Servicio de

Clase

Mensaje Notification Server 0x1133 Perfil de acceso a mensaje (MAP) Servicio de

Clase

Mensaje perfil de acceso 0x1134 Perfil de acceso a mensaje (MAP) Perfil

GNSS 0x1135 Sistema Global de Navegación por Satélite Perfil

(GNSS) Perfil

GNSS_Server 0x1136 Sistema Global de Navegación por Satélite Perfil

(GNSS)

Servicio de

Clase

Visualización 3D 0x1137 3D de sincronización de perfiles (3DSP) Servicio de

Clase

Gafas 3D 0x113 8 3 D de sincronización de perfiles (3DSP) S ervicio

Page 133: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

119 | Página

3D Sincronización 0x1139 3 D de sincronización de perfiles (3DSP) Perfil

MPS Perfil UUID 0x113A Multi-Perfil Specification (MPS) Perfil

MPS SC UUID 0x113B Multi-Perfil Specification (MPS) Servicio de

Clase

Servicio de acceso CTN 0x113C Calendario, Tareas y Notas (CTN) Perfil Servicio de

Clase

Servicio de notificación de CTN 0x113D C Tareas Alendar y Notas (CTN) Prof ile Servicio de

Clase

CTN Perfil 0x113E C Tareas Alendar y Notas (CTN) Prof ile Perfil

PnPInformation 0x1200

Identificación del dispositivo (DID)

NOTA: Se utiliza tanto como Clase Identificador

de Servicio y Identificador de perfil.

Servicio de

Clase /

Perfil

GenericNetworking 0x1201 N / A Servicio de

Clase

GenericFileTransfer 0x1202 N / A Servicio de

Clase

GenericAudio 0x1203 N / A Servicio de

Clase

GenericTelephony 0x1204 N / A Servicio de

Clase

UPNP_Service 0x1205 Enhanced Perfil Service Discovery (PESD)

[obsoleta]

Servicio de

Clase

Page 134: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

120 | Página

UPNP_IP_Service 0x1206 Enhanced Perfil Service Discovery (PESD)

[obsoleta]

Servicio de

Clase

ESDP_UPNP_IP_PAN 0x1300 Enhanced Perfil Service Discovery (PESD)

[obsoleta]

Servicio de

Clase

ESDP_UPNP_IP_LAP 0x1301 Enhanced Perfil Service Discovery (PESD)

[obsoleta]

Servicio de

Clase

ESDP_UPNP_L2CAP 0x1302 Enhanced Perfil Service Discovery (PESD)

[obsoleta]

Servicio de

Clase

VideoSource 0x1303 Video Distribution Profile (VDP) Servicio de

Clase

VideoSink 0x1304 Video Distribution Profile (VDP) Servicio de

Clase

VideoDistribution 0x1305 Video Distribution Profile (VDP) Perfil

HDP 0x1400 Dispositivo de la Salud Perfil Perfil

HDP Fuente 0x1401 Dispositivo de la Salud Perfil (HDP) Servicio de

Clase

HDP Sink 0x1402 Dispositivo de la Salud Perfil (HDP) Servicio de

Clase

(Valor

máximo

0xFFFF)

Tabla 2: clase de servicio del perfil Identificadores

Page 135: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

121 | Página

Anexo 2

“Código Fuente De Las

App´s”

Page 136: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

122 | Página

Anexo 2 Código Fuente De Las App´s

App Sistema Usuario

Actividad Login

package com.example.sistema_usuario; public class Login extends Activity EditText usuario, password; TextView resultado; Button entrar; // validar check box RadioButton remoto, distancia; boolean remotoBool, distanciaBool; @Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); usuario = (EditText) findViewById(R.id.Dato_Usurario); password = (EditText) findViewById(R.id.Dato_Password); entrar = (Button) findViewById(R.id.enlace1); resultado = (TextView) findViewById(R.id.resultado); // actividad check box remoto = (RadioButton) findViewById(R.id.remoto); distancia = (RadioButton) findViewById(R.id.distancia); // condiciones iniciales remotoBool = true; distanciaBool = false; entrar.setOnClickListener(new OnClickListener() @Override public void onClick(View v) // validacion String usr = usuario.getText().toString().trim(); String psswd = password.getText().toString().trim(); if (usr.length() < 1) resultado.setText("Debes de ingresar tu nombre de usuario"); if (psswd.length() < 1) resultado.setText("Debes de ingresar tu nombre de usuario y tu contraseña"); else if (psswd.length() < 1) resultado.setText("Debes de ingresar tu contraseña"); else // el caso en que ninguno es vacio if (usr.equals("a") && psswd.equals("1"))

Page 137: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

123 | Página

Toast.makeText(getApplicationContext(),"Bienvenido a casa", Toast.LENGTH_LONG).show(); resultado.setText("Bienvenido"); if (remoto.isChecked()) // remotoBool = true; // distanciaBool = false; Intent accesoRemoto = new Intent(getApplicationContext(),MainActivity.class); startActivity(accesoRemoto); else if (distancia.isChecked()) // remotoBool = false; // distanciaBool = true; Intent accesoDistancia = new Intent(getApplicationContext(), Distancia.class); startActivity(accesoDistancia); // if usr y pass else Toast.makeText(getApplicationContext(),"Error en la validacion", Toast.LENGTH_LONG).show();resultado.setText(" Intruso "); // else de no vacio // onClick ); // listener del boton @Override public boolean onCreateOptionsMenu(Menu menu) // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.login, menu); return true;

Page 138: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

124 | Página

Actividad MainActivity

public class MainActivity extends Activity implements Handler.Callback // SPP UUID private static final UUID MY_UUID = UUID .fromString("00001101-0000-1000-8000-00805F9B34FB"); private BluetoothSocket bluetoothSocket; // MAC-address del modulo Bluetooth private static String address = "20:13:09:29:29:17"; @Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); Log.d(TAG, "onCreate: bt test"); //foundDevicesSpinner = (Spinner) findViewById(R.id.foundSpin); sensorValTv = (TextView) findViewById(R.id.sensorVal); messageTv = (TextView) findViewById(R.id.msgLabel); countTv = (TextView) findViewById(R.id.connectionsVal); // es lo primero que hace configureBluetooth(); conectarBluetooth(); private void conectarBluetooth() // Descubrimiento del proceso // Desactivar mientras que hace una conexión bluetoothAdapter.cancelDiscovery(); String addy = "HC-06 " + address; Log.d(TAG, "Conectar: La dirección a conectar" + addy); BluetoothDevice btDevice = btDeviceMap.get(addy); if (btDevice == null) Log.w(TAG, "conectar: no hay ningún dispositivo bt para conectarse a"); return; try bluetoothSocket = btDevice .createRfcommSocketToServiceRecord(MY_UUID);

Page 139: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

125 | Página

Log.d(TAG, "connect 0: socket:" + bluetoothSocket); catch (IOException ioe) String err = "Problema al crear socket BT para " + addy; showMessage(Log.ERROR, err); Log.e(TAG, err); ioe.printStackTrace(); return; try bluetoothSocket.connect(); showMessage(Log.INFO, "Conectado correctamente a " + addy); catch (IOException ioe) String err = "Problema de conexión a " + addy; showMessage(Log.ERROR, err); Log.e(TAG, err); ioe.printStackTrace(); return; int threadIndex = btConnThreadLookup.size(); BtConnectionThread btConnThread = new BtConnectionThread( bluetoothSocket, new Handler(this), threadIndex); btConnThread.start(); btConnThreadMap.put(addy, btConnThread); btConnThreadLookup.put(threadIndex, btConnThread); countTv.setText(String.valueOf(btConnThreadMap.size())); Log.d(TAG, "número del hilo de conexión :" + btConnThreadMap.size()); @Override protected void onDestroy() super.onPause(); Log.d(TAG, "onDestroy: unregistering"); unregisterReceiver(bluetoothReceiver); disconnectAll(); private void configureBluetooth() bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); ventanita para prender el bluetooth startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); else // bluetooth ya habilitado Log.d(TAG, "configureBluetooth 4: bluetooth already enabled "); Set<BluetoothDevice> pairedDevices = bluetoothAdapter .getBondedDevices(); foundDevices = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item); if (pairedDevices.size() > 0) String key;

Page 140: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

126 | Página

for (BluetoothDevice device : pairedDevices) key = device.getName() + " " + device.getAddress(); btDeviceMap.put(key, device); foundDevices.add(key); //foundDevicesSpinner.setAdapter(foundDevices); else // Los dispositivos para mostrar no emparejado Log.d(TAG, "configureBluetooth 5: no paired devices to show"); // BroadcastReceiver IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); bluetoothReceiver = new BluetoothReceiver(); registerReceiver(bluetoothReceiver, filter); public void disconnect(View v) BtConnectionThread btConnThread = getSelectedConnThread(); if (btConnThread != null) showMessage(Log.INFO, "Disconnecting from " + btConnThread.getDeviceDisplayVal()); //Desconectar de btConnThread.disconnect(); removeSelectedConnThread(); private void disconnectAll() for (BtConnectionThread btConnThread : btConnThreadMap.values()) btConnThread.disconnect(); showMessage(Log.INFO, "Disconnecting from all devices"); //desconexion d todos los servicios countTv.setText("0"); // tranmicion de datos public void turnOn(View v) BtConnectionThread btConnThread = getSelectedConnThread(); showMessage(Log.INFO, "Estado de Luces " + btConnThread.getDeviceDisplayVal()); btConnThread.write("1".getBytes()); public void turnOff(View v) BtConnectionThread btConnThread = getSelectedConnThread(); showMessage(Log.INFO, "Estado de Cerraduras " + btConnThread.getDeviceDisplayVal()); btConnThread.write("2".getBytes());

Page 141: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

127 | Página

public void temperatura(View v) BtConnectionThread btConnThread = getSelectedConnThread(); showMessage(Log.INFO, "Temperatura " + btConnThread.getDeviceDisplayVal()); btConnThread.write("3".getBytes()); public void proximidad(View v) BtConnectionThread btConnThread = getSelectedConnThread(); showMessage(Log.INFO, "Detectado a " + btConnThread.getDeviceDisplayVal()); btConnThread.write("4".getBytes()); public void nivel_gas(View v) BtConnectionThread btConnThread = getSelectedConnThread(); showMessage(Log.INFO, "Nivel de gas " + btConnThread.getDeviceDisplayVal()); btConnThread.write("5".getBytes()); public void showMessage(int msgType, String message) if (msgType == Log.ERROR) messageTv.setTextColor(Color.rgb(200, 0, 0)); else if (msgType == Log.WARN) messageTv.setTextColor(Color.rgb(255, 255, 0)); else messageTv.setTextColor(Color.parseColor("#00B700")); messageTv.setText(message); /** * Remove the selected thread from the map Retire el hilo seleccionada del mapa y muestre MAC */ private void removeSelectedConnThread() //String addy = (String) foundDevicesSpinner.getSelectedItem(); String addy = "HC-06 " + address; BtConnectionThread btct = btConnThreadMap.remove(addy); if (btct != null) countTv.setText(String.valueOf(btConnThreadMap.size())); private BtConnectionThread getSelectedConnThread() //String addy = (String) foundDevicesSpinner.getSelectedItem(); String addy = "HC-06 " + address; return btConnThreadMap.get(addy);

Page 142: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

128 | Página

public void findDevices(View v) foundDevices.clear(); bluetoothAdapter.startDiscovery(); showMessage(Log.INFO, ""); class BluetoothReceiver extends BroadcastReceiver @Override public void onReceive(Context context, Intent intent) Log.d(TAG, "onreceive 0"); String action = intent.getAction(); // When discovery finds a device if (BluetoothDevice.ACTION_FOUND.equals(action)) Log.d(TAG, "onreceive 1: found BT device"); // Get the BluetoothDevice object from the Intent BluetoothDevice device = intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); String key = device.getName() + " " + device.getAddress(); btDeviceMap.put(key, device); foundDevices.add(key); showMessage(Log.INFO, "Found Device:" + key); else Log.d(TAG, "onreceive 2: different bt action received"); @Override public boolean onCreateOptionsMenu(Menu menu) // Inflate the menu; this adds items to the action bar if it is present. // getMenuInflater().inflate(R.menu.main, menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.layout.menu, menu); return true; @Override public boolean handleMessage(Message msg) Log.d(TAG, "handleMessage: got message obj:" + msg.obj); byte[] byteArr = (byte[]) msg.obj; String msgStr = new String(byteArr); if (msgStr != null && btConnThreadLookup.get(msg.what) != null) showMessage(Log.INFO, "Mensaje Recibido de: " + btConnThreadLookup.get(msg.what).getDeviceDisplayVal()); //sensorValTv.setText(msgStr);

Page 143: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

129 | Página

// Mensaje llega: 1,0 String categoria = msgStr.substring(0, 1); //antes de la coma String valor = msgStr.substring(2, msgStr.length()); //despues de la coma if(categoria.equals("1")) sensorValTv.setText("Luces Encendidas "); if(valor.equals("0")) sensorValTv.setText("LUCES APAGADAS"); if(categoria.equals("2")) sensorValTv.setText(" Cerrando Puertas"); if(categoria.equals("3")) sensorValTv.setText("Temperatura = " + valor + " °C"); if(categoria.equals("4")) sensorValTv.setText("Distancia = " + valor); if(categoria.equals("5")) sensorValTv.setText("Nivel de gas =" + valor); /*if(msgStr.equals("1,0")) * * * HACER ESTO:: si el valor es mayor de 1000 el micro manda una alerta sensorValTv.setText(msgStr + " - Luces apagadas"); if(msgStr.equals("2,0")) sensorValTv.setText(msgStr + " - Persiana cerrada"); */ return true; @Override

Page 144: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

130 | Página

public boolean onOptionsItemSelected(MenuItem item) switch (item.getItemId()) case R.id.exit: Log.d(TAG, "onOptionsItemSelected: exiting via menu item"); //salir atravez del menu exit disconnectAll(); int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid); return true; default: return super.onOptionsItemSelected(item);

Page 145: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

131 | Página

Actividad Distancia

public class Distancia extends Activity Button luces, aspersores, cerraduras, temperatura, ultrasonico, gas; @Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_distancia); luces = (Button) findViewById(R.id.bntLuces); cerraduras = (Button) findViewById(R.id.bntCerraduras); temperatura = (Button) findViewById(R.id.bntTemperatura); ultrasonico = (Button) findViewById(R.id.bntProximidad); gas = (Button) findViewById(R.id.bntGas); luces.setOnClickListener(new OnClickListener() public void onClick(View v) sendSMS("5529559360", "LUCES"); Toast.makeText(getBaseContext(), "Enviando Mensaje...", Toast.LENGTH_SHORT).show(); ); cerraduras.setOnClickListener(new OnClickListener() public void onClick(View v) sendSMS("5529559360", "CERRADURAS"); Toast.makeText(getBaseContext(), "Enviando Mensaje...", Toast.LENGTH_SHORT).show(); ); temperatura.setOnClickListener(new OnClickListener() public void onClick(View v) sendSMS("5529559360", "TEMPERATURA"); Toast.makeText(getBaseContext(), "Enviando Mensaje...", Toast.LENGTH_SHORT).show(); ); ultrasonico.setOnClickListener(new OnClickListener() public void onClick(View v) sendSMS("5529559360", "ULTRASONICO");

Page 146: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

132 | Página

Toast.makeText(getBaseContext(), "Enviando Mensaje...", Toast.LENGTH_SHORT).show(); ); gas.setOnClickListener(new OnClickListener() public void onClick(View v) sendSMS("5529559360", "GAS"); Toast.makeText(getBaseContext(), "Enviando Mensaje...", Toast.LENGTH_LONG).show(); ); // Metodo para enviar mensajes private void sendSMS(String phoneNum, String Message) SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(phoneNum, null, Message, null, null); // TODO Auto-generated method stub @Override public boolean onCreateOptionsMenu(Menu menu) // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.login, menu); return true;

Page 147: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

133 | Página

Actividad Activity_Casa

public class SMSReceiver extends BroadcastReceiver @Override public void onReceive(Context context2, Intent intent2) // TODO Auto-generated method stub Bundle bundle2 = intent2.getExtras(); SmsMessage [] msgs = null; if (bundle2 != null) Object [] pdus2 = (Object[]) bundle2.get("pdus"); msgs = new SmsMessage[pdus2.length]; for (int i = 0; i<msgs.length; i++) msgs[i] = SmsMessage.createFromPdu((byte[])pdus2[i]); de += msgs[i].getOriginatingAddress(); contenido += msgs[i].getMessageBody().toString(); if(contenido.equals("LUCES")) Toast.makeText(context2, "Encender Luces", Toast.LENGTH_SHORT).show(); if(contenido.equals("CERRADURAS")) Toast.makeText(context2, "Cerrando Puertas", Toast.LENGTH_SHORT).show(); if(contenido.equals("TEMPERATURA")) Toast.makeText(context2, "Grados De Temperatura:", Toast.LENGTH_SHORT).show(); if(contenido.equals("ULTRASONICO")) Toast.makeText(context2, "Objeto detectado a : ", Toast.LENGTH_SHORT).show(); if(contenido.equals("GAS")) Toast.makeText(context2, "Nivel de gas detectado: ", Toast.LENGTH_SHORT).show();

Page 148: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

134 | Página

Anexo 3

“Programa En Energía”

Page 149: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

135 | Página

Anexo 3 Programa En Energía

#include <LiquidCrystal.h>

LiquidCrystal lcd(P2_0, P2_1, P2_2, P2_3, P2_4, P2_5);

//Entrada analogica de LM35 y variable de control

int Ana1 = A0;

int Temp = 0;

char Grados = '°';

//Ultrasonico

const int trigger=6;

const int echo=7;

float distance;

//humo

const int ledPin = GREEN_LED;

const int analogInPin = A6; // Analog input pin that the potentiometer is attached to

const int analogOutPin = 19; // Analog output pin that the LED is attached to

int sensorValue = 0; // value read from the pot

int outputValue = 0; // value output to the PWM (analog out)

//Estados que ocuparemos, estan en boleano para poner falso o verdadero

char valor=0;

boolean estado1, estado2, estado3, estado4, estado5;

void setup()

//Velocidad de transmicion

Serial.begin(9600);

// Configurar el número del LCD de columnas y filas:

lcd.begin(16, 2);

// Muestra un mensaje en la pantalla LCD.

lcd.print(" Bienvenido a ");

// Establecer el cursor a la columna 0, la línea 1

//(Nota: la línea 1 es la segunda fila, ya que la numeración empieza en 0):

lcd.setCursor(0, 1);

lcd.print(" Casa ");

pinMode (P1_0, OUTPUT); //LED ROJO como salida

pinMode (P1_6, OUTPUT); //LED VERDE como salida

Page 150: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

136 | Página

pinMode(P1_3,OUTPUT);//configuracion del pin 3 como salida para LED

pinMode(P1_7,OUTPUT);//configuracion del pin 7 como salida para LED

digitalWrite(P1_0, LOW);//Inicialmente se apagan los LEDs.

digitalWrite(P1_6, LOW);//Inicialmente se apagan los LEDs.

//Ultrasonico

pinMode(trigger,OUTPUT);

pinMode(echo,INPUT);

//Detector de gas

pinMode(ledPin, OUTPUT);

digitalWrite(ledPin, LOW);

estado1 = true; // Se inicializan como verdadero o encendido

estado2 = true;

estado3 = true;

estado4 = true;

estado5 = true;

void loop() //Bucle infinito

if (Serial.available())//Si hay una caracter en el buffer serial

//el programa entra aquí.

valor = Serial.read();// Se lee el valor numérico en el puerto serie.

if (valor == '1')//Si el valor es 1.

Serial.begin(9600);

digitalWrite(P1_0, estado1); //Se enciende el led rojo.

digitalWrite(P1_7, estado1); // para el modulo de los relevadores

Serial.print("1,LUCES\r\n");//Se envía el mensaje por el puerto serie,

estado1 = !estado1; //Aqui se cambia el valor del estado 1

// Configurar el número del LCD de columnas y filas:

lcd.begin(16, 2);

Page 151: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

137 | Página

// Muestra un mensaje en la pantalla LCD.

lcd.print("Luces ACTIVADAS");

// Configurar el número del LCD de columnas y filas:

lcd.setCursor(0, 1);

lcd.print("Timer ");

lcd.print(millis()/1000);

//un retorno de carro y salto de línea.

else if (valor == '2')

Serial.begin(9600);

digitalWrite(P1_6, estado2); //Se enciende el led verde.

Serial.print("2,CERRANDO..\r\n");

estado2 = !estado2; //Aqui se cambia el valor del estado

// Configurar el número del LCD de columnas y filas:

lcd.begin(16, 2);

// Muestra un mensaje en la pantalla LCD.

lcd.print("Cerrando....");

// Configurar el número del LCD de columnas y filas:

lcd.setCursor(0, 1);

lcd.print("Timer ");

// Imprimir el número de segundos desde el reinicio:

lcd.print(millis()/1000);

else if (valor == '3')

Serial.begin(9600);

estado3 = !estado3; //Aqui se cambia el valor del estado

Temp = analogRead(Ana1); //Leemos el valor de la entrada analogica

// Primero transformamos la lectura analógica de tensión a un valor de temperatura

Temp = (5.0 * Temp * 100.0)/1024.0;

Serial.print("3 ");

Serial.print(Temp);

// Serial.println(" C");

// Serial.print(Grados);

//Serial.println("C");

// Configurar el número del LCD de columnas y filas:

lcd.begin(16, 2);

Page 152: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

138 | Página

//Mostramos los grados en la pantalla LCD

lcd.print("Temperatura: ");

lcd.setCursor(0,1);

lcd.print(Temp);

//mayo 2014

lcd.print (Grados);

lcd.print(" C");

delay(1000); //Al ser temperatura no hace falta leerlo tan seguido

//esto enciende y apaga el ventlador

if (Temp > 37)//Temperatura MAYOR 37 1 menor 0

digitalWrite(P1_3, HIGH);

else

digitalWrite(P1_3,LOW);

else if (valor == '4')

Serial.begin(9600);

estado4 = !estado4;

//Inicializamos el sensor

digitalWrite(trigger,LOW);

delayMicroseconds(5);

// Comenzamos las mediciones

// Enviamos una señal activando la salida trigger durante 10 microsegundos

digitalWrite(trigger,HIGH);

delayMicroseconds(10);

digitalWrite(trigger,LOW);

// Adquirimos los datos y convertimos la medida a metros

distance=pulseIn(echo,HIGH); // Medimos el ancho del pulso

distance=distance*0.0001657;

// Enviamos los datos medidos a traves del puerto serie y al display LCD

Serial.print("4,");

Serial.print(distance);

Serial.println(" m");

lcd.begin(16, 2);

lcd.print("Objeto detectado a :");

lcd.setCursor(0,1);

Page 153: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

139 | Página

lcd.print(distance);

lcd.print("m");

delay(100);

else if (valor == '5')

Serial.begin(9600);

estado5 = !estado5;

// Apagamos el led de alarma

digitalWrite(ledPin, LOW);

//leer la analógica en el valor:

sensorValue = analogRead(analogInPin);

//asigna la gama de la salida analógica:

outputValue = map(sensorValue, 0, 1023, 0, 255);

//cambiar el valor analógico Salida:

analogWrite(analogOutPin, outputValue);

// muestra los resultados en la interfaz serial

Serial.print("5," );

Serial.println(sensorValue);

lcd.begin(16, 2);

//Mostramos los grados en la pantalla LCD

lcd.print("Pureza ");

lcd.setCursor(0,1);

lcd.print(sensorValue);

delay(1000);

if(sensorValue>800)

Serial.begin(9600);

Serial.print("HUMO DECETADO" );

lcd.begin(16, 2);

lcd.print("Cuidado! nivel:");

lcd.setCursor(0,1);

lcd.print(sensorValue);

lcd.print(" Alto de gas");

digitalWrite(ledPin, HIGH);

delay(1000);

Page 154: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

140 | Página

else// Si se envía un caracter distinto de 1-5, todo se apagan.

digitalWrite(P1_0, LOW); //Se apaga el led rojo.

digitalWrite(P1_6, LOW);//Se apaga el led verde.

Serial.print("Apagar todo \r\n");

// Configurar el número del LCD de columnas y filas:

lcd.begin(16, 2);

// Muestra un mensaje en la pantalla LCD.

lcd.print(" Apagando..");

Page 155: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

141 | Página

Anexo 4

“Especificaciones De

Los Sensores”

Page 156: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

142 | Página

Anexo 4 Especificaciones De Los Sensores

Page 157: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

143 | Página

Page 158: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

144 | Página

Page 159: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

145 | Página

Page 160: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

146 | Página

Anexo 5

“Módulo Bluetooth”

Page 161: INSTITUTO POLITÉCNICO NACIONAL · Con el objetivo de realizar un sistema que permita el monitoreo remoto y/o local, se pretende realizar una conexión simple entre un teléfono inteligente

Instituto Politécnico Nacional E S I M E

147 | Página

Anexo 5 Módulo Bluetooth