Ampliación para el sistema domótico, módulos inalámbricos

En esta entrada, vamos a realizar un montaje para poder ampliar el sistema domótico y consiste en crear dos módulos inalámbricos para el control de luces , persiana y con sensor de temperatura el cual funcionará de forma inalámbrica.

control domotico

Para empezar, vamos a usar una arduino MEGA para el control principal, que se encargará de controlar lo que deseemos de forma cableada, conectarse a la red y conectarse a los módulos inalámbricos. En este ejemplo solo esta programado el sistema inalámbrico. Y para la conexión inalámbrica usaremos módulos NRF24L01.

524439538_380

24L01Pinout-800

La conexión del módulo NRF24L01 a la placa Arduino MEGA la haremos siguiendo el siguiente esquema.

MEGA NRF24L01

 

Para los módulos inalámbricos seguiremos el siguiente esquema, en el que solo he marcado las salidas, en la que tendríais que poner una placa de relés, o bien unos led con su resistencia para probar.

modulo inalambrico 6 salidas + temperatura

 

Este proyecto es para dos receptores , pero podríais hacer más.

El control del sistema se realiza como en los anteriores, con la aplicación NetIO, en la que el interface de la pantalla quedará de la siguiente manera.

IMG_0332

IMG_0333

 

 

En primer lugar, hay que tener en cuenta el canal que estamos usando para el envío y recepción de los datos, en la linea 8 del código de los módulos inalámbricos es donde podremos modificar los canales que se usan…

const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

Podremos modificar estos canales si usamos estos módulos en otros proyectos y así no tener problemas, podríamos poner por ejemplo lo siguiente…

const uint64_t pipes[2] = { 0xF0F0F0F0F2LL, 0xF0F0F0F0E3LL };

Esto tendríamos que cambiarlo en todos los sketches , es decir, en todos los módulos que tengamos y también en de la placa receptora principal.

Para la identificación de los datos que recibimos de las salidas de los módulos he usado la siguiente forma de identificarlos…

1º el numero de interruptor o pulsador : 1 , 2 ,3 ,…. 10,11,12… etc…

2º un “0” para apagar y un “1” para encender…

Es decir, si el módulo recibe un 31, encenderá la salida 3, si recibe un 30 apagará la salida 3.

Teniendo en cuenta que los módulos tienen 6 salida, 4 de luces y dos para la persiana…

módulo 1: 1 (luz 1) , 2 (luz 2), 3 (luz 3), 4 (luz 4) , 5 (subir persiana) , 6 (bajar persiana)

módulo 2: 7 (luz 1) , 8 (luz 2), 9 (luz 3), 10 (luz 4) , 11 (subir persiana) , 12 (bajar persiana)

Creo que es una forma bastante sencilla de poder añadir más módulos y poder controlarlos de forma fácil.

Y por último, tenemos los sensores de temperatura , que ambos módulos envían información cada 2,5 segundos, lo que he decidido hacer para poder identificarlos es sumarle 1100 a la lectura de la entrada analógica del módulo 1, 2200 a la lectura de la entrada analógica del módulo 2…

Una vez enviado ese dato, el módulo principal solo tiene que hacer una comparación para saber de que módulo le ha llegado el dato, es decir si el dato está entre 1100 y 2200 el dato es del modulo 1 si esta entre 2200 y 3300 es del módulo 2.. si queremos añadir más módulos sumaria 1100 a la del modulo anterior, 1100 para el módulo 1, 2200 para el módulo 2, 3300 para el módulo 3… y así sucesivamente.

 

 

El Sketch de la placa MEGA, Descargar AQUI.

El sketch del módulo inalámbrico 1, Descargar AQUI.

El sketch del módulo inalámbrico 2, Descargar AQUI.

El entorno de control para NetIO, Descargar AQUI.

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s