Jarvis – Feedback / Confirmação das ações executadas no Arduino

Jarvis – Feedback / Confirmação das ações executadas no Arduino

Por padrão o Jarvis não tem a capacidade de dar feedback ou confirmar se uma ação foi de fato executada na plataforma microcontrolada. Por exemplo: enviamos o comando ao Jarvis para que através do Arduino ele acione um relé com o intuito de apagar ou acender a lâmpada. O comando vai ser enviado ao Arduino pela serial, contudo, o Jarvis não consegue confirmar se a lâmpada está acesa ou apagada. Mas será que é possível implementar alguma solução para que o Jarvis possa dar feedback ou confirmar as ações executadas pelo Arduino?! A resposta é SIM e hoje você vai aprender!

– Introdução

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.

O DJ.JARVIS.AM ou simplesmente Jarvis, é um programa de computador que tem como papel ser um assistente de voz. O Jarvis pode ser instalado e executado em dispositivos com Windows, e além disso, reconhece os comandos de voz em português do Brasil. Além de ser capaz de interagir com as pessoas e executar tarefas do nosso cotidiano, o Jarvis pode ser integrado com qualquer plataforma embarcada / microcontrolada que possua comunicação serial. Desta forma, podemos interagir o Jarvis com o Arduino, Raspberry Pi, ESP8266 e ESP32, por exemplo. Com isto, temos infinitas possibilidades de projetos, principalmente na área de automação residencial e robótica.

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

– Feedback e confirmação através do Jarvis

Conforme mencionado anteriormente, o Jarvis não tem a capacidade de dar retorno ou confirmar se uma ação foi de fato executada. Na integração com Arduino, por exemplo, nós falamos o comando para o Jarvis, ele dá uma resposta (se estiver configurada), processa o comando e envia ao Arduino através da serial o caractere correspondente. O Arduino recebe o comando e executa a ação, contudo, o Jarvis não consegue receber um retorno do Arduino e dar uma segunda resposta informando se a ação foi realmente executada.

A vantagem do Jarvis poder dar feedback é que a interação com a ferramenta fica muito mais completa, pois torna-se possível fazer perguntas e receber respostas com base no retorno dado pelo Arduino e o Jarvis pode fazer perguntas e aguardar confirmações (respostas) com base nos eventos ou alterações que ocorrerem nos sensores, módulos, shields e componentes eletrônicos conectados ao Arduino. Além disso, tem várias pessoas implementando projetos com o Jarvis com a finalidade de ajudar pessoas com problema de mobilidade, logo, o uso do feedback e confirmação das ações executadas permite que os projetos possam ser melhorados e consequentemente trazer mais funcionalidades.

– Solução para o feedback e confirmação

Para enviar comandos ao Jarvis, falamos o comando, o microfone capta a voz, o Jarvis interpreta, dá uma resposta e executa uma ação. Portanto, o que precisamos fazer é permitir que o Arduino também possa conversar com o Jarvis, ou seja, reproduzir a nossa voz, de forma que o Jarvis possa captar esta reprodução e dar uma resposta em correspondência, que no nosso caso é confirmar as ações executadas pelo Arduino ou fazer perguntas com base nas alterações que ocorrerem nos dispositivos que estiverem conectados a placa.

A forma mais simples que encontrei para fazer com que o Arduino converse com o Jarvis e possa reproduzir os comandos de voz e direcioná-los ao programa, é através do Módulo YX6300 Leitor de Cartão com Saída de Áudio P2 ou simplesmente Módulo YX6300 (Serial MP3 Player v1.0 YX5300):

img01_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Este módulo aceita micro cartão sd formatado em FAT32 / FAT16 e as faixas de áudio podem ser em formato MP3 ou WAV com taxa de amostragem na faixa de 8kHz a 48kHz. A saída de áudio do módulo é estéreo e aceita conexão de um fone de ouvido ou alto falante, por exemplo. O controle do módulo é feito utilizando comandos seriais, logo, fica fácil conectá-lo ao Arduino ou a qualquer outra plataforma embarcada que possua comunicação serial.

Pelo fato deste módulo possuir uma saída de áudio com conector P2 fêmea, torna-se possível conectá-lo a uma entrada de microfone do computador. Desta forma, podemos gravar os comandos de voz no cartão de memória, programar o Arduino para reproduzir cada um dos comandos gravados no cartão e como a saída do módulo vai estar conectada ao computador, o Jarvis vai estar escutando os comandos e poderá dar uma resposta correspondente a cada comando reconhecido.

