Automatización del Hogar con Arduino: Circuito, Código y Guía DIY
Proyecto de Sistema de Automatización Doméstica Inteligente con Arduino
La automatización (domótica, industrial) es clave hoy: permite realizar tareas con menos intervención humana y de forma más inteligente. Los hogares se vuelven más inteligentes; los electrodomésticos usan interruptores remotos en lugar de convencionales. Casi todos tienen smartphone, y usarlo para controlar la casa con un clic o mensaje es ya realidad. Mediante controladores y módulos de comunicación, los aparatos se controlan remotamente. En este proyecto usamos Arduino UNO y módulo Bluetooth HC-05 para control desde smartphone. Es de gran ayuda para personas con movilidad reducida.
Componentes Necesarios:
- Arduino UNO
- Módulo Bluetooth HC-05
- Relés
- Cables jumper
- Bombillas
- App Bluetooth Terminal HC-05 (Play Store)
Arduino UNO:
Plataforma open-source para proyectos electrónicos. Fácil de programar, borrar y reprogramar. Existen muchas placas (UNO, Nano, Mega, LilyPad). Usamos UNO con microcontrolador ATmega328 a 16 MHz. Soporta USART, I2C, SPI. Se programa vía IDE Arduino y cable micro-USB. Tiene bootloader integrado para cargar código sin hardware externo. Lenguajes C/C++, fáciles. IDE separa código en setup() (una vez) y loop() (continuo).
6 entradas analógicas, 14 pines GPIO digitales (6 PWM). Entradas analógicas A0-A5 (10 bits). Alimentación por USB (5 V) o jack DC (7-20 V). Regulador onboard a 3,3 V. Pines de comunicación: 0(Rx)/1(Tx) USART; A4(SDA)/A5(SCL) I2C; 10(SS), 11(MOSI), 12(MISO), 13(SCK) SPI. Ideal para domótica.
Módulo Bluetooth HC-05:
Comunicación serial inalámbrica bidireccional entre microcontroladores, smartphones, PC, sensores. Alcance <100 m (según condiciones). Protocolo USART. Funciona en modo maestro/esclavo (por defecto esclavo). Baud rates: 9600 a 460800. Modo comando (pin KEY alto) y modo datos (KEY bajo). Comandos AT para configurar nombre, contraseña, baud rate.
- AT – Verificar comunicación
- AT+NAME=hc-05 – Cambiar nombre
- AT+PSWD=1234 – Cambiar contraseña
- AT+UART=9600,1,0 – Configurar baud rate, stop bit, paridad
Pinout HC-05:
| Pin | Descripción |
|---|---|
| EN/KEY | Alto = Modo comando, Bajo = Modo datos (por defecto) |
| VCC | 3,3 V a 5 V |
| GND | Tierra |
| TXD | Transmisión serie |
| RXD | Recepción serie |
| State | Indica conexión/disconexión |
En este proyecto, HC-05 comunica Arduino UNO y smartphone. Conexión: TXD HC-05 → RX (pin 0) Arduino; RXD HC-05 → TX (pin 1) Arduino. EN/KEY en LOW. Emparejar smartphone con "HC-05" (pass: 0000 o 1234). LED integrado parpadea rápido al buscar, lento al conectar.
Aplicaciones del HC-05:
- PC y periféricos
- Receptores GPS
- Control industrial
- Proyectos con microcontroladores
Relé:
Interruptor electromagnético: pequeña corriente controla circuitos mayores. Bobina se magnetiza con poca corriente y acciona contactos para mayor corriente. Usados en telégrafos, centrales telefónicas, luego en lógica booleana. Variados tamaños. Aplicaciones: control de motores, automoción, industrial, domótica.
Usamos relé electromagnético para encender/apagar electrodomésticos (luz, ventilador, CA) con señales DC del Arduino. 6 pines: VCC, GND (alimentación), Data (señal 1/0 del micro), NC, COM, NO (para carga AC). Dos modos:
- Normalmente Abierto (NO): Cierra circuito al activar, abre al desactivar.
- Normalmente Cerrado (NC): Abre al activar, cierra al desactivar.
Pinout del Relé:
| Pin | Descripción |
|---|---|
| VCC | 5 V |
| GND | Tierra |
| Data | "1" o "0" del microcontrolador |
| NC | Circuito normalmente cerrado |
| COM | Común |
| NO | Circuito normalmente abierto |
Diagrama de Circuito
Diseñado con Arduino, Bluetooth, relés y LEDs (sustituibles por bombillas en hardware real). 4 relés para 4 aparatos (ampliables). Bluetooth serie con Arduino. Comandos desde app "Bluetooth Terminal HC-05" → Bluetooth → Arduino → acciones según comando.
Funcionamiento:
Conectar bombillas a red AC y relés según diagrama. Relés alimentados en DC desde Arduino. Pines de datos de relés en pines 8, 9, 10, 11 (salidas Arduino). Conectar HC-05 como en diagrama. Alimentar Arduino. Subir código (Arduino IDE). Encender Bluetooth en móvil, emparejar HC-05 (pass 0000/1234). Abrir app "Bluetooth Terminal HC-05". Enviar "bombilla1 on" o "bombilla2 off" para controlar.
Código del Proyecto
#include <SoftwareSerial.h>
int bombilla1 = 8;
int bombilla2 = 9;
int bombilla3 = 10;
int bombilla4 = 11;
SoftwareSerial bt(0, 1); // (Rx, Tx)
String str;
void setup() {
bt.begin(9600);
Serial.begin(9600);
pinMode(bombilla1, OUTPUT);
pinMode(bombilla2, OUTPUT);
pinMode(bombilla3, OUTPUT);
pinMode(bombilla4, OUTPUT);
}
void loop() {
if (bt.available()) {
str = bt.readStringUntil('\n');
str.trim();
Serial.println(str);
// Bombilla 1
if (str == "bombilla1 on") {
digitalWrite(bombilla1, HIGH);
Serial.println("BOMBILLA 1 ENCENDIDA");
} else if (str == "bombilla1 off") {
digitalWrite(bombilla1, LOW);
Serial.println("BOMBILLA 1 APAGADA");
}
// Bombilla 2
if (str == "bombilla2 on") {
digitalWrite(bombilla2, HIGH);
Serial.println("BOMBILLA 2 ENCENDIDA");
} else if (str == "bombilla2 off") {
digitalWrite(bombilla2, LOW);
Serial.println("BOMBILLA 2 APAGADA");
}
// Bombilla 3
if (str == "bombilla3 on") {
digitalWrite(bombilla3, HIGH);
Serial.println("BOMBILLA 3 ENCENDIDA");
} else if (str == "bombilla3 off") {
digitalWrite(bombilla3, LOW);
Serial.println("BOMBILLA 3 APAGADA");
}
// Bombilla 4
if (str == "bombilla4 on") {
digitalWrite(bombilla4, HIGH);
Serial.println("BOMBILLA 4 ENCENDIDA");
} else if (str == "bombilla4 off") {
digitalWrite(bombilla4, LOW);
Serial.println("BOMBILLA 4 APAGADA");
}
}
}
Explicación del Código:
Se importa SoftwareSerial.h para comunicación serial con HC-05. Se declaran pines de salida (8-11) para los 4 relés. Variable str almacena datos del smartphone. En setup(): inicia comunicación serial a 9600 baudios, configura pines como salida. En loop(): si hay datos Bluetooth, los lee y compara. Si coincide "bombilla1 on", pone pin HIGH (enciende relé); si "bombilla1 off", LOW (apaga). Igual para las otras 3. Así controlas cualquier electrodoméstico remotamente.
Tecnología Industrial
- SERENA: Sistema de Alarma Personalizado Arduino Mega 2560 con Pantalla TFT LCD Táctil
- Construye un sistema de automatización y seguridad del hogar inteligente con 1Sheeld
- Control Arduino UNO desde Python 3 – Envío de Comandos y Demo LED
- Sistema de control de asistencia RFID en tiempo real con Arduino y Google Sheets
- Octopod: Solución IoT Inteligente de Automatización para Hogar e Industria
- Kit de automatización doméstica WARAN: Raspberry Pi, Arduino, sensores y componentes
- Automatización del Hogar Inteligente con Conectividad Bluetooth
- Diseño de Cerraduras Inteligentes y Sensores: Estrategias Expertas de Protección y Sensado para Hogares Inteligentes Seguros
- Superando cinco obstáculos en el envío desde oficinas en casa para equipos remotos
- Silicon Labs Present Soluciones Wireless Gecko Avanzadas para Hogares Inteligentes y Automatización de Edificios en Embedded World 2019
- Cómo la tecnología de hogar inteligente transforma la vida cotidiana