¿Cómo diseñar la automatización del hogar activada por voz?

La idea de Automatización del hogar está ganando protagonismo ya que ayuda a reducir el esfuerzo humano y los errores y, por lo tanto, a ampliar la eficacia. Utiliza una combinación de equipos y avances de programación que permiten el control de máquinas y otros dispositivos electrónicos dentro de una casa. Con la ayuda de Home Automation, podemos controlar nuestros electrodomésticos de forma remota y una gran ventaja es que el consumo de energía se reduce en gran medida. Hay varios tipos de automatización del hogar, como controlados por Bluetooth, controlados por control remoto y controlados por Internet, etc. y cada uno de ellos tiene sus ventajas y desventajas. En este proyecto, diseñaremos una domótica controlada por voz donde se controlarán diferentes electrodomésticos mediante el envío del comando de voz. Este sistema es muy caro cuando se compra en el mercado pero cuando integramos todos estos electrodomésticos mediante Arduino , resulta muy fácil y económico controlar todos los electrodomésticos.



Automatización del hogar controlada por voz

¿Cómo automatizar electrodomésticos con Arduino?

Como tenemos la idea básica, ahora avancemos hacia la recopilación de componentes, ensamblándolos para hacer un circuito y escribiendo el código para automatizar sus electrodomésticos.



Paso 1: Componentes utilizados (hardware)

  • Arduino Uno
  • Módulo Bluetooth HC-05
  • Transistor NPN 2N2222
  • Módulo de relé de 12V
  • Resistencia de 1k ohmios
  • Adaptador de 12V CA a CC
  • Diodo de unión 1N4007 PN
  • Cables de puente

Paso 2: Componentes utilizados (software)

  • Proteus 8 Professional (se puede descargar desde aquí )

Después de descargar el Proteus 8 Professional, diseñe el circuito en él. Hemos incluido simulaciones de software aquí para que sea conveniente para los principiantes diseñar el circuito y hacer las conexiones adecuadas en el hardware.



Paso 3: estudiar los componentes

Como hemos hecho una lista de componentes que vamos a utilizar en nuestro proyecto. Avancemos un paso y realicemos un breve estudio de cómo funcionan estos componentes.



  1. Arduino UNO: El Arduino UNO es una placa de microcontrolador que se compone de un microchip ATMega 328P y está desarrollado por Arduino.cc. Esta placa tiene un conjunto de pines de datos digitales y analógicos que se pueden interconectar con otras placas o circuitos de expansión. Esta placa tiene 14 pines digitales, 6 pines analógicos y se puede programar con Arduino IDE (entorno de desarrollo integrado) a través de un cable USB tipo B. Requiere 5V para alimentar EN y un Código C para operar.

    Arduino UNO

  2. Transceptor serie inalámbrico Bluetooth HC-05 : Necesitamos comunicación inalámbrica en este proyecto, entonces usaremos tecnología Bluetooth y para ese módulo que se usará es el HC-05. Este módulo tiene varias velocidades en baudios programables, pero la velocidad en baudios predeterminada es 9600 bps. Puede configurarse como maestro o esclavo, mientras que otro módulo HC-06 solo puede funcionar en modo esclavo. Este módulo tiene cuatro pines. Uno para VCC (5V) y los tres restantes para GND, TX y RX. La contraseña predeterminada de este módulo es 1234 o 0000 . Si queremos comunicarnos entre dos microcontroladores o comunicarnos con cualquier dispositivo con funcionalidad Bluetooth como un Teléfono o Laptop HC-05 nos ayuda a hacerlo. Varias aplicaciones de Android ya están disponibles, lo que facilita mucho este proceso.

    Módulo Bluetooth HC-05

  3. Control de voz Bluetooth para Arduino : Esta aplicación está desarrollada por SimpleLabsIN para proyectos Arduino basados ​​en voz. Esta aplicación de Android utilizará la función de reconocimiento de voz del teléfono y convertirá los comandos de voz en texto y transferirá la cadena a través de Bluetooth. La aplicación se puede descargar desde aquí

    Aplicación BT Voice Control



  4. Módulo de relé de 12 V: Si alguien quiere cambiar cargas de alto voltaje desde un microcontrolador, esta placa de relé de 12V puede hacerlo. Contiene 8 relés de 12 V con capacidad nominal de 10 A / 250 V CA (CC 30 V / 10 A). Cada módulo de relé se enciende / apaga mediante una entrada digital optoaislada que se puede conectar directamente a un pin de salida del microcontrolador. Solo requiere un voltaje de aproximadamente 1.0V para encender las entradas, pero puede manejar voltajes de entrada de hasta 12V. Esto lo hace ideal para dispositivos de 5V y 3.3V. Puede comprar el módulo de relé de acuerdo con la cantidad de dispositivos que desee controlar. Por ejemplo, si desea controlar 4 aparatos, debe comprar el módulo de 4 relés.

    Módulo de relé de 12V

