Proyecto: Automatización de persianas. Control domótico con Arduino

En este nuevo proyecto de domótica veremos una idea simple pero poderosa: controlar las persianas de una habitación utilizando Arduino. Este proyecto te permitirá controlar tus persianas tanto desde un dispositivo móvil como desde un sensor táctil, sin necesidad de tener experiencia previa en Arduino o domótica.

1. Conceptos básicos y materiales necesarios:

Antes de comenzar, necesitarás reunir los siguientes materiales:

  • Arduino Uno (o cualquier otro modelo compatible)
  • Módulos de relé (uno por cada persiana que desees controlar)
  • Motores de persianas eléctricas (uno por cada persiana)
  • Sensor táctil
  • Cables de conexión (preferiblemente de colores diferentes para facilitar la conexión)
  • Protoboard (opcional, pero recomendado para organizar mejor las conexiones)
  • Fuente de alimentación para Arduino y los motores (asegúrate de que sea suficiente para la carga de los motores)

Estos materiales son fácilmente disponibles en tiendas en línea o físicas que vendan componentes electrónicos. A nosotros nos fué bastante bien comprando en https://www.suministroselectricos.es, tienen buenos precios y bastante stock. En la categoría «productos domótica« tienen varios sensores táctiles que se pueden usar para este proyecto.

2. Montaje del circuito:

El primer paso es conectar los componentes entre sí. Puedes seguir estos pasos:

1. Conecta los módulos de relé al Arduino utilizando cables de conexión. Cada módulo de relé controlará un motor de persiana.
2. Conecta los motores de las persianas a los módulos de relé. Asegúrate de conectar los cables correctamente según las indicaciones del fabricante del motor.
3. Conecta el sensor táctil al Arduino. Dependiendo del tipo de sensor táctil que tengas, puede que necesites consultar su hoja de datos o manual para conectarlo correctamente.
4. Si utilizas una protoboard, organiza las conexiones de manera ordenada para evitar cortocircuitos y facilitar el proceso de depuración.

3. Programación del Arduino:

Ahora, necesitarás programar el Arduino para que pueda recibir señales del sensor táctil y controlar los motores de las persianas. Aquí tienes un ejemplo de código:

#include <Servo.h>

Servo motorPersiana1;
Servo motorPersiana2; // Si se controlan más de una persiana, añadir más objetos Servo

int sensorPin = 2; // Pin conectado al sensor táctil
int estadoSensor; // Variable para almacenar el estado del sensor

void setup() {
motorPersiana1.attach(9); // Pin de control del primer motor
motorPersiana2.attach(10); // Pin de control del segundo motor
pinMode(sensorPin, INPUT); // Configurar el pin del sensor como entrada
}

void loop() {
estadoSensor = digitalRead(sensorPin); // Leer el estado del sensor

if (estadoSensor == HIGH) { // Si se detecta una pulsación en el sensor
abrirPersianas(); // Llamar a la función para abrir las persianas
} else {
cerrarPersianas(); // Llamar a la función para cerrar las persianas
}
}

void abrirPersianas() {
motorPersiana1.write(0); // Girar el motor en sentido de apertura
motorPersiana2.write(0); // Si hay más persianas, girar los demás motores
}

void cerrarPersianas() {
motorPersiana1.write(180); // Girar el motor en sentido de cierre
motorPersiana2.write(180); // Si hay más persianas, girar los demás motores
}

Este código controla dos persianas y utiliza un sensor táctil conectado al pin digital 2. Debes ajustar los pines y los números de los motores según tu configuración específica.

4. Control desde el móvil:

Para controlar el sistema desde un dispositivo móvil, puedes utilizar un módulo Bluetooth o WiFi conectado al Arduino. Existen aplicaciones móviles que te permiten enviar comandos al Arduino a través de Bluetooth o WiFi. Puedes crear tu propia aplicación o utilizar alguna ya existente, como Blynk o MIT App Inventor. Estas aplicaciones te permiten diseñar una interfaz fácil de usar para controlar tus persianas desde tu smartphone.

5. Integración y personalización:

Una vez que tengas el sistema funcionando, puedes personalizarlo aún más agregando sensores de luz para que las persianas se abran o cierren automáticamente según la luminosidad ambiente. También puedes integrar este proyecto en un sistema domótico más amplio, utilizando Arduino como centro de control para otros dispositivos de tu hogar.

Cómo recibir los comandos desde el móvil

Aquí tienes ejemplos de código para Arduino que puedes utilizar en conjunción con las aplicaciones Blynk y MIT App Inventor para controlar las persianas. Ambos códigos están diseñados para recibir comandos desde las aplicaciones y controlar los motores de las persianas en consecuencia.

Utilizando Blynk

1. Instalación y configuración de Blynk:
– Descarga e instala la aplicación Blynk desde la App Store (iOS) o Google Play Store (Android).
– Crea una cuenta en Blynk si aún no tienes una.
– Abre la aplicación y crea un nuevo proyecto.
– Selecciona el dispositivo «Arduino Uno» y la conexión «Bluetooth» o «WiFi», según lo que hayas utilizado en tu proyecto.

