Conducir a una página web en tiempo real usando Arduino, SensorMonkey y Processing.js (6 / 6 paso)

Paso 6: Datos de gráfica con Processing.js

En la parte final (y mejores) de este tutorial, voy a crear una página web simple para ver la salida de mi Arduino que ahora está siendo transmitido en vivo por Internet mediante SensorMonkey (he descargado la última biblioteca de Processing.js - 1.3.6 en el momento de la escritura - y lo colocó en el mismo directorio que la página web). Usted tendrá que editar el código más abajo para que coincida con las variables de ser escuchadas por su Arduino (a menos que ha copiado mi configuración del acelerómetro exactamente):

(¡ Importante! Debe reemplazar YOUR_NAMESPACE y YOUR_PUBLIC_KEY en el código de abajo con los asignados a usted cuando inicie sesión en SensorMonkey)

--------------------------------------------------------------------------------
<! Html DOCTYPE >
< html >
< head >
< title > unidad de una página web en tiempo real usando Arduino, SensorMonkey y Processing.js < / title >
< script tipo = "texto/javascript" src = "http://sensormonkey.eeng.nuim.ie/socket.io/socket.io.js" >< / script >
< script tipo = "texto/javascript" src = "http://sensormonkey.eeng.nuim.ie/js/client.min.js" >< / script >
< script tipo = "texto/javascript" src = "proceso 1.3.6.js" >< / script >
< estilo tipo = "text/css" >
nombre de .sensor {}
texto-alinee: Centro;
width: 300px;
}
{} de la lona
frontera: 1px sólido gris;
}
< / estilo >
< /HEAD >
< onload cuerpo = "setTimeout (ejecutar, 100);" >
< div clase = "nombre del sensor" > acelerómetro X < / div >
<-transformación-los orígenes de datos de la lona = "Graph.pde" id = "AccelX" >< / lienzo >
< div clase = "nombre del sensor" > acelerómetro Y < / div >
<-transformación-los orígenes de datos de la lona = "Graph.pde" id = "AccelY" >< / lienzo >
< div clase = "nombre del sensor" > acelerómetro Z < / div >
<-transformación-los orígenes de datos de la lona = "Graph.pde" id = "AccelZ" >< / lienzo >
< script tipo = "texto/javascript" >
función run() {}
var accelXGraph = Processing.getInstanceById ("AccelX");
var accelYGraph = Processing.getInstanceById ("AccelY");
var accelZGraph = Processing.getInstanceById ("AccelZ");

accelXGraph.setColor (255, 0, 0, 100);    Rojo.
accelYGraph.setColor (0, 128, 0, 100);    Verde.
accelZGraph.setColor (0, 0, 255, 100);    Azul.

// 1. Conectarse a SensorMonkey
// 2. Únete a espacio de nombres
// 3. Suscribirse al flujo de
// 4. Escuche 'publicar' y 'bulkPublish' eventos

var cliente = new SensorMonkey.Client ("http://sensormonkey.eeng.nuim.ie");
Client.on ("connect", function() {}
client.joinNamespace ("YOUR_NAMESPACE", "YOUR_PUBLIC_KEY", función (e) {}
Si (e) {}
ALERT ("error a espacio de nombres:" + e);
retorno;
}

client.subscribeToStream ("público/mi Arduino", function (e) {}
Si (e) {}
ALERT ("error al suscribirse a Arroyo:" + e);
retorno;
}

Client.on ("publicar", {} de la función (nombre, campos)
Si (nombre === "público/mi Arduino") {}
accelXGraph.update (campos ["acelerómetro X"]);
accelYGraph.update (campos ["acelerómetro Y"]);
accelZGraph.update (campos ["acelerómetro Z"]);
}
} );

Client.on ("bulkPublish", {} de la función (nombre, campos)
Si (nombre === "público/mi Arduino") {}
para (var i = 0, len = campos ["acelerómetro X"] .length; i < len; i ++) {}
accelXGraph.update (campos ["acelerómetro X"] [i]);
accelYGraph.update (campos ["acelerómetro Y"] [i]);
accelZGraph.update (campos ["acelerómetro Z"] [i]);
}
}
} );
} );
} );

Client.on ("desconexión", function() {}
ALERT ("cliente se desconectó!");
} );
} );
}
< /script >
< /body >
< / html >
--------------------------------------------------------------------------------