Paso 4: Comprensión del diseño de circuitos con el diagrama de circuito

En primer lugar, necesitamos conectar HC-05 con Arduino UNO. Dado que Bluetooth usa el protocolo UART, necesitamos usar los pines RX y TX del Arduino. Usaremos la biblioteca “SoftwareSerial” para definir nuestros propios pines RX y TX (el pin 2 es RX y el pin 3 es TX). El pin RX del módulo Bluetooth y el pin TX del Arduino se desconectarán. En segundo lugar, conectaremos los relés al Arduino. Hemos utilizado una placa de relés prefabricada con 4 canales, por lo que necesitamos conectar las entradas de los relés individuales al Arduino. Para conectar la carga al módulo de relé, consulte el siguiente diagrama:

Montaje del circuito del módulo de relés

Se conectan cuatro cargas al módulo de relés para la demostración y tenga mucho cuidado al utilizar la red de CA con una placa de relés. Solo para demostración, hemos cambiado EN las cargas alternas:

Diagrama de circuito

Paso 5: Principio de funcionamiento del proyecto

En este proyecto, los comandos de voz se utilizan para controlar diferentes dispositivos. Ensamble el hardware de acuerdo con el diagrama de circuito que se muestra arriba. Ensamble todos los componentes en la placa de pruebas. Después de realizar las conexiones necesarias, encienda la fuente de alimentación del circuito y empareje el Bluetooth del teléfono con el módulo Bluetooth HC-05. Antes de realizar el emparejamiento, instale la aplicación mencionada anteriormente en su teléfono inteligente.

Ahora, conecte el teléfono con el módulo Bluetooth. Haga clic en la opción ' Conectar Robot ”Y seleccione el dispositivo Bluetooth apropiado. Si los dispositivos no están vinculados antes, vincúlelos ahora ingresando el PIN 0000 o 1234.

Emparejamiento de teléfono inteligente

Después de una conexión exitosa, los dispositivos están listos para transmitir datos. Para transmitir datos, presione el icono del micrófono en la aplicación y comience a dar comandos de voz. Asegúrese de que la función de reconocimiento de voz esté habilitada en su teléfono inteligente (esto generalmente está asociado con la aplicación de Google). Por ejemplo, cuando presionamos el ícono del micrófono y decimos 'Enciende la luz', la aplicación reconocerá el comando y lo transferirá al módulo Bluetooth.

Reconocimiento de voz

Cuando la aplicación reconozca la cadena, la enviará como 'encender # de luz' y el mensaje real recibido por el módulo Bluetooth tiene este tipo de formato ( '*Mensaje#' ). La razón para rellenar el '*' y el '#' al principio y al final de la cadena es para identificar el comienzo y el final del mensaje. El mensaje recibido se compara con algunas cadenas predefinidas y si el mensaje coincide con ellas, ocurre la acción correspondiente, como 'encender' y apagar.

En este proyecto hemos utilizado los siguientes comandos: 'encender AC', 'apagar AC', 'encender luz', 'apagar luz', 'encender TV', 'apagar TV', 'encender ventilador' ”,“ Encender todo ”y“ apagar todo ”.

Paso 6: Empezando con Arduino

Si no está familiarizado con Arduino IDE antes, no se preocupe porque a continuación, puede ver pasos claros para grabar código en la placa del microcontrolador usando Arduino IDE. Puede descargar la última versión de Arduino IDE desde aquí y siga los pasos que se mencionan a continuación:

1). Cuando la placa Arduino esté conectada a su PC, abra 'Panel de control' y haga clic en 'Hardware y sonido'. Luego haga clic en 'Dispositivos e impresoras'. Busque el nombre del puerto al que está conectada su placa Arduino. En mi caso es “COM14” pero puede ser diferente en tu PC.

Encontrar puerto

2). Ahora abra el IDE de Arduino. Desde Herramientas, configure la placa Arduino en Arduino / Genuino UNO.

