Jarvis – Porta monitorada com NodeMCU WiFi ESP82666 e Sensor Magnético MC-38

Jarvis – Porta monitorada com NodeMCU WiFi ESP82666 e Sensor Magnético MC-38

Nesta postagem você vai aprender a utilizar o NodeMCU ESP8266 junto ao Jarvis para fazer o monitoramento de uma porta. Com o uso do Sensor Magnético MC-38 junto ao NodeMCU, o Jarvis vai conseguir identificar se a porta foi / está aberta ou fechada.

Na primeira postagem sobre o Jarvis que saiu aqui no blog, foi falado um pouco sobre a ferramenta, suas capacidades, compatibilidade e foi implementado uma prática com o intuito de demonstrar a integração entre o Jarvis e o Arduino. Acesse a postagem Jarvis – Controlando o seu Arduino por Comandos de Voz e veja todos os detalhes.

Já na segunda postagem, foi explicado passo a passo a solução que implementei para permitir a integração entre o Jarvis e o Arduino com feedback e confirmação das ações executadas. Acesse a publicação Jarvis – Feedback / Confirmação das ações executadas no Arduino para entender como foi implementado todo o processo e para ver os projetos práticos que foram executados como demonstração.

Para conhecer todos os detalhes do Jarvis, recomendo que acesse o site oficial e faça o download da versão free para que você possa fazer testes com a ferramenta. Lembrando que o Jarvis está disponível também na versão PRO:

Site Oficial do Jarvis

Download Jarvis

Tutoriais de Instalação e Configuração

O uso do Arduino junto ao Jarvis sem integração com um módulo ou shield ethernet ou WiFi, nos limita a fazer o envio de informações do Jarvis para o Arduino através de cabo usando comunicação serial. Para vários projetos a comunicação via serial é suficiente, contudo, há situações em que é necessário o uso de comunicação sem fio para enviar comandos do Jarvis para a plataforma a ser controlada. Neste tipo de situação, caso esteja sendo usado um Arduino, por exemplo, as opções de envio de dados por conexão sem fio mais comuns são: radiofrequência e WiFi. No caso da radiofrequência, dependendo do projeto será necessário utilizar mais de um Arduino. Caso seja utilizado WiFi, será necessário o uso de um módulo ou shield WiFi.

Olhando todas estas questões, o mais viável e mais barato é usar uma plataforma que já possua conexão WiFi nativa e que possa ser programada da mesma forma que o Arduino. Portanto, a plataforma mais indicada neste caso é o ESP8266 ou as placas baseadas nele. No mercado há diversas placas baseadas no ESP8266, como, por exemplo, o NodeMCU e a Wemos D1.

Nesta prática será utilizado o NodeMCU V3 com a sua respectiva Base, contudo, caso você tenha o NodeMCU V2 ou a Wemos D1 poderá utilizá-los também, pois o esquema de ligação é compatível. O NodeMCU e a Wemos D1 são baseadas na mesma versão do ESP8266, que no caso é o ESP-12E.

A comunicação entre o Jarvis e o Arduino utilizando cabo é feita através da serial, onde o comando de voz é falado no microfone conectado ao computador, o Jarvis processa este comando e envia ao Arduino um determinado dado através da serial. Com o NodeMCU ESP8266 podemos usar o recurso de Tarefas Remotas que o Jarvis possui, onde é possível fazer o envio de requisições HTTP para um endereço IP e uma determinada ação poderá ser executada de acordo com o parâmetro recebido. Logo, podemos conectar ao NodeMCU módulos, sensores e componentes eletrônicos, por exemplo, e fazer o acionamento deles através de comunicação sem fio com o envio de requisições HTTP.

Para demonstrar a utilização do NodeMCU ESP866 com o Jarvis, optei por implementar um projeto de monitoramento de uma porta. Utilizei o Sensor Magnético MC-38 para verificar se a porta foi / está fechada ou aberta. O monitoramento da porta poderá ser ativado ou desativado através de comando de voz enviado ao Jarvis. Quando estiver ativado, sempre que o estado da porta mudar, o Jarvis irá avisar. Além disso, o estado da porta poderá ser consultado a partir de uma pergunta feita ao Jarvis e caso seja feito a consulta e o monitoramento esteja desativado, o Jarvis vai informar e perguntar se deseja ativar o monitoramento.

Assim como na publicação Jarvis – Feedback / Confirmação das ações executadas no Arduino, utilizei o Módulo YX6300 para possibilitar que o Jarvis possa dar feedback em relação as ações executadas. Este módulo é que permite o Jarvis informar se a porta foi / está fechada ou aberta. Optei também por usar um transmissor VHF e um receptor VHF. A saída de áudio do Módulo YX6300 é conectada ao transmissor e o receptor é conectado a entrada de microfone do computador. Logo, quando o arquivo de áudio for executado no Módulo YX6300, o receptor VHF vai captar o sinal de áudio, direcionar ao conector de microfone do computador, o Jarvis vai escutar e dar a resposta correspondente, que no caso é o feedback do estado atual da porta.