2. Diseño de la interfaz:
– Una vez creado el proyecto, podrás diseñar la interfaz de control. Arrastra y suelta los widgets que desees utilizar, como botones, sliders o interruptores.
– Asigna cada widget a un pin del Arduino que desees controlar. Por ejemplo, puedes asignar un botón para abrir las persianas a un pin digital y otro botón para cerrarlas a otro pin digital.

3. Configuración del código en Arduino:
Este código configura la conexión WiFi con Blynk y utiliza un slider en la aplicación Blynk para controlar la posición de la persiana. Ajusta los valores según sea necesario para que se adapten a tu configuración específica.

#define BLYNK_PRINT Serial
#include <SPI.h>
#include <WiFiNINA.h>
#include <BlynkSimpleWiFiNINA.h>

char auth[] = "TuAuthToken";
char ssid[] = "TuSSID";
char pass[] = "TuContraseña";

#define motorPin1 9
#define motorPin2 10

BlynkTimer timer;

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  timer.setInterval(1000L, actualizarBlynk);
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
}

void loop()
{
  Blynk.run();
  timer.run();
}

void actualizarBlynk()
{
  // Este es un ejemplo, deberás ajustar según tu diseño de interfaz en Blynk
  int valorSlider = map(Blynk.getValue(V1), 0, 255, 0, 180); // V1 es el pin virtual asociado al slider en la aplicación
  controlarMotor(valorSlider);
}

void controlarMotor(int angulo)
{
  digitalWrite(motorPin1, HIGH);
  delayMicroseconds(angulo * 11.11 + 500);
  digitalWrite(motorPin1, LOW);
}

4. Programación del Arduino:
– Utiliza el código generado por Blynk para tu proyecto específico. Este código establecerá la conexión con la aplicación Blynk y ejecutará las acciones según los comandos recibidos desde la interfaz de usuario en la aplicación.

5. Prueba y ajustes:
– Sube el código a tu Arduino y abre la aplicación Blynk en tu dispositivo móvil.
– Comprueba que la conexión entre la aplicación y el Arduino se establezca correctamente.
– Prueba los controles en la aplicación para asegurarte de que las persianas se abran y cierren según lo esperado.

Utilizando MIT App Inventor

1. Creación del proyecto:
– Accede al sitio web de MIT App Inventor (http://appinventor.mit.edu/).
– Inicia sesión con tu cuenta de Google.
– Crea un nuevo proyecto y elige el diseño de la interfaz de usuario.

2. Diseño de la interfaz:
– Utiliza los bloques de construcción disponibles en MIT App Inventor para diseñar la interfaz de usuario. Puedes agregar botones, sliders u otros elementos según tus preferencias.
– Personaliza la interfaz para que sea intuitiva y fácil de usar.

3. Programación de la aplicación:
– Utiliza los bloques de programación de MIT App Inventor para asignar acciones a los elementos de la interfaz. Por ejemplo, puedes programar un botón para enviar un comando específico al Arduino cuando se presione.
– Configura la conexión Bluetooth o WiFi en la aplicación para que pueda comunicarse con el Arduino.

4. Configuración del Arduino:
Este código espera recibir comandos desde la aplicación MIT App Inventor a través del puerto serial. Asegúrate de que el código en la aplicación MIT App Inventor esté configurado para enviar los comandos adecuados a través de Bluetooth o WiFi, según tu configuración.

#include <Servo.h>

Servo motorPersiana;
int pinMotor = 9;

void setup() {
  Serial.begin(9600);
  motorPersiana.attach(pinMotor);
}

void loop() {
  if (Serial.available() > 0) {
    int comando = Serial.parseInt();
    controlarMotor(comando);
  }
}

void controlarMotor(int angulo) {
  motorPersiana.write(angulo);
}

5. Prueba y ajustes:
– Sube el código a tu Arduino y abre la aplicación en tu dispositivo móvil.
– Verifica que la conexión entre la aplicación y el Arduino se establezca correctamente.
– Prueba los controles en la aplicación para asegurarte de que las persianas respondan según lo esperado.

Ambos métodos te permiten controlar tus persianas de forma remota desde tu dispositivo móvil, ofreciendo flexibilidad y comodidad en la automatización de tu hogar. Recuerda seguir las instrucciones específicas de cada plataforma y realizar pruebas exhaustivas para garantizar un funcionamiento correcto.

Para Finalizar

Con Arduino y un poco de creatividad, puedes crear un sistema de control domótico para tus persianas que te brinde comodidad y eficiencia en tu hogar. Este proyecto es ideal para principiantes en Arduino y domótica, ya que no requiere conocimientos avanzados y los materiales son fácilmente accesibles. ¡Anímate a probarlo y disfruta de un hogar más inteligente y cómodo!

Otros Proyectos con Arduino que pueden interesarte: