Saturday, February 22, 2014

Raspberry Un mundo de posibilidades

El otro día hablaba de Arduino, nuestra pequeña placa que nos permite conectar con los periféricos. Teoricamente con un Arduino debemos tener suficiente para programar una casa domótica pero.. que pasa cuando queremos cosas complejas?
Que pasa cuando queremos que al hacer click en un interruptor.. si es de día.. y si la luz es inferior al parámetro X y la temperatura es... Y si queremos encender la luz con un tweet? Arduino solo, se nos queda pequeño. Solo disponemos de 32K de código y un procesador de 16 Mhz. En resumen, necesitamos algo mas potente que nos permita manejar la lógica.

Es aquí donde entran los miniPCs. Ordenadores pequeños y potentes, no mas grandes que la palma de mi mano. Entre estos, está RaspberryPI conocido también como el pc de los 25$
Este pequeño aparato consta de:

Procesador ARM 700mhz
512MB ram
GPU250mhz capaz de reproducir FULLHD
Sistema operativo: Debian ( RaspBian)

Raspberry tiene una distribucion adaptada de Debian a la que han llamado RaspBian. Así pues, podemos correr casi cualquier lenguaje que queramos en ella. En especial hay uno que ami me gusta mucho:

NodeJS

A modo muy introductorio, nodejs es una adaptación del motor de Javasript de chrome para correr en servidor.
Node no viene de sere con la distribución, es poreso que necesitamos instalarlo. Hay muchos tutoriales port internet pero he encontrado uno que es especialmente sencillo. Solo tenemos que ejecutar estos comandos:

wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb
# Check installation
node -v
          fuente: https://github.com/nathanjohnson320/node_arm

Con todo esto, ya podemos montar nuestra casa domotica!


Friday, February 7, 2014

Por donde empezamos? Arduino la puerta al harwdare

 Javascript mola mucho pero.. actualmente aun no me abre las luces de casa!!

si, ese es mi problema, no hay ninguna instrucción de javascript que me permita encender las luces. Si existiera, todo seria mas fácil :D

A falta que los programadores de Javascript la incorporen, vamos a buscar soluciones al problema. Hay muchos "aparatos" o dispositivos que nos permiten comunicarnos con las luces. Los hay de pago, intentos libres, por cable, por ethernet, por protocolos, por wifi.. Nosotros nos vamos a centrar en una placa que se llama Arduino.

Arduino es una placa que nos permite transformar nuestro código, a señales eléctricas con varios formatos que mas adelante explicaremos. A parte de esto, hay que decir que el diseño de la placa así como su programación es open-source lo cual ha hecho que esta placa sea muy atractiva para los desarrolladores.
 En los últimos años Arduino  ha tenido un crecimiento impresionante gracias  básicamente a su comunidad y a su facilidad de uso. La placa se programa en c, un c muy fácil de entender. Esto, sumado a la gran cantidad de tutoriales y manuales que hay, hacen que hacer cualquier cosa sea muy fácil.

En mi caso, sin tener experiencia alguna en electronica, me aventuré con Arduino mirando tutoriales. Al poco encendí un led y a medida que avanzaba, fui haciendo cosas mas complicadas.

Os dejo aquí el link de la pagina oficial de Arduino y un esquema típico de como es el código y el circuito que necesitamos:




int ledState = LOW;             // ledState used to set the LED
void setup() {  // Definimos por que pin va a salir la señal  pinMode(13, OUTPUT);      }
void loop(){ 
    if (ledState == LOW)      ledState = HIGH;    else      ledState = LOW;
          // esperamos 1000 segundos
              delay(1000);  
}

Con este pequeño código conseguimos hacer que una luz parpadee. Ya estamos mas cerca de la casa domotica!!

EL código consta básicamente de 2 funciones ( fijas y obligatorias) donde se define el código. Son Setup, y Loop.
En setup se definen las variables  y los estados que queremos al arrancar el programa.
Loop es una función que cuando termina, se vuelve a ejecutar, vamos un while(true){} de los nuestros

Arduino nos va a permitir controlar todas las entradas y salidad de nuestra casa. Llegados a este punto solo tenemos que hacer una cosa: googlear.

Existen infinidad de códigos para controlas multiples sensores. De luz, Agua, Pulsadores, Alarmas.. etc etc.

 El limite lo pone nuestra curiosidad!!




Tuesday, January 28, 2014

Console.log(‘Hello World!!’)


Hola a todos!

Me presento, Me llamo Marc Benito Soy Ingeniero Informático por la Universidad Politécnica de Catalunya y en mis ratos libres, me he aficionado a la electrónica/domótica. Aparte de esto, profesionalmente me dedico a la programación, y uno de mis lenguajes preferidos es NodeJS

El 3 de Febrero me han invitado a dar una conferencia en el WeLoveJS de Barcelona y me ha parecido interesante colgar  aquí mis reflexiones y parte del contenido que daré en la charla, como no, Domotica + Nodejs.

La charla básicamente consistirá en explicar como llevar NodeJS mas allá del navegador y de los servidores. Si, la idea es utilizar la potencia de Node para cosas como encender una luz o cualquier otra interacción con periféricos.

Adelanto 2 de los conceptos que explicaré en los  siguientes Posts:



Hasta la próxima!