Com esta solução para o Arduino dar comandos de voz ao Jarvis, o diagrama de comunicação fica conforme a imagem abaixo:

img02_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Geralmente computadores desktop possuem duas conexões de microfone, uma na parte de trás da máquina e outra na parte frontal. Logo, fica fácil conectar o microfone em uma das entradas e conectar o Módulo YX6300 na entrada que sobrar. No caso de notebooks, há somente uma entrada de microfone, logo, precisamos conectar o microfone e o módulo nesta mesma entrada através de um Cabo 2X1.

OBS: se o computador que você utiliza o Jarvis possuir duas entradas de microfone e não pretende confeccionar o Cabo 2X1, pule para ESTA etapa.

– Cabo 2X1 para a entrada de microfone

O conector de microfone do computador / notebook é estéreo, logo, possui dois canais de áudio separados. O que precisamos fazer é construir um Cabo 2X1, sendo duas entradas P2 fêmea e uma saída P2 macho.

Se o seu computador ou notebook possuir apenas um conector de microfone e você pretende construir o Cabo 2X1, irá precisar de:

02 – Conector P2 Estéreo Fêmea
01 – Conector P2 Estéreo Macho
01 – Cabo Microfone Estéreo com Malha 2×0.20 mm² (1 metro)
01 – Ferro de solda
01 – Estanho

OBS: dê preferência para utilizar conector P2 do tipo metálico, pois ele reduz consideravelmente o ruído do sinal de áudio.

Na imagem abaixo você pode ver como serão feitas as conexões para que cada entrada (P2 fêmea) utilize apenas um canal de áudio da saída (P2 macho):

img03_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Observe que um dos fios de cada um dos cabos de entrada foi ignorado. Utilize um ferro de solda para fazer as conexões e se possível, dê acabamento com espaguete termo retrátil.

Você pode usar como referência a sequência de imagens abaixo que mostra a confecção do Cabo 2X1 que eu fiz:

Terminado a confecção do cabo, basta conectá-lo ao computador através da entrada de microfone para fazer um teste rápido. Acesse o “Painel de Controle” do Windows e em seguida clique na opção “Som”:

img13_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Com a janela aberta, clique na aba “Gravação” e em seguida dê dois cliques sobre o microfone (entrada em que o Cabo 2X1 está conectado):

img14_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Na janela que for aberta, clique na aba “Níveis” e deixe configurado conforme a imagem abaixo:

img15_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Clique na aba “Aperfeiçoamentos”, deixe marcado somente a opção “Modo imediato” e clique no botão “OK”. Não marque mais nenhuma opção, pois isto pode comprometer o funcionamento de uma das entradas do cabo:

img16_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Com o Cabo 2X1 conectado ao computador e a janela “Som” aberta, conecte o microfone em um dos canais de entrada dele e fale próximo ao microfone. Se tudo estiver correto, o nível de sinal irá variar conforme a imagem abaixo:

img17_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Agora conecte o microfone no outro canal de entrada do Cabo 2X1, fale próximo ao microfone e se tudo estiver correto, o nível de sinal irá variar.

Quando o microfone estiver conectado em um dos canais de entrada do Cabo 2X1 e o Módulo YX6300 estiver conectado no outro canal, o funcionamento deles será de forma separada e não haverá interferência (elétrica) entre eles.

– Propostas práticas

Para demonstrar esta integração entre o Jarvis e o Arduino com feedback e confirmação das ações executadas, optei por  implementar:

Acionamento de uma bomba d’água e monitoramento de um recipiente com água: o acionamento da bomba d’água para encher o recipiente vai ser feito pelo Jarvis através do comando de voz e o nível do recipiente também vai poder ser consultado. O nível máximo do recipiente vai ser monitorado e quando for atingido, o Jarvis vai informar que o recipiente está cheio e vai desligar a bomba d’água. Na consulta ao Jarvis perguntando qual o nível do recipiente, caso o nível esteja abaixo do máximo, o Jarvis vai perguntar se deseja que a bomba d’água seja ligada.

Para esta prática serão necessários os itens abaixo:

01 – Arduino com Cabo USB
01 – Módulo YX6300 Leitor de Cartão com Saída de Áudio P2
01 – Micro Cartão de Memória
01 – Mini Motor DC – Bomba de Água Submersível
01 – Sensor Óptico Infravermelho Detector de Nível de Líquido
01 – Módulo Relé 5V de 1 Canal
01 – Resistor de 330Ω
01 – Resistor de 4,7KΩ
01 – Protoboard
05 – Cabos Jumper macho-macho
07 – Cabos Jumper macho-fêmea
01 – Cabo 2X1 (para computador com apenas uma entrada de microfone)
01 – Cabo P2 Macho (em ambas as pontas)
01 – Fonte 5V (no mínimo 1A)
02 – Recipiente (para água)
01 – Mangueira de 1/2” para a mini bomba d’água

Simulador de segurança com sensor de movimento: o alarme poderá ser ativado ou desativado por comando enviado ao Jarvis e quando o sensor estiver ativo, se houver detecção de movimento, o Jarvis irá avisar que identificou um movimento no ambiente.

Para esta prática serão necessários os itens abaixo:

01 – Arduino com Cabo USB
01 – Módulo YX6300 Leitor de Cartão com Saída de Áudio P2
01 – Micro Cartão de Memória
01 – Sensor Microondas RCWL-0516 (Detector) de Movimento
07 – Cabos Jumper macho-fêmea
01 – Cabo 2X1 (para computador com apenas uma entrada de microfone)
01 – Cabo P2 Macho (em ambas as pontas)

Acionamento de um ventilador com base na temperatura medida por um sensor: além de poder ligar ou desligar o ventilador por comando de voz, quando a temperatura ultrapassar um determinado valor, o Jarvis irá perguntar se o ventilador pode ser ligado.

Para esta prática serão necessários os itens abaixo:

01 – Arduino com Cabo USB
01 – Módulo YX6300 Leitor de Cartão com Saída de Áudio P2
01 – Micro Cartão de Memória
01 – Sensor de Temperatura DS18B20 – Prova D’água do Tipo Sonda
01 – Módulo Relé 5V de 1 Canal
01 – Resistor de 4,7KΩ
01 – Protoboard
03 – Cabos Jumper macho-macho
07 – Cabos Jumper macho-fêmea
01 – Cabo 2X1 (para computador com apenas uma entrada de microfone)
01 – Cabo P2 Macho (em ambas as pontas)
01 – Fonte 5V (no mínimo 1A)
01 – Mini Ventilador USB

Acionamento de uma lâmpada e controle de luminosidade: o acionamento da lâmpada será feito pelo Jarvis e o estado atual (acesa ou apagada) também será informado por ele. Se a lâmpada já estiver acesa e for dado o comando para liga-la, o Jarvis irá informar que ela já está acesa e se for dado o comando para apaga-la e a mesma já estiver apagada, o Jarvis vai informar que ela já está apagada. Além de poder apagar e acender a lâmpada, vai ser possível controlar a luminosidade dela (dimerização) e consultar o Jarvis sobre qual o percentual atual de luminosidade que está definido nela.

Para esta prática serão necessários os itens abaixo:

01 – Arduino com Cabo USB
01 – Módulo YX6300 Leitor de Cartão com Saída de Áudio P2
01 – Micro Cartão de Memória
01 – Módulo Dimmer de 1 Canal Bivolt com RF 433MHz para Automação
01 – Módulo Transmissor Wireless RF 433MHz
01 – Controle Remoto (Transmissor) para RF 433 MHz
01 – Sensor de Corrente (AC e DC) ACS712-30A
01 – Chave Gangorra KCD1-101 NA Preta 2T (Pulsante)
03 – Cabos Jumper macho-macho
07 – Cabos Jumper macho-fêmea
01 – Cabo 2X1 (para computador com apenas uma entrada de microfone)
01 – Cabo P2 Macho (em ambas as pontas)
01 – Lâmpada (dimerizável)
01 – Receptáculo (boquilha)
01 – Cabo paralelo de 1,5mm ou 2,5mm
01 – Tomada (Rede alternada de 127V)

OBS: se você quiser conhecer os detalhes do Módulo Dimmer de 1 Canal Bivolt com RF 433MHz para Automação, acesse a postagem Conhecendo o Módulo Dimmer AC Bivolt com RF 433MHz para Automação .

– Configurando o Jarvis

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”:

img18_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Na janela que for aberta, clique em “Comandos Arduino”:

img19_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Nesta janela, em “Portas seriais” selecione a porta COM em que seu Arduino está conectado e clique em “Salvar porta”. Em “Baud rate” selecione 9600 e clique em “Setar Baud Rate”:

OBS: a porta COM1 é nativa do Windows e não corresponde ao Arduino.

img20_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Na parte de “COMANDOS” deve ser inserido em cada linha o comando de voz (palavra ou frase), em “RESPOSTAS” deve ser inserido em cada linha a resposta correspondente ao comando e em “ENVIAR” deve ser inserido o caractere que será enviado via serial para o Arduino. Estes serão os comandos falados ao Jarvis através do microfone.

Para criar o comando, basta colocar o cursor na linha 1, digitar a frase e pressionar enter para que o cursor vá para a segunda linha. Use este mesmo procedimento para inserir as respostas e os caracteres a serem enviados ao Arduino.

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

img21_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Clique em “Salvar” para efetivar as modificações.

OBS: veja que nas linhas 1, 8, e 10 coloquei mais de um comando e os separei por uma barra vertical. Desta forma, qualquer um destes comandos que eu falar, ele vai dar a mesma resposta (se existir resposta configurada) e vai enviar ao Arduino o caractere definido. Na resposta de um comando você também pode inserir mais de uma resposta, respeitando o uso da barra vertical para separá-los.

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”:

img22_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

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 16 comandos de voz:

img23_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

O comando da linha 4 “Não precisa” é o único que não será executado pelo Arduino, 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.

É importante ressaltar que cada um destes comandos é referente a um arquivo de áudio que ficará salvo no cartão de memória do Módulo YX6300. Esses arquivos de áudio são os comandos de voz que serão gravados dizendo exatamente a palavra ou frase de cada um dos comandos que foram configurados nesta parte de “Criar Comandos”.

Exemplo:

O alarme foi ativado através do comando de voz “Ativar alarme” que foi falado no microfone, o Jarvis responde “OK, alarme ativado. A partir de agora vou monitorar o ambiente” e ele envia ao Arduino o comando serial para ativação do alarme. Quando houver detecção de movimento por parte do sensor que está conectado ao Arduino, o arquivo de áudio que pronuncia “Alarme violado” será executado através do Módulo YX6300 e como a saída de áudio do módulo vai estar conectada a entrada de microfone do computador através do cabo 2X1, o Jarvis vai escutar o comando de voz “Alarme violado” e vai dar como resposta “Identifiquei um movimento no ambiente”.

Veja que em “Criar Comandos” eu configurei o comando “Alarme violado” e a respectiva resposta “Identifiquei um movimento no ambiente”. Para os demais comandos e respostas (exceto o da linha 4) que configurei, o funcionamento será da mesma forma que expliquei no exemplo acima.

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.

– Gravando os comandos de voz

Conforme mencionei e mostrei anteriormente, configurei no Jarvis 16 comandos de voz na opção “Criar Comandos”, sendo que 15 deles serão executados pelo Arduino. Portanto, é necessário gravar 15 arquivos de áudio dizendo exatamente o texto contido em cada comando configurado no Jarvis.

Recomendo que faça as gravações em um ambiente silencioso e com o mínimo possível de ruído. Defina palavras ou frases curtas e grave mais de um áudio falando o mesmo comando para depois você filtrar e definir qual deles está com melhor qualidade.

Para gravar os comandos de voz optei por utilizar o smartphone, pois achei que ficou com uma qualidade bem melhor que gravar pelo microfone no computador. Utilizei o gravador de voz que pode ser baixado na Google Play a partir do link abaixo:

Gravador de voz

Após gravar os comandos de voz e filtrar, separe os que serão utilizados e exclua o restante.

Agora será necessário carregar os arquivos de áudio no cartão de memória para inserir no Módulo YX6300, contudo, existe alguns detalhes a serem seguidos.

Formate o cartão de memória em FAT32 e em seguida crie na raiz do cartão uma pasta chamada 01:

img24_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Cada arquivo de áudio deverá iniciar com a numeração de três dígitos, por exemplo, 001 002 003 004… 010 011… 026 027 e assim sucessivamente. O requisito principal é que cada arquivo inicie com um número de três dígitos. Se após a numeração você quiser colocar uma palavra para identificar cada gravação, fique à vontade.

Depois que fiz as gravações e separei os áudios que seriam utilizados, fiz as nomeações de cada um deles conforme explicado anteriormente e copiei os arquivos para a pasta 01 do cartão de memória:

