Story Transcript
SENSOR TEMPERATURA ARDUINO INALAMBRICO – VERSION USB VERSIÓN 1.0 – 17 MAYO 2014
Hoy vamos a fabricar un sensor de temperatura inalámbrico, basado en módulos ARDUINO, y lo conectaremos a nuestro VERA. ¿Y que es Arduino? Os preguntaréis. Pues Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos de todo tipo. Suena un poco complicado pero en realidad lo que nos permite Arduino es tener acceso a multitud de proyectos electrónicos de manera relativamente sencilla y a un precio muy económico. Hay miles de sitios en internet donde buscar información acerca de lo que se puede hacer, tutoriales, tiendas, etc. También existen multitud de libros que podéis encontrar, tanto en español como en ingles. Aparte de sensor de temperatura, podemos fabricar sensores de luz, humedad, presión atmosférica, lluvia, controlar otros elementos como lámparas, motores, bombas, etc. La lista es interminable. Pero eso ya lo veremos más adelante. De momento vamos a empezar con los básico. Este manual está basado en los sensores desarrollados por los chicos de MySensors. Abajo os dejo el link. Está en inglés pero merece la pena echarle un vistazo. LO BUENO:
Dispositivos relativamente pequeños y baratos, fáciles de construir y con muchas posibilidades. LO MALO:
Interesante tener un mínimo conocimiento de electrónica y manejo de algunas herramientas.
Aquí tenéis la página oficial: http://www.arduino.cc/es/ Página de referencia MySensors en inglés con mucha información interesante: http://www.mysensors.org/build/
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
1
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
NOCIONES BÁSICAS: Antes de empezar vamos a repasar algunas cosas que serán necesarias para que todo vaya bien en el montaje. Este tutorial está enfocado a personas con pocos o ningún conocimiento de electrónica, así que no entraré demasiado en detalles técnicos, sino que iré dando las instrucciones para lograr montar este pequeño proyecto. Puede parecer a veces complicado, pero con un poco de paciencia y ganas de aprender lo tendremos listo en poco tiempo. Si os da un poco de miedo yo os animo a que lo intentéis. Como he dicho antes, este sensor de temperatura que vamos a construir es inalámbrico, pero también he dicho que es una versión USB. Pues bien, este tipo de sensores se basa en un nodo central que es el que recoge toda la información de los demás sensores (en nuestro caso, solo tendremos un sensor de temperatura). Los sensores se comunican de manera inalámbrica con el nodo central, y es el nodo central el que está conectado mediante USB a nuestro VERA. En otro tutorial veremos que también podemos construir un nodo central que se comunique con el VERA mediante un cabe de red Ethernet. Este es un esquema de cómo funciona la nube de nodos (en el caso de tener muchos sensores)
NC – este es el nodo central, que conectaremos a nuestro VERA mediante un cable USB S – estos son los módulos de los sensores. Cada módulo de sensor, podría tener varios sensores conectados. Estos módulos recogen la información de los sensores conectados a él y los transmiten inalámbricamente al nodo central. R – estos módulos son básicamente iguales que los S, pero los configuramos en modo repetidor. Esto nos puede venir bien si por ejemplo vivimos en una casa muy grande o tenemos sensores muy alejados del nodo central NC. El módulo R puede tener sensores conectados, pero además recoge información de los módulos R cercanos para enviarla al NC. De momento no vamos a meternos con este tipo de módulos. Nuestro esquema es el más sencillo de todos. Tenemos un nodo central NC conectado al VERA y un nodo sensor S al que conectaremos la sonda de temperatura. Nuestro esquema sería algo así:
Una vez claro el esquema de cómo funciona la nube de sensores, vamos a ver las piezas que vamos a necesitar para cada elemento.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
2
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Nodo Central – NC 1. Para este elemento necesitaremos un Arduino Nano porque es el que mejor va a reconocer el VERA. Es pequeño e incluye un conector mini USB de serie.
Lo podéis encontrar en muchos sitios, pero el que yo he utilizado lo podéis comprar aquí: http://www.aliexpress.com/snapshot/297859581.html Este Arduino funciona con una alimentación de 5 voltios, con lo que se puede alimentar directamente del puerto USB del VERA sin necesitar una fuente de alimentación externa. 2. También necesitaremos un módulo de radio RF NRF24L01+ de 2.4GHz para comunicarse con los demás nodos. Yo he utilizado este : http://www.aliexpress.com/snapshot/297859580.html
En este caso es un paquete de 10 unidades, que nos van a venir bien para hacer varios sensores. También los podéis encontrar de uno en uno, pero serán más caros. Este módulo se alimenta con 3,3 voltios, por lo que necesitaremos añadir un regulador de tensión para rebajar los 5v a 3,3v. 3. Un regulador de tensión, por ejemplo el LE33. Lo podéis encontrar aquí: http://www.aliexpress.com/snapshot/297859585.html También viene en paquetes de 10 unidades.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
3
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
4. También necesitaremos un breadboard. Por lo menos al principio viene bien porque facilita mucho las tareas de conexión de los elementos. Yo he usado estos: http://www.aliexpress.com/item/5pcs-lot-Mini-Solderless-Prototype-Breadboard-170-Tie-points-Breadboard-for-ATMEGA-PICArduino-UNO/1439524620.html
5. Y por último algunos cables para realizar las conexiones. Podéis hacerlos vosotros mismos o comprar algunos ya hechos como estos: http://www.aliexpress.com/item/Free-Shipping-80pcs-20cm-2-54mm-1p-1p-Pin-Male-to-Female-Color-Breadboard-CableJump/1676962535.html En este caso necesitamos que sean macho-hembra, como los de la imagen:
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
4
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Nodo sensor – S 1. Para los módulos de sensor podemos usar cualquier tipo de Arduino. Podemos seguir usando el Arduino nano de antes (es más caro) o usar un Arduino Pro Mini como los que he usado yo. Son más pequeños, no tienen conector USB, por lo que necesitaremos otra pieza para poder programarlos, pero una vez programados, ocupan menos. Hay dos tipos de Arduino Pro Mini, uno que se alimenta a 3,3v y otro a 5v, que es que he usado yo. Los que se alimentan a 3,3v consumen menos electricidad, funcionan más despacio, pero son ideales para dispositivos alimentados a pilas. Yo he usado estos: http://www.aliexpress.com/snapshot/297859577.html
Hay que tener mucho cuidado con los voltajes de cada elemento, ya que conectar una pieza de 3,3v a 5v supone que se queme y deje de funcionar. También hay que tener mucho cuidado, como norma general, de descargarse de electricidad estática tocando algo metálico (la carcasa del ordenador, un radiador…) porque una descarga puede estropear los elementos electrónicos. Tened cuidado con moquetas y ropa sintética. 2. Necesitamos otro módulo de radio NRF24L01+ como el anterior para comunicarse con el nodo central. Por eso nos va a venir bien que venga en paquetes de 10. 3. Necesitamos otro regulador de corriente LE33 4. Cables de conexión, pero esta vez necesitaremos además cables hembra-hembra.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
5
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
5. Necesitamos la sonda de temperatura propiamente dicha. Yo he utilizado el modelo DS18b20 pero encapsulado para hacerlo más resistente, aunque podéis usar la versión sencilla, o incluso una preparada en módulo lista para conectar. http://www.aliexpress.com/item/Waterproof-DS18b20-Stainless-steel-package-Waterproof-DS18b20-temperature-probetemperature-sensor-18B20-For-Arduino/1528827132.html
6. También una resistencia de 4K7 Ohmios para conectar el sensor DS18b20. Podéis comprarlas a granel como aquí: http://www.aliexpress.com/item/Free-shipping-Resistor-Kit-Metal-Film-Resistor-1-1-4W-4K7-R-100pcs-0-25W/1066084051.html O comprarlas por unidades en una tienda de electrónica que tengáis cerca. Los colores serán amarillo-morado-rojo. El cuarto color es la tolerancia (dorado=5%)
7. Si os habéis decidido por utilizar Arduino Mini Pro como yo, vamos a necesitar un componente extra, ya que este no tiene conector USB, y lo necesitamos para programarlo. Yo he utilizado el modelo FT232RL que podéis encontrar aquí: http://www.aliexpress.com/snapshot/297859582.html Solo necesitaremos uno de estos módulos, ya que podemos usarlo para programar todos los Arduino pro mini que tengamos. Si habéis elegido otro tipo de Arduino con USB no os hace falta comprar este módulo.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
6
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Pues con estos elementos ya tenemos todo lo necesario para empezar. Si echáis cuentas, os habrá salido este montaje por menos de 20€, más aún si descontamos los casi 5€ que cuesta el módulo USB, que lo podemos reutilizar para más sensores. Este sería el precio de los dos módulos, el nodo central y el nodo sensor incluido el sensor de temperatura propiamente dicho. Podemos, por ejemplo, añadir otra sonda de temperatura al módulo sensor, con lo que añadiendo unos 3€ tendríamos otro punto de control. Si usamos sondas sin el cable, será aún más barato. Añadir otro nodo sensor al sistema con sonda de temperatura supondría menos de 8€. Como veis, el sistema es bastante barato y realmente nos puede dar la misma funcionalidad que otros sistemas mucho más caros. El proceso que vamos a seguir es el siguiente: 1. 2. 3. 4.
Montaje del módulo NC (nodo central) Programación del módulo NC Instalación del plugin en nuestro VERA para manejar los sensores Conexión del módulo NC al VERA mediante el cable USB y configuración del mismo.
5. Montaje del módulo S (nodo sensor) 6. Programación del módulo S 7. Añadir sensor S al módulo NC
Os aconsejo que una vez montados los elementos, reviséis concienzudamente una por una todas las conexiones antes de enchufarlo a la corriente. Con esto nos evitaremos problemas de mal funcionamiento, estropear algún módulo o incluso el puerto usb del ordenador. También sería recomendable utilizar un hub usb intermedio por si acaso.
MONTAJE DEL MÓDUNO NC (NODO CENTRAL) Ha llegado el momento de ponernos manos a la obra. Para este módulo necesitaremos: Arduino Nano + módulo RF + regulador de corriente + breadboard + 8 cables macho-hembra
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
7
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Antes de empezar a conectar cosas, os voy a explicar brevemente como funciona un breadboard. Este en concreto es de los más sencillos. Se utiliza este tipo de elemento para hacer todas las conexiones sin necesidad de utilizar un soldador. Además nos sirve de base sobre la que trabajar.
Veis que hay dos grupos de agujeros separados por una hendidura central. Pues bien, si cogemos la columna 15 por ejemplo, tenemos agujeros en la parte de arriba (del A al E) que están todos conectados y en la parte de abajo (del F al J) que están conectados, pero no a los anteriores. En el esquema de la derecha vemos como están conectados los agujeros. Si tenéis curiosidad, podéis buscar más información en internet: http://rduinostar.com/documentacion/general/protoboard-que-es-y-como-funciona/ http://www.reflexiona.biz/shop/content/28-usar-una-breadboard-es-facil https://www.youtube.com/watch?v=BEJXEDmzEj0
Lo primero que tenemos que hacer es pinchar el Arduino nano en el breadboard en la posición que os indico. Hay que hacerlo con cuidado para que no se doblen las patillas, intentando apretar desde todos los puntos poco a poco.
Utilizad los agujeros marcados en la imagen de la izquierda, para que quede en la posición indicada en la imagen de la derecha. Como podéis ver, los agujeros donde está pinchado el Arduino están en verde, así como los que están por encima y por debajo, indicando que están conectados entre si.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
8
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Lo siguiente es conectar el módulo RF con el Arduino a través del regulador de corriente. Recordad que el módulo RF funciona a 3,3v mientras que el Arduino funciona a 5v. Utilizamos 8 cables macho-hembra para conectar los módulos a través del breadboard. Hay que prestar mucha atención a las patillas y los puntos a conectar.
Aquí os pongo un esquema de conexiones con las patillas de cada elemento Arduino nano Arduino GND 5VReg 3.3V 9 10 13 11 12 2
Radio GND VCC
Color NEGRO ROJO
CE CSN/CS SCK MOSI MISO IRQ
NARANJA AMARILLO VERDE AZUL VIOLETA GRIS
modulo RF radio
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
9
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Y aquí está el esquema de patillas del regulador de tensión:
Arduino 5V GND
Regulador Vin GND Vout
Radio GND VCC
El Arduino nano tiene una salida a 3,3v, pero para no complicarnos mucho la vida con versiones diferentes del circuito, vamos a utilizar el mismo regulador que necesita el Arduino pro mini. Una vez conectado, debería quedar algo parecido a esto a la siguiente imagen. Yo he usado otras posiciones del breadboard, pero si seguís el esquema de antes todo debería funcionar perfectamente.
El LED y la resistencia extra que veis en la foto los he añadido para indicar cuando el módulo recibe una señal de un nodo sensor. En este caso no lo vamos a instalar y lo dejaremos para otro tutorial. Revisad todos los cables y contactos para comprobar que esta todo correctamente conectado antes de pasar al siguiente paso: la programación del módulo.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
10
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
PROGRAMACIÓN DEL MÓDULO NC Si habéis revisado las conexiones y está todo correcto, lo siguiente es programar el módulo. Descargamos el entorno de programación de la siguiente página: http://arduino.cc/en/Main/Software#toc1
y descargamos el que corresponda con nuestro ordenador y lo instalamos. Si tenemos Windows vista o superior o un Mac, los drivers del USB se instalaran automáticamente al conectar el módulo. Si tenemos Windows XP, debemos instalar los drivers manualmente. Los podéis descargar aquí: http://www.ftdichip.com/Drivers/VCP.htm
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
11
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Conectamos el módulo al ordenador y debería reconocerlo e instalar lo que necesite. El LED azul debería estar encendido, y si es un Arduino nuevo, debería haber otro LED parpadeando. Este es el funcionamiento por defecto. Antes de abrir el programa de Arduino, tenemos que instalar una serie de librerías que serán necesarias cuando vayamos a compilar los programas de Arduino. Para ellos nos dirigimos a esta dirección y descargamos el archivo zip. https://github.com/mysensors/Arduino/archive/master.zip Abrimos el programa de Arduino que hemos instalado antes y veremos una pantalla similar a esta, que es la ventana principal donde escribiremos el código a programar en el Arduino.
Para saber donde debemos descomprimir el archivo descargado, vamos a las preferencias del programa y nos fijamos en la carpeta donde está nuestra librería:
en mi caso está en una carpeta llamada Arduino, dentro de Documents.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
12
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
En esta carpeta es donde debemos descomprimir el archivo descargado antes, quedando algo así:
SI nos dice que ya existe la carpera libraries, la sobreescribimos. Para que podamos usar estas librerías, debemos reiniciar el programa de Arduino. Ahora entramos en el menú HERRAMIENTAS (o TOOLS), pinchamos en TARJETA (o BOARD) y elegimos el tipo de Arduino que estamos utilizando. En este caso Arduino Duemilanove or Nano w/ ATmega328.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
13
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Tenemos que seleccionar el puerto serie al que hemos enchufado nuestro módulo. Para ello vamos a HERRAMIENTAS (o TOOLS), PUERTO SERIE (o SERIAL PORT) y elegimos el puerto correspondiente al dispositivo conectado.
En este caso, como uso un MAC, mi puerto es el indicado. En caso de tener Windows, el puerto será normalmente COM3 (o incluso un número mayor). Si no estamos seguros, podemos mirar que puertos hay en el listado, desconectamos el dispositivo del USB y volvemos a mirar. El que falte será nuestro puerto. Una vez configurado todo, vamos a cargar el programa correspondiente en nuestro Nodo Central. Para eso abrimos el archivo SerialGateway.ino (está en la carpeta anterior) con el programa de Arduino y obtendremos una pantalla parecida a esta:
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
14
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Una vez abierto el programa, vamos a enviarlo al Arduino. Para eso pulsamos en el botón redondo con la flecha hacia la derecha para compilar y cargar el programa en el Arduino.
Empezará a compilar y luego lo enviará al Arduino.
Al terminar no deberíamos ver ningún mensaje de error. En lugar de Cargando… deberíamos ver Carga Terminada. Esto nos indica que ya hemos terminado con la programación, y podemos desconectar el Arduino del puerto USB del ordenador. Lo siguiente será instalar el plugin de VERA para poder controlar los sensores.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
15
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
INSTALACIÓN DEL PLUGIN EN VERA Si habéis seguido alguno de mis otros tutoriales, veréis que este proceso no es muy distinto de la instalación de otros plugins.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
16
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
CONEXIÓN DEL MÓDULO NC AL VERA
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
17
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
MONTAJE DEL MÓDULO S (NODO SENSOR)
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
18
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
PROGRAMACIÓN DEL MÓDULO S
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
19
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
AÑADIR SENSORES AL MODULO NC Y AL VERA
c
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
20
MANUAL DE INSTALACIÓN – SENSOR DE TEMPERATURA INALÁMBRICO con ARDUINO – VERSION USB
VERSIÓN 1.1
Información legal 1. Propiedad intelectual Todos los derechos de propiedad intelectual del contenido está bajo una licencia Creative Commons Share-Alike, cuyo contenido podéis revisar aquí. Por tanto queda permitido copiar, distribuir, comunicar públicamente la obra y hacer obras derivadas de la misma, siempre que se respeten los términos de la licencia arriba reseñada.
2. Actualizaciones y modificaciones El autor se reserva el derecho a actualizar, modificar o eliminar la información contenida en este tutorial, y la configuración o presentación del mismo, en cualquier momento, sin previo aviso, y sin asumir responsabilidad alguna por ello.
3. Indicaciones sobre aspectos técnicos El autor no asume ninguna responsabilidad que se pueda derivar de problemas técnicos o fallos en los equipos informáticos, que se produzcan a causa de los circuitos e ideas expuestos aquí, así como de los daños que pudieran ocasionar por un uno inadecuado. El autor se exime de toda responsabilidad ante posibles daños o perjuicios que pueda sufrir el usuario a consecuencia de errores, defectos u omisiones en la información facilitada.
© 2014 · Onoka Studio · Fernando Checa Manrique de Lara
21