Grupos de Investigación de Robótica

Una de los desafíos más interesantes es el de poder
obtener datos de funcionamiento de un circuito con microcontrolador
(p.e. BASIC Stamp) y grabarlos en un archivo de una aplicación web, sin
limitaciones, de manera que estos se puedan consultar como si de una
aplicación cualquiera que trabaje con bases de datos fuera, en el
formato y de la manera en que queramos. Y viceversa: hacer que unos
datos de registros contenidos en bases de datos puedan interactuar con
nuestro circuito con microcontrolador.


En este nuevo proyecto vamos a conseguir que nuestro módulo PINK,
conectado con un circuito con BASIC Stamp (p.e. nuestro circuito de
alarma domótico comentado en otro proyecto) envíe datos desde su
servidor embebido a otro servidor donde trabaja, por ejemplo, hacia una
aplicación web PHP con una tabla de datos detrás donde grabar algunos
datos interesantes.


1ª FASE: Preparando las páginas para el intercambio de datos


Este es el esquema general del proyecto:




Preparamos una página ejemplo (sólo intercambiaremos el contenido de las
variables 03-08)
que guardaremos en el servidor del PINK y a la que llamaremos "pink.htm".
Este es el código
HTML:




Merece especial atención el código Javascript que hemos colocado en el
HEAD de la página. Este se
encarga, no sólo de auto-refrescar la página (a fin de que nos muestre
datos en tiempo real) sino
también de realizar un autoenvío regular de los datos que se obtienen de
nuestro circuito. El número 10000 nos sirve para fijar el número
de seg. que pasan hasta ejecutar el autoenvío (10 seg.).

Por ejemplo, las 6 variables que intercambiaremos, podrían contener el
estado en que se encuentran diferentes sensores colocados a lo largo de
nuestra vivienda. Si conseguimos que estos datos se graben en un archivo
cada 5 seg. (por ejemplo) conseguiremos un mapa de actividad de nuestra
casa que podremos ir consultando en tiempo real, pero también en
diferido, incluso en formato histórico e interpretado. Aquí apelo a la
creatividad del lector, de manera que no se centre sólo en lo que vamos a
tratar de hacer juntos, sino que vaya más allá de lo que podamos dejar
entrever en estas pocas líneas. Las prestaciones de este proyecto son
muy potentes.


El resto del código HTML de esta página nos muestra un simple formulario
que nos pasará, mediante el método POST, el contenido de las variables Nb_var03
- Nb_var07
; la variable Nb_var08 la hemos dejado libre para
ser usada en este mismo formulario como un campo.


Es necesario hacer notar que también el método GET nos puede funcionar.
Este método seguiría un
formato como el siguiente, en un link:
http://www.todomicrostamp.com/enviadatos.php?dato3=&dato4=&......


La página solicitada (enviadatos.php) podría entonces tratar el
contenido de las variables
dato3, dato4, dato5,..., que corresponden al contenido de las
variables Nb_var03,
Nb_var04, Nb_var05, ...



Volvamos a nuestro método de formulario POST. La página comentada
recogerá, pues, el valor de
dichas variables y, mediante un autorefresco-envío, las pasará
"escondidas" (hidden) a la página
"grabadatos.php" que se halla alojada en un servidor externo.
Esta otra página de formato
dinámico está escrita en PHP para hacer posible el uso de bases de
datos donde guardar los
registros de los datos obtenidos.


Respecto a esta otra página, es necesario que el usuario tenga
conocimientos de programación de
páginas web dinámicas, no de PHP concretamente, sino de cualquier otro
lenguaje que pueda
recoger datos enviados mediante el método POST.


Dado que hay multitud de plataformas de desarrollo que pueden
proporcionarnos una página que
recoja estos datos, nos centraremos en un ejemplo de página en PHP, bajo
entorno de desarrollo
Zheta, que podremos extrapolar de manera muy intuitiva a
cualquier otro tipo de desarrollo.


Esta página deberá incluir, como la otra, el código Javascript que
autorefresca-envía a otra página.
En este caso nos servirá para retornar a la página del PINK, donde
seguirán mostrándose los datos
de las variables casi en tiempo real. Los tiempos para realizar el
autoenvío pueden ser diferentes
en ambas páginas; esto lo dejo al criterio del lector. Este es el
contenido del BODY de la página que
estamos escribiendo para PHP. Observad el reenvío que hace hacia la
página en el PINK: hemos
escrito la IP local ("104" porque es el número de segmento asignado
automáticamente por nuestra
red local).



¿Qué enviamos desde esta página? Nada; simplemente retornamos. En esta
misma página es
donde podemos usar el contenido de las variables para conformar un
registro para grabarlo en la
tabla (esta parte del código no se muestra en los ejemplos).


Aquí tenemos las capturas de las 2 páginas (pink.htm en el
servidor del PINK;
grabadatos.php en un servidor externo cualquiera).





Toda esta operativa se entiende que se realiza localmente, en una misma
red. Tal como hemos
apuntado en otros proyectos, si hemos de visualizar los datos de la
página del PINK fuera de
nuestra red de casa u oficina, la url donde escribimos "192.168.1.104"
será la IP pública (p.e.:
62.165.23.12).


Ánimo, espero vuestros comentarios y sugerencias. Mientras tanto, voy
preparando la 2ª fase de
este mismo proyecto, donde avanzaremos un poco más. Si hay interés,
hasta podemos proseguir
con más fases del proyecto...

Visitas: 17

 

© 2024   Creado por Admin Grupos Robótica.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio