O conceito da automação residencial, ou domótica, surgiu na França na década de 80 do século passado, e até aqui percorreu um longo caminho para se tornar acessível e viável. Neste post de hoje você vai aprender bem detalhadamente como automatizar sua casa de uma forma incrível, barata e o melhor: você não precisará de comprar nenhum “equipamento smart” (como lâmpadas ou tomadas), que são pouco acessíveis no mercado brasileiro, pois tudo será feito por você mesmo!
Com o conhecimento adquirido aqui, você poderá automatizar sua casa, dando comandos para a assistente virtual (que vamos te apresentar logo abaixo) e acionar seus dispositivos como no vídeo abaixo:
Para fazer este projeto, iremos precisar dos seguintes materiais e serviços:
ESP8266 NodeMCU: Será a placa de desenvolvimento usada neste projeto, o funcionamento dela é similar as placas Arduino, mas com algumas peculiaridades que fazem ela ser a escolha melhor para este projeto:
Se você é iniciante no universo Arduino, clique aqui e leia mais sobre. Aqui no blog você achará outros posts ensinando a programar, como este, ou baixe alguma de nossas apostilas que estão disponíveis gratuitamente.
Se caso você não conhece a placa NodeMCU ou quer saber mais, você poderá aprender mais sobre ela clicando neste nosso post.
Módulo Relé: Um relé funciona como uma chave que basicamente tem a função de interromper a conexão de um circuito, fisicamente, ou fazer a função dele. Pode-se imaginar que um relé é como um botão que é comandado eletricamente.
Ele possui dois tipos de funcionamento: Normalmente Aberto, onde ele irá funcionar exatamente como um botão: quando acionado ele fecha a conexão entre dois fios, e quando não acionado ele interrompe. Também possui o funcionamento Normalmente Fechado, que é o inverso do apresentado anteriormente, onde, quando acionado ele abre a conexão entre dois fios, e quando não acionado ele fecha a conexão.
Para aprender mais sobre um relés, clique aqui.
Amazon Alexa: A Alexa se tornou muito conhecida como assistente pessoal desde o seu lançamento, em 2014, para rivalizar com outras assistentes do mercado. Graças ao investimento da Amazon em dispositivos de automação residencial, a Alexa se tornou cada vez mais presente nesse segmento. Há diversos aparelhos domésticos que já vem a integração com a Alexa nativamente, como TVs, ar condicionados, etc, que poderão ser usados neste projeto.
A Alexa funciona através de comandos de voz, onde você pode gerenciar desde alarmes, lembretes, agenda, bem como perguntar informações gerais como clima, notícias, etc.
O mais importante a se citar é que ela consegue identificar de forma automática dispositivos conectados a ela, através da rede ou de “skills” de terceiros, que é basicamente a conexão dela a serviços de terceiros, que será o que usaremos.
Sinric Pro: O Sinric Pro é um serviço de Cloud (nuvem) para dispositivos inteligentes, onde ele suporta uma série de dispositivos inteligentes que podemos criar e integrar a ele.
A principal vantagem de se usar o serviço da Sinric é que não necessitamos de um dispositivo especial para integrar aos dispositivos, como um Echo Dot. O Echo Dot serve como um Hub para conectar os dispositivos inteligentes a internet. O Sinric faz esse serviço sem a necessidade de ter um dispositivo adicional, só precisando do aplicativo.
De forma gratuita podemos hospedar até 5 dispositivos, e acessar os registros de uso de até 3 dias! Com isso, podemos hospedar nele nossos dispositivos criados, e quando a Alexa receber um comando, ela irá requisitar a esse serviço fazer a alteração no estado de um dispositivo, e esse serviço irá fazer a requisição ao nosso NodeMCU, que estará conectado a internet, e ele irá fazer a alteração do nosso dispositivo físico.
Parece demorado e complicado? Só parece. É bastante simples e vale muito a pena conferir.
Primeiro devemos fazer a instalação do aplicativo Alexa no seu Smartphone IOS ou Android.
E depois de instalado, devemos criar uma conta clicando em “Criar uma nova conta Amazon”, na parte inferior da tela.
Coloque o seu nome, seu e-mail e uma senha, e aperte em “Criar sua conta da Amazon”
Observação: Este e-mail precisa ser válido, pois uma confirmação de conta será enviado nele.
Um e-mail padrão foi enviado na sua caixa de e-mail, abra ele e copie o código presente lá na tela do aplicativo, e vá em “Crie sua conta da Amazon”.
Após ter criado, você será redirecionado a tela de termos de uso, leia os termos se tiver dúvidas em relação a privacidade e vá em “Continuar”.
Na tela perguntando se você gostaria de configurar um dispositivo, aperte em “não”, essa configuração faremos mais tarde.
Uma tela pedindo a confirmação do número do seu telefone irá aparecer. Insira o numero do seu telefone (com o DDD de 2 dígitos na frente) e vá em “continuar”. Na tela posterior, digite o código enviado a seu celular e continue.
Você chegará a essa tela de configuração da Alexa. Ensinar a voz é opcional, não usaremos esse recurso aqui inicialmente, mas ele é legal de ser explorado.
As próximas telas serão um tour pelo aplicativo. Conceda as autorizações do aplicativo usar o microfone do seu celular para que a Alexa funcione corretamente. Recomendo que faça um tour pelo aplicativo antes de continuar, veja as funções da Alexa e as coisas que ela é capaz de responder, desde coisas como: “Alexa, qual a temperatura em Belo Horizonte?” até “Alexa, qual sua idade?”. Teste e se surpreenda.
Agora você pode fechar o aplicativo, porque o próxima passo será criar uma conta no Sinric Pro. Para isso, cole o seguinte endereço no seu navegador: https://sinric.pro/pt-index.html, e clique em “cadastre-se!”.
O cadastro é similar ao da Alexa, onde será pedido alguns dados seus. Preencha corretamente os dados e novamente use um e-mail válido no campo e-mail, pois será enviado um e-mail em sua caixa de e-mail para confirmar sua conta e vá em “register”.
Após feito a etapa anterior, abra novamente sua caixa de e-mail e confirme, clicando em “confirm”. Volte ao site e faça seu login normalmente, pois dua conta já está ativa.
Fazendo o login, você entrará no painel principal da página do Sinric Pro, vá na aba de dispositivos, no canto esquerdo.
Vá em adicionar dispositivo, e aqui iremos adicionar nosso dispositivo a ser controlado.
Neste caso, estou adicionando um ventilador. Todos os dispositivos adicionados são do tipo “switch”, porque serão controlados com relé.
Crie seus dispositivos, lembrando que a plataforma permite ser criado até 5 dispositivos de forma gratuita.
Note que abaixo do nome do dispositivo tem o ID dele, esse ID será importante no futuro, e pode ser fácilmente copiado somente apertando o botão “copiar”.
Vá na guia Credencias, e lá terão chaves importantes. É pela credencial que poderemos consultar a “chave do app” e a “senha do app”, que será importante passar essa informação para o programa a ser enviado na Arduino IDE ao seu NodeMCU.
Importante: Esses dados são únicos. Se você passar esse dado a alguém, ele poderá ter controle aos seus dispositivos e te prejudicar.
O primeiro passo é configurar a sua Arduino IDE para trabalhar com o NodeMCU.
Caso você não souber como fazer, clique aqui para aprender a como configurar (e vá até a parte “Procedimentos para instalar NodeMCU na Arduino IDE” e siga essa parte).
Depois de todas as configurações serem feitas na sua IDE, você estará apto a continuar.
Instale em sua Arduino IDE a biblioteca Sinric Pro, indo no canto superior da tela em “Ferramentas>Gerenciar Bibliotecas…”.
E instale a biblioteca abaixo, do autor Boris Jaeger. Instale a versão mais atual.
Agora abra a Arduino IDE, e copie o código abaixo. Insira no código a senha do seu WiFi no campo WIFI_SSID, e a senha no campo “WIFI_PASS”.
O dado da APP_KEY é a “Chave do App”, descrito na imagem anterior, e a “APP_SECRET” é a “Senha do App”.
Os IDs de cada dispositivo pode ser consultado na guia de dispositivos. Copie e cole.
#include <ESP8266WiFi.h> #include "SinricPro.h" #include "SinricProSwitch.h" #define WIFI_SSID "Coloque_Aqui_o_nome_do_seu_WiFi" #define WIFI_PASS "A_Senha_do_seu_WiFi" #define APP_KEY "Coloque aqui a chave do app, que você acha lá no site do Sinric Pro" // O seu App Key é algo como "de0bxxxx-1x3x-4x3x-ax2x-5dabxxxxxxxx" #define APP_SECRET "Coloque o senha do app, está na parte de credenciais" // O seu App Secret é algo como "5f36xxxx-x3x7-4x3x-xexe-e86724a9xxxx-4c4axxxx-3x3x-x5xe-x9x3-333d65xxxxxx" #define Abajour_ID "Copie e cole aqui" // Algo como "5dc1564130xxxxxxxxxxxxxx" #define Abajour_Pin 16 // O pino fisico onde está ligado #define Lampada_ID "Copie e cole aqui" // Algo como "5dc1564130xxxxxxxxxxxxxx" #define Lampada_Pin 5 // O pino fisico onde está ligado #define Regua_ID "Copie e cole aqui" // Algo como "5dc1564130xxxxxxxxxxxxxx" #define Regua_Pin 4 // O pino fisico onde está ligado #define Ventilador_ID "Copie e cole aqui" // Algo como "5dc1564130xxxxxxxxxxxxxx" #define Ventilador_Pin 0 // O pino fisico onde está ligado #define BAUD_RATE 9600 // Se precisar, pode trocar o baud rate void setupWiFi(); void setupSinricPro(); bool AbajourState(const String &deviceId, bool &state); bool LampadaState(const String &deviceId, bool &state); bool ReguaState(const String &deviceId, bool &state); bool VentiladorState(const String &deviceId, bool &state); // main setup function void setup() { Serial.begin(BAUD_RATE); Serial.printf("\r\n\r\n"); setupWiFi(); setupSinricPro(); pinMode(Abajour_Pin, OUTPUT); pinMode(Lampada_Pin, OUTPUT); pinMode(Regua_Pin, OUTPUT); pinMode(Ventilador_Pin, OUTPUT); } void loop() { SinricPro.handle(); } bool AbajourState(const String &deviceId, bool &state) { Serial.printf("O abajour foi %s\r\n", state?"ligado":"desligado"); digitalWrite(Abajour_Pin, state); return true; // request handled properly } bool LampadaState(const String &deviceId, bool &state) { Serial.printf("A lampada foi %s\r\n", state?"ligada":"desligada"); digitalWrite(Lampada_Pin, state); return true; // request handled properly } bool ReguaState(const String &deviceId, bool &state) { Serial.printf("A regua de energia foi %s\r\n", state?"ligada":"desligada"); digitalWrite(Regua_Pin, state); return true; // request handled properly } bool VentiladorState(const String &deviceId, bool &state) { Serial.printf("O ventilador foi %s\r\n", state?"ligado":"desligado"); digitalWrite(Ventilador_Pin, state); return true; // request handled properly } // setup das conexões Wifi void setupWiFi() { Serial.printf("\r\n[Wifi]: Conectando..."); WiFi.begin(WIFI_SSID, WIFI_PASS); while (WiFi.status() != WL_CONNECTED) { Serial.printf("."); delay(250); } Serial.printf("Conectado!\r\n[WiFi]: Endereço de IP e %s\r\n", WiFi.localIP().toString().c_str()); } // setup das funções para o SinricPro void setupSinricPro() { // add devices and callbacks to SinricPro SinricProSwitch &mySwitch1 = SinricPro[Abajour_ID]; mySwitch1.onPowerState(AbajourState); SinricProSwitch &mySwitch2 = SinricPro[Lampada_ID]; mySwitch2.onPowerState(LampadaState); SinricProSwitch &mySwitch3 = SinricPro[Regua_ID]; mySwitch3.onPowerState(ReguaState); SinricProSwitch &mySwitch4 = SinricPro[Ventilador_ID]; mySwitch4.onPowerState(VentiladorState); // setup SinricPro SinricPro.onConnected([](){ Serial.printf("Conectado a nuvem SinricPro\r\n"); }); SinricPro.onDisconnected([](){ Serial.printf("Desconectado a nuvem SinricPro\r\n"); }); SinricPro.begin(APP_KEY, APP_SECRET); }
Envie o seu programa na Arduino IDE e espere carregar.
Para ver mais exemplos do uso Sinric Pro, você pode ir direto no Github deles clicando aqui.
Abra o aplicativo Alexa e aperte na aba “dispositivos” no canto inferior direito, e clique em “Suas Skills de casa inteligente”.
Irá abrir uma nova tela, e vá em “Ativar Skills de casa inteligente”, na parte inferior.
Pesquise por “Sinric Pro”.
Aperte em cima do resultado, e uma nova tela aparecerá. Aperte em “Ativar para uso”.
E abrirá uma opção para você colocar o login e senha criado anteriormente, no site do Sinric Pro. Coloque e marque a opção “Não sou um robô”. Após a confirmação, vá em “Sign in”.
E essa tela irá aparecer te mostrando que sua conta foi vinculada. Depois dessa tela aparecer, você pode apertar o botão X no canto superior esquerdo, ou apertar o botão de voltar várias vezes, até chegar na tela principal.
Talvez uma tela como esta apareça, pedindo para você descobrir os dispositivos., pode clicar em descobrir os dispositivos. Se caso não achar nenhum, é sinal de que eles já foram descobertos. Volte a tela principal.
Vá novamente na guia “Dispositivos”, e veja seus novos dispositivos.
Agora iremos criar um novo grupo de dispositivos. Isso serve para fazer o acionamento coletivo deles, agrupando todos. Para isso, vá no canto superior direito no + e selecione “Adicionar grupo”.
Coloque um nome no grupo, ou selecione um nome já existente, e aperte em avançar.
Selecione os dispositivos que farão parte deste grupo, e aperte salvar.
E com isso o grupo estará pronto.
Antes de fazer a montagem, observe o pinout do NodeMCU.
Imagem retirada do site esp8266-shop.
Observe que a numeração do pinos que vão para a Arduino IDE não correspondem aos que estão impressas na placa, e sim a esses que estão na imagem. Logo, perceba que os pinos usados para o projeto (verifique o código mais acima) são os 4 seguidos: 16, 5, 4, e 0.
Para começar a montar, iremos fazer um protótipo inicial com LEDs, que irão simular cada dispositivo, pois, assim conseguiremos detectar se o programa está correto com uma complexidade menor na montagem. Os resistores usados são os de 330R citados na parte de materiais.
E o resultado obtido deve ser algo parecido com este:
Lembrando que não é necessário que o cabo micro-USB esteja ligado necessariamente ao computador. Depois que o código estiver carregado, ele pode estar ligado apenas a um carregador de celular (5V).
Para fazer a conexão com os relês, tome bastante cuidado!
Se você for criança, peça a ajuda de um adulto, pois conexões erradas ou mal isoladas podem ocasionar em acidentes graves.
Siga o diagrama abaixo para fazer a conexão dos seus dispositivos com o relé. É recomendado que ao invés de ligar o dispositivo diretamente na rede elétrica, você instale um plug fêmea de tomada e o ligue dessa forma.
Então, com tudo finalmente concluído você pode dar comandos aos seus dispositivos a partir do seu celular!
Aproveite a criatividade e automatize mais dispositivos, integre sensores a eles e coloque em prática todo o seu conhecimento em robótica e automação.
Gostou do projeto? Deixe aqui embaixo seu curtir para nos incentivar a trazer sempre mais conteúdos.
Este projeto fez com que você automatizasse sua casa toda? Grave um vídeo, e nos marque no instagram @eletrogate
Em caso de dúvidas e sugestões, deixe um comentário!
Deixo aqui o meu muito obrigado por você ter lido até aqui!
Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.
|
A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.
Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!