Os comandos de voz poderão ser enviados ao Jarvis através do microfone convencional que vai estar conectado ao computador ou via WiFi através do microfone do smartphone. Desta forma, o projeto fica 100% sem fio.

Para implementar esta prática você vai precisar dos seguintes itens:

01 – NodeMCU v3 Lolin WiFi ESP8266 ESP-12E (v2 Amica / Wemos D1 R2)
01 – Base Adaptador para NodeMCU V3
01 – Sensor Magnético com fio para Alarme MC-38
01 – Módulo YX6300 Leitor de Cartão com Saída de Áudio P2
01 – Micro Cartão de Memória
01 – Microfone Lapela Sem Fio MT-2205
06 – Cabos Jumper macho-fêmea
01 – Clip Conector de Bateria 9V com Plug P4
01 – Chave Gangorra KCD1-101 Preta 2T (Liga / Desliga)
01 – LED Difuso 5mm Verde
01 – Bateria 9V
01 – Cabo P2 Macho (em ambas as pontas)

Para poder prosseguir é altamente recomendado que você leia a postagem Jarvis – Feedback / Confirmação das ações executadas no Arduino para entender os passos que serão executados a seguir. Após a leitura, retorne para continuar.

No cartão de memória do Módulo YX6300 gravei três comandos de voz. No primeiro arquivo de áudio MP3 falo o comando “Aberta”, no segundo falo o comando “Fechada” e no terceiro e último comando falo “Desativado”. Considerando que o monitoramento esteja ativado, quando a porta for aberta, o arquivo de áudio 001 (Aberta) será executado, o áudio será direcionado do Módulo YX6300 para o transmissor VHF através do cabo P2 que conecta ambos, o sinal de áudio será direcionado ao receptor VHF que está conectado a entrada de microfone do computador, o Jarvis vai escutar o comando de voz “Aberta” e vai dar a resposta correspondente, que no caso é “A porta está aberta”. Para os comandos 002 (Fechada) e 003 (Desativado) o funcionamento é idêntico. Portanto, grave os seus comandos de voz no cartão de memória e insira o cartão no Módulo YX6300.

Conforme eu já havia mencionado anteriormente, os comandos de voz poderão ser enviados ao Jarvis através do microfone convencional que vai estar conectado ao computador ou pelo microfone do smartphone. Para utilizar o microfone do seu smartphone e enviar comandos ao Jarvis remotamente via WiFi, leia a postagem Jarvis – Utilizando o Smartphone como Microfone via WiFi e em seguida retorne para continuar.

Caso seu PC possua apenas uma entrada de microfone, você pode usar o Cabo 2X1 para conectar o microfone e o receptor VHF ao computador:

img01_jarvis_porta_monitorada_com_nodemcu_wifi_esp82666_e_sensor_magnético_mc-38_arduino_automacao_residencial_sem_fio

Monte o esquema de ligação a seguir para ser instalado na porta:

img02_jarvis_porta_monitorada_com_nodemcu_wifi_esp82666_e_sensor_magnético_mc-38_arduino_automacao_residencial_sem_fio

Nas imagens a seguir você pode ver como eu fiz a montagem e instalação na porta do meu escritório:

Em seguida, faça o download da biblioteca abaixo e instale na IDE do Arduino:

Download MD_YX6300

Se você não sabe como instalar bibliotecas na IDE do Arduino, basta clicar no link abaixo, seguir os passos, importar a biblioteca e retornar para continuar:

Arduino – Importando bibliotecas para a IDE

Considerando que você já tenha o pacote de bibliotecas do ESP8266 instalados no ambiente de programação do Arduino, copie o código abaixo e cole na IDE:

 

No código você deverá inserir o nome da sua rede WiFi na linha char* ssid = “NOME DA SUA REDE WIFI”;, a senha deverá inserir na linha char* password = “SENHA DA SUA REDE WIFI“;, na linha “IPAddress ip” deverá inserir um endereço IP disponível na sua rede sem fio, no “IPAddress gateway” coloque o endereço de gateway na sua rede e no “IPAddress subnet[]” coloque as informações de máscara de sub-rede:

img11_jarvis_porta_monitorada_com_nodemcu_wifi_esp82666_e_sensor_magnético_mc-38_arduino_automacao_residencial_sem_fio

Se você não sabe qual a faixa de IP utilizada pela sua rede sem fio, sugiro que leia a postagem Descobrindo a faixa de IP do seu roteador e em seguida retorne para continuar.

