sábado, 26 de enero de 2008

Control Remoto por Internet

Introducción

*** NOTICIA ****** NOTICIA ****** NOTICIA ****** NOTICIA ***

Debido a la demanda, puse una copia para bajar en [Nueva Dirección]:

https://sites.google.com/site/guialtsen/archivos/ServHttp.rar


Fig. 1 El Programa HTTPSERV en ejecución

Controlar las instalaciones y empleados de su empresa desde Internet. Monitorear su casa desde cualquier parte del mundo. Encender, apagar y controlar artefactos a distancia. Verificar la temperatura y otros parámetros en lugares remotos. Todas estas cosas son posibles por medio de Internet. Sensores tales como termostatos, estaciones meteorológicas, cámaras de video y sistemas robotizados (actuadores) son ejemplos de dispositivos de control vía Internet.

Serhttp.exe (o HTTPSERV) es un programa que desarrollé para demostrar la posibilidad de controlar cualquier tipo de dispositivo a través de Internet. Luego de ver numerosos equipos costosos que combinan software y hardware para realizar distinto tipo de tareas en forma remota, se me ocurrió que en realidad, se puede demostrar perfectamente la posibilidad de controlar y de recolectar datos sin gastar un centavo.

Fig. 2 Sensores, cámaras de video y robots controlados por Internet

La idéa detrás de este proyecto fué la de realizar un experimento significativo, es decir, que tenga relevancia en el terreno de la realidad y no una simple simulación imaginaria de un hecho. Además, como su destinatario son los alumnos, se trata de no tener que invertir en componentes para realizar las experiencias. Por eso vamos a trabajar con un esquema que permite comandar en forma bidireccional un puerto COM.

El puerto COM de la PC permite que conectemos dispositivos tales como cámaras, sensores, balanzas y actuadores que permiten encender y controlar cualquier clase de aparato. Todo depende de la cantidad de $ que podemos disponer para ello.

Esto significa que todo lo que un programa tiene que hacer es enviar un dato al puerto COM para virtualmente comandar cualquier aparato y que pueda leer un dato del puerto COM para conocer el estado de cualquier aparato conectado en dicho puerto. Esto significa que el programa debe “comprender” el protocolo RS232.

Eso en lo que atañe al puerto COM. Sin embargo el programa debe también reconocer los protocolos TCP/IP y HTTP para poder recibir instrucciones por medio de Internet. El servidor HTTP hace precisamente esto.

Al ejecutar el programa se presenta una pantalla con 7 elementos que nos permiten conocer su estado.

a) El botón que permite seleccionar el puerto COM1 al COM4.

b) El botón que permite iniciar y detener el servidor.

c) Los elementos gráficos que dan a conocer el estado del puerto seleccionado como del funcionamiento del loopback.
d) El puerto de enlace que esta preestablecido en 80 (aunque se puede cambiar por otro) que es como ya deben saber el puerto correspondiente al protocolo HTTP.

e) IP Local nos indica la dirección IP del servidor (la máquina en la que está funcionando). En caso de que estemos conectados a Internet nos mostrará la dirección IP de nuestra conexión.

Ya es suficiente introducción, la mayoría de los conceptos teóricos los pueden encontrar tanto en un texto sobre comunicación de datos o sobre el protocolo TCP/IP específicamente.

Test Run del Programa

Realicemos un recorrido del programa para probar su funcionamiento:

1) Arrancamos el servidor

Fig. 3 El programa luego de “darle arranque”

2) Si todo va bien, se verá el puerto de color verde, en el título de la ventana dirá “Habilitado” y la hora y en IP Local dirá cual es la IP de nuestra PC. En este caso, como tengo banda ancha, aparece la IP que hace varios meses tengo asignada por Fibertel.

3) Ahora abrimos el explorador de Internet y le ingresamos la dirección IP (en mi caso ingreso esta dirección: 200.126.252.9)

Fig.4 Acceso a la “página” del servidor

Si están al día con el material de estudio ya comprenderán que se trata de una dirección IP de uso EXTERNO o PUBLICA y es propia de MI máquina. Si se conectan a Internet por medio de una conexión telefónica, tendrán diferentes direcciones cada vez que se conecten. Ahora bien, como la dirección IP PRIVADA de mi máquina es 192.168.0.1 también podría acceder a través de ella. Y por supuesto que también podría utilizar 127.0.0.1 que es el LOCALHOST.

4) Probamos sin el LOOPBACK, es decir con el puerto COM abierto.