Sin entrar en demasiado detalle (puede encontrar más información sobre la API del cliente JavaScript aquí) el flujo de trabajo básico es el siguiente:

-Cliente importación
-Conectar a SensorMonkey
-Unir el espacio de nombres
-Suscribirse al flujo de
-Escuchar 'publicar' y 'bulkPublish' eventos

Para ver los datos, estoy usando el siguiente esbozo de Processing.js (guardar esto en un archivo denominado Graph.pde y coloque en el mismo directorio que la página anterior):

--------------------------------------------------------------------------------
int xPos = 0;       Coordenada horizontal se utiliza para dibujar el siguiente punto de datos.
int yMin = 0;       Valor mínimo de datos esperados.
int yMax = 1023;    Valor máximo de datos esperados.
color c;            Color del trazo se utiliza para dibujar el gráfico.

Establece el color del trazo se utiliza para dibujar el gráfico.
Colores vacío (int r, int g, int b, int a) {}
c = color (r, g, b, a);
}

void setup() {}
tamaño (300, 200);
frameRate (50);
Colores (255, 0, 0, 100);
drawGrid();
}

void draw() {} / / función draw() de vaciar.

void drawGrid() {}
int h = altura;
int w = ancho;

Fondo (255);

accidente cerebrovascular (127, 127, 127, 127);

Dibujar líneas horizontales.
línea (0, h / 4, w, h / 4);
línea (0, h / 2, w, h / 2);
línea (0, h * 3 / 4, w, h * 3 / 4);

Dibujar líneas verticales.
línea (w / 4, 0, w / 4, h);
línea (w / 2, 0, w / 2, h);
línea (w * 3 / 4, 0, w * 3 / 4, h);

Dibujar las etiquetas.
relleno (0);
texto (str (yMin), 5, h - 5);
texto (str (yMax), 5, 12);
}

{} void update (datos de flotador)
Al llegar al borde de la pantalla, envolver al principio.
Si (xPos > = ancho) {}
xPos = 0;
drawGrid();
}

Ver el punto de datos y aumentar la coordenada horizontal.
datos = mapa (información, yMin, yMax, 0, altura);
carrera (c);
línea (xPos, altura, xPos, altura - datos);
xPos ++;
}
--------------------------------------------------------------------------------

En su caso, dependiendo de los sensores que está transmitiendo, puede que necesite más o menos gráficos en tu página web. Puede editar el archivo Graph.pde si desea aumentar o disminuir el tamaño de los gráficos, la gama de valores de datos que puede ser trazado, la velocidad de fotogramas etc.. Recuerde incluir el archivo Graph.pde una vez para cada variable que se desea trazar (dentro de un elemento < canvas >) y nombrarlos por consiguiente (e.g. < lona fuentes de procesamiento de datos = "Graph.pde" id = "TemperatureSensor" >< / lienzo >). Entonces, sólo tiene que obtener una referencia a la gráfica (obtenida mediante el método de Processing.getInstanceById() ) y uso la función update() para trazar nuevos puntos de datos recibió en "publicar" y "bulkPublish" controladores de eventos.

Eso es todo! Ahora tengo un acelerometro manejando una página web en tiempo real usando Arduino, SensorMonkey y Processing.js. Puedo alojar la página web en un servidor web público y dirigir personas para ver el enlace en cualquier dispositivo con un navegador compatible con HTML5. Gracias por leerme y mirar hacia fuera para más instructables mostrando más avanzados los proyectos y casos de uso en un futuro cercano.

Artículos Relacionados

Cómo incrustar vídeos en una página web usando HTML5

Cómo incrustar vídeos en una página web usando HTML5

este tutorial le mostrará cómo poner cualquier video en un sitio web usando HTML5 y la nueva etiqueta. Mediante el uso de HTML5 puede tener videos en su sitio de Internet sin necesidad de algún plugin como Adobe Flash, y se puede reproducir en dispos
Controlar las luces a través de una página web!

Controlar las luces a través de una página web!

Después de jugar con los controladores de RF por un tiempo, me di cuenta de una importante desventaja es la necesidad de disponer de un transmisor para enviar una señal al receptor. ¿No sería agradable si podía usar mi teléfono como emisor? Bueno, es
Página Web de raspado desde/hacia una página web.