Conecte o Arduino ao computador, leia os comentários em cada linha do código para que você possa compreender o funcionamento e em seguida no menu “Ferramentas” da IDE, selecione a opção “Placas”, role a lista e selecione “NodeMCU 1.0 (ESP-12E Module)”.

No menu “Ferramentas”, selecione a opção “Porta” e marque a porta COM em que sua placa foi alocada. Caso não saiba em qual porta COM sua placa foi alocada, basta retornar no menu Iniciar do Windows, acessar a opção Dispositivos e Impressoras e verificar a porta em que sua placa está conectada, retornar na IDE e selecionar a porta COM.

Clique no botão para enviar o código ao NodeMCU e aguarde o carregamento.

Terminado o carregamento do código na placa e considerando que você já tenha o Jarvis instalado e configurado em seu computador, execute o programa e aguarde o carregamento da interface.

OBS: o Jarvis que está instalado no meu computador é a versão PRO e está com o tema Dark Edition.

Com o Jarvis aberto, acesse a opção de “Comandos” para que o menu de opções seja aberto.

Clique na opção “Controles de automação”:

img12_jarvis_porta_monitorada_com_nodemcu_wifi_esp82666_e_sensor_magnético_mc-38_arduino_automacao_residencial_sem_fio

Na janela que for aberta, clique em “Tarefas remotas”:

img13_jarvis_porta_monitorada_com_nodemcu_wifi_esp82666_e_sensor_magnético_mc-38_arduino_automacao_residencial_sem_fio

Nesta janela, clique em “Criar novo comando”. No box que for aberto, em “Crie um comando” insira a frase que será dita ao Jarvis, em “Crie uma resposta” insira a resposta que o Jarvis irá falar ao receber o comando e em “Endereço e ação” insira a URL contendo o IP (que foi definido no NodeMCU) e o parâmetro / valor que será enviado ao NodeMCU através de requisição HTTP. Clique em “Adicionar este comando”. Faça este mesmo procedimento para os demais comandos.

Após preenchimento das informações, minhas configurações ficaram conforme a imagem abaixo:

img14_jarvis_porta_monitorada_com_nodemcu_wifi_esp82666_e_sensor_magnético_mc-38_arduino_automacao_residencial_sem_fio

Veja que nas minhas configurações, a URL é composta pelo IP “192.168.0.175” (endereço do NodeMCU) e após a interrogação há o parâmetro “ARG” com o seu respectivo valor. Quando um dos comandos do “Tarefas remotas” for falado ao Jarvis, ele irá falar a resposta e fazer a requisição HTTP ao NodeMCU. Ao receber a requisição, o NodeMCU irá verificar o parâmetro e o seu respectivo valor para em seguida executar a ação correspondente.

Agora será necessário informar ao Jarvis que há novos comandos disponíveis. Para isto, aproxime-se do microfone e diga “Atualizar comandos”. Aguarde o Jarvis responder “Todos os comandos foram atualizados”.

Terminado esta configuração, basta fechar a janela de comandos.

Clique na opção “Criar comandos”:

img15_jarvis_porta_monitorada_com_nodemcu_wifi_esp82666_e_sensor_magnético_mc-38_arduino_automacao_residencial_sem_fio

Nesta parte serão inseridos os comandos de voz que o Arduino vai falar para o Jarvis através do Módulo YX6300. Para cada comando será criado uma resposta.

Após preenchimento das informações, minhas configurações ficaram com 4 comandos de voz:

img16_jarvis_porta_monitorada_com_nodemcu_wifi_esp82666_e_sensor_magnético_mc-38_arduino_automacao_residencial_sem_fio

O comando da linha 2 “Não precisa” é o único que não será executado pelo NodeMCU, pois é um comando de resposta que é falado no microfone sempre que o Jarvis questionar e eu NÃO optar pela execução de algum acionamento.

Clique em “SALVAR ALTERAÇÕES” para efetivar as modificações.

Novamente será necessário informar ao Jarvis que há novos comandos disponíveis. Para isto, aproxime-se do microfone e diga “Atualizar comandos”. Aguarde o Jarvis responder “Todos os comandos foram atualizados”.

Terminado esta configuração, basta fechar a janela de comandos.

Agora ligue a chave para alimentar o circuito e ligue o transmissor e receptor VHF. Fale os comandos para o Jarvis através do microfone que está conectado ao computador ou pelo microfone do smartphone para que o DroidCam possa direcionar os comandos ao computador através do WiFi.

No vídeo abaixo você pode ver o resultado final:

Este mesmo projeto pode ser aplicado a uma janela, por exemplo.

A implementação deste projeto me deu algumas ideias bem bacanas para serem desenvolvidas com o Jarvis e que em breve pretendo compartilhar aqui no Blog.

Gostou desta postagem? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.