Como projetar automação residencial ativada por voz?

A ideia de Automação residencial está ganhando destaque, pois ajuda a diminuir o esforço e os erros humanos e, portanto, a expandir a eficácia. Ele utiliza uma combinação de equipamentos e avanços de programação que permitem o controle sobre máquinas e outros dispositivos eletrônicos dentro de uma casa. Com a ajuda da Domótica, podemos controlar nossos aparelhos elétricos remotamente e uma grande vantagem é que o consumo de energia é reduzido em grande medida. Existem vários tipos de Domótica, como Controle por Bluetooth, Controle Remoto e Controle pela Internet, etc. e cada um deles tem suas vantagens e desvantagens. Neste projeto, iremos conceber uma Domótica Controlada por Voz onde diferentes aparelhos serão controlados através do envio do comando de voz. Este sistema é muito caro quando comprado no mercado, mas quando integramos todos esses aparelhos através Arduino , torna-se muito fácil e barato controlar todos os eletrodomésticos.



Domótica controlada por voz

Como automatizar eletrodomésticos usando o Arduino?

Como temos a ideia básica, agora vamos começar a reunir os componentes, montá-los para fazer um circuito e escrever o código para automatizar seus eletrodomésticos.



Etapa 1: Componentes usados ​​(hardware)

  • Arduino uno
  • Módulo Bluetooth HC-05
  • 2N2222 Transistor NPN
  • Módulo de Relé 12V
  • Resistor de 1k-ohm
  • Adaptador 12V AC para DC
  • 1N4007 Diodo de junção PN
  • Jumper Wires

Etapa 2: Componentes usados ​​(software)

  • Proteus 8 Professional (pode ser baixado de Aqui )

Depois de baixar o Proteus 8 Professional, projete o circuito nele. Incluímos simulações de software aqui para que seja conveniente para iniciantes projetar o circuito e fazer as conexões apropriadas no hardware.



Etapa 3: estudar os componentes

Como fizemos uma lista de componentes que vamos usar em nosso projeto. Vamos dar um passo à frente e fazer um breve estudo de como esses componentes funcionam.



  1. Arduino UNO: O Arduino UNO é uma placa microcontrolada composta por um microchip ATMega 328P e desenvolvida pela Arduino.cc. Esta placa possui um conjunto de pinos de dados digitais e analógicos que podem ter interface com outras placas de expansão ou circuitos. Esta placa possui 14 pinos digitais, 6 pinos analógicos e programáveis ​​com o Arduino IDE (Integrated Development Environment) através de um cabo USB tipo B. Requer 5V para ligar EM e um Código C para operar.

    Arduino UNO

  2. HC-05 Transceptor Serial Bluetooth Sem Fio : Precisamos de comunicação sem fio neste projeto, então usaremos a tecnologia Bluetooth e para esse módulo que será usado é o HC-05. Este módulo tem várias taxas de baud programáveis, mas a taxa de baud padrão é 9600 bps. Pode ser configurado como mestre ou escravo, enquanto outro módulo HC-06 pode funcionar apenas no modo escravo. Este módulo possui quatro pinos. Um para VCC (5V) e os três restantes para GND, TX e RX. A senha padrão deste módulo é 1234 ou 0000 . Se quisermos nos comunicar entre dois microcontroladores ou nos comunicarmos com qualquer dispositivo com funcionalidade Bluetooth como um telefone ou laptop, o HC-05 nos ajuda a fazer isso. Vários aplicativos Android já estão disponíveis, o que torna esse processo muito mais fácil.

    Módulo Bluetooth HC-05

  3. Bluetooth Voice Control para Arduino : Este aplicativo foi desenvolvido pela SimpleLabsIN para projetos Arduino baseados em voz. Este aplicativo Android usará o recurso de reconhecimento de voz do telefone e converterá os comandos de voz em texto e transferirá a string via Bluetooth. O aplicativo pode ser baixado de Aqui

    Aplicativo BT Voice Control



  4. Módulo de Relé 12 V: Se alguém quiser trocar cargas de alta tensão de um microcontrolador, esta placa de relé de 12 V pode fazer isso. Ele contém 8 relés de 12 V classificados em 10 A / 250 V CA (CC 30 V / 10 A). Cada módulo de relé é ligado / desligado por uma entrada digital opto-isolada que pode ser conectada diretamente a um pino de saída do microcontrolador. Requer apenas uma tensão de aproximadamente 1,0 V para ligar as entradas, mas pode lidar com tensões de entrada de até 12 V. Isso o torna ideal para dispositivos de 5V e 3,3V. Você pode comprar o módulo de relé de acordo com o número de aparelhos que deseja controlar. Por exemplo, se você deseja controlar 4 aparelhos, deve comprar 4 módulos de relé.

    Módulo de Relé 12V

