Julio 12, 2017

Aumenta la memoria "RAM" de tu omega2 con una USB

in Blog

by Andres Puerto

    Hace poco estaba tratando de correr unas librerias de python en mi omega2…
Junio 22, 2017

Como aumentar el almacenamiento principal de tu omega2 con una USB o SD

in Blog

by Andres Puerto

    Todos sabemos que omega2 cuenta con un máximo de almacenamiento de 16MB lo…
Mayo 28, 2017

Crea tu propio Scanner 3D

in Blog

by Andres Puerto

  Debido a la creciente industria de la impresión 3d nos hemos dado cuenta que…
Mayo 28, 2017

Bienvenidos al mundo de Onion!!!!

in Blog

by Andres Puerto

    Desde una aplicación de robótica hasta un servicio de streaming de música, estas…
Mayo 26, 2017

Introducción a Arduino

in Blog

by Matthew Locke

Hoy en día mucha gente sabe programar y tiene un conocimiento adecuado de los lenguajes…

download

 

En esta entrada explicaremos como hacer un pequeño monitor de voltaje de entradas análogas de nuestro arduino por medio de Nodejs y johnny-five, personalmente pienso que es  algo muy útil ya que de esta manera podremos saber el comportamiento en tiempo real de los sensores que tengamos instalados en nuestros proyectos.

 

 

 

Para realizar este proyecto necesitamos:

1 Arduino UNO.

1 Potenciómetro (en nuestro caso es de 5K pero no importa realmente de cuanto es)

Cables de conexión

Tener instalado nodejs (si no lo tienes instalado y no sabes como  remitete a este artículo Creando un minichat con nodejs)

Tener instalado socket.io express y johnny-five

socket.io https://www.npmjs.com/package/socket.io

express https://www.npmjs.com/package/express

johnny-five https://www.npmjs.com/package/johnny-five

Una parte importante del proyecto fue el uso de la libreria para graficas llamada Elycharts, básicamente es una librería para graficar datos ya sean en modo de series de tiempo , histogramas o piecharts, si desean conocer algo de esta interesante libreria pueden entrar a su website http://elycharts.com/.

Lo siguiente es hacer el sencillo montaje del circuito.

 

Untitled Sketch 2 bb

Noten como el pin de la mitad va en la entrada A1 de Arduino y los pines de los extremos van a 5Vdc y a GND.

Una vez hecho el montaje procedemos a quemar el Arduino con el siguiente ejemplo:

firmata

 

Realmente es muy importante que este paso sea completado de manera exitosa para que nuestro ucontroller entienda las órdenes de Javascript.

 

Una vez Terminada la parte de hardware procedemos con el código:

 

Para el servidor (analogread.js) tenemos lo siguiente:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var PORT = process.env.PORT || 8080;
var five = require("johnny-five");
var board = new five.Board();
app.get('/',function(req,res){
 
 res.sendFile(__dirname + '/voltimeter.html');
 
 
});
var volta;
board.on("ready", function() {
 // Usaremos como entrada analoga A1
 this.pinMode(1, five.Pin.ANALOG);
this.analogRead(1, function(voltage) {
volta=(voltage*5)/1023
 volta=Math.round(volta*100)/100;
 //console.log(voltage);
 
 
 });

 });
io.on('connection',function(socket){
setInterval(function(){
socket.emit('voltaje',volta);
},500);
});
http.listen(PORT,function(){
 console.log('el servidor esta escuchando el puerto %s',PORT);
});
 

 

Para el cliente (voltimeter.html)

<!DOCTYPE html>
<html>
<head>
 <title>Pruebas con elycharts</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://alespace.webcindario.com/javascript/raphael-min.js" type="text/javascript"></script>
<script src="http://alespace.webcindario.com/javascript/elycharts.js" type="text/javascript"></script> 
<script src="/socket.io/socket.io.js"></script>
<script>

function sub_plot(volt){
$("#chart").chart({
template : "pie_basic_2",
values:{
serie1:volt
}
});
}
var volt=[0];
$(function() {

 $("#chart").chart({
 template : "line_basic_2",
 tooltips : {
 
 },
 values : {
 serie1 : volt
 
 },
 defaultSeries : {
 fill : true,
 stacked : false,
 highlight : {
 scale : 2
 },
 startAnimation : {
 active : true,
 type : "grow",
 easing : "bounce"
 }
 }
});
});
$.elycharts.templates['line_basic_2'] = {
 type : "line",
 margins : [10, 10, 20, 50],
 defaultSeries : {
 plotProps : {
 "stroke-width" : 4
 },
 dot : true,
 dotProps : {
 stroke : "white",
 "stroke-width" : 2
 }
 },
 series : {
 serie1 : {
 color : "red"
 },
},
 defaultAxis : {
 labels : true
 },
 features : {
 grid : {
 draw : [true, false],
 props : {
 "stroke-dasharray" : "-"
 }
 },
 legend : {
 horizontal : false,
 width : 80,
 height : 50,
 x : 220,
 y : 250,
 dotType : "circle",
 dotProps : {
 stroke : "white",
 "stroke-width" : 2
 },
 borderProps : {
 opacity : 0.3,
 fill : "#c0c0c0",
 "stroke-width" : 0
 }
 }
 }
}

 var socket = io();
 var i=0;
 socket.on('voltaje', function(msg) {
 volt[i]=msg;
 sub_plot(volt);
 $("#valor").text(msg);
 i++;
 });
 
 
 
</script>
</head>
<body>
<div id="chart" style="width: 1000px; height:300px"></div>
<div id="valor" style="margin-left:250px; margin-top:10px; width: 500px; height:100px; text-decoration:none; color:#2E2EFE; font-family:Arial Black, Gadget, sans-serif; font-size:100px;"></div>
<div style="margin-left:500px; margin-top:10px; font-size:50px;">Volts</div>
</body>
</html>
 

 

Finalmente nos ubicamos en consola y dentro de la ruta en donde tenemos instalado node.js escribimos

node analogread.js

Si todo está bien lo unico que falta es escribir en el navegador http://Localhost:8080 y dependiendo de la posición de tu potenciómetro encontrarás algo asi:

 

nodeserver

 

Ahora gira el potenciómetro en diferentes posiciones probando para ver el resultado:

 

result

 

De esta manera podrás ver en tiempo real el voltaje que está recibiendo tu Arduino.

Ahora si deseas monitorear desde tu celular lo que debes hacer es lo siguiente:

Teclea ipconfig en tu consola para ubicar la IP de tu PC:

 

ipconfig 

 

La IP que esta resaltada es la dirección que necesitas ahora lo que debes hacer es conectar tu celular a la misma red de tu computador, y posteriormente en un browser de tu celular debes escribir la dirección ip encontrada mas el puerto por el que esta escuchando el servidor( en nuestro caso el puerto 8080):

IP:8080

Por ejemplo si tu IP es 192.168.1.1 lo que debes hacer es escribir en el browser de tu celular 192.168.1.1:8080  y veras como la aplicación de node aparece en tu teléfono.

 

IMG 2573

 

Bueno eso es todo en esta entrada y esperamos que haya sido de mucha utilidad, Saludos y no olviden seguirnos en twitter: @emb_ideas