- Pré-requisitos:
- Conceito de trabalho:
- Programa Arduino IDE para ESP8266:
- Diagrama de circuito e hardware:
- Port Forwarding your ESP8266 IP:
- Instalando o aplicativo Moni Android:
- Criação de miniaplicativos usando o serviço IFTTT:
- Teste do Projeto:
Bem-vindo a outro projeto emocionante em que construiremos um sistema de automação residencial controlado por voz usando o módulo ESP8266 Wi-Fi, onde você pode controlar seus aparelhos domésticos de CA usando sua voz por meio de um aplicativo Android de qualquer lugar do mundo. Sim, o seu sonho de fazer suas cargas (Luz / Ventiladores) LIGAR ou DESLIGAR simplesmente usando um comando de voz vai se tornar realidade no final deste projeto. Este projeto é a variação do nosso projeto anterior Caixa de junção inteligente para automação residencial, onde controlamos os eletrodomésticos usando o servidor da Web na rede.
Este projeto de automação residencial controlada por voz baseado em IOT é super fácil de construir e não custa muito, uma vez que não exige a compra de módulos de voz caros. Todo o projeto levou cerca de 500INR (8 USD) para eu construí-lo. Além disso, este é um projeto independente de microcontrolador, o que significa que você não precisa de nenhum MCU / MP como o Arduino ou o Raspberry pi. Todo o projeto é executado no módulo ESP8266. Saiba mais sobre ESP8266 aqui. Então, vamos começar a conversar…
Anteriormente, cobrimos muitos tipos de automações residenciais usando diferentes tecnologias, como:
- Domótica baseada em DTMF
- Domótica baseada em GSM usando Arduino
- Automação residencial controlada por PC usando Arduino
- Automação residencial controlada por Bluetooth usando 8051
- Automação residencial controlada por infravermelho usando Arduino
- projeto de automação residencial usando MATLAB e Arduino
- LEDs RF com controle remoto usando Raspberry Pi
- Automação residencial controlada por telefone inteligente usando Arduino
Pré-requisitos:
Este projeto é uma continuação do nosso projeto anterior Caixa de junção inteligente para automação residencial usando ESP8266, portanto, a maior parte da parte do hardware já foi abordada nesse tutorial. Leia isso antes de prosseguir com este, pois irei pular as informações abordadas nesse tutorial. Para recapitular nosso projeto anterior, modificamos uma caixa de junção (placa de extensão) naquele tutorial que poderia consolar uma placa Perf consistindo de dois relés e o módulo ESP8266. Os dois relés (cargas CA) podem ser alternados usando uma página da web criada pelo ESP8266 (agindo como um servidor da web). Neste tutorial irei apenas adicionar alguns recursos para que possamos também controlar as cargas AC usando o comando de voz através do Smart Phone.Não cobriremos nenhuma parte de Hardware neste tutorial, o hardware e o Código permanecerá o mesmo do tutorial anterior.
Também saber como usar www.IFTTT.com lhe dará uma vantagem neste projeto. Se você não está familiarizado com o IFTTT, não se preocupe, irei explicar como usá-lo neste tutorial específico para que você possa colocá-lo em funcionamento.
Conceito de trabalho:
Presumo que você tenha lido o tutorial anterior, nesse caso agora você deve saber como construir essa caixa de junção e como alternar as cargas remotamente de seu navegador da web. Para tornar isso possível, disponibilizamos publicamente nosso endereço IP alocado ao ESP8266. Isso pode ser feito com “Técnica de encaminhamento de porta”. Em seguida, instale um aplicativo móvel chamado “Moni” em seu dispositivo móvel Android / IPhone. Este aplicativo reconhecerá nossa fala e comunicará as informações aos miniaplicativos IFTT que, por sua vez, controlarão as cargas por meio dos ganchos da Web do Maker.
Pode parecer um pouco tedioso, mas todas essas coisas foram explicadas claramente neste tutorial e, acredite em mim, com poucos cliques tudo o que foi dito acima pode ser feito. Este tutorial irá ajudá-lo da melhor maneira possível com o auxílio de Fotos e Vídeos. Ao final deste tutorial, você poderá ligar ou desligar seus eletrodomésticos através de sua voz de qualquer lugar do mundo. Verifique o código completo e o vídeo de demonstração no final do tutorial.
Verifique também as luzes controladas por voz usando Raspberry Pi e digitação por voz no LCD 16x2.
Programa Arduino IDE para ESP8266:
Assim como no projeto anterior, iremos programar nosso módulo ESP8266 com a ajuda do IDE Arduino. Há uma pequena modificação feita no programa. Essa modificação é feita para que o ESP8266 se conecte a um endereço IP constante sempre que estabelecer uma conexão com o Roteador. O programa é exatamente igual ao código anterior exceto por estas quatro linhas
// Obtenha um IP constante toda vez que IPAddress ip (192, 168, 0, 104); // Este deve ser o IP do meu gateway IPAddress do módulo ESP (192, 168, 0, 1); // definir o gateway para corresponder à sua rede a maioria dos gateway será o mesmo por padrão Serial.print (F ("Setting static ip to:")); Serial.println (ip); Sub-rede IPAddress (255, 255, 255, 0); // define a máscara de sub-rede para corresponder à sua rede WiFi.config (ip, gateway, sub-rede);
Aqui, no lugar de IPAddress ip (192, 168, 0, 104); insira o endereço IP desejado. Nesse caso meu ESP ficará conectado a 192.168.0.104 o tempo todo e eu posso simplesmente acessá-lo usando este IP em meu navegador. O código completo fornecido no final deste tutorial.
Diagrama de circuito e hardware:
Os esquemas e o hardware para estes aparelhos domésticos controlados por voz baseados em IoT são os mesmos do nosso projeto Smart Junction anterior e eu expliquei o esquema lá, por isso, gentilmente, analise-o. Aqui você pode ver o esquema completo para referência:
Port Forwarding your ESP8266 IP:
O primeiro passo é habilitar o encaminhamento de portas em seu roteador (modem) para que você possa acessar seu ESP de qualquer lugar do mundo, bastando inserir seu IP público. Sempre que nosso ESP8266 se conectar ao nosso roteador residencial / comercial, ele receberá um endereço IP exclusivo e esse endereço IP será usado para acessar o ESP8266 por meio do navegador da web. Esse endereço IP é restrito à rede doméstica / comercial, o que significa que você não pode acessá-lo globalmente; ele só pode ser acessado por dispositivos conectados ao seu roteador. O encaminhamento de porta é a técnica pela qual podemos fazer esta página da web carregar globalmente. Após o encaminhamento de porta, você pode usar seu IP público para acessar esta página da Web de qualquer lugar do mundo. Parece legal certo !! Vamos ver como podemos fazer isso. Para fazer isso, você sabe o seguinte de antemão.
1. O nome do fabricante e o endereço IP do seu roteador. Isso pode ser facilmente encontrado olhando para o roteador. O endereço IP também será mencionado em um adesivo. Se não for o Google para saber o IP do seu roteador.
2. O nome de usuário e a senha da página de login do roteador. A maioria dos roteadores terá o nome de usuário “admin” e a senha “admin”.
3. O endereço IP atribuído ao seu módulo ESP8266. Este é o endereço que você usa para acessar a página da Web do módulo ESP.
4. O endereço IP do seu provedor de serviços de Internet (endereço IP público). Isso pode ser encontrado simplesmente Goggling “qual é o meu IP”.
Depois de ter tudo em mãos, você pode seguir as etapas abaixo para o encaminhamento de porta, se você não conseguir encontrar algo, use a seção de comentários abaixo. Eu vou ajudá-lo.
Etapa 1: Faça login na página do utilitário de gerenciamento da Web do roteador usando o endereço IP do roteador, geralmente 192.168.1.1. Minha tela ficará assim abaixo
Etapa 2: Digite o nome de usuário “admin” por padrão e a senha “admin” por padrão e clique em Login. Você será levado para a página do utilitário que se parecerá com esta abaixo.
A maioria das informações que você vê aqui são muito confidenciais, portanto, não as compartilhe com nenhum desconhecido, pois você pode colocar sua segurança na Internet em risco.
Etapa 3: conforme mostrado acima, sua página terá todas as opções listadas na parte inferior esquerda. Nosso objetivo é encontrar algo chamado “Servidores Virtuais”. Eu tenho o meu listado na opção Encaminhamento. A maioria dos routers os terão listado como o 6, 7 ou 8 th opção (principalmente abaixo configuração DHCP). Encontre e clique nele
Etapa 4: Agora você deve inserir o endereço IP alocado ao módulo ESP e o número da porta para encaminhar nosso IP. No meu caso, tenho que clicar em Adicionar novo e inserir esses detalhes. Pode ser um pouco diferente para você. O endereço IP é aquele que você usa para acessar a página da web do seu módulo ESP. O número da porta pode ser de sua escolha, mas vamos usar “80” para simplificar. O IP alocado para meu módulo ESP8266 é 192.168.0.104 e, portanto, meu encaminhamento parecerá algo abaixo:
Etapa 5: agora precisamos saber nosso endereço IP público. Você pode encontrar este meu Goggling para “Qual é o meu IP”. O IP do seu ISP deve ser mantido altamente confidencial. Para o propósito deste tutorial, vamos supor que meu endereço IP seja 987: 654: 321: 123. Vou usá-lo como meu IP de ISP para o resto do meu tutorial.
Nota: Seu ISP pode ter fornecido um IP Estático / Dinâmico, se for um IP dinâmico, seu IP mudará a cada reinicialização do Modem / roteador. Nesse caso, você deve usar algo como DynDNS. Mas, isso está fora do escopo deste tutorial. Mesmo se for um IP dinâmico, ele funcionará para você, desde que você não reinicie o roteador.
Se nosso encaminhamento de porta foi bem-sucedido, podemos verificar isso inserindo o IP do ISP: nome da porta (987: 654: 321: 123: 80) em nosso navegador e verificar se a página do ESP carrega. Se tudo correr conforme o esperado, agora você deve ser capaz de alternar as cargas de qualquer lugar do mundo usando o endereço IP do seu ISP.
Instalando o aplicativo Moni Android:
Moni é um aplicativo que está disponível para Android, Windows, iTunes e até Skype. Você pode baixar este aplicativo para o seu celular. Moni.ai tem muito mais recursos além de apenas responder aos seus comandos de voz, é altamente amigável ao desenvolvedor e você pode definir rapidamente as conversas visualmente e se conectar aos serviços. Moni.ai usa um aplicativo chamado Node-Red com o qual você pode facilmente criar um canal de voz e construir seu próprio sistema Chabot (AI) para seu negócio / projetos e automatizá-lo com sua linguagem natural. A melhor coisa é que Moni é totalmente gratuito para uso não comercial.
Estou usando um telefone Android e, portanto, faço o download do Moni diretamente da Google Play Store. Depois de instalar, crie sua conta gratuita e faça login nela, seu aplicativo deve ter a seguinte aparência:
Você pode usar isso como qualquer outro assistente virtual, como perguntar sobre o clima, hora etc. Mas o que é adicional é que ele pode responder aos seus miniaplicativos criados pelo seu serviço Ifttt. Vamos ver como criar miniaplicativos para seu aplicativo agora.
Criação de miniaplicativos usando o serviço IFTTT:
Estamos a um passo de concluir este projeto. A última etapa é criar os miniaplicativos no site do IFTTT. É aqui que instruímos o nosso Moni para diferentes comandos de voz para controlar diferentes eletrodomésticos em casa.
Estou usando esta caixa de junção controlada por voz para alternar as cargas do meu aquário (luz / filtro), conforme mostrado no vídeo abaixo. Portanto, estou personalizando o miniaplicativo para esse requisito, você pode personalizá-lo para sua finalidade. Siga os passos abaixo:
Passo 1: Visite www.IFTTT.com e faça o login com sua conta. Se for novo, então Inscreva-se.
Passo 2: Agora clique em “Pesquisar” e digite Make Webhooks. Selecione-o e clique em “Conectar”. Siga as etapas para conectar-se a ele.
Passo 3: Agora clique novamente em “Pesquisar” e digite Moni. Selecione Moni e clique em “Conectar”. Faça login com sua conta IFTTT para habilitar a conexão.
Etapa 4: Conectamos aos serviços “Maker Webhooks” e “Moni”. Agora vamos criar um miniaplicativo com esses serviços. Clique em Meus miniaplicativos e em “Novo miniaplicativo”. Você deve ver algo assim:
Nesta tela você deve clicar em “this” e selecionar “Moni”. Em seguida, clique em “Peça a Moni para realizar uma ação” e você será direcionado para a tela abaixo.
Etapa 5: Preencha os detalhes conforme preenchi a imagem acima. Minha tarefa aqui é ligar as luzes do aquário (carga 1) quando digo “Ligar as luzes do aquário”. Em seguida, clique em “Create Trigger”
Etapa 6: Você será levado de volta à tela “SE ISSO QUE ISSO”. Agora, clique em “that” e digite “Maker Webhooks” e selecione-o. Em seguida, clique em “Fazer uma solicitação na web”. Você será levado para a tela abaixo
Esta é uma etapa importante em que você provavelmente cometerá erros. Nesta página basta inserir a URL que você deseja carregar. No meu caso eu quero ligar a carga conectada ao switch1, portanto, a linha http: // 987: 654: 321: 123 / switch1On é usada, você precisa substituir meu IP pelo seu endereço IP público. Isso funcionará apenas se você tiver usado meu código no tutorial anterior. A lista completa de URLs para alternar as cargas é fornecida abaixo.
URL |
Palavra-chave do programa |
Açao |
http: // 987: 654: 321: 123 / switch1On |
Switch1On |
GPIO_0 é elevado, ligando assim a carga 1 |
http: // 987: 654: 321: 123 / switch1Off |
Switch1Off |
GPIO_0 é reduzido, desligando assim a carga 1 |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 é elevado, ligando a carga 2 |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 é reduzido, desligando assim a carga 1 |
Depois de inserir o URL desejado, clique em “Criar ação”. Em seguida, clique em Concluir. Da mesma forma, você pode criar 4 miniaplicativos para ligar / desligar ambas as cargas em nossa caixa de junção.
É isso que seu miniaplicativo está pronto para a ação e deve aparecer em “Meus miniaplicativos” conforme mostrado abaixo.
É hora de testar nosso código…….
Teste do Projeto:
Finalmente estamos prontos com nosso projeto. Deixe-nos testar. Ligue-o e abra o aplicativo Moni no seu celular. Clique no ícone do microfone e diga o comando. No meu caso é “Ligar as luzes do aquário” e deve virar a resposta com um “OK” e ligar as luzes. Verifique o código completo e o vídeo de demonstração abaixo.
Espero que você tenha gostado do projeto e o tenha feito funcionar. Se você está preso em algum lugar, use a seção de comentários abaixo e eu certamente irei te ajudar. Encontrarei você com outro projeto interessante até então fique ligado.
Verifique também nossos outros projetos baseados em IoT aqui.