Etapa 4: Compreendendo o projeto do circuito com o diagrama do circuito

Primeiramente, precisamos conectar o HC-05 com o Arduino UNO. Como o Bluetooth usa o protocolo UART, precisamos usar os pinos RX e TX do Arduino. Estaremos usando a biblioteca “SoftwareSerial” para definir nossos próprios pinos RX e TX (o pino 2 é RX e o pino 3 é TX). O pino RX do módulo Bluetooth e o pino TX do Arduino serão desconectados. Em segundo lugar, conectaremos os relés ao Arduino. Usamos uma placa de relé pronta com 4 canais, portanto, precisamos conectar as entradas dos relés individuais ao Arduino. Para conectar a carga ao módulo de relé, consulte o diagrama abaixo:

Montagem do circuito do módulo de relé

Quatro cargas são conectadas ao módulo de relé para demonstração e seja extremamente cuidadoso ao usar a rede elétrica CA com uma placa de relé. Apenas para demonstração, mudamos EM as cargas alternativas:

Diagrama de circuito

Etapa 5: Princípio de funcionamento do projeto

Neste projeto, comandos de voz são usados ​​para controlar diferentes aparelhos. Monte o hardware de acordo com o diagrama de circuito fornecido acima. Monte todos os componentes na placa de ensaio. Depois de fazer as conexões necessárias, ligue a alimentação do circuito e emparelhe o Bluetooth do telefone com o módulo Bluetooth HC-05. Antes de emparelhar, instale o aplicativo mencionado acima em seu smartphone.

Agora, conecte o telefone com o módulo Bluetooth. Clique na opção “ Robô de conexão ”E selecione o dispositivo Bluetooth apropriado. Se os dispositivos não foram pareados antes, pareie-os agora inserindo o PIN 0000 ou 1234.

Emparelhamento de smartphone

Após uma conexão bem-sucedida, os dispositivos estão prontos para transmitir dados. Para transmitir dados, pressione o ícone do microfone no aplicativo e comece a dar comandos de voz. Certifique-se de que o recurso de reconhecimento de voz está ativado em seu smartphone (geralmente associado ao Google app). Por exemplo, quando pressionamos o ícone do microfone e dizemos 'Acenda a luz', o aplicativo irá reconhecer o comando e transferi-lo para o módulo Bluetooth.

Voz reconhecida

Quando a string for reconhecida pelo aplicativo, ela enviará a string como 'acender a luz # 'e a mensagem real recebida pelo Módulo Bluetooth tem este tipo de formato ( '*Mensagem#' ) O motivo para preencher o '*' e o '#' no início e no final da string é para identificar o início e o fim da mensagem. A mensagem recebida é comparada com algumas strings predefinidas e, se a mensagem corresponder a elas, a ação correspondente como “ligar” e desligar acontece.

Neste projeto usamos os seguintes comandos: “ligar AC”, “desligar AC”, “ligar a luz”, “desligar a luz”, “ligar a TV”, “desligar a TV”, “ligar o ventilador ”,“ Ligar tudo ”e“ desligar tudo ”.

Etapa 6: Introdução ao Arduino

Se você não está familiarizado com o Arduino IDE antes, não se preocupe porque abaixo, você pode ver as etapas claras de gravação de código na placa do microcontrolador usando o Arduino IDE. Você pode baixar a versão mais recente do Arduino IDE em aqui e siga as etapas mencionadas abaixo:

1). Quando a placa Arduino estiver conectada ao seu PC, abra o “Painel de Controle” e clique em “Hardware e Sons”. Em seguida, clique em “Dispositivos e Impressoras”. Encontre o nome da porta à qual sua placa Arduino está conectada. No meu caso é “COM14” mas pode ser diferente no seu PC.

Encontrar o porto

2). Agora abra o IDE do Arduino. Em Ferramentas, defina a placa Arduino para Arduino / Genuino UNO.

Tabuleiro de Configuração