img25_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Um outro detalhe importante é que a biblioteca responsável por fazer as execuções do áudio através do Módulo YX6300, utiliza como padrão a numeração em base octal. Portanto, no código final para executar o áudio 008, por exemplo, teríamos que passar como parâmetro o número 010 (8 decimal convertido em octal é igual a 10), para o áudio 009 passaríamos o número 011 (9 decimal convertido em octal é igual a 11), para o áudio 015 passaríamos o número 017 (15 decimal convertido em octal é igual a 17) e assim sucessivamente. Para os áudios de 001 a 007 não é preciso fazer nenhuma conversão de base. No link abaixo você pode fazer as conversões de decimal para octal:

Binary Hex Converter

– Downloads necessários

Para execução das práticas propostas será necessário instalar algumas bibliotecas.

Faça o download das bibliotecas abaixo e em seguida instale na IDE do Arduino:

Download MD_YX6300

Download EmonLib

Download OneWire

Download DallasTemperature

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 ID

– Esquema de ligação e código

Para cada uma das Propostas práticas foi feito um esquema de ligação separado. Desta forma, você poderá executar apenas algumas das práticas ou todas elas. O código para cada uma das práticas está abaixo de cada um dos esquema de ligação.

Se o computador que você utiliza o Jarvis possuir duas entradas de microfone, ignore a parte do esquema de ligação em que é utilizado o Cabo 2X1 e conecte o microfone em uma entrada e o Módulo YX6300 na entrada que sobrar.

Esquema (Acionamento de uma bomba d’água e monitoramento de um recipiente com água):

img26_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Código (Acionamento de uma bomba d’água e monitoramento de um recipiente com água):

Esquema (Simulador de segurança com sensor de movimento):

img27_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Código (Simulador de segurança com sensor de movimento):

Esquema (Acionamento de um ventilador com base na temperatura medida por um sensor):

img28_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Código (Acionamento de um ventilador com base na temperatura medida por um sensor):

Esquema (Acionamento de uma lâmpada e controle de luminosidade):

ATENÇÃO: MUITO CUIDADO AO EXECUTAR PRÁTICAS QUE ENVOLVAM TENSÃO / CORRENTE ALTERNADA! FAÇA TODAS AS LIGAÇÕES COM O CIRCUITO COMPLETAMENTE DESLIGADO E ANTES DE FAZER OS TESTES VERIFIQUE CADA UMA DAS LIGAÇÕES PARA ELIMINAR A POSSIBILIDADE DE CURTO ENTRE FASE / NEUTRO OU FASE / FASE.

img29_jarvis_feedback_confirmacao_das_acoes_executadas_no_arduino_assistente_voz_automacao_residencial_lampada_temperatura_alarme_recipiente

Código (Acionamento de uma lâmpada e controle de luminosidade):

Monte cada um dos esquemas e em seguida carregue no Arduino o respectivo código.

Após o término do carregamento do código na placa, basta falar os comandos de voz ao Jarvis, ver as ações sendo executadas no Arduino e o feedback e confirmações sendo falados pelo Jarvis.

– Resultado final

No vídeo abaixo você pode ver o resultado final desta integração do Arduino com o Jarvis e o feedback e confirmação das ações executadas:

Escolhi implementar estas propostas práticas, pois elas demonstram bem algumas das aplicações reais em que o Jarvis pode ser utilizado.

Enquanto o Jarvis não possui recurso nativo para receber informações externas (que não seja por voz), a gente vai se virando através desta solução.

Agora que você já sabe como interagir o Arduino com o Jarvis para obter feedback e confirmação das ações executadas, basta usar a imaginação e implementar os mais diversos projetos.

OBS: para outros Blogs ou canais do Youtube que pretendam criar conteúdo baseado nesta publicação, favor mencionar a fonte original (Blog MasterWalker Shop).

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.

