Diseño y Desarrollo de un Sistema Web de
Parámetros Meteorológicos, a Partir de Datos
Obtenidos de un Módem GSM
Geovanni Emmanuel Escobar Trinidad
Agradecimientos
A mi familia: Por brindarme el apoyo para poder alcanzar el título universitario.
A Gloria: Por apoyarme durante toda la carrera y por enseñarme a ser responsable.
Resumen
El presente trabajo describe la realización de un sistema para una estación automáti-ca basada en la tecnología de dispositivos GSM que miden la temperatura, humedad, presión atmosférica, dirección y velocidad del viento y precipitación pluvial. El sistema consta de 2 módulos: software de adquisición de datos y el sistema web, Software de adquisición de datos: Se encarga la decodicación, validación de los datos y almacenamiento de estos en el servidor para su posterior uso este módulo fue desarrollado en el lenguaje de programación C# versión de desarrollo express de la tecnología .NET de la compañía Microsoft.
Sistema Web: Este modulo esta diseñado y desarrollado para poder manipular y visualizar los datos obtenidos por el software de adquisición de datos el cual es desarrollado con tecnología de código abierto PHP para el desarrollo web y MySQL como manejador de base de datos de la compañía ORACLE.
Las características principales son:
La estación remota se comunica con la PC central vía SMS de la tecnología GSM.
Monitoreo constante y programable de los parámetros meteorológicos.
Reportar al administrador las anomalías tales como: carga baja en la batería, error en la trama de los mensajes, fallos en la conexión entre la estación remota y la PC central.
Abstract
This paper describes the implementation of a system for an automatic station ba-sed on GSM technology devices that measure temperature, humidity, atmospheric pressure, wind speed and direction and rainfall.
The system consists of two modules: data acquisition software and web systems, Data Acquisition Software: Responsible for the acquisition, decoding, data valida-tion and storage of these on the server for later use this module was developed in the programming language C # Express .NET technology from Microsoft.
Web System: This module is designed and developed to manipulate and display data from the data acquisition software which is developed with open source technology for web development PHP and MySQL as database manager from ORACLE. The main features are:
The remote station communicates with the host PC via SMS of GSM tech-nology.
Programmable constant monitoring and meteorological parameters.
Report to administrator anomalies such as low battery charge, the plot of error messages, failed connections between the remote station and the central PC.
Índice general
1. Introducción 1
1.1. Antecedentes . . . 1
1.2. Planteamiento del Problema . . . 1
1.3. Objetivos. . . 2
1.3.1. Objetivo General. . . 2
1.3.2. Objetivos Especícos . . . 2
1.4. Hipótesis . . . 2
1.5. Justicación . . . 2
1.6. Impactos . . . 3
1.6.1. Económico . . . 3
1.6.2. Social . . . 3
1.6.3. Técnico . . . 3
1.6.4. Ambiental . . . 3
1.7. Alcances . . . 3
1.8. Limitaciones . . . 3
2. Fundamento Teórico 5 2.1. Estado del Arte . . . 5
2.1.1. Diseño de una Estación Meteorológica Autónoma Gestionada Mediante Mensajes SMS . . . 5
2.1.2. Sistema para la Alerta Temprana de Sequías Meteorológicas en Venezuela . . . 5
2.1.4. Sistema de Monitoreo de la Calidad del Agua del Río Sabinal
con Dispositivos Móviles . . . 6
2.2. Marco Teórico Conceptual. . . 7
2.2.1. Comunicaciones Móviles . . . 7
2.2.2. Módems Telefónicos. . . 7
2.2.2.1. Tipos de Modulación . . . 8
2.2.2.2. Comandos AT . . . 9
2.2.2.2.1. Registros . . . 9
2.2.2.2.2. Perles de funcionamiento . . . 10
2.2.2.2.3. Pasos para establecer una comunicación. 11 2.2.3. Bluetooth . . . 13
2.2.3.1. RFCOMM . . . 14
2.2.4. SQL . . . 14
2.2.4.1. Características Generales del SQL . . . 14
2.2.4.2. Tipos de Datos . . . 15
2.2.4.3. Lenguaje de Denición de Datos (DDL) . . . 15
2.2.4.3.1. Create . . . 15
2.2.4.3.2. Alter. . . 16
2.2.4.3.3. Drop. . . 16
2.2.4.3.4. Truncate . . . 16
2.2.4.4. Lenguaje de Manipulación de Datos (DML) . . . . 16
2.2.4.4.1. Insert . . . 16
2.2.4.4.2. Update . . . 16
2.2.4.4.3. Delete . . . 17
2.2.4.5. Sistemas De Gestión De Base De Datos . . . 17
2.2.5. Sistema Gestión de Base de Datos (MySQL). . . 18
2.2.6. HTTP . . . 18
2.2.6.1. Servidor HTTP Apache . . . 18
2.2.7. .NET . . . 18
2.2.7.1. ADO.NET. . . 20
2.2.9. MySQL Conector para .NET . . . 21
2.2.10. HTML . . . 21
2.2.11. PHP . . . 22
2.2.12. JavaScript . . . 23
2.2.13. AJAX . . . 23
2.2.13.1. XML. . . 24
2.2.13.2. XMLHttpRequest . . . 24
2.2.13.3. Librería JavaScript Prototype . . . 24
2.2.13.4. JQuery . . . 24
2.2.14. Open Flash Chart . . . 25
2.2.15. mCore . NET SMS Library . . . 25
2.2.15.1. Enviar Mensajes de Texto . . . 26
2.2.15.2. Leer / Borrar los Mensajes Entrantes . . . 26
2.2.15.3. Evento mCore.SMS.NewMessageReceived . . . 27
2.2.15.4. Compatibilidad . . . 28
2.3. Estación Meteorológica GSM del Instituto Tecnológico de Tuxtla Gutiérrez . . . 28
3. Marco Metodológico 32 3.1. Investigación . . . 32
3.2. Proyecto . . . 33
4. Desarrollo 35 4.1. Diseño del Sistema . . . 35
4.1.1. Descripción de los Módulos . . . 35
4.1.1.1. Estación meteorológica GSM . . . 35
4.1.1.2. Software de Adquisición de Datos . . . 36
4.1.1.3. Página Web . . . 36
4.1.2. Diagramas UML . . . 36
4.1.2.1. Casos de Uso . . . 36
4.1.2.1.1. Caso de Uso Enviar Mensaje . . . 36
4.1.2.1.3. Caso de uso Administrar Software de
Ad-quisición de datos. . . 40
4.1.2.2. Diagrama de Estados . . . 40
4.1.2.3. Diagrama de Secuencia . . . 41
4.1.3. Base de Datos . . . 42
4.1.3.1. Diagrama Entidad Relación. . . 42
4.1.3.2. Diccionario de Datos . . . 42
5. Resultados 46 5.1. Software de Adquisición de Datos. . . 46
5.1.1. Módulo Conexión Celular y Servidor . . . 46
5.1.2. Módulo Administración de SMS . . . 46
5.1.3. Módulo Alarmas SMS . . . 46
5.1.4. Módulo Estado del Módem y Red . . . 47
5.2. Módulo Log de Errores . . . 47
5.2.1. Modulo Terminal . . . 48
5.3. Página Web . . . 48
5.3.1. Home . . . 48
5.3.2. Grácas . . . 48
5.3.3. Historial . . . 49
6. Conclusiones 55 6.1. Conclusiones Generales . . . 55
Índice de guras
2.2.1.Contexto de.NET Framework . . . 20
2.3.1.Algoritmo de la Estación . . . 29
2.3.2.Contenido del Mensaje de Texto Enviado por la Estación GSM . . . 30
2.3.3.Interfaz Electrónica Encargada del Censado y Envío de los SMS . . 31
4.0.1.Módulos del Sistema . . . 36
4.0.2.Diagrama a Bloque Fases de Desarrollo . . . 37
4.1.1.Caso de Uso Enviar Mensaje . . . 38
4.1.2.Caso de Uso Consultar Parámetros . . . 39
4.1.3.Caso de Uso Administrar Software de Adquisición de Datos . . . 41
4.1.4.Diagrama de Estado . . . 42
4.1.5.Diagrama de Secuencia . . . 44
4.1.6.Diagrama de la Base de Datos . . . 45
5.1.1.Módulo Conexión Celular y Servidor . . . 47
5.1.2.Módulo Administración de SMS . . . 48
5.1.3.Módulo Alarmas SMS . . . 49
5.1.4.Módulo Estado del Módem y Red . . . 50
5.2.1.Módulo Log de Errores . . . 51
5.3.1.Sección Home . . . 52
5.3.2.Sección Grácas . . . 53
Capítulo 1
Introducción
1.1. Antecedentes
Una estación meteorológica típica preparada para efectuar las observaciones de las condiciones atmosféricas utiliza los siguientes instrumentos: termómetros, para me-dir la temperatura del área, veleta para indicar la me-dirección del viento, anemómetro, para medir la velocidad del viento, higrómetro, para medir la humedad o cantidad de vapor de agua en el aire, pluviómetro, para la cantidad de precipitación. Todas estas mediciones se realizan de forma local, donde una persona se encarga de hacer las anotaciones en determinados periodos de tiempo.
En el Instituto Tecnológico de Tuxtla Gutiérrez se cuenta con una estación meteo-rológica la cual funcionaba con tecnología de Radio Frecuencia la cual es obsoleta por tal motivo nace la necesidad de renovarla usando tecnología GSM .1.
1.2. Planteamiento del Problema
La problemática a tratar es la de desarrollar un software que permita al encargado de administrar una estación meteorológica GSM agilizar y automatizar sus tareas, y de esta manera llevar un mejor control de los datos obtenidos del celular GSM. Además de permitir que la información pueda estar disponible en tiempo real a la sociedad y diferentes entidades gubernamentales.
1.3. Objetivos
1.3.1. Objetivo General
Diseñar y desarrollar un sistema de recolección de parámetros meteorológicos obte-nidos de un módem GSM, capaz de proporcionar información útil para la sociedad y diferentes entidades gubernamentales.
1.3.2. Objetivos Especícos
Almacenar los datos obtenidos automáticamente de un módem en una base de datos.
Visualizar los parámetros de datos mediante grácos a través de una web. Proporcionar reportes sobres los datos obtenidos.
Automatizar el manejo de alarmas. Proporcionar acceso fácil a los datos.
1.4. Hipótesis
El desarrollo y uso de un sistema de adquisición de datos obtenidos de un mó-dem GSM diseñado a la medida para la estación meteorológica GSM del Instituto Tecnológico de Tuxtla Gutiérrez optimizará la delidad de datos y tiempo de dispo-nibilidad.
1.5. Justicación
A menudo faltan sistemas como en este caso, que ayuden a dar un seguimiento adecuado de los recursos y riesgos ocasionados por los cambios climáticos, así como para la elaboración de alarmas en situaciones de peligro.
1.6. Impactos
1.6.1. Económico
Reducirá el personal que es encargado de recolectar manualmente las lectura de los sensores.
1.6.2. Social
Ayudar a la medición, deteción y seguimiento de los fenómenos climatológicos.
1.6.3. Técnico
Transmitir la información de estaciones meteorológicas empleando tecnología GSM haciendo estas casi desatendidas.
1.6.4. Ambiental
Conservación y uso racional de los recursos naturales además de disminución de basura con la reutilización de celulares.
1.7. Alcances
El software permite vaciar los datos recibidos en el SMS en una base de datos, para posteriormente poder visualizarlos e interpretarlos mediante gracas estadísticas, generara reportes en PDF de los datos recabados, y estos están disponibles en una web. Además de que cuenta con una GUI amigable.
La disponibilidad de la información se encuentra al alcance de todos.
Las aplicaciones del software son muchas al cambiar los sensores del fenómeno que se monitorea.
1.8. Limitaciones
Para el uso del software se requiere contar con una interfaz electrónica que obtenga los valores de los sensores y envíe en el formato convenido.
Capítulo 2
Fundamento Teórico
2.1. Estado del Arte
2.1.1. Diseño de una Estación Meteorológica Autónoma
Ges-tionada Mediante Mensajes SMS
En la Universidad Politécnica de Catalunya se presentó el trabajo Diseño de una es-tación meteorológica autónoma gestionada mediante mensajes SMS realizado por Jorge Luján de Francisco. Dicho proyecto consta de un desarrollo de hardware que engloba el diseño de los circuitos de captación, el acondicionamiento de los sensores, la comunicación con el sistema GSM, la unidad central de procesado y la alimen-tación. El software desarrollado para la estación meteorológica controla la gestión de los usuarios, los niveles de batería, los sensores y las comunicaciones. El objetivo nal es la gestión ecaz de los recursos del sistema a n de lograr un funcionamiento simple, autónomo y de un tamaño reducido para su libre ubicación[1].
2.1.2. Sistema para la Alerta Temprana de Sequías
Meteo-rológicas en Venezuela
confrontar sus impactos, se desarrolló y validó un modelo probabilístico condicional que advierte anticipadamente su ocurrencia en el país. Se usaron las series tempora-les pluviométricas de 632 estaciones administradas por entes públicos y privados[2].
2.1.3. Red Nacional de Estaciones Estatales
Agroclimatoló-gicas
El proyecto de Red Nacional De Estaciones Estatales Agroclimatológicas lo realizó Guillermo Medina García. El proyecto fue realizado con el propósito de tener un co-nocimiento de las condiciones del clima en relación con el desarrollo y crecimiento de los cultivos y su manejo, se han implementado las redes estatales de estacio-nes agrometeorológicas automatizadas, a través del INIFAP. Estas redes brindan la oportunidad de tomar decisiones, con base en los datos de los elementos clima-tológicos y ofrecer recomendaciones técnicas orientadas a disminuir el impacto de las condiciones adversas del tiempo sobre los cultivos. En la red de estaciones del INIFAP, la medición de las condiciones del tiempo atmosférico se realiza cada 15 minutos y los datos son transmitidos a la base central en el Laboratorio Nacional de Modelaje y Sensores Remotos, ubicado en el Campo Experimental Pabellón en el estado de Aguascalientes, siendo procesados y presentados en diversos formatos para su difusión a través de Internet[3].
2.1.4. Sistema de Monitoreo de la Calidad del Agua del Río
Sabinal con Dispositivos Móviles
2.2. Marco Teórico Conceptual
2.2.1. Comunicaciones Móviles
Los sistemas de comunicaciones móviles celulares son, en términos generales, aqué-llos capaces de proporcionar servicios de telecomunicación sobre zonas geográcas extensas y con capacidad para mantener la continuidad de las comunicaciones mien-tras el usuario se va desplazando. En los sistemas de comunicaciones móviles el principal medio de transmisión son las ondas electromagnéticas.
GSM 1(Global System for Mobile Telecommunications) nace en 1982 con el
pro-pósito de desarrollar especicaciones técnicas para una red europea de telecomuni-caciones móviles capaz de soportar los millones de futuros clientes del nuevo servicio.
Los servicios básicos en una red GSM son:
Servicios portadores. Los servicios portadores proporcionan la capacidad de transferencia entre terminales conectados a la red GSM local, así como con equipos conectados a otras redes. Servicios básicos portadores soportados por la red GSM son datos por conmutación de circuitos, a 300, 1.200, 2.400, 4.800 y 9.600 bit/s.
Teleservicios. Los teleservicios soportados por la red GSM son telefonía (voz), llamadas de emergencia, servicio de mensajes cortos, SMS 2[5].
2.2.2. Módems Telefónicos
Su uso más común y conocido es en transmisiones de datos por vía telefónica. Las computadoras procesan datos de forma digital; sin embargo, las líneas telefónicas de la red básica sólo transmiten señales analógicas.
Los métodos de modulación y otras características de los módems telefónicos están estandarizados por el UIT-T (el antiguo CCITT) en la serie de Recomendaciones "V". Estas Recomendaciones también determinan la velocidad de transmisión. Des-tacan:
V.21. Comunicación Full Duplex entre dos módems analógicos realizando una va-riación en la frecuencia de la portadora de un rango de 300 baudios, logrando una transferencia de hasta 300 bit/s (bits por segundo).
V.22. Comunicación Full Duplex entre dos módems analógicos utilizando una mo-dulación PSK de 600 baudios para lograr una transferencia de datos de hasta 600 ó 1,200 bit/s.
V.32. Transmisión a 9,600 bit/s. V.32bis. Transmisión a 14,400 bit/s.
V.34. Estándar de módem que permite hasta 28,8 kbit/s de transferencia de datos bidireccionales (full-duplex), utilizando modulación en PSK. V.34bis. Módem cons-truido bajo el estándar V34, pero permite una transferencia de datos bidireccionales de 33,6 kbit/s, utilizando la misma modulación en PSK. (Estándar aprobado en febrero de 1998)
V.90. Transmisión a 56,6 kbit/s de descarga y hasta 33,600 bit/s de subida. V.92. Mejora sobre V.90 con compresión de datos y llamada en espera. La velocidad de subida se incrementa, pero sigue sin igualar a la de descarga.
Existen, además, módems DSL (Digital Subscriber Line), que utilizan un espectro de frecuencias situado por encima de la banda vocal (300 - 3.400 Hz) en líneas telefónicas o por encima de los 80 kHz ocupados en las líneas RDSI, y permiten alcanzar velocidades mucho mayores que un módem telefónico convencional. Tam-bién poseen otras cualidades, como es la posibilidad de establecer una comunicación telefónica por voz al mismo tiempo que se envían y reciben datos[6].
2.2.2.1. Tipos de Modulación
Dependiendo de si el módem es digital o analógico se usa una modulación de la misma naturaleza. Para una modulación digital se tienen, por ejemplo, los siguientes tipos de modulación: ASK, (Amplitude Shift Keying, Modulación por desplazamien-to de amplitud): la amplitud de la portadora se modula a niveles correspondientes a los dígitos binarios de entrada 1 ó 0. FSK, (Frecuency Shift Keying, Modulación por desplazamiento de frecuencia): la frecuencia portadora se modula sumándole o restándole una frecuencia de desplazamiento que representa los dígitos binarios 1 ó 0.
portadora transmitida se desplaza cierto número de grados en respuesta a la con-guración de los datos. Los módems bifásicos por ejemplo, emplean desplazamientos de 180º para representar el dígito binario 0. Pero en el canal telefónico también existen perturbaciones que el módem debe enfrentar para poder transmitir la in-formación. Estos trastornos se pueden enumerar en: distorsiones, deformaciones y ecos. Ruidos aleatorios e impulsivos. Y por último las interferencias.
Para una modulación analógica se tienen, por ejemplo, los siguientes tipos de mo-dulación:
AM Amplitud Modulada: la amplitud de la portadora se varía por medio de la amplitud de la moduladora.
FM Frecuencia Modulada: la frecuencia de la portadora se varía por medio de la amplitud de la moduladora.
PM Phase Modulation. Modulación de fase: en este caso el parámetro que se varía de la portadora es la fase de la señal, matemáticamente es casi idéntica a la modulación en frecuencia. Igualmente que en AM y FM, es la amplitud de la moduladora lo que se emplea para afectar a la portadora[7].
2.2.2.2. Comandos AT
Los comandos AT, son un lenguaje que nos permite realizar comunicaciones con el módem. Existe una literatura amplia de los comandos AT, cada dispositivo (terminal módem) cuenta con sus comandos AT, al igual que existen comando particulares de los fabricantes de celulares.
Los módems en el modo comando que se usa para la conguración del módem o para marcar, puede comunicarse con el módem a través del conjunto de comandos AT. Después de ejecutar un comando, el módem regresa un código de resultado de conrmación[8].
Registro 0: número de llamadas que el módem espera antes de responder (autoans-wer). Si su valor es 0, el módem nunca responderá a las llamadas.
Registro 1: contabilizador de llamadas realizadas / recibidas.
Registro 2: código del carácter que se utiliza para activar la secuencia de escape. Suele ser un +.
Registro 3: código del carácter de n de línea. Suele ser un 13 (enter). Registro 4: código de carácter de avance de línea, (line feed).
Registro 5: código de carácter de borrado con retroceso (backspace). Registro 6: tiempo de espera antes de empezar a marcar (s).
Registro 7: tiempo de espera para recibir portadora (s).
Registro 8: tiempo asignado a la pausa del Hayes (la coma en s).
Registro 9: tiempo de respuesta a la detección de portadora, para activar la DCD (en décimas de segundo).
Registro 10: tiempo máximo de pérdida de portadora para cortar la línea. Aumentan-do su valor permite al remoto cortar temporalmente la conexión sin que el módem local inicie la secuencia de desconexión. Si es 255, se asume que siempre hay por-tadora. Este tiempo debe ser mayor que el del registro 9 (en décimas de segundo). Registro 12: determina el guard time; éste es el tiempo mínimo que precede y sigue a un código de escape (+++), sin que se hayan transmitido o recibido datos. Si es 0, no hay límite de tiempo (S12 x 20 ms).
Registro 18: contiene la duración de los tests. Registro 25: tiempo para que el módem considere que la señal de DTR ha cambiado.
Registro 26: tiempo de respuesta de la señal CTS ante RTS.
2.2.2.2.2. Perles de funcionamiento Existen 3 tipos de perl para funcio-namiento de los módems:
1. El de fábrica, (por defecto).
2. El activo.
3. El del usuario.
Estos perles están guardados en su NVRAM y el perl de fábrica está guardado en ROM.
1. AT&Y0, (al encender se carga el perl = 0)
2. AT&Y1, (al encender se carga el perl = 1)
Estas órdenes se envían antes de apagar el módem para que los cargue en su próximo encendido.
Cuando se escriben las órdenes "AT", dependiendo del tamaño del buer del módem, se pueden ir concatenando sin necesidad de escribir para cada uno de ellos el prejo "AT". De esta forma, por ejemplo cuando en un programa se pide una secuencia de inicialización del módem, se puede incluir conjuntamente en una sola línea todas las órdenes necesarias para congurar el módem.
A continuación se describen los procesos que se llevan a cabo para establecer una comunicación a través del módem:
2.2.2.2.3. Pasos para establecer una comunicación. 1) Detección del tono de línea. El módem dispone de un detector del tono de línea. Este se activa si dicho tono permanece por más de un segundo. De no ser así, sea por que ha pasado un segundo sin detectar nada o no se ha mantenido activado ese tiempo el tono, envía a la computadora el mensaje "NO DIALTONE".
2) Marcación del número. Si no se indica el modo de llamada, primero se intenta llamar con tonos y si el detector de tonos sigue activo, se pasa a llamar con pulsos. En el período entre cada dígito del número telefónico, el IDP (Interdigit pulse), se continua atendiendo al detector de tono. Si en algún IDP el detector se activa, la llamada se termina y se retorna un mensaje de BUSY. Una vez terminada la marcación, se vuelve a atender al detector de tono para comprobar si hay conexión. En este caso pueden suceder varias cosas:
Rings de espera. Se detectan y contabilizan los rings que se reciban, y se comparan con el registro S1 del módem. Si se excede del valor allí contenido se retorna al mensaje "NO ANSWER".
Si hay respuesta se activa un detector de voz/señal, la detección de la res-puesta del otro módem se realiza a través del ltro de banda alta (al menos debe estar activo 2 segundos).
3) Establecer el enlace. Implica una secuencia de procesos que dependen si se está llamando o si se recibe la llamada.
Si se está llamando será:
Fijar la recepción de datos a 1.
Seleccionar el modo de baja velocidad.
Activar 0.6 segundos el tono de llamada y esperar señal de línea.
Desactivar señal de tono
Seleccionar modo de alta velocidad.
Esperar a recibir unos, después transmitir unos y activar la transmisión
Analizar los datos recibidos para comprobar que hay conexión. Si ésta no se consigue en el tiempo límite jado en el registro S7, se da el mensaje "NO CARRIER"; en caso contrario, se dejan de enviar unos, se activa la señal de conexión, se desbloquea la recepción de datos y se da el mensaje "CARRIER".
Si se está recibiendo será:
Selección del modo respuesta.
Desactivar el scrambler3.
Seleccionar el modo de baja velocidad y activar el tono de respuesta (p. ej. 2,400 Hz durante 3.3 s).
Desactivar el transmisor.
Esperar portadora, si no se recibe activar el transmisor, el modo de alta velo-cidad y el tono a 1,800 Hz.
Esperar el tiempo indicado en S7, si no hay conexión envía el mensaje "NO CARRIER", si la hay, indica "CONNECT", se activa el transmisor, el detector de portadora y la señal de conexión.
En resumen los pasos para establecimiento de una conexión son:
3Scrambler: En telecomunicaciones, es un dispositivo que transpone o invierte señal, ya que
La terminal levanta la línea DTR.
Se envía desde la terminal la orden ATDT 5551234 ("AT" -> atención, D -> marcar, T -> por tonos, 5551234 -> número a llamar.)
El módem levanta la línea y marca el número.
El módem realiza el hand shaking con el módem remoto. El programa de comunicación espera el código de resultado.
Código de resultado "CONNECT"[8].
2.2.3. Bluetooth
Es el término general usado para describir la tecnología originalmente desarrollada por Bluetooth SIG4, este dene un enlace de comunicación inalámbrica, que opera
en la sin licencia industrial, cientíca y médica (ISM5) de 2,4 GHz con un salto de
frecuencia del transceptor. El protocolo de enlace se basa en intervalos de tiempo [9].
Las características principales de la tecnología Bluetooth son robustez, bajo consu-mo y bajo costo. La especicación Bluetooth dene una estructura uniforme para una amplia gama de dispositivos para conectarse y comunicarse entre sí.
Cuando dos dispositivos Bluetooth se conectan entre sí, esto se denomina empare-jamiento. La estructura y la aceptación mundial de la tecnología Bluetooth permite que cualquier dispositivo se pueda conectar a otros dispositivos Bluetooth situados en las proximidades de uno al otro.
Las conexiones entre dispositivos con Bluetooth activado electrónicos permiten es-tos dispositivos para comunicarse de forma inalámbrica a través de corto alcance, las redes ad hoc, conocidas como piconets. Piconets se establecen de forma diná-mica y automática cuando los dispositivos habilitados para Bluetooth entrar y salir signicado de radio de proximidad que se puede conectar fácilmente en cualquier momento y dondequiera que sea conveniente para usted.
Cada dispositivo en una piconet también puede comunicarse simultáneamente con hasta siete otros dispositivos dentro de esa piconet y cada dispositivo también puede pertenecer a varias piconets simultáneamente. Esto signica que las formas en que se puede conectar los dispositivos Bluetooth son casi ilimitadas.
4Bluetooth SIG: Bluetooth Special Interest Group
5ISM (Industrial, Scientic and Medical) son bandas reservadas internacionalmente para uso
Una fuerza fundamental de la tecnología Bluetooth es la capacidad de manejar si-multáneamente transmisiones de datos y voz. Que proporciona a los usuarios una variedad de soluciones innovadoras, tales como auriculares manos libres para llama-das de voz, impresión y fax y sincronización para PC y teléfonos móviles, sólo para nombrar unos pocos.
El rango de la tecnología Bluetooth es de aplicación especíca. La especicación principal impone una distancia mínima de 10 metros o 30 pies, pero no hay nin-gún límite establecido y los fabricantes pueden sintonizar sus implementaciones para proporcionar el rango necesario para apoyar a los casos de uso de sus soluciones[10].
2.2.3.1. RFCOMM
RFCOMM es un protocolo de transporte sencillo, con disposiciones adicionales para emular los 9 circuitos de RS-2326(EIATIA-232-E7) puertos serie8.
El protocolo RFCOMM soporta hasta 60 conexiones simultáneas entre dos disposi-tivos Bluetooth. El número de conexiones que se pueden utilizar simultáneamente en un dispositivo Bluetooth es especíco de la implementación[11].
2.2.4. SQL
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especicar diversos tipos de operaciones en ellas. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el n de recuperar de forma sencilla información de interés de bases de datos, así como hacer cambios en ella.
2.2.4.1. Características Generales del SQL
El SQL es un lenguaje de acceso a bases de datos que explota la exibilidad y potencia de los sistemas relacionales y permite así gran variedad de operaciones. Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias
6RS-232 RS232 (Recommended Standard 232, también conocido como Electronic Industries
Alliance RS-232C) es una interfaz que designa una norma para el intercambio de una serie de datos binarios entre un DTE (Equipo terminal de datos) y un DCE (Equipo de Comunicación de datos)
7EIATIA-232-E Estándar de comunicación del puerto serie
8Puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales,
a su fuerte base teórica y su orientación al manejo de conjuntos de registros y no a registros individuales permite una alta productividad en codicación y la orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros. SQL también tiene las siguientes características: Lenguaje de denición de datos. El LDD
9de SQL proporciona comandos para la denición de esquemas de relación, borrado
de relaciones y modicaciones de los esquemas de relación Lenguaje interactivo de manipulación de datos. El LMD 10de SQL incluye lenguajes de consultas basado
tanto en álgebra relacional como en calculo relacional de tuplas. Integridad. El LDD de SQL incluye comandos para especicar las restricciones de integridad que deben cumplir los datos almacenados en la base de datos. Denición de Vistas. El LDD incluye comandos para denir las vistas Control de transacciones. SQL tiene comandos para especicar el comienzo y el nal de una transacción. SQL Incorporado y Dinámico. Esto quiere decir que se pueden incorporar instrucciones de SQL en lenguajes de programación como c++, c, java, Cobol, Pascal y Fortran Autorización. El LDD incluye comandos para especicar los derechos de acceso a las relaciones y a las vistas.
2.2.4.2. Tipos de Datos
Los tipos datos básicos de SQL son: Date: una fecha de calendario que contiene el año (de cuatro cifras), el mes y el día. Time: La hora de el día en horas minutos segundos ( el valor predeterminado es 0). Timestamp: la combinación de Date y Time.
2.2.4.3. Lenguaje de Denición de Datos (DDL)
El lenguaje de denición de datos (en inglés Data Denition Language, o DDL), es el que se encarga de la modicación de la estructura de los objetos de la base de datos. Incluye órdenes para modicar, borrar o denir las tablas en las que se almacenan los datos de la base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.
2.2.4.3.1. Create Este comando crea un objeto dentro del gestor de base de datos. Puede ser una base de datos, tabla, índice, procedimiento almacenado o vista.
2.2.4.3.2. Alter Este comando permite modicar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modicar el tipo de un campo, agregar/quitar índices a una tabla, modicar un trigger11, etc.
2.2.4.3.3. Drop Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
2.2.4.3.4. Truncate Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
2.2.4.4. Lenguaje de Manipulación de Datos (DML)
Denición Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. El lenguaje de mani-pulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional.
2.2.4.4.1. Insert Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
2.2.4.4.2. Update Una sentencia UPDATE de SQL es utilizada para modicar los valores de un conjunto de registros existentes en una tabla.
11Un trigger (o disparador) en una Base de datos, es un procedimiento que se ejecuta cuando
2.2.4.4.3. Delete Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla. Disparadores Los disparadores, también conocidos como desencadenantes (triggers en inglés) son denidos sobre la tabla en la que opera la sentencia INSERT, los desencadenantes son evaluados en el contexto de la opera-ción. Desencadenantes BEFORE INSERT permiten la modicación de los valores que se insertará en la tabla. Desencadenantes AFTER INSERT no puede modicar los datos de ahora en adelante, pero se puede utilizar para iniciar acciones en otras tablas, por ejemplo para aplicar mecanismos de auditoría.
2.2.4.5. Sistemas De Gestión De Base De Datos
Los sistemas de gestión de base de datos con soporte SQL más utilizados son, por orden alfabético:
Db2
Firebird
HSQL
Informix
Interbase
MariaDB
Microsoft SQL Server
MySQL
Oracle
PostgreSQL
PervasiveSQL
SQLite
2.2.5. Sistema Gestión de Base de Datos (MySQL)
MySQL es un sistema de gestión de bases de datos relacionales, multihilo y multi-usuario con más de seis millones de instalaciones, desde enero de 2008 una subsi-diaria de Sun Microsystems y ésta a su vez de Oracle Corporation, desde abril de 2009 que desarrolla MySQL como software libre en un esquema de licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos priva-tivos deben comprar a la empresa una licencia especíca que les permita este uso. Está desarrollado en su mayor parte en ANSI C[12] .
2.2.6. HTTP
12HTTP es el protocolo detrás de World Wide Web. Dentro de cada transacción,
HTTP es invocado. HTTP esta detrás de cada petición de un documento o gráca, de cada click en un enlace, y en cada envío de formulario. La web se trata de distribuir información sobre el Internet, y HTTP es el protocolo usado para hacer esto.
HTTP es útil por que provee una estandarizada manera de como las computadoras se comunican unas con otras. Http especica como los clientes piden los datos y como los servidores responden a esas peticiones[13].
2.2.6.1. Servidor HTTP Apache
El proyecto Apache HTTP Server es un servidor HTTP de código abierto para sistemas operativos modernos, incluyendo UNIX y Windows NT. El objetivo de este proyecto es proporcionar un servidor seguro, eciente y extensible que proporcione servicios HTTP en sincronización con los estándares HTTP actuales.
Http Apache es el servidor web más popular en Internet desde abril de 1996[14].
2.2.7. .NET
.NET Framework es un componente integral de Windows que admite la compilación y la ejecución de la siguiente generación de aplicaciones y servicios Web XML. El
diseño de .NET Framework está enfocado a cumplir los objetivos siguientes: Proporcionar un entorno coherente de programación orientada a objetos, en el que el código de los objetos se pueda almacenar y ejecutar de forma local, ejecutar de forma local pero distribuida en Internet o ejecutar de forma remota.
Proporcionar un entorno de ejecución de código que reduzca lo máximo posible la implementación de software y los conictos de versiones.
Ofrecer un entorno de ejecución de código que promueva la ejecución segura del mismo, incluso del creado por terceras personas desconocidas o que no son de plena conanza.
Proporcionar un entorno de ejecución de código que elimine los problemas de ren-dimiento de los entornos en los que se utilizan scripts o intérpretes de comandos. Ofrecer al programador una experiencia coherente entre tipos de aplicaciones muy diferentes, como las basadas en Windows o en el Web. Basar toda la comunicación en estándares del sector para asegurar que el código de .NET Framework se puede integrar con otros tipos de código.
.NET Framework contiene dos componentes principales: Common Language Run-time y la biblioteca de clases de .NET Framework. Common Language RunRun-time es el fundamento de .NET Framework. El motor en tiempo de ejecución se pue-de consipue-derar como un agente que administra el código en tiempo pue-de ejecución y proporciona servicios centrales, como la administración de memoria, la administra-ción de subprocesos y la comunicaadministra-ción remota, al tiempo que aplica una seguridad estricta a los tipos y otras formas de especicación del código que promueven su se-guridad y solidez. De hecho, el concepto de administración de código es un principio básico del motor en tiempo de ejecución. El código destinado al motor en tiempo de ejecución se denomina código administrado, a diferencia del resto de código, que se conoce como código no administrado. La biblioteca de clases, el otro componente principal de .NET Framework, es una completa colección orientada a objetos de tipos reutilizables que se pueden emplear para desarrollar aplicaciones que abarcan desde las tradicionales herramientas de interfaz gráca de usuario (GUI) o de línea de comandos hasta las aplicaciones basadas en las innovaciones más recientes pro-porcionadas por ASP.NET, como los formularios Web Forms y los servicios Web XML.
de una arquitectura mayor[15].
Figura 2.2.1: Contexto de.NET Framework
2.2.7.1. ADO.NET
empresariales de nivel medio que utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet[16].
2.2.8. Lenguaje C#
C# es un lenguaje de programación que se ha diseñado para compilar diversas aplicaciones que se ejecutan en .NET Framework. C# es simple, ecaz, con segu-ridad de tipos y orientado a objetos. Las numerosas innovaciones de C# permiten desarrollar aplicaciones rápidamente y mantener la expresividad y elegancia de los lenguajes de estilo de C. Visual C# es una implementación del lenguaje de C# de Microsoft. Visual Studio ofrece compatibilidad con Visual C# con un completo editor de código, un compilador, plantillas de proyecto, diseñadores, asistentes para código, un depurador ecaz y de fácil uso y otras herramientas. La biblioteca de clases de .NET Framework ofrece acceso a numerosos servicios de sistema operativo y a otras clases útiles y adecuadamente diseñadas que aceleran el ciclo de desarrollo de manera signicativa[17].
2.2.9. MySQL Conector para .NET
MySQL ofrece drivers basados en estándares para JDBC13, ODBC14y. Net permite
a los desarrolladores crear aplicaciones de bases de datos en el idioma de su elección. Además, una biblioteca C nativa permite a los desarrolladores incorporar MySQL directamente en sus aplicaciones[18].
2.2.10. HTML
Para publicar información para su distribución mundial, se necesita un lenguaje universalmente entendido, una especie de de lengua materna que todas las compu-tadoras potencialmente puedan entender. El lenguaje utilizado por la publicación World Wide Web es HTML15(de HyperText Markup Language).
13JDBC Java Database Connectivity, más conocida por sus siglas JDBC es una API que permite
la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java, inde-pendientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice
14ODBC Open DataBase Connectivity (ODBC) es un estándar de acceso a las bases de datos
desarrollado por SQL Access Group en 1992. El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos.
HTML ofrece a los autores los medios para:
Publicar documentos en línea con encabezados, textos, tablas, listas, fotos, etc Recuperar la información en línea a través de enlaces de hipertexto, con el clic de un botón. Diseño de formularios para realizar transacciones con servicios remotos, para su uso en la búsqueda de información, hacer reservas, pedir productos, etc Incluir hojas de cálculo, videoclips, clips de sonido y otras aplicaciones directamente en sus documentos[19].
2.2.11. PHP
PHP (acrónimo de PHP: Hypertext Preprocessor) es un lenguaje de código abierto muy popular especialmente adecuado para desarrollo web y que puede ser incrustado en HTML.
Una respuesta corta y concisa, pero, ¾qué signica realmente? Un ejemplo nos aclarará las cosas:
<!DOCTYPE HTML PUBLIC "−//W3C//DTD HTML 4.01 T r a n s i t i o n a l //EN"
" http : / /www. w3 . org /TR/ html4 / l o o s e . dtd"> <html>
<head>
< t i t l e >Example</ t i t l e > </head>
<body>
<?php echo "Hola , ½ s o y un s c r i p t PHP!";? > </body>
</html>
En lugar de usar muchos comandos para mostrar HTML (como en C o Perl), pá-ginas PHP contienen HTML con código incluido en el mismo que hace "algo" (en este caso, mostrar "Hola ½soy un script PHP!). El código PHP está entre medio de etiquetas de comienzo y nal especiales<?php y ?> que nos permitirán entrar y salir del "modo PHP".
para que procese todos los archivos HTML con PHP y entonces no hay manera que los usuarios de un sitio web puedan saber el código que se ejecutó[20].
2.2.12. JavaScript
JavaScript es un lenguaje de programación interpretado, dialecto del estándar EC-MAScript888. Se dene como orientado a objetos,3 basado en prototipos, impera-tivo, débilmente tipado y dinámico.
16fue originalmente diseñado para ser un lenguaje de scripting web,
proporcionan-do un mecanismo para animar Web páginas en los navegaproporcionan-dores y realizar cálculos servidor como parte de una web basada en arquitectura cliente-servidor. ECMAS-cript puede proporcionar capacidades básicas de secuencias de comandos para una variedad de entornos[21].
2.2.13. AJAX
AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications).
Para conseguir enviar información de a una base de datos o a un archivo en el servidor con JavaScript tradicional, necesitas hacer un un Formulario HTML. Un usuarios tendrá que hacer click en el botón para enviar y conseguir información y esperar que el servidor le responda. Entonces la nueva página se cargará con los resultados. Por que el servidor retornará una nueva página cada vez que el usuario envíe información. Las aplicaciones web tradicionales pueden correr lentamente y tienden a ser menos amigables con el usuario.
Con AJAX, JavaScript se comunica directamente con el servidor a través de el objeto JavaScript XMLHttpRequest. Con el JavaScript XMLHttpRequest puede hacer peticiones y conseguir la respuesta del servidor web sin recargar la página el usuario permanece en la misma página y el no notará que el script de petición ha enviado y recibido por el fondo[22].
2.2.13.1. XML
XML17 Es un estándar respaldo por la W3C dene una sintaxis genérica usada
para marcar los datos con simples y legibles etiquetas. Proporciona un formato estándar para los documentos informáticos que es lo sucientemente exible para ser personalizado para campos tan diversos como sitios web, intercambio electrónico de datos, grácos vectoriales, serialización de objetos, llamadas a procedimientos remotos, sistemas de correo de voz, etc.[23].
2.2.13.2. XMLHttpRequest
Al usar el objeto XMLHttpRequest, un programador web puede actualizar una pá-gina con datos de servidor después de que la pápá-gina sea cargada.
AJAX se hizo popular en 2005 por Google (Sugerencias de Google)
Sugerencias de Google usan el objeto XMLHttpRequest para crear una interfaz web muy dinámica. Cuando tu inicias tipeando in la caja de búsqueda de Google, JavaScript envía las letras a el servidor y el servidor retorna una lista de sugerencias El objeto XMLHttpRequest es soportado por la mayoría de los navegadores(Internet Explorer, Firefox, Chrome, Opera y Safari)[22].
2.2.13.3. Librería JavaScript Prototype
Prototype.js elimina la complejidad de la programación web del lado del cliente. Construido para resolver problemas del mundo real, agrega extensiones útiles para el entorno de scripts de navegador y proporciona APIs elegante en torno a las interfaces torpes de Ajax y el Modelo de objetos de documento[24].
2.2.13.4. JQuery
jQuery es una poderosa y compleja biblioteca que fue inicialmente liberada en agosto del 2006, aunque la idea original surgió mucho antes en Agosto del 2005. El fundador de jQuery John Resig publicó en una entrada titulada "Selectores" en JavaScript en la cual proponía interactuar con elementos JavaScript usando Selectores CSS. Jquery fue ocialmente anunciado en Bar Camp Nueva York en Enero del 2006 y rápidamente se torno en una rápida tormenta en Internet. Hoy en día jQuery es
usada por los principales sitios de Internet y usada por el 50 % de los sitios de Internet según www.alexa.com18[25].
2.2.14. Open Flash Chart
Open Flash Chart es una fuente abierta altamente personalizable (LGPL) herra-mienta de grácos ash.
Fue creado originalmente por John Glazebrook.
La Versión 2 era su segunda versión de la herramienta que mejora a v1 anterior, parches adicionales y cambios se añadieron David Zoller y otros varios.
¾Qué se puede hacer OFC2? Algunas de las características que tiene son:
Puede dibujar trazos / grácos. de Línea, Área, Bar, Barras apiladas, pastel, grácos de radar y Vela.
Cargar con animaciones.
Tooltips, estilos y ejes personalizables.
Guardar como imagen la gráca realizada
Permite agregar formas y etiquetas a las grácas[26].
2.2.15. mCore . NET SMS Library
mCore . NET SMS Library es el resultado de combinar el conocimiento de SMS con el poder de .NET. El nuevo mCore. NET SMS le permite integrar de forma rápida SMS móvil enviando y recibiendo con su .NET. Además de enviar y recibir SMS normal, mCore . NET puede enviar SMS Push WAP, vCard y vCalendar mensajes también, lo que lo convierte en el elemento ideal para las aplicaciones de mensajería empresarial. Se puede utilizar con cualquier ETSI 07,05 compatible con módem GSM o terminal telefónico conectado al puerto serie del PC mediante un cable de datos o un dispositivo de infrarrojos, etc. mCore puede ser usado para el desarrollo de aplicaciones. NET que requieren enviar / recibir mensajes SMS en Inglés, así como aplicaciones que requieren para enviar SMS en los idiomas locales (por ejemplo, árabe, chino, ruso, tailandés, griego, hebreo, hindi, etc.).
18El sitio web alexa.com que provee información acerca de la cantidad de visitas que recibe un
CARACTERÍSTICAS PRINCIPALES:
Enviar mensajes de texto.
Leer / Borrar los mensajes entrantes.
Enviar WAP Push.
Enviar vCard.
Enviar vCalendar.
Cola de mensajes.
Enviar SMS inteligente.
Enviar / recibir USSD.
Enviar SMS Imagen.
Características generales.
2.2.15.1. Enviar Mensajes de Texto
A continuación se describe el método utilizado para enviar mensajes SMS mCore.SMS.SendSMS
Descripción: El método SendSMS envía un mensaje de texto a un dispositivo móvil. Espacio de nombres: mCore
Ensamblado: mCoreLib (en mCoreLib.dll) Sobrecarga de los métodos:
SendSMS (DestinationNumber As String, TextMessage As String): Envía el mensaje (TextMessage) a el número especicado en (DestinationNumber)
SendSMS (DestinationNumber As String, TextMessage As String AlertMessage As Boo-lean): Envía el mensaje (TextMessage) a el número especicado en (DestinationNumber) con al especicación si es de alerta o no.
2.2.15.2. Leer / Borrar los Mensajes Entrantes
A continuación se describe el método utilizado para leer los mensajes entrantes
Descripción:El método Inbox.Refresh lee los mensajes de la memoria de mensajes tal como se dene en la propiedad mCore.SMS.MessageMemory. Devuelve un valor true si no hay errores en la lectura de mensajes.
Espacio de nombres: mCore
Ensamblado: mCoreLib (en mCoreLib.dll) .
Sobrecarga de métodos:
Refresh (): Lee todos los mensajes en la memoria de mensajes se dene por la propiedad mCore.SMS.MessageMemory.
Refresh (ReadMessageType As mCore.MessageType) Lee sólo mensajes no leídos, los mensajes leídos o los dos tipos denidos por el parámetro ReadMessageType.
Refresh (ReadMessageType As mCore.MessageType, CleanUpMemory As Boolean) Lee sólo mensajes no leídos, los mensajes leídos o ambos tipos denidos por el parámetro ReadMessageType, y se limpia la memoria de mensajes si CleanUpMemory establece como verdadero (es decir, elimina todos los mensajes inteligentes como tono de llamada, wap push etc en la memoria de mensajes).
2.2.15.3. Evento mCore.SMS.NewMessageReceived
A continuación se describe el evento para leer los nuevos mensajes recibidos
Descripción:El evento NewMessageReceived se provoca cada vez un nuevo mensaje de texto que se recibe, si la propiedad NewMessageIndication se establece como verdadera. El evento NewMessageReceived se eleva en un subproceso secundario cuando un SMS entrante.
Espacio de nombres: mCore
Ensamblado: mCoreLib (en mCoreLib.dll) .
Observaciones:
Si la propiedad AutoDeleteNewMessage se establece como True entonces los nuevos mensajes se borran automáticamente después de levantar el Evento NewMessageReceived.
función del valor establecido para la propiedad NewMessageConcatenate.
Todos los argumentos relacionados con el evento NewMessageReceived están disponibles en las propiedades del objeto Core.SMS.NewMessageReceivedEventArgs clase.
2.2.15.4. Compatibilidad
Esta librería cuenta con una compatibilidad con los comandos AT con los siguientes módems de las siguientes compañías.
Enfora: SA-EL, SA-G, SA-GL
Falcom: Twist, Swift, Samba 55, Samba 75
iTegno: WM1080A, WM1080A1I, WM1080A1E, 3000, 3232E, 3232I, 3898
Multitech: G-F1, G-F2, G-F4, G-UF1, MTCBA-G-UF2, MTCBA-G-UF4
Nokia: N12, N30, N32, 6100, 6210, 6220, 6310, 6310i, 6610, 6820(Bluetooth), 8250, 8910
Siemens: A65, AC75, AC45, C35, C45, ES75, M35, M45, MC35, MC35i, MC45, MC55, MC65, MC75, S35, TC35, TC35i, TC45, TC65
SIMCOM: SIM100S, SIM100T
Sony Ericsson: T226, T230, T238, T290, T310, T610, T630, T637, T68, T68i, K310, K320, K500, K510, K600, K700, K750i, K800i, W810, W900, S700, S710, V800, W300, W550, W600, W700, W800i, W810, W900, Z500, Z600, Z1010, GC75, GC79, GC83, GC85, GC89
Teltonika: T-ModemUSB, T-ModemCOM
Wavecom: Fastrack M1206B, Fastrack M1306B, Integra, WMOi3[27]
2.3. Estación Meteorológica GSM del Instituto
Tecnológico de Tuxtla Gutiérrez
(teléfonos celulares) y una computadora central, el objetivo de esto es monitorear los parámetros meteorológicos temperatura, humedad, dirección y velocidad del viento, precipitación pluvial y presión atmosférica. Este proceso se lleva gracias a la implementación de algoritmos programados en el PIC 19 16F877A con C CCS. Al
Algoritmo es descrito en la gura 2.3.1.
Figura 2.3.1: Algoritmo de la Estación
La estación central necesita de los datos obtenidos de la estación remota, estos datos (temperatura, humedad, dirección y velocidad del viento, presión del aire y pluviómetro) son enviados por la estación remota a través de un mensaje SMS, la estructura del mensaje que se envía es la que se muestra en siguiente Figura 2.3.2.
Las variables utilizadas para identicar los parámetros meteorológicos, tienen un tamaño de 2 bytes y el valor enviado es de acuerdo a lo que se lee de cada uno de
los sensores (mili volts y pulsos por segundo), la interpretación de estos valores lo realiza la estación central[28].
Capítulo 3
Marco Metodológico
3.1. Investigación
En esta sección se presenta la descripción de los puntos principales de la investiga-ción que se usan para la realizainvestiga-ción de este trabajo.
Análisis del problema. Se analiza toda la dimensión del problema. Para llevar a cabo esta tarea se lleva a cabo una investigación en artículos publicados sobre la forma en que la que problemas similares fueron abordados y los resultados que ob-tuvieron, en este caso en particular, no solo tomaremos las ideas de y maneras en que este proyecto fue abordado sino que le agregaremos mejoras al sistema que se realizará.
Propuesta de la solución. Después de llevar a cabo el análisis de toda la infor-mación recopilada en la investigación, se hace la propuesta de solución de acuerdo a la necesidad que se ha encontrado y que se busca atacar para resolverla de la mejor manera posible, siempre teniendo en cuenta los alcances y limitaciones que se encuentran tanto en disponibilidad de recursos y tecnología.
la nalidad de establecer parámetros de operación y cumplir con cada uno de los objetivos planteados para llegar a la solución propuesta. De esta manera se prevee que el trabajo pueda tener éxito y no solamente quedar en un intento.
División del problema en las fases adecuadas. Esta parte es importante, y se determina de acuerdo a la dimensión de la solución que se esta proponiendo.
Construcción del software. La manera mas adecuada de comprobar si la solución funciona o no, es construyendo un prototipo detectar errores y corregirlos para si ir construyendo la solución de manera más efectiva.
Elaboración de pruebas. Las pruebas se hacen sobre el software teniendo un plan de pruebas y su objetivo es identicar las fallas, los errores, lo que hay que agregar o quitar, lo que hay que mejorar, incluso volver a rediseñar sus componentes y un su caso el software completo.
Presentación de resultados. Después de las pruebas al prototipo, después de haber corregido los errores que indudablemente surgieron, se presentan los resultados obtenidos.
3.2. Proyecto
El proyecto sobre el cuál trata este trabajo es el siguiente:
Se requiere un sistema que sea capaz de extraer los datos de que son enviados de una estación meteorológica GSM a través de un SMS y que estos mensajes se puedan almacenar, ordenar y gracar en un sistema que este disponible en Internet. Dado el problema y analizados los requerimientos de este se propone la siguiente solución.
Capítulo 4
Desarrollo
El desarrollo del proyecto consta de 2 fases de acuerdo al diagrama general presen-tado en la gura 4.0.1 En el diagrama se aprecia el sistema de monitoreo divido en dos módulos, uno llamado software de adquisición de datos y el otro sitio web, se hace la aclaración de que el software de adquisición de datos puede funcionar con n número de estaciones GSM(siempre y cuando cumplan con la especicación de la trama del SMS denida anteriormente).
A partir del análisis y partiendo del diagrama general, es establece la metodología a seguir para lograr la realización de estos módulos. En la gura 4.0.2 se muestra el diagrama a bloques de la metodología seguir donde se divide el desarrollo en tres fases:
1. Adquisición de datos
2. Tratamiento de datos
3. Presentación
4.1. Diseño del Sistema
4.1.1. Descripción de los Módulos
4.1.1.1. Estación meteorológica GSM
Figura 4.0.1: Módulos del Sistema
4.1.1.2. Software de Adquisición de Datos
Es el software donde se hace la lógica del negocio, en términos computacionales, esto signica que aquí se lleva a cabo el tratamiento de los datos, para su paso a la capa de presentación encargada de proporcionar los datos al usuario en forma de gracas.
4.1.1.3. Página Web
Es la capa encargada de mostrar los datos en los sistemas se le llama la capa de presentación o vista, en este módulo el usuario podrá consultar el último parámetro recibido así como también generar reportes y grácas de los datos recibidos.
4.1.2. Diagramas UML
4.1.2.1. Casos de Uso
Figura 4.0.2: Diagrama a Bloque Fases de Desarrollo
4.1.2.1.2. ECU1 del Caso de Uso Enviar Mensaje. Actores
Celular
Pre condicionales
Debe existir una estación meteorológica GSM transmitiendo SMS en el si-guiente formato: i000 te 0000 hu 0000 vv 0000 dv 0000 -pa 0000 pl 0000
Debe haber un celular compatible con el el software
El celular debe estar cargado.
Flujo principal
1. El usuario inicia la conexión con el celular FA1 RE1 2. El celular envía la señal de emparejamiento
3. El sistema da el mensaje de conexión exitosa 4. El sistema revisa el mensaje FA2 RE2
5. El Sistema sube al Servidor de DB los parámetros recibidos
FA1 El sistema advierte la conexión fallida
FA2 El sistema envía un SMS de noticación de Alarma al Administrador
Pos condicionales
La página web podrá mostrar los parámetros y generar grácas y reportes de los datos obtenidos
El diagrama de casos de uso consta de tres actores celular, administrador y usuario. Información adicional.
R1 Congurar la conexión:
Congurar la conexión a la base de datos: puerto, velocidad de transmisión, bits de datos, paridad, bits de parada y control de ujo.
R2 El celular envía el mensaje el cual puede ser de tres tipos:
1. Mensaje de error batería baja.
2. Mensaje de error parámetros obtenidos. Estos mensajes se envían al adminis-trador.
3. Mensaje con parámetros obtenidos. Este mensaje, se almacena a la base de datos.
Caso de Uso Consultar Parámetros Este caso de uso sucede cuando el usuario consulta los parámetros almacenados Fig. 4.1.2
Actores: Usuario
Precondicionales El sistema debe de tener almacenados los parámetros enviados por celular en una base de datos.
Poscondicionales El usuario podrá disponer de la información almacenada.
Flujo principal El usuario hace la petición al servidor de los parámetros actuales. FA2
El sistema muestra los parámetros actuales.
FA1 El usuario hace la petición al servidor del histórico de parámetros. El sistema muestra el histórico de parámetros.
FA2 El usuario hace la petición de ver grácas.
El sistema muestra las grácas de los parámetros recibidos del día.RE1
RE1 El sistema debe permitir que que el usuario pueda personalizar el rango de fechas.
4.1.2.1.3. Caso de uso Administrar Software de Adquisición de datos Este caso de uso sucede cuando el usuario conecta el celular y la base de datos con la computadora central. Fig 4.1.3:
Actores: Administrador
Precondicionales Debe de haber un celular con el que se pueda conectar la pc para recibir los mensajes de la la estación meteorológica GSM.
Debe existir una base de datos en mysql en un servidor con acceso para almacenar los parámetros.
Poscondicionales El software de adquisición de datos podrá transferir al servidor los mensajes recibidos por la estación meteorológica GSM.
Flujo principal El usuario congurará la conexión con el celular deniendo los siguientes parámetros: puerto de conexión, velocidad de transmisión, Bits de datos, Paridad, Bits de parada y Control de ujo.
El sistema le mostrará un mensaje de éxito si la conexión ha sucedido exitosamente. FA1
El usuario congurará la conexión con la base de datos deniendo los siguientes parámetros: servidor, usuario, contraseña, y nombre de la base de datos donde se almacenará la información.
El sistema le mostrará un mensaje de éxito si la conexión ha sucedido exitosamente. FA2
FA1 El sistema noticará del error de conexión con la el celular. FA2 El sistema noticará del error de conexión con la base de datos.
4.1.2.2. Diagrama de Estados
Figura 4.1.3: Caso de Uso Administrar Software de Adquisición de Datos
almacena a la base de datos. Una vez almacenados los datos el usuario puede realizar la siguiente ruta, consultar los parámetros actuales, consultar grácas, consultar el historial y contactar al encargado, nalizando de esta manera la ruta o proceso Figura 4.1.2.
4.1.2.3. Diagrama de Secuencia
En el diagrama de secuencias podemos ver la interacción que tiene cada uno de los objetos como son: el administrador, celular y el usuario con el sistema, a través del tiempo, observando la respuesta que genera el sistema para cada uno de estos. Fig.5.
El administrador al realizar la conguración para la conexión a la base de datos el sistema envía un mensaje en pantalla de conexión exitosa. Al ver los datos, estos se mostraran en pantalla, al igual que mostrar grácas e historial.
El celular al recibir el mensaje, lo envía al sistema, si el mensaje que llegó fue recibido con parámetros, de lo contrario si el mensaje que llegó es de batería baja, el sistema lo reporta al administrador.
Figura 4.1.4: Diagrama de Estado
4.1.3. Base de Datos
4.1.3.1. Diagrama Entidad Relación
La base de datos consta de dos tablas: Estacion y Parametros y están relacionadas como lo muestra la Fig 4.1.6
4.1.3.2. Diccionario de Datos
Tabla Estacion
IdEstacion: Llave primaria de la tabla
Ubicacion: Campo que persiste la ubicación donde se encuentra la estación GMS
IdParametros: Llave primaria de la tabla
Temperatura: Campo que persiste la temperatura obtenida del SMS
Humedad: Campo que persiste la humedad obtenida del SMS
DirecionViento: Campo que persiste la dirección del viento obtenida del SMS
Pluviometro: Campo que persiste la cantidad de lluvia obtenida del SMS
PresionAtmosferica: Campo que persiste la Presión Atmosférica obtenida del SMS
Capítulo 5
Resultados
5.1. Software de Adquisición de Datos.
5.1.1. Módulo Conexión Celular y Servidor
En esta parte del software se congura la conexión con el dispositivo móvil vía bluetooth y la conexión a la base de datos.
5.1.2. Módulo Administración de SMS
Este apartado del software nos sirve para poder administrar los mensajes que existen en la bandeja de entrada del celular, podemos eliminarlos o habilitar cualquiera de las siguientes opciones :
Habilitar indicación de nuevo SMS.
Borrar mensaje después de agregar a la base de datos.
Refrescar.
Auto borrar después de mostrar.
5.1.3. Módulo Alarmas SMS
Figura 5.1.1: Módulo Conexión Celular y Servidor
Batería baja.
Error en los datos.
Estado de la conexión.
5.1.4. Módulo Estado del Módem y Red
Este apartado nos da información del celular, además de la potencia de señal que existe entre el software y el celular. Fig.5.1.4.
5.2. Módulo Log de Errores
Figura 5.1.2: Módulo Administración de SMS
5.2.1. Modulo Terminal
Este modulo nos sirve para probar si el módem soporta los comandos AT.
5.3. Página Web
5.3.1. Home
En home se muestra los últimos datos obtenidos de la estación meteorológica. Fig.11.
5.3.2. Grácas
Las grácas que podemos ver son de tres tipos. Fig. 12.
Figura 5.1.3: Módulo Alarmas SMS
Últimos treinta días.
Por intervalos de fecha.
5.3.3. Historial
Capítulo 6
Conclusiones
6.1. Conclusiones Generales
Se logró la adquisición de datos a través de la comunicación entre el PC central y el teléfono celular por medio de comandos AT, lo que permitió ingresar estos al servidor de base de datos para su posterior manipulación.
El desarrollo de este proyecto y el monitoreo realizado permite el análisis y la toma de decisiones a través de los datos obtenidos, considerando así que se puedan conformar redes de estaciones meteorológicas automáticas como herramientas de monitoreo a distancia con aplicaciones en diversos campos.
De acuerdo a los resultados obtenidos, la hipótesis planteada conrma que El uso de un sistema de adquisición de datos obtenidos de un módem GSM diseñado a la medida para la estación meteorológica GSM optimizará la delidad de datos y tiempo de disponibilidad. agilizará el monitoreo de los parámetros meteorológicos teniendo un muestreo continuo de datos, debido a que el monitoreo de los paráme-tros censados se llevó a cabo de manera continua usando la interfaz y el sistema desarrollado, habiendo concluido las pruebas de manera satisfactoria; a lo cual se concluye:
2. La capacidad de monitoreo sobrepasa por mucho lo que la norma ocial me-xicana pide (al menos tres muestras al d´a), con este sistema se tiene la capacidad de hacer muestras hasta cada 5 minutos.
3. El uso de dispositivos móviles en este caso, teléfonos celulares que ya no se usan, propicia el reuso de estos evitando así la basura electrónica.
4. El monitoreo constante de parámetros meteorológicos, propicia una mejor toma de decisiones, con esto se logra un benecio para el medio ambiente y por consiguiente, benecio para toda la comunidad.
6.2. Recomendaciones
Referencias
[1] J. Lujan de Francisco, Diseño de una estación meteorologica autónoma gestionada mediante mensajes sms, TesÃs de grado http://upcommons.upc.edu/pfc/bitstream/2099.1/6137/1/memoria.pdf, 2008.
[2] P. T. Franklin, Sistemas de alerta temprana de sequías meteorológicas en ve-nezuela, TesÃs de doctorado www.riuc.bc.uc.edu.ve/handle/123456789/191, 2011.
[3] G. Medina García, Uso de estaciones meteorol/'ogicas en la agricultura, http://www.inifapzac.sagarpa.gob.mx/publicaciones/ Uso_de_estaciones_meteorologicas_en_la_agricultura.pdf, 2008.
[4] T. L. F. Valentín, 2.1.4 sistema de monitoreo de la calidad del agua del río sa-binal con dispositivos móviles, Tesís de grado Instituto Tecnológico de Tuxtla Gutiérrez, 2011.
[5] V. G. J. L. A. C. R. Sallent Roig, Oriol, Principios de comunicaciones móviles, Barcelona: UPC, 2003.
[6] D. S.Lawyer, Modem-howto, Disponible en http://tldp.org/HOWTO/Modem-HOWTO-29.htm, 2007.
[7] A. M. Youssef, Data communication and computer networks, Disponible en http://users.encs.concordia.ca/ youssef/comp445/ch3.pdf, 2007.
[8] I. T. Union, Data communication over the telephone network, Disponible en http://www.itu.int/rec/T-REC-V/en, 2008.
[10] . Bluetooth SIG, A look at the basics of bluetooth wireless technology, Dis-ponible en http://www.bluetooth.com/Pages/basics.aspx, 2012.
[11] , Rfcomm with ts 07.10 serial port emulation, Disponible en https://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=40909, 2003.
[12] E. O. and/or its aliates, Mysql 5.0 reference manual, Disponible en http://dev.mysql.com/doc/refman/5.0/es/index.html, 2005.
[13] C. Wong, Http pocket reference hypertext transfer protocol, 2000.
[14] . The Apache Software Foundation., Apache server project, Disponible en http://httpd.apache.org/, 2007.
[15] . Microsoft ©, Información general acerca de .net framework, Disponible en http://msdn.microsoft.com/es-mx/library/zw4w595w.aspxl, 2007.
[16] , Ado.net, http://msdn.microsoft.com/es-es/library/e80y5yhx(v=vs.80).aspx, 2007.
[17] , Visual c#, Disponible en http://msdn.microsoft.com/es-es/library/kx37x362.aspx.
[18] O. andor Aliates, Mysql connectors, Disponible en http://www.mysql.com/products/connector/.
[19] W. W. W. Consortium, Html 4.01 specication, Disponible en http://www.w3.org/TR/REC-html40/intro/intro.html#h-2.3, 1999.
[20] . The PHP Group, What is php? Disponible en http://es2.php.net/manual/es/intro-whatis.php.
[21] . Ecma International, Ecmascript language specication, Disponible en http://www.ecma-international.org/publications/les/ECMA-ST/Ecma-262.pdf, 2011.
[22] K. J. R. J. E. R. Hege Refsnes, Stale Refsnes, Learn javascript and ajax with w3schools, 2007.
[23] S. M. Ellitot Rusty Harold, Xml in a nutshell, 2004.
[25] . The jQuery Foundation, What is jquery? Disponible en http://jquery.com/, 2007.
[26] J. Glazebrook, Open ash chart project, Disponible en http://httpd.apache.org/, 2007.
[27] I. L. S. P. Ltd., Developer guide - mcore .net sms library, 2007.