browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

Denkovi USB 8 Relay Board control Web

Posted by on 11 febrero, 2014

 

El siguente paso para continuar con el «retrofit» del RCS-10, consiste en crear un interfaz web que pueda utilizar desde cualquier navegador web, ya sea en tableta, smartphone u ordenador. 

Para este interfaz web me baso en el servidor Apache2 disponible en los repositorios de la Raspberry , el framework Node.js que será el nexo de unión entre el interfaz web y el hardware , y la tecnología de Websockets, encargada de intercambiar la información de estado y los comandos entre el navegador web y la Raspberry.

Por defecto Node.js no soporta Websockets, así que es necesario instalar algún módulo del framework que nos proporcione esta tecnología. Uno de los más utilizados es Socket.io, que proporciona compatibilidad con navegadores antiguos que no soportan websockets. En mi caso y por comodidad he recurrido al módulo ws:, en el que está basado Socket.io.

Básicamente, al cargar la página con el interfaz web, se abre una conexión full-duplex entre nuestro dispositivo y la Raspberry a través de la cual enviamos los comandos de control y recibimos los mensajes de estado desde la Raspberry. Todo esto sin necesidad de tener que recargar el interface y en tiempo real!.

Al pulsar el botón de la antena seleccionada, se envía al websocket el comando, este lo interpreta y actúa en consecuencia, solicitando a Node.js que ejecute el programa creado en la entrada anterior con los parámetros adecuados. El websocket a su vez nos responde con un mensaje de estado, indicándonos si se ha realizado el cambio correctamente o no.

Tan solo queda cablear el mando de control y ya podemos cambiar de antena remotamente :)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>