Existem 19 comentários para esta postagem
  1. Mauro D'Angeli às 12:58

    Parabéns !

    O percurso para realizar esta interface é descrito de um jeito assim claro e exaustivo, que é evidente a sua preparação técnica, junta com uma não comum capacidade didática.

    Abraços …

  2. Ademir Alves Borges às 21:45

    Ótimo conteúdo, muito didático. Tem tempo que queria fazer essa pesquisa, mas não sabia por onde começar. Vou fazer montar esse sistema, parabéns pelo incentivo.

  3. Danilo Dorta às 02:34

    Sim sei que diz isso…não mudei nada no programa…e procurei ver se estava declarado…ao meu ver sim… Está declarado

    • Euler Oliveira Autor às 09:14

      Se copiou os códigos direto da postagem e instalou as devidas bibliotecas conforme orientações no texto, tudo deve funcionar sem acusar nenhum erro.

      Acabei de testar cada um dos códigos e nenhum deles acusou erro. Se copiou apenas parte de algum dos códigos, recomendo que você copie todo o código da postagem e em seguida vá removendo as partes que não precisa e adicionando os códigos que vai atender ao seu projeto.

      • Danilo Dorta às 14:46

        Antes eu apenas compilei e deu erro, mas agora com o Arduíno conectado o erro sumiu…obrigado
        Outra coisa sobre o acendimento da lâmpada: No caso de eu usar uma lâmpada não dimerizavel, exemplo Lâmpada Led, eu posso usar um relê direto no lugar do dommer…ou o sensor de corrente faz isso no lugar do relê, ou ainda teria que mudar o esquema e o Sketch?
        Obrigado pela atenção e recebi hoje todos os sensores que encomendei , tudo certinho.

        • Euler Oliveira Autor às 18:24

          Fazendo as modificações no código você pode sim usar um módulo relé para fazer o acionamento de uma lâmpada comum. O sensor de corrente não faz acionamento de cargas, apenas mede a corrente consumida pela carga.

          No tutorial abaixo você pode ver o funcionamento do módulo relé com Arduino e uma lâmpada, e com base no código disponibilizado na postagem, poderá fazer as alterações para atender ao que precisa.

          https://blogmasterwalkershop.com.br/arduino/como-usar-com-arduino-modulo-rele-5v-1-canal/

          • Danilo Dorta às 13:14

            Muito Obrigado pela pronta atenção, meus parabéns pelas soluções inteligentes e de fácil execução.

  4. Danilo Dorta às 16:18

    Euler ,,, eu copiei o programa da lâmpada para o IDEA do Arduino,,, deu o seguinte erro:

    D:\Documents\Arduino\jarvisLamRetor\jarvisLamRetor.ino: In function ‘void setup()’:

    jarvisLamRetor:31:17: error: ‘pinoSensorCor’ was not declared in this scope

    emon1.current(pinoSensorCor , CURRENT_CAL); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO)

    ^

    exit status 1
    ‘pinoSensorCor’ was not declared in this scope

    Por gentileza pode me ajudar? Só estou esperando os módulos chegarem da compra que fiz em sua loja virtual
    Obrigado

    • Euler Oliveira Autor às 11:53

      Você declarou no código a variável pinoSensorCor? O erro diz que a variável não foi declarada.

  5. Orlando às 01:07

    Hello, excellent work.
    How you can automate the control of a minisplit through Jarvis

    • Euler Oliveira Autor às 10:27

      Hi, Orlando.

      In this case it is necessary to clone the keys of the remote control of the air conditioning and then make the settings in the Jarvis and the programming in the Arduino.

      • Orlando às 01:52

        hello euler
        I see, then it is similar to the control of a tv?

        Thanks.
        Orlando

        • Euler Oliveira Autor às 08:52

          Unfortunately remote control of air conditioning is very tricky to have the keys cloned.

          With Arduino, you will hardly be able to clone the keys.

  6. Julio Silva às 23:27

    Download MD_YX6300 esta biblioteca não existe pode corrigir o erro?

  7. DANIEL AMORIM às 21:55

    Muito bom este tutorial. Fiquei satisfeito com as informações. Já vou montar este projeto e depois digo os resultados.

    • Danilo às 10:12

      Olá Euler… A tempo que eu procurava está interação do arduíno com o Jarvis, e você foi além usando o módulo de voz com tamanha inteligência… Quando puder…eu gostaria muito de ver estes sensores usados na casa em várias salas ou cômodos…porém para ficar viável…usar por exemplo módulos RF 433 que são baratos…e continuando a usar o Jarvis com o Arduíno off LINE…parabéns pela iniciativa!

      • Euler Oliveira Autor às 10:18

        Olá Danilo.

        Agradeço pelo comentário!

        Utilizar RF para comunicação com os dispositivos espalhados pela casa, certamente é a opção mais viável. Procurei implementar simulações de uso real do Jarvis em uma residência e com o benefício do feedback de cada um dos dispositivos.

        Vlw!!!