Electrodomésticos activados por voz: Control Bluetooth con Google Assistant
Componentes y suministros
| Componente | Cantidad |
|---|---|
| Arduino UNO | 1 |
| Módulo relé 4 canales | 1 |
| Módulo Bluetooth HC-05 | 1 |
| Cables jumper para Arduino | 1 |
Herramientas necesarias
- Pistola de pegamento caliente
- Soldador
Aplicaciones y servicios online
- App personalizada (desarrollada con MIT App Inventor)
Sobre este proyecto
Mi proyecto trata sobre controlar electrodomésticos con Google Assistant y Bluetooth. Decidí hacer este proyecto porque al buscar en la web sobre automatización del hogar por voz, encontré que la mayoría de los proyectos eran basados en WiFi. Me sorprendió ver cómo ha evolucionado la tecnología con Google Home y Amazon Echo.
Después de investigar automatización WiFi, empecé a buscar información sobre automatización por Bluetooth. Una idea me golpeó: "¿Por qué en la automatización Bluetooth el usuario debe pulsar el botón de la app cada vez para dar un comando?" Sabía que el botón actuaba como disparador para activar el Reconocedor de Voz de Google y Texto-a-Voz. Así que decidí construir un proyecto donde el usuario no tenga que pulsar ningún botón y todo sea automático.
Más tarde descubrí que Google Home puede conectarse a altavoces Bluetooth para música, pero no a electrodomésticos basados en Bluetooth. Para eliminar el botón en la app Android, usé Google Assistant ('OK Google'), un disparador activado por voz, para activar la app y el Reconocedor de Voz/Texto-a-Voz de Google.
Diagrama de bloques
Ver imagen: Móvil (Google Assistant + App) → Bluetooth → Arduino → Relés → Electrodomésticos
Diagrama de circuito
Ver imagen de conexiones: HC-05 (TX/RX) → Arduino (D0/D1), Relés → D8/D9/D10, alimentación común.
Código
// Control Bluetooth por voz con 'OK GOOGLE'
String voice;
#define RELAY_FAN 10
#define RELAY_TUBELIGHT 9
#define RELAY_BULB 8
void setup() {
Serial.begin(9600);
pinMode(RELAY_FAN, OUTPUT);
pinMode(RELAY_TUBELIGHT, OUTPUT);
pinMode(RELAY_BULB, OUTPUT);
// Estado inicial: apagados (relés activo-bajo típico)
analogWrite(RELAY_TUBELIGHT, 255);
analogWrite(RELAY_FAN, 255);
digitalWrite(RELAY_BULB, HIGH);
}
void loop() {
while (Serial.available()) {
delay(10);
char c = Serial.read();
if (c == '#') break; // Fin de comando
voice += c;
}
if (voice.length() > 0) {
Serial.println(voice);
// Control de múltiples pines
if (voice == "tubelight") {
analogWrite(RELAY_TUBELIGHT, 0); // ON
analogWrite(RELAY_FAN, 255); // OFF
digitalWrite(RELAY_BULB, HIGH); // OFF
}
else if (voice == "green") { // Tubelight OFF
analogWrite(RELAY_TUBELIGHT, 255);
analogWrite(RELAY_FAN, 255);
digitalWrite(RELAY_BULB, HIGH);
}
else if (voice == "fan") { // Ventilador ON
analogWrite(RELAY_TUBELIGHT, 255);
analogWrite(RELAY_FAN, 0);
digitalWrite(RELAY_BULB, HIGH);
}
else if (voice == "bulb") { // Bombilla ON
analogWrite(RELAY_TUBELIGHT, 0);
analogWrite(RELAY_FAN, 255);
digitalWrite(RELAY_BULB, LOW);
}
else if (voice == "go") { // Bombilla OFF
digitalWrite(RELAY_BULB, HIGH);
}
else if (voice == "lights") { // Todo ON
analogWrite(RELAY_TUBELIGHT, 0);
analogWrite(RELAY_FAN, 0);
digitalWrite(RELAY_BULB, LOW);
}
else if (voice == "good night") { // Todo OFF
analogWrite(RELAY_TUBELIGHT, 255);
analogWrite(RELAY_FAN, 255);
digitalWrite(RELAY_BULB, HIGH);
}
voice = ""; // Resetear variable
}
}
Nota: Los relés suelen ser activo-bajo (LOW = ON). El código usa analogWrite(255) para OFF y 0 para ON en pines PWM. Para relés en pines digitales puros, usar digitalWrite(HIGH/LOW) según tipo.
Esquemáticos
Diagrama de circuito para control Bluetooth por voz con 'OK GOOGLE': Arduino UNO + HC-05 + Módulo relé 4 canales.
Proceso de manufactura
- Instalar Google Assistant en MATRIX Voice Raspberry Pi: guía paso a paso
- Construya un robot Raspberry Pi controlado por Bluetooth con retroalimentación de audio
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Brazo Robótico de 6 Grados de Libertad Controlado por Nunchuk con Arduino
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
- Construye un voltímetro DIY con Arduino y pantalla Nokia 5110 – Guía paso a paso
- Construye la App Fridgeye con una Pantalla Nextion: Guía Paso a Paso
- Genera Tonos Musicales con Arduino: Guía Paso a Paso
- Control remoto de coche con Arduino Uno y Bluetooth: Guía paso a paso
- Construye un Coche Bluetooth Controlado con Arduino Nano: Guía DIY Completa
- Matriz LED 8x8 Bluetooth con Texto Desplazable - Proyecto Arduino