Página Web de raspado desde/hacia una página web.

El objetivo del proyecto es tomar el mando como archivos por lotes y hacerlos accesibles desde la web. Podrás hacer tu propia página web y no tener que depender de alguien para preparar para usted. Web para raspar de nuevo a la web la página otra vez
Cómo hacer una página web

Cómo hacer una página web

Aprende a crear tu propia página web usando HTML!Paso 1: Introducción:La columna vertebral de cualquier página web se compone de archivos de Hyper Text Markup Language (HTML). Esta guía le mostrará cómo crear una sencilla página web utilizando su últ
Cómo cambiar una página web dentro del navegador web Google Chrome

Cómo cambiar una página web dentro del navegador web Google Chrome

este instructable le mostrará cómo cambiar una página web usando el navegador Chrome.Todo lo que necesitas es el navegador de Google Chrome y un ordenador.Paso 1: Abra una página web Abra el navegador de Google Chrome y abrir cualquier página web que
Guardar una página web con todo lo que en XP (NO requiere INTERNET!)

Guardar una página web con todo lo que en XP (NO requiere INTERNET!)

En este instructable, voy a mostrarte cómo guardar una página web utilizando internet explorer, Microsoft Windows XP Pro. y una conexión a internet. Al hacer esto, requiere una conexión a internet para cargar la página web, pero no a ver cuando se gu
PSD a HTML5 conversión: agregar un Slider HTML5 a una página web - parte 1

PSD a HTML5 conversión: agregar un Slider HTML5 a una página web - parte 1

hace ya más de un año HTML5 hizo su manera en la industria web. Pero aún queda mucha gente, generalmente incluyendo los principiantes y los intermedios, resulta difícil hacer un Slider HTML5 para una página web. Así que con este PSD a tutorial de con
Actualizar datos de MySql en una página Web

Actualizar datos de MySql en una página Web

En mi primer Instructable "Arduino conseguir datos a una página web" hablé acerca de actualizar los datos mediante el comando Meta para refrescar el contenido de datos de MySQL. El problema con esto es que se actualiza la página entera y posible
Cómo divertir a una página web-Cool

Cómo divertir a una página web-Cool

Cómo divertir a una página web - ver los mejores video clips aquí usar este truco para desviar ejemplo de dirección de la Página Web... Si entras a google.com en la url, inmediatamente se desvían en el metacafe o cualquier sitio web que configuró sig
Cómo crear iWeb de una página web usando Apple

Cómo crear iWeb de una página web usando Apple

queremos mostrarte cómo crear una página web con aplicación de iWeb de Apple. Que enseñarle cómo hacerlo en 5 pasos!Paso 1: Paso 1: abrir y elegir temaDesde la pantalla principal, haga clic en la carpeta de aplicaciones o la plataforma de lanzamiento
¿Video Tutorial: Como crear una página Web con los productos SliceMaker?

¿Video Tutorial: Como crear una página Web con los productos SliceMaker?

Este es un video tutorial de productos SliceMaker. En este video tutorial te enseñamos cómo crear una página web completa con la ayuda de productos SliceMaker.No necesita escribir los códigos manualmente al crear una página web con los productos Slic
¿Slicemaker Tutorial: Cómo crear una página Web con SliceMaker productos?

¿Slicemaker Tutorial: Cómo crear una página Web con SliceMaker productos?

SliceMaker Soft seguirá proporcionándole nuevos tutoriales de vídeo sobre cómo usar sus productos. Este es uno de los video tutoials de productos SliceMaker. A través de este tutorial, aprenderás fácilmente cómo crear una página web con los productos
¿Cómo crear una página web sin conocimientos de programación?

¿Cómo crear una página web sin conocimientos de programación?

a través de este tutorial, usted puede crear fácilmente una página web dentro de varios pasos en lugar de escribir los códigos web complicadas.
Control web en tiempo real para las decoraciones de luz (sin servidor lado codificación)

Control web en tiempo real para las decoraciones de luz (sin servidor lado codificación)

Arduino Ethernet es un dispositivo impresionante. Esto es cómo operar las luces de temporada festivas desde donde quieras:-por un simple clic en su página de web (unas pocas líneas de HTML, no javascript o cualquier otra codificación es necesario);-e