Fig. 5 Prueba de Loopback


Escribimos hola o cualquier texto que se nos ocurra y obtenemos como respuesta:

ENVIADO : 123456789
EL PUERTO COM NO RESPONDE

Esto significa que todo funcionó correctamente ya que el servidor es el que dio esa respuesta.

5) Muy bien, ahora vamos a probar el LOOPBACK.

Conectamos el PIN 2 o RXD o recepción con el PIN 3 o TXD o transmisión. El principio de funcionamiento es bien simple y responde a la capa física del modelo OSI. Se trata de señales eléctricas que salen del puerto COM a través de la línea TXD con rangos de voltaje

Señal = 0 > +3.0V
Señal = 1 < -3.0V


Debido a esta conexión lo que sale por la línea de transmisión o TXD es inmediatamente recibido por la línea de recepción o RXD.

Donde dice Texto escribo: hola e inmediatamente recibo hola. Esto significa que el loopback funcionó correctamente.

Fig. 6 Verificación del Control Remoto

Observen que esta vez puse 192.168.0.1 como dirección IP.

Fig. 7 El Servidor muestra el loopback activo

Además pueden ver que el indicador de Loopback se puso de color verde.

Experiencias prácticas a realizar

Además de reproducir las experiencias detalladas antes, se recomienda fervorosamente a los alumnos que realicen las siguiente experiencias:

1) La experiencia práctica más simple consiste en reproducir el experimento tal como se expuso.
2) Luego variar las direcciones, la dirección de LOCALHOST o 127.0.0.1
3) Si dispone de una IP privada pruebe realizar la conexión por esa vía.
4) Pruebe conectarse a Internet, activar el servidor HTTP y desde otra dirección acceder a la máquina remota.
5) Otra prueba que se puede realizar es la de modificar el puerto, por ejemplo le asignamos 1000 al puerto del servidor. Pero en este caso, para acceder al servidor debo escribir la siguiente dirección: http://200.126.252.9:1000/
6) Para aquellos que realmente quieren experimentar en forma completa los servicios de Internet pueden incluso obtener una dirección DNS gratuita en el sitio http://freedns.afraid.org/ En mi caso, asigné el DNS regi.wftp.org a la dirección IP 200.126.252.9 que tenía asignada en ese momento de manera que puede acceder al servidor por medio de una dirección. El servicio permite cambiar la IP en forma rápida por lo que se adapta perfectamente para cualquier usuario que dispone de acceso a Internet y no tiene IP fija.

Fig. 8 Prueba Remota por medio de DNS

7) Finalmente, prueben algunas direcciones de Internet en la que invirtieron algunos o muchos dólares y observen el funcionamiento del control con dispositivos reales.

Enlaces de Interés

Los enlaces de abajo corresponden a dispositivos que se pueden controlar por Internet, el primero es muy interesante ya que es un brazo robotizado con 6 grados de libertad que permite acomodar objetos en un tablero.

http://telerobot.mech.uwa.edu.au/Telerobot/index.html
http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/Xavier/
http://www.hellspark.com/dm/index.html
http://ranier.hq.nasa.gov/telerobotics_page/realrobots.html


Que tengan un gran día!

Sergio Otaño

31 comentarios:

Maxi dijo...

Señor: Sergio Otaño

Lo felicito por su artículo publicado, realmente es un tema atrapante. Ya que hoy en día todas las cosas cotidianas demandan el uso de internet.
Me gustaría pedirle si no es molestia una copia del soft "Control Remoto por Internet", para poder experimentar en mi casa para la activación de luces en forma remota.

Desde ya le agradezco por su tiempo
y quedo a la espera de su pronta respuesta.

Atentamente.
Maximiliano Galdeano.

maxigaldeano@hotmail.com

Julian Londoño dijo...

Lo felicito por su artículo publicado,

Me gustaría una copia del programa control Remoto por Internet", estoy realizando una demostración de una casa inteligente para la semana de la ciencia de un colegio

en espera de una respuesta positiva

Atentamente.
Julián Londoño Torres

Sergio Otaño dijo...

Julian, debes dejar un casilla de correos para enviarte el programa.
Saludos.

willan dijo...

Hola muy buenos dias señor Sergio, mi nombre es Willan y quería por favor ver si hay la posibilidad de que me proporcione una copia del software para realzar el control de ambiente de mi casa.

Y quería hacerle un par de preguntas.

1. se puede realizar la adquisición de datos de un sensor analógico.
2. Hay como enviar una señal de control via internet hacia un actuador

port su ayuda muchas gracias

Atentamente

Willan Silva

Sergio Otaño dijo...

Willan, con respectto al programa, si das a conocer tu dirección de correo puedo enviártelo. Con respecto a tus preguntas. Con el programa tal cual funciona, puedes implementar tanto un actuador como un sensor. Pero, la interface html tal como está definida es un poco limitada para ese fin.

Yeison Arias dijo...

Señor: Sergio Otaño

Realmente realizo un gran trabajo muchas felicitaciones, en este momento seria de gran utilidad que me regalara una copia de este software, ya que realizo un proyecto de control remoto en la universidad, de antemano muchas gracias.

Atentamente:
Yeison Arias.
Correo: yariasm@gmail.com

vela dijo...

Lo felicito por su artículo, realmente es un tema atrapante. Me gustaría pedirle si no es molestia una copia del soft "Control Remoto por Internet", para poder mucho agradecere por el envio a
velavasquez@yahoo.es
gracias.
atte.
Ausberto
Cutervo-Cajamarca-Peru

vela dijo...

Realmente realizo un buen trabajo estoy interezado si pudiera enviarme mucho le agradece
el "control remoto por internet" es muy bueno.
gracias por anticipado su respuesta.

atte.
Ausberto
velavasquez@yahoo.es

Anónimo dijo...

hola...
Muy buen programa, justo lo que eh buscado por tiempo y no habia encontrado,

quiciera saber si me puede enviar una copia del programa, porfavor.


Una pregunta tambien, hace mucho vi una especie de tarjeta(perecida a una tarjeta de video de PC, en cuanto a dimensiones) que tenia un programa como éste integrado en ella, la cual tenia una entrada a ethernet, y esta a traves de un pequeño display te desplegaba el ip que adquiria, y a traves de pc remotas conectadas a internet la podias controlar, o accesar, me interesaria saber si sabe algo al respeto de estas tarjetas, como se llaman o que nombre se les da, o si cree que fue hecha por esa persona que nos la enseño, le agradeceria si me pudiera contestar..
Gracias

memo07@gmail.com

carlos arcega dijo...

Buenas tardes Sergio Otaño

Te felicito por la creación del programa y también por compartirlo.
Me gustaría, si es posible que me proporciones una copia del soft" Control Remoto por Internet", me interesa para proporcionárselos a estudiantes de preparatoria para que pongan en practica lo que saben de electrónica, con este programa les llamaría mas la atención el poder hacer trabajar (automatizar) un motor.
De antemano te doy las gracias y espero me puedas ayudar con esto.
Saludos , mi correo es caas2002@hotmail.com

olmedo dijo...

Señor: Otaño
Le felicito su trabajo de investigación, ya que ello permite apliocar nuevas tecnologias de control de una casa, industria, entre otros, atraves de internet. Le pido de una forma cortez.una copia del software "Control remoto por internet" para poder exrerimentarlo personalmente y luego con mis estudiantes.
Le agradezco por su timpo de antemano.
Saludos
Víctor Martinez

Sergio Otaño dijo...

Hola Victor, debes dejar una casilla de correos para enviarte el programa.
Saludos.

Unknown dijo...

Hola señor Sergio

Lo agradezco por aceptar mi pedido, y le dejo mi casilla de correo.

Atentamente
Víctor Martínez

Anónimo dijo...

Mi nombre es Nicolas C
Es impresionante lo que hicistes, me gustaria esperimentar... apenas estoy en el cacharreo.


Eres el robin Hood ue la electronica necesitaba.

Me gustarai ppoder conocer el codigo fuente del servidor HTTP, claro si es posible.
Mi correo es NicoSoftx@hotmail.com

Sergio Otaño dijo...

Hola Nicolás, para comenzar tus experimentos te recomiendo que realices las prácticas propuestas en el artículo "Controlar Máquinas y Aparatos con La PC" de este mismo blog. Es el comienzo de una aplicación completa que iré publicando periódicamente.

Víctor dijo...

Estimado señor Otaño.
Logré hacer funcionar el programa control vertual por internet en mi local, donde tengo conectadas algunas computadoras a internet. Pero, no se conecta ingresando de una computadora conectada a internet,ubicada lejos de mi barrio. Para lo cual ejecuté el siguiente programa:
http:192.168.0.36, que es la dirección IP de mi computadora.
RESULTADO: vuelva a copiar la dirección, entre otros.

Le agradesco de su servicio.


ATENTAMENTE

víctor Martínez

Sergio Otaño dijo...

Víctor, tal como dice el artículo:

"Si están al día con el material de estudio ya comprenderán que se trata de una dirección IP de uso EXTERNO o PUBLICA y es propia de MI máquina."

Tu estás usando la IP privada que solo sirve dentro de la red local. Usa el n° de IP PUBLICO.

Unknown dijo...

Hola, sencillamente espectacular, estoy tratando de hacer algo parecido pero no he podido y estaba un poco desenfocado, ya que queria crear un archivo XML con una pagina web, leerlo con Builder C++, trnasmitirlo al puerto serial y viceversa, pero lo que encontré en tu blog es lo que necesito, pero para automatizarlo, sin necesidad de presionar el boton de envio ¿como haria?... es decir, trate de enviarle el dato del parametro VARIBLE con Ajax pero no me resulto. ¿Podria de alguna forma acceder a la direccion de a.htm y enviar automaticamente la informacion, me podrias ayudar?

Mil gracias de antemano.

Sergio Otaño dijo...

En realidad, a.htm es una página que no tiene existencia como archivo. Es una página generada por el servidor al acceder a la dirección IP del mismo. Este es un ejemplo, pero se puede hacer virtualmente cualquier tipo de operación, tanto visible como transparente para el usuario.

NicoSoftx dijo...

Hola amigo, si puedes colaborar me con la información del control remoto por Internet me gustaría mucho conocerla... Yo maneo os puertos seriales y paralelos bastante suficientemente.. pero me gustaría ver como envías las peticiones pos o get desde el puerto serial al soket.

gracias y escusas por la molestia.

NicoSoftx@hotmail.com

juan carlos dijo...

Hola amigo esta muy intersante tu programa me lo podrias pasar? necesito hacer un proyecto en la escuela, mi correo es juan_karlos_1185@hotmail.com

Jose Gonzalez dijo...

Estimado: buen dia lo felicito por su aporte hace mucho que quiero experimentar con un control via internet, espero pueda darme una copia del sof, adjunto mi correo desde ya muchas gracias!..... jjckl@hotmail.com

Unknown dijo...

Estimado:

Lo felicito por su articulo muy completo e ilustrado, Me gustaría pedirle si no es molestia una copia del software "Control Remoto por Internet", para realizar unas pruebas en mi casa. muchas gracias y disculpe la molestia.

vthtapia@gmail.com

Brayan dijo...

POR FAVOR SERGIO AVER SI ME AYUDAS CON EL SOFTWARE Y LOS OTROS ELEMNTOS NECESARIOS PARA LA COMUNICACION MIRA MI CORREO ESTE
vdevengansa_sol@hotmail.com

Brayan dijo...

oye sergio mira aver si me ayudas con el software por favor es que e spara un proyecto mira este es mi correo
vdevengansa_sol@hotmail.com

Sergio Otaño dijo...

Brayan, el programa está disponible en el enlace. Con respecto a los puertos COM, hoy no forman parte estándar en las PC. Pueden usarse emuladores de puertos COM x USB. El resto es sencillo.

Brayan dijo...

sisis ya lo puede descargar pero la verdad su funcionamento es un poco confuso tengo qe tener alguna configuracoin previa en mi pc para qe funcione oye y ademas tiene face o algo para qe me ayudes en un proyecto para comunicarnos o twitter

Anónimo dijo...


Buen dia, disculpe sera que me pueda proporcionar el software para poder realizar un proyecto en la universidad.

Por cierto muchas felicidades por el articulo esta muy bueno

Espero tu respuesta gracias.
Atentamente.
Regnier Rasgado

regnier.frrl08@gmail.com

victor dijo...

Hola Sergio,

Lo felicito por el articulo publicado, siendo actualmente un tema de mucho interes.

Me gustaria, caso no exista cualquier inconveniente, de poder recibir el software "Contol Remoto por Internet".

Deseando los mayores exitos me despido.

Un saludo.

P.S. Mi mail es: victorandrade04@gmail.com

Sergio Otaño dijo...

El programa está disponible en Internet para bajarlo. De todas formas, es bastante antiguo ya. Para un proyecto actual conviene emplear algo + actual, como la plataforma .NET o Phyton.

Sergio Otaño dijo...

El programa está disponible aquí: https://sites.google.com/site/guialtsen/archivos/ServHttp.rar