Tablero de ajuste

3). Desde el mismo menú de Herramientas, configure el número de puerto que vio en el panel de control.

Puerto de configuración

4). Para usar esta aplicación controlada por voz, necesitamos una biblioteca especial para ser incluida en Arduino IDE. Esta biblioteca se adjunta en el enlace siguiente, junto con el código. Para incluir la biblioteca vaya a Bosquejo> Incluir biblioteca> Agregar ZIP. Biblioteca .

Incluir biblioteca

5). Descargue el código adjunto a continuación y cópielo en su IDE. Para cargar el código, haga clic en el botón de carga.

Puede descargar el código por haciendo clic aquí.

Paso 7: comprensión del código

El Código no es tan complejo, pero aún así, algunas de sus partes se describen brevemente a continuación.

1. Al principio, se incluye una biblioteca para permitir la comunicación en serie en otros pines digitales del Arduino, utilizando software para replicar la funcionalidad. Se inicializan dos pines para ser utilizados con el módulo Bluetooth. Se inicializan cuatro pines para usarse con los electrodomésticos conectados al sistema y se inicializa una variable de cadena para almacenar los datos que llegan a través de Bluetooth en serie.

#include const int rxPin = 2; // Inicializar pisns para el módulo bluetooth const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Inicializar pines para electrodomésticos int light = 5; int fan = 6; int tv = 7; Datos de cadena;

2. configuración vacía () es una función en la que configuramos los pines inicializados para usarlos como ENTRADA y SALIDA. La velocidad en baudios también se inicializa aquí. La tasa de baudios es la velocidad a la que la placa Arduino se comunica con los componentes conectados. En nuestra función, hemos configurado todos los pines conectados a los electrodomésticos para BAJO.

configuración vacía () {Serial.begin (9600); mySerial.begin (9600); pinMode (ac, SALIDA); pinMode (luz, SALIDA); pinMode (ventilador, SALIDA); pinMode (tv, SALIDA); escritura digital (CA, BAJA); digitalWrite (ligero, BAJO); digitalWrite (ventilador, BAJO); digitalWrite (tv, BAJO); }

3. bucle vacío () es una función que se ejecuta repetidamente en un bucle. Aquí se establecen todas las condiciones para que el sistema funcione correctamente. El seguimiento Mientras() El bucle se utiliza para tomar datos que llegan en serie al microcontrolador.

while (1) // Obteniendo entrada en serie {while (mySerial.available ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

A continuación se establecen todas las condiciones para encender todos los aparatos eléctricos conectados, según lo ordene el usuario. Estas condiciones son bastante simples y se explican por sí mismas.

if (data == '* enciende AC') {digitalWrite (ac, HIGH); Serial.println ('ac on'); } else if (data == '* apagar AC') {digitalWrite (ac, LOW); Serial.println ('ac apagado'); } else if (data == '* enciende la luz') {digitalWrite (light, HIGH); Serial.println ('luz encendida'); } else if (data == '* apagar la luz') {digitalWrite (light, LOW); Serial.println ('luz apagada'); } else if (data == '* enciende el ventilador') {digitalWrite (ventilador, ALTO); Serial.println ('ventilador encendido'); } else if (datos == '* apagar ventilador') {digitalWrite (ventilador, BAJO); Serial.println ('ventilador apagado'); } else if (data == '* enciende la TV') {digitalWrite (tv, HIGH); Serial.println ('tv encendida'); } else if (data == '* enciende la TV') {digitalWrite (tv, LOW); Serial.println ('tv apagada'); } else if (data == '* activar todo') {digitalWrite (ac, HIGH); digitalWrite (ligero, ALTO); digitalWrite (ventilador, ALTO); digitalWrite (tv, ALTA); Serial.println ('todo encendido'); } else if (data == '* apagar todo') {digitalWrite (ac, LOW); digitalWrite (ligero, BAJO); digitalWrite (ventilador, BAJO); digitalWrite (tv, BAJO); Serial.println ('todo apagado'); }}

Aplicaciones

  1. El sistema de domótica activado por voz nos ayudará a controlar diferentes cargas (electrodomésticos) con simples comandos de voz.
  2. Las personas discapacitadas pueden obtener muchos beneficios de este proyecto, ya que si no pueden caminar, pueden dar un comando de voz y girar. EN o APAGADO el aparato.
  3. Este proyecto también se puede ampliar agregando diferentes sensores (luz, humo, etc.).