- Diagrama de circuito para automação residencial controlada pelo Google Assistant
- Configurando o aplicativo Blynk
- Configurando IFTTT com Google Assistant e Blynk para ler String
- Programando Arduino para Blynk Home Automation
- Fabricação de PCB usando PCBGoGo
- Montagem do PCB
- Conectando a placa com unidades de alimentação CA / placas de extensão
Com o avanço dos assistentes virtuais como o Google Assistant e o Alexa, os aplicativos de automação residencial e controlados por voz estão se tornando normais. Agora, nós mesmos construímos muitos projetos de automação residencial, de simples luzes de escada automática a automação residencial controlada pela web baseada em IoT usando Raspberry Pi. Mas este projeto aqui é diferente, a ideia aqui é criar uma placa de automação residencial prática que pode caber em nossas unidades de energia AC em nossas paredes e ficar escondida dentro dela. A placa não deve interromper o funcionamento normal dos interruptores de nossa unidade de potência, ou seja, eles devem LIGAR ou DESLIGAR também com interruptores manuais. E sem ser dito, ele também deve ser capaz de controlar a mesma carga com voz usando o Google Assistant e também definir um cronômetro para que qualquer carga possa ser ligada ou desligada automaticamente durante um horário predefinido do dia.
Este projeto é muito semelhante ao nosso plug ESP8266 Smart Wi-Fi, mas aqui, como usaremos o ESP12, teremos mais pinos GPIO, permitindo controlar quatro cargas CA simultaneamente. Além disso, como integramos o Blynk e o Google Assistant, o projeto se torna interessante e prático de usar. Para este projeto, construímos as placas de circuito usando o serviço de fabricação de PCBGOGO PCB. Na seção posterior do artigo, fornecemos o arquivo Gerber projetado para o circuito e também explicamos o procedimento completo para solicitar os PCBs do PCBGOGO.
Aviso: Este projeto envolve trabalhar com a tensão de rede CA. Esteja ciente de que extremo cuidado deve ser tomado ao trabalhar com altas tensões CA Certifique-se de que é supervisionado por uma pessoa experiente se for novo.
Diagrama de circuito para automação residencial controlada pelo Google Assistant
O diagrama completo do circuito para automação residencial pode ser encontrado abaixo.
Como você pode ver, o circuito é muito simples, vamos começar a explicação a partir do Módulo Wi-Fi ESP12E. Você também pode verificar o vídeo abaixo para uma explicação detalhada do projeto. O módulo pode ser programado da mesma forma que as placas de desenvolvimento nodeMCU e reduz muito espaço. Por padrão, quando ligado, o ESP12E entrará no modo de operação. Para programá-lo, temos que usar o botão Reset e Flash. Isso é para colocar o ESP12 no modo de programação, pressione e segure o botão Reset e Flash e, em seguida, solte o botão de reset. Isso inicializará o ESP12E com o botão do flash pressionado, agora solte o botão do flash e o ESP12E entrará no modo de programação. Após a programação, você deve pressionar o botão de reinicialização novamente para inicializar o ESP12E no modo de operação normal para executar o Programa carregado. Os pinos de programação Rx, Rx,e o aterramento são estendidos para permitir a conexão com uma placa FTDI ou conversor USB para TTL. Certifique-se de conectar o pino Tx de ESP12 ao pino Rx do Programador e vice-versa.
Os outros pinos sinalizadores I1 a I4 e R1 a R4 são usados para conectar as chaves e relés. Os pinos I1 a I4 representam os pinos de entrada. Todos esses pinos suportam resistor pull-up interno, portanto, só temos que conectar as chaves na caixa de extensão ao nosso pino de entrada por meio de um resistor pull-down, conforme mostrado abaixo.
Da mesma forma, os pinos de saída do relé R1 a R4 são usados para controlar os relés. Usamos um circuito acionador de relé padrão com diodo BC547 e IN4007 como mostrado abaixo. Observe que os relés devem ser acionados com 5 V, mas os pinos de saída do ESP12E são apenas 3,3 V. Portanto, é obrigatório o uso de um transistor para acionar os relés. Também colocamos um LED no caminho da base do transistor para que, sempre que o transistor for acionado, o LED também acenda.
Finalmente, para alimentar todos os nossos circuitos, usamos o conversor Hi-Link AC-DC para converter nosso 220V AC para 5V DC. Este 5 V DC é então convertido para 3,3 V usando um regulador de tensão AMS117-3,3 V. O 5 V é usado para acionar os relés e 3,3 V é usado para alimentar o Módulo Wi-Fi ESP21.
Configurando o aplicativo Blynk
Anteriormente, construímos muitos projetos Blynk, como o robô Arduino controlado por Wi-Fi, portanto, não entraremos em detalhes de configuração do aplicativo blynk. Mas para simplificar, basta instalar o aplicativo, criar um novo projeto para NodeMCU e começar a colocar seus widgets conforme mostrado abaixo.
Usei os pinos virtuais V1 a V4 para controlar o relé 1 a 4 em nosso projeto. Certifique-se de alterar o tipo de botão para alternar. A opção de cronômetro também pode ser usada para acionar os pinos virtuais automaticamente pelo tempo definido, mesmo se o telefone estiver desligado. Usei um temporizador apenas para o pino virtual V1 aqui, por exemplo, mas você pode usá-lo para todos os quatro pinos, se necessário.
Certifique-se de obter o valor do token de autenticação do blynk na página do projeto. Basta clicar no ícone da porca (circulado em vermelho na imagem acima) e copiar o token de autenticação usando a opção copiar tudo e colá-lo em algum lugar seguro, que precisaremos ao programar a placa Arduino.
Configurando IFTTT com Google Assistant e Blynk para ler String
A maneira mais fácil de usar o Google Assistant para automação residencial é usando o IFTTT. Também construímos muitos projetos IFTTT anteriormente com NodeMCU e Raspberry Pi. Neste projeto, usaremos o aplicativo Blynk para acionar um webhook usando o Google Assistant. É muito semelhante ao nosso projeto de automação residencial controlada por voz e rádio FM controlado por voz. Exceto, aqui estaremos usando blynk com IFTTT para enviar string, o que torna muito mais fácil e interessante.
Basicamente, usaremos os pinos virtuais V5 e V6 no blynk para enviar o comando de disparo. V5 será usado para comandos de ativação e V6 será usado para comandos de desativação. Por exemplo, se dissermos para ligar a TV e a lâmpada. A string de comando aqui “TV and Lamp” será enviada para NodeMCU usando uma API. A sintaxe da API é a seguinte.
http://188.166.206.43//update/V5?value=TV e lâmpada
Agora, tudo o que temos que fazer no IFTTT é usar o google assistant como IF e webhooks como THAT, então ouça este comando e envie as informações para NodeMCU usando a API mencionada acima. O miniaplicativo de ativação da mesma forma é mostrado abaixo.
Observe que você deve selecionar a opção de dizer uma frase com ingrediente de texto ao criar uma receita para o Google Assistente. Da mesma forma, você deve repetir o mesmo para o pino virtual V6 para desligar os relés. Você pode verificar o vídeo no final desta página para obter informações detalhadas.
Programando Arduino para Blynk Home Automation
O código Arduino completo para este projeto pode ser encontrado na parte inferior desta página. A explicação do mesmo é a seguinte. Antes disso, certifique-se de que pode usar o Blynk e o Program NodeMCU do Arduino IDE. Caso contrário, siga o artigo de introdução ao ESP12. Além disso, adicione a biblioteca blynk ao Arduino IDE usando o gerenciador de placa.
Como sempre, começamos nosso código definindo os pinos de entrada e saída, aqui a entrada será dos interruptores e a saída será dos relés. Definimos os nomes dos pinos para todas as quatro chaves como sw e relés como rel, como você pode ver abaixo.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
No próximo estágio, você deve inserir algumas credenciais como o token de autenticação blynk e o nome de usuário e senha do roteador Wi-Fi ao qual seu nodeMCU deve se conectar. O token de autenticação intermitente pode ser obtido no aplicativo blynk. Aprenderemos mais sobre isso na seção de configuração do aplicativo blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // obtém do aplicativo blynk char ssid = "home_wifi"; char pass = "fakepass123";
A seguir, demos a definição para uma função chamada read_switch_toggle () . Nesta função, compararemos o estado atual e o estado anterior de nossas chaves. Se a chave foi ligada ou desligada, ou seja, se a chave foi alternada. Haverá uma mudança no estado da chave, a função irá monitorar essa mudança e retornar o número da chave. Se nenhuma mudança for detectada, ele retornará 0.
int read_switch_toggle () {int result = 0; // Observe todos os valores anteriores para (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Lê o status atual dos switches crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // compare o estado atual e PVS para (int i = 0; i <= 3; i ++) {if (estado_pvs! = estado_crnt) {resultado = (i + 1); // se qualquer switch for alternado, obtemos o número do switch como resultado return result; } else result = 0; // se nenhum resultado da mudança 0} retornar resultado; // retorna o resultado}
A seguir, temos o código do aplicativo blynk. Estaremos usando os pinos virtuais V1 a V6 para controlar nossa caixa de junção inteligente. Os pinos V1 a V4 serão usados para controlar os relés 1 a 4, respectivamente, diretamente do aplicativo blynk. O código a seguir mostra o que acontece quando V1 é disparado do aplicativo blynk. Simplesmente lemos o status (HIGH ou LOW) e controlamos o relé de acordo.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Da mesma forma, os pinos virtuais também podem ser usados para ler uma string do aplicativo blynk. Aprenderemos como enviar uma string do assistente do google para NodeMCU usando IFTTT e o assistente do Google mais tarde, mas por enquanto, vamos ver como o código NodeMCU lê essa string e procura uma palavra-chave específica e aciona o relé de acordo.
No código a seguir, você pode ver que quando o pino virtual V5 é acionado, obtemos a string passada por ele em uma variável de string chamada ON_message . Então, usando esta variável string e o método inderOf, procuramos se alguma palavra-chave como “lâmpada”, “LED”, “música”, “TV” está presente, se sim, ligamos aquela carga particular. Se a palavra-chave “tudo” for detectada, ligamos tudo. O mesmo também pode ser feito para o V6 para desligar os relés. Entenderemos mais sobre isso quando entrarmos na seção IFTTT.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_message); if (ON_message.indexOf ("lamp")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("music")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("everything")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Finalmente, dentro da função de loop, só temos que verificar se algum botão está com a posição do interruptor alterada. Se sim, usamos uma caixa de interruptor como mostrado abaixo para alternar a posição daquele relé particular.
switch (toggle_pin) {case 0: break; caso 1: Serial.println ("Toggling Relay 1"); digitalWrite (rel1, relay_state); pausa; caso 2: Serial.println ("Toggling Relay 2"); digitalWrite (rel2, relay_state); pausa; caso 3: Serial.println ("Toggling Relay 3"); digitalWrite (rel3, relay_state); pausa; caso 4: Serial.println ("Toggling Relay 4"); digitalWrite (rel4, relay_state); pausa; }}
Fabricação de PCB usando PCBGoGo
Agora que entendemos como funcionam os esquemas, podemos prosseguir com a construção do PCB para o nosso projeto de automação residencial. O layout do PCB para o circuito acima também está disponível para download como Gerber no link.
- Baixe GERBER para automação residencial controlada por voz usando o Google Assistant
Agora que nosso projeto está pronto, é hora de fabricá-los usando o arquivo Gerber. Para fazer o PCB do PCBGOGO é bastante fácil, basta seguir as etapas abaixo-
Etapa 1: Acesse www.pcbgogo.com, inscreva-se se esta for sua primeira vez. Em seguida, na guia Protótipo de PCB, insira as dimensões de seu PCB, o número de camadas e o número de PCB que você precisa. Assumindo que o PCB tem 80 cm × 80 cm, você pode definir as dimensões conforme mostrado abaixo.
Etapa 2: Continue clicando no botão Citar Agora . Você será levado a uma página onde definir alguns parâmetros adicionais, se necessário, como o material usado, espaçamento entre pistas, etc. Mas, principalmente, os valores padrão funcionarão bem. A única coisa que devemos considerar aqui é o preço e o tempo. Como você pode ver, o Build Time é de apenas 2-3 dias e custa apenas US $ 5 para o nosso PCB. Você pode então selecionar um método de envio preferido com base em sua necessidade.
Etapa 3: A última etapa é fazer o upload do arquivo Gerber e prosseguir com o pagamento. Para garantir que o processo seja tranquilo, o PCBGOGO verifica se seu arquivo Gerber é válido antes de prosseguir com o pagamento. Dessa forma, você pode ter certeza de que seu PCB é amigável para a fabricação e chegará até você quando estiver comprometido.
Montagem do PCB
Depois que a placa foi encomendada, ela chegou até mim depois de alguns dias através do correio em uma caixa bem embalada e bem etiquetada e, como sempre, a qualidade do PCB era incrível. O PCB que foi recebido por mim é mostrado abaixo. Como você pode ver, as camadas superior e inferior resultaram conforme o esperado.
As vias e os pads estavam todos no tamanho certo. Levei cerca de 15 minutos para montar a placa PCB para obter um circuito de trabalho. A placa montada é mostrada abaixo.
Conectando a placa com unidades de alimentação CA / placas de extensão
A placa é projetada para ser fixada dentro dos soquetes de energia AC em nossas casas. Mas, por causa deste projeto, estaremos usando uma caixa de extensão. Se você quiser uma solução mais permanente, conecte-o dentro de seus soquetes de alimentação CA, como você pode ver abaixo, o comprimento do PCB é compacto o suficiente para ser colocado dentro de um soquete de alimentação CA.
Certifique-se de seguir as precauções de segurança ao trabalhar com a rede elétrica CA. Siga o diagrama de circuito abaixo para entender como conectar seus relés e interruptores à nossa placa PCB.
O diagrama de conexão está inativo apenas para um relé e switch, mas você também pode replicar o mesmo para os três restantes. Assim que as conexões forem feitas, sua placa deve ficar assim
Assim que as conexões forem feitas, certifique-se de prendê-las firmemente com terminais de parafuso e também use cola quente para segurança adicional. Coloque tudo de volta na caixa e estaremos prontos para o teste. Você pode encontrar o funcionamento completo deste projeto no vídeo abaixo.
Espero que tenha gostado do artigo e aprendido algo útil. Se você tiver alguma dúvida, deixe-as na seção de comentários abaixo ou use nossos fóruns.