Monitoreo de Temperatura y Humedad Relativa a Través de la Web
IMPLEMENTACIÓN DE PROTOCOLOS TCP/IP Y PPP EN UN MICROCONTROLADOR PARA EL MONITOREO DE TEMPERATURA Y HUMEDAD RELATIVA A TRAVÉS DE LA INTERNET
Este fue mi proyecto de grado para la obtención de mi título de Licenciado en Ingeniería Electrónica en la Universidad Privada del Valle (Cochabamba, Bolivia).
EN QUE CONSISTE
El sistema posee un microcontrolador PIC16F876A que se conecta a la internet mediante una línea telefónica convencional (dial-up). El microcontrolador envía cada 2 segundos una lectura actualizada de la temperatura y humedad relativa obtenida por los sensores y la envía a un servidor web implementado para tal efecto.
Cualquier usuario puede acceder a la página web del servidor para observar en tiempo real la información de la temperatura y la humedad relativa provista por el microcontrolador.
NOTA: En el proyecto "Portal de Enlace Para Monitoreo y Control de Energía en Viviendas" abordamos una aplicación similar pero relativamente más compleja.
{gallery}pgrado{/gallery}
APLICACIONES POSIBLES
Actualmente el sistema sólo implementa una comunicación unidirecciónal (monitoreo). Con código adicional se puede lograr fácilmente una comuniación en ambos sentidos (monitoreo y control), con las siguientes posibles aplicaciones:
1. MONITOREO Y CONTROL DOMÉSTICO
- Encender/apagar desde cualquier PC con acceso a internet: La luz del patio, tu cafetera, tu estéreo, etc.
- Controlar el estado de tus artefactos.
2. MONITOREO Y CONTROL INDUSTRIAL
- Encender/apagar máquinas.
- Controlar el estado de las mismas.
- Se apagó una máquina? El sistema lo detecta y muestra la alarma en la página web.
3. ALARMAS
- Activar/desactivar alarmas, tanto doméesticas como industriales desde cualquier PC con acceso a internet.
- Si alguna alarma se activó, el sistema lo detecta y muestra la alarma en la página web.
El avance del proyecto es por etapas.
DATOS TÉCNICOS ADICIONALES
- Se está usando el microcontrolador PIC16F876A de Microchip.
- El programa del microcontrolador está escrito en lenguaje C, compilado (con Hi-Tech).
- El microcontrolador implementa una pila TCP/IP optimizada para mandar la información al servidor en paquetes TCP.
- El servidor implementa el siguiente software:
- Un programa en C para el acceso directo a la Capa de Red (tarjeta de red de la PC) y la lectura de los paquetes TCP respectivos enviados por el microcontrolador.
- Un servidor HTTP para el servicio de la página HTML que despliega la información leida.
- Un applet Java que se interconecta con la aplicación en C para la obtención de los datos enviados por el microcontrolador y el despliegue de los mismos en la página HTML.
A continuación, un extracto de la documentación original presentada en la defensa de grado.
INTRODUCCION
Indudablemente, el uso de la Internet se ha difundido ampliamente en los últimos años alrededor de todo el mundo y particularmente en nuestro país, Bolivia. La Internet como red global, ofrece innumerables posibilidades de aplicación, más allá de las más comunes que involucran el uso de las computadoras personales de escritorio.
En este último tiempo se ha visto un aumento considerable de la conexión a la Internet de computadoras más pequeñas que las tradicionales PC´s de escritorio; un ejemplo de esto son las computadoras de mano (tipo Palm Pilot) y los teléfonos celulares.
Sin embargo va entrando con más fuerza una corriente de aplicación de sistemas embedded (firmware) para diversas aplicaciones de monitoreo y control de, por ejemplo: electrodomésticos, alarmas domiciliarias, cámaras de seguridad, sensores, dispositivos de control, etc. todos estos conectados a la Internet, lo cual posibilita la visualización de la información proporcionada por estos dispositivos y también el control remoto de los mismos desde cualquier parte del mundo mediante el acceso a un servidor Web que brinde páginas con contenido dinámico que muestre dicha información.
Hay pronósticos y serias proyecciones de que en los próximos años se verá un incremento considerable de este tipo de dispositivos conectados a la Internet, que para aplicaciones domiciliarias o industriales se basarán en la mayoría de los casos en el uso de microcontroladores que tenga la habilidad de manejar una conexión TCP/IP. Así mismo el abanico de posibilidades de aplicación de un dispositivo pequeño y económico como un microcontrolador que pueda conectarse a la Internet, irá aumentando en la medida en que dependemos cada vez más del uso de la Internet para muchas aplicaciones, y en particular para el monitoreo y control de dispositivos desde cualquier parte del mundo.
JUSTIFICACION
No cabe duda que al presente técnicamente no representa ningún reto la conexión de una PC de escritorio a la Internet, y el uso de la misma para aplicaciones comunes de hoy en día, como por ejemplo: el uso del e-mail, la búsqueda o publicación de información en sitios Web o las transacciones comerciales, han demostrado su valor y utilidad en la vida moderna. Por esto mismo, conforme la población global de nuestro planeta se apoya cada día más y más en el uso de la Internet y las amplias posibilidades que brinda, ante nuestros ojos se abre día a día un espectro cada vez más amplio de posibilidades de aplicación y nuevos beneficios del uso de la Internet, tanto en el ámbito domiciliario como el industrial.
Crece una necesidad cada vez más urgente de lograr la conectividad de dispositivos y aparatos que hace una o dos décadas atrás no se habría pensado que necesitarían conectarse a la Internet. Hoy en día ya se habla de conectar a la red global aparatos electrodomésticos, comos ser: heladeras, cafeteras, cocinas, sistemas de acondicionamiento de temperatura, alarmas, cámaras de vigilancia, controles de proceso remotos, y en nuestro caso: sensores.
Para este nuevo mundo de aplicaciones debemos pensar en computadoras más pequeñas, eficientes y económicas que las PC´s de escritorio, e incluso que las computadoras de mano (handheld). Dispositivos microcomputadores de propósito especial que tengan la habilidad de conectarse a la Internet ya sea como clientes o como servidores, en otras palabras, microcomputadores dedicados que entiendan TCP/IP, el “idioma” de la Internet.
OBJETIVOS
OBJETIVO GENERAL:
El objetivo general de este proyecto es el siguiente: El uso de protocolos TCP/IP y PPP en un microcontrolador para el monitoreo a través de la Internet de las variables climáticas, temperatura y humedad relativa en un punto fijo, céntrico de una ciudad cualquiera.
OBJETIVOS ESPECIFICOS:
• La implementación en un microcontrolador de una pila TCP/IP de tamaño mínimo que permita el envío de datos a través de la Internet de manera eficiente.
• La implementación en lenguaje “C” de una aplicación de captura de paquetes TCP/IP en un servidor, al nivel de la Capa de Enlace.
• La implementación de un applet de Java capaz de abrir un socket de conexión TCP/IP a un servidor en la Web para actualizar la información de una página html.
ALCANCE
Se ha implementado el monitoreo climático de las variables de temperatura y humedad relativa en un punto fijo de una ciudad cualquiera, y este modelo será escalable para lograr el monitoreo en puntos fijos de varias ciudades.
Un sistema microcontrolador utiliza protocolos TCP/IP y PPP para enviar una información actualizada cada dos segundos de la de temperatura y humedad relativa del ambiente a través de una conexión Dial-up a un servidor. El servidor, a su vez contiene el software necesario para capturar los paquetes TCP/IP enviados por el microcontrolador, y pone a disposición de cualquier cliente de Internet una página html con la información de la temperatura y humedad relativa del ambiente.
Este proyecto, visto desde la funcionalidad del mismo, consta de tres módulos principales:
1) EL SISTEMA MICROCONTROLADOR
Consta básicamente de un microcontrolador y un chip MODEM. El microcontrolador utiliza sus puertos analógicos para la lectura de los datos proporcionados por dos sensores: uno de temperatura y otro de humedad relativa, e implementa en su memoria de programa una pila básica de protocolos de la familia TCP/IP y PPP para una conexión a la Internet vía Dial-up.
El microcontrolador envía los datos leídos por sus puertos vía Internet haciendo uso específicamente del Protocolo ICMP . No se utiliza ningún protocolo de transporte a fin de optimizar la implementación IP al máximo, reduciendo al mínimo el código necesario para lograr la aplicación. El envió de los datos vía Internet se realiza directamente desde el microcontrolador, sin el uso de ningún intermediario.
2) EL SERVIDOR
Se utiliza como servidor una PC común que se conecta a la Internet a través de una conexión Dial-up. Este servidor recibe vía Internet los paquetes ICMP provenientes del microcontrolador que contienen los datos de temperatura y humedad relativa.
La captura de dichos paquetes se realiza al nivel de la Capa de Enlace con una aplicación especial en lenguaje “C”, en base a la API de la arquitectura de captura y monitoreo WINPCAP . Esta aplicación, una vez leídos los paquetes ICMP provenientes del microcontrolador, extrae la información del campo de datos de cada paquete y la almacena en un archivo de texto, a disposición del servidor.
El servidor así mismo, pone a disposición de cualquier cliente de Internet una página html dinámica, la cual contiene un applet de Java. Cuando un cliente baja dicha página del servidor, es el applet de Java el que se encarga de realizar periódicamente la petición al servidor del archivo de texto, el cual contiene la información enviada por el microcontrolador. El applet de Java abre un socket de conexión TCP/IP con el servidor, y una vez leído este archivo de texto, despliega la información en la página html en forma dinámica.
3) APLICACIÓN DE CAPTURA Y APPLET DE JAVA
Se ha desarrollado una aplicación de captura en lenguaje “C” en base a la API de la arquitectura WinPcap para captura y análisis de tráfico de redes. Esta aplicación hace uso de la tarjeta de interfase de red (MODEM) del servidor para realizar la captura de los paquetes ICMP enviados por el microcontrolador.
Se ha desarrollado también el applet de Java que “baja” del servidor los datos de temperatura y humedad relativa y los visualiza en la página html.
La parte del software para el microcontrolador en este proyecto está basado en una Nota de Aplicación provista por la compañía MICROCHIP . El código para la pila TCP/IP del microcontrolador en este proyecto implementa todas las funciones provistas por la Nota de Aplicación mencionada y añade las porciones de código necesarias para lograr la aplicación planteada.
Raúl Alvarez Torrico
www.TecBolivia.com
Deseo recibir noticias de nuevos proyectos, artículos, materiales y promociones especiales.