3). No mesmo menu de ferramentas, defina o número da porta que você viu no painel de controle.

Porta de configuração

4). Para usar este aplicativo controlado por voz, precisamos de uma biblioteca especial a ser incluída no Arduino IDE. Esta biblioteca está anexada no link abaixo, junto com o código. Para incluir a biblioteca vá para Sketch> Incluir Biblioteca> Adicionar ZIP. Biblioteca .

Incluir Biblioteca

5). Baixe o código anexado abaixo e copie-o para o seu IDE. Para fazer upload do código, clique no botão upload.

Você pode baixar o código por clicando aqui.

Etapa 7: Compreendendo o código

O Código não é tão complexo, mas ainda assim, algumas de suas partes são brevemente descritas a seguir.

1. No início, uma biblioteca é incluída para permitir a comunicação serial em outros pinos digitais do Arduino, usando um software para replicar a funcionalidade. Dois pinos são inicializados para serem usados ​​com o módulo Bluetooth. Quatro pinos são inicializados para serem usados ​​pelos eletrodomésticos conectados ao sistema e uma variável de string é inicializada para armazenar os dados que chegam via Bluetooth em série.

#include const int rxPin = 2; // Inicializar pisns para o módulo bluetooth const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Inicializar pinos para eletrodomésticos int light = 5; ventilador interno = 6; int tv = 7; Dados de string;

2 void setup () é uma função na qual definimos os pinos inicializados para serem usados ​​como INPUT e OUTPUT. A taxa de transmissão também é inicializada aqui. A taxa de transmissão é a velocidade pela qual a placa Arduino se comunica com os componentes conectados. Em nossa função, definimos todos os pinos conectados aos aparelhos para BAIXO.

void setup () {Serial.begin (9600); mySerial.begin (9600); pinMode (ac, OUTPUT); pinMode (luz, OUTPUT); pinMode (ventilador, OUTPUT); pinMode (tv, OUTPUT); digitalWrite (ac, LOW); digitalWrite (claro, BAIXO); digitalWrite (ventilador, BAIXO); digitalWrite (tv, LOW); }

3 - void loop () é uma função que é executada repetidamente em um loop. Aqui, todas as condições são definidas para fazer o sistema funcionar corretamente. Os seguintes Enquanto() loop é usado para pegar dados que chegam serialmente ao microcontrolador.

while (1) // Obtendo entrada em série {while (mySerial.available ()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }

Abaixo todas as condições são definidas para ligar todos os aparelhos elétricos acoplados, conforme os comandos do usuário. Essas condições são bastante simples e autoexplicativas.

if (dados == '* ligar AC') {digitalWrite (ac, HIGH); Serial.println ('ac on'); } else if (data == '* desligar AC') {digitalWrite (ac, LOW); Serial.println ('ac off'); } else if (data == '* liga a luz') {digitalWrite (luz, ALTO); Serial.println ('luz acesa'); } else if (data == '* desligar a luz') {digitalWrite (luz, LOW); Serial.println ('luz apagada'); } else if (data == '* ligar o ventilador') {digitalWrite (ventilador, ALTO); Serial.println ('ventilador ligado'); } else if (data == '* desligar ventilador') {digitalWrite (ventilador, BAIXO); Serial.println ('fan off'); } else if (data == '* ligar a TV') {digitalWrite (tv, HIGH); Serial.println ('tv ligada'); } else if (data == '* ligar a TV') {digitalWrite (tv, LOW); Serial.println ('tv desligada'); } else if (data == '* ligar tudo') {digitalWrite (ac, HIGH); digitalWrite (claro, ALTO); digitalWrite (ventilador, ALTO); digitalWrite (tv, HIGH); Serial.println ('tudo ativado'); } else if (data == '* desligar tudo') {digitalWrite (ac, LOW); digitalWrite (claro, BAIXO); digitalWrite (ventilador, BAIXO); digitalWrite (tv, LOW); Serial.println ('tudo desligado'); }}

Formulários

  1. O sistema de automação residencial ativada por voz nos ajudará a controlar diferentes cargas (aparelhos elétricos) com comandos de voz simples.
  2. Pessoas com deficiência podem obter muitos benefícios deste projeto, pois se não puderem andar, podem dar um comando de voz e virar EM ou FORA o aparelho.
  3. Este projeto também pode ser expandido adicionando diferentes sensores (luz, fumaça, etc.).