Índice:

Switch controlado por voz usando Alexa e Arduino: 10 etapas (com imagens)
Switch controlado por voz usando Alexa e Arduino: 10 etapas (com imagens)

Vídeo: Switch controlado por voz usando Alexa e Arduino: 10 etapas (com imagens)

Vídeo: Switch controlado por voz usando Alexa e Arduino: 10 etapas (com imagens)
Vídeo: Esp32 com Alexa - Integração com Comando de Voz #MaratonaMaker 2024, Novembro
Anonim
Switch controlado por voz usando Alexa e Arduino
Switch controlado por voz usando Alexa e Arduino

O objetivo principal deste projeto é utilizar sensor de temperatura para controle de chave (relé) para ligar ou desligar o dispositivo.

Lista de materiais

  1. Módulo de Relé 12V ==> $ 4,2
  2. Arduino uno ==> $ 8
  3. Sensor de temperatura DHT11 ==> $ 3
  4. Módulo ESP8266 ==> $ 4,74
  5. Optoacoplador N26 ==> $ 0,60
  6. Regulador de tensão LM1117 ==> $ 0,60
  7. Breadboard ==> $ 2,2
  8. Fios de ligação ==> $ 2,5
  9. Botão de pressão ==> $ 2,5

O custo total do projeto é de cerca de US $ 30 dólares. Este projeto está dividido em três partes. Primeiro, usamos o heroku para criar um aplicativo. Em segundo lugar, construímos uma habilidade do Amazon Alexa para implementar nosso trabalho (a parte mais importante). Terceiro, configuramos nosso hardware e o programamos usando o IDE Arduino.

Etapa 1: Vinculando o Heroku ao GitHub

Vinculando o Heroku ao GitHub
Vinculando o Heroku ao GitHub
Vinculando o Heroku ao GitHub
Vinculando o Heroku ao GitHub
Vinculando o Heroku ao GitHub
Vinculando o Heroku ao GitHub

Heroku é uma plataforma de nuvem como serviço (PaaS) que suporta várias linguagens de programação que é usada como um modelo de implementação de aplicativo da web. Primeiro, vá para o site do heroku, crie uma nova conta ou faça o login lá. O link é fornecido abaixo

Site Heroku

Vamos começar com a criação de um novo aplicativo. Dei o nome do meu aplicativo "iottempswitch" quando você implanta o aplicativo, o link é gerado.

Depois de fazer o aplicativo, vá para GitHub. GitHub /

Faça login lá ou cadastre-se se você não tiver uma conta. Uma vez logado, crie um novo repositório. Dê qualquer nome que você deseja escolher e pressione criar repositório. Na próxima página clique em README, nesta página dê a descrição que você deseja compartilhar com outras pessoas. Depois disso, clique em "commitar novo arquivo". Em seguida, clique no botão de upload.

Existem duas opções: você arrasta e solta a pasta ou escolhe o arquivo. Baixe os arquivos necessários abaixo. Depois de selecionar os arquivos, pressione confirmar as alterações. Abra o aplicativo que você criou no Heroku e vá para a seção de implantação. Depois disso, clique em GitHub. Give o nome do repositório que você criou no lado do GitHub. No meu caso, é o Smart-Relay. Copie e cole aqui. Assim que seu link for mostrado, clique em conectar. Em seguida, clique em implantar branch (manual). Após a implantação, você pode ver o link no log de construção ou pode ver o link nas configurações. Precisamos desse link mais tarde, quando estivermos desenvolvendo as habilidades da Amazon.

Etapa 2: Amazon

Amazonas
Amazonas
Amazonas
Amazonas
Amazonas
Amazonas

Últimas imagens da habilidade Alexa

No site do Amazon Developer, usamos a habilidade da Amazon para controlar o gatilho do interruptor, definindo a temperatura e a umidade.

Vá para o site do desenvolvedor da Amazon. O link é fornecido abaixo.

Site do desenvolvedor Amazon

  • Vá para o console do desenvolvedor no canto superior direito, conforme mostrado na figura i4
  • Vá para Alexa, selecione Alexa Skill Kit e crie uma nova habilidade clicando em Adicionar nova habilidade.

Ao adicionar uma nova habilidade, você verá a página de informações da habilidade.

1. Informações de habilidade (como mostrado na imagem i7)

temos que fornecer o tipo de habilidade, idioma, nome, nome de invocação.

Tipo de habilidade ==> selecione personalizado

  • Nome ==> selecione qualquer nome.
  • Nome de invocação ==> que você usa enquanto se comunica com Alexa. Por exemplo; - Alexa, peça ao sensor para ligar o gatilho ou Alexa, peça luz acesa aqui, os nomes de invocação são sensor e luz.
  • Idioma ==> Inglês (Índia). Selecione de acordo com seu país

clique em Salvar e depois em Avançar

2. Modelo de interação

Aqui, usaremos o construtor de habilidades. Então, clique em Launch Skill Builder. você verá a página conforme mostrado na imagem i8.

Primeiro, criamos novas intenções. Clique em Adicionar (no lado esquerdo) e dê o nome que quiser, usei "smartswitch"

  • Dê o nome do tipo de slot "medição_type" e os valores de slot "temperatura" e "umidade", conforme mostrado na imagem i9.
  • Depois disso, adicione o nome do tipo de slot "consulta" e os valores de slot são "o que" e "é", conforme mostrado na imagem i10.
  • Depois disso, adicione o tipo de slot "switchstate" e os valores de slot são "on" e "off", conforme mostrado na imagem i11.
  • Adicione outro tipo de slot "tempscale" e os valores de slot são "fahrenheit" e "celcuis", conforme mostrado na imagem i12.
  • Depois de adicionar um novo tipo de slot aqui, usamos o tipo de slot existente, para isso temos que clicar em usar slot existente. No slot existente, pesquise amazon.number e selecione-o e adicione-o. Depois de adicioná-lo, você o verá em tipos de slot, conforme mostrado na imagem i13.

Então, terminamos com os tipos de slot, o tipo total de slot que estamos usando é 5. Agora, vá para a próxima etapa. Clique na intenção que criamos, no meu caso é inteligente. No lado direito, você verá o slot de intenção, conforme mostrado na imagem i14.

  • Crie um novo slot, dê a ele o nome "Switch_State" e mapeie-o para "switchstate" usando o botão suspenso conforme mostrado na imagem i15.
  • Crie um novo slot, dê a ele o nome "Sensor_Values" e mapeie-o para "measure_type" como mostrado na imagem i16.
  • Crie um novo slot, dê a ele o nome de "consulta" e mapeie-o para "consulta", conforme mostrado na imagem i17.
  • Depois disso, crie um novo slot "tmp_scale" e mapeie-o para "tempscale", conforme mostrado na imagem i18.
  • Crie um novo slot "Numbers" e mapeie-o para "Amazon. Numbers" conforme mostrado na imagem i19.

Agora terminamos com os slots de Intent. Estamos usando 5 slots de intenção. Depois disso, passamos para os exemplos de enunciados, conforme mostrado na imagem i20.

Adicione esta amostra de enunciados.

defina o gatilho do interruptor para {Numbers} por cento {tmp_scale}

{query} é o estado do switch

{Switch_State} interruptor gatilho

defina o gatilho do interruptor para {Numbers} graus {tmp_scale}

vire o interruptor {Switch_State}

{query} mudar {Switch_State}

{query} é o {Sensor_Values} atual

Depois disso, salve o modelo e construa-o. Aguarde a construção do modelo e clique em configuração. Após a construção, você verá a mensagem mostrada nas imagens i21 e i22.

3. Configuração

Selecione HTTPS e adicione o link que foi gerado durante a criação do aplicativo heroku. No meu caso, é https://iottempswitch.herokuapp.com/. Após adicionar o link, clique em Avançar, conforme mostrado na imagem i23.

4. Certificado SSL Selecione a segunda opção e clique em Avançar, conforme mostrado na imagem i24.

nós criamos nossa habilidade com sucesso.

Etapa 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Abra o Arduino IDE. Em seguida, vá para Arquivo ==> Preferências

No Gerenciador de placas adicionais, copie e cole o URL e clique em ok conforme mostrado na imagem i26.

arduino.esp8266.com/versions/2.4.0/package_…

  • Abra o Board Manager indo para Tools ==> Board ==> Board Manager.
  • Abra o Gerenciador de placas e pesquise por nodemcu, conforme mostrado na imagem i27.
  • Depois disso, baixe a biblioteca ESP8266WiFi. Abra o gerenciador da biblioteca: Sketch ==> Incluir biblioteca ==> Gerenciar Bibliotecas.
  • Pesquise a biblioteca ESP8266WiFi e instale-a.
  • Selecione placa ==> Módulo ESP8266 Genérico.
  • Antes de enviar o código, precisamos de três bibliotecas.

Bibliotecas necessárias

Mova essas bibliotecas para a pasta de bibliotecas do Arduino

Você tem que alterar três coisas no código SSID, PWD e no link do seu aplicativo heroku. Depois disso, faça upload do código. Para o Módulo ESP, você deve pressionar o botão do flash enquanto carrega o código e, em seguida, pressionar o botão de reinicialização uma vez e, em seguida, soltar o botão do flash. Após fazer o upload do código, abra o terminal. você verá a saída.

Etapa 4: descrição do componente

Descrição do componente
Descrição do componente
Descrição do componente
Descrição do componente
Descrição do componente
Descrição do componente
Descrição do componente
Descrição do componente

1. O que é um relé

O relé é um dispositivo eletromagnético utilizado para isolar eletricamente dois circuitos e conectá-los magneticamente. Eles são dispositivos muito úteis e permitem que um circuito troque outro enquanto eles estão completamente separados. Eles são freqüentemente usados para fazer a interface de um circuito eletrônico (trabalhando em baixa tensão) com um circuito elétrico que funciona em uma tensão muito alta. Por exemplo, um relé pode fazer um circuito de bateria de 5 Vcc para alternar um circuito principal de 230 Vca.

Como funciona

Uma chave de relé pode ser dividida em duas partes: entrada e saída. A seção de entrada possui uma bobina que gera um campo magnético quando uma pequena tensão de um circuito eletrônico é aplicada a ela. Essa tensão é chamada de tensão operacional. Os relés comumente usados estão disponíveis em diferentes configurações de tensões de operação, como 6 V, 9 V, 12 V, 24 V, etc. A seção de saída consiste em contatores que se conectam ou desconectam mecanicamente. Em um relé básico, existem três contatores: normalmente aberto (NO), normalmente fechado (NC) e comum (COM). Em nenhum estado de entrada, o COM está conectado ao NC. Quando a tensão de operação é aplicada, a bobina do relé é energizada e o contato COM muda para NÃO. Diferentes configurações de relé estão disponíveis, como SPST, SPDT, DPDT etc, que têm diferentes números de contatos de transição. Usando a combinação adequada de contatores, o circuito elétrico pode ser ligado e desligado. Obtenha detalhes internos sobre a estrutura de uma chave de relé.

O terminal COM é o terminal comum. Se os terminais COIL forem energizados com a tensão nominal, os terminais COM e NO têm continuidade. Se os terminais COIL não estiverem energizados, os terminais COM e NO não têm continuidade.

O terminal NC é o terminal Normalmente Fechado. É o terminal que pode ser ligado mesmo que o relé não receba nenhuma tensão ou tensão suficiente para operar.

O terminal NO é o terminal Normalmente aberto. É o terminal onde você coloca a saída que deseja quando o relé recebe sua tensão nominal. Se não houver tensão nos terminais da COIL ou tensão insuficiente, a saída será aberta e não receberá tensão. Quando os terminais COIL recebem a tensão nominal ou um pouco abaixo, o terminal NO recebe tensão suficiente e pode ligar o dispositivo na saída.

2. Sensor de temperatura DHT

O DHT11 é um sensor de umidade e temperatura, que gera saída digital calibrada. O DHT11 pode fazer interface com qualquer microcontrolador como Arduino, Raspberry Pi, etc. e obter resultados instantâneos. O DHT11 é um sensor de umidade e temperatura de baixo custo que oferece alta confiabilidade e estabilidade de longo prazo.

3. ESP8266 Descrição Completa

O Módulo WiFi ESP8266 é um SOC independente com pilha de protocolo TCP / IP integrada que pode dar a qualquer microcontrolador acesso à sua rede WiFi. O ESP8266 é capaz de hospedar funções de rede de um aplicativo de outro aplicativo. Cada módulo ESP8266 vem pré-programado com um comando AT.

O ESP8266 suporta APSD para aplicações VoIP e interfaces de coexistência Bluetooth, contém um RF autocalibrado permitindo que funcione em todas as condições operacionais e não requer peças externas de RF.

Recursos

  • 802.11 b / g / n
  • Wi-Fi Direct (P2P),
  • Pilha de protocolos TCP / IP integrada soft-AP
  • Interruptor TR integrado, balun, LNA, amplificador de potência e rede correspondente
  • PLLs integrados, reguladores, DCXO e unidades de gerenciamento de energia
  • + 19,5dBm de potência de saída no modo 802.11b
  • Desligue a corrente de fuga de <10uA
  • 1 MB de memória flash
  • CPU integrada de 32 bits de baixa potência pode ser usada como processador de aplicativo
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU e agregação A-MSDU e intervalo de guarda de 0,4 ms
  • Acorde e transmita pacotes em <2ms
  • Consumo de energia em espera de <1,0mW (DTIM3)

Descrição do pino conforme mostrado na imagem i34.

Para conectar o Módulo ESP com o Arduino UNO, precisamos do regulador de tensão Lm1117 3.3 ou qualquer regulador porque o Arduino não é capaz de fornecer 3,3 V ao ESP8266.

Nota: - Ao carregar o código, pressione o botão flash e, a seguir, pressione o botão reset uma vez e, a seguir, solte o botão flash como mostrado na imagem i29.

Para conectar o sensor DHT11 e o relé, usamos dois pinos GPIO do Módulo ESP8266. Depois de enviar o código, você pode desconectar os pinos RX, TX, GPIO0. Usei GPIO0 para sensor DHT11 e GPIO2 para relés. O sensor DHT11 funciona bem com ESP8266, mas para relés, precisamos de uma coisa extra, ou seja, opto-isolador ou opto-acoplador. Veja as imagens i30, i31, i32 e i33.

Etapa 5: conexões

ESP8266 ===> DHT11GPIO0 ===> Pino de saída

ESP8266 ===> RelayGPIO2 ===> Entrada

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

Botão Reset ===> RST

Botão Flash ===> GPIO0

Etapa 6: verificando todas as coisas

Verificando todas as coisas
Verificando todas as coisas
Verificando todas as coisas
Verificando todas as coisas
Verificando todas as coisas
Verificando todas as coisas
Verificando todas as coisas
Verificando todas as coisas

Nós criamos com sucesso nosso aplicativo, habilidade e nosso hardware está pronto. Então, é hora de verificar.

Para isso, seu ESP8266 está ligado porque nosso servidor está rodando em ESP8266. Aqui não conectei nenhum sensor ao ESP8266, estou apenas verificando se está funcionando ou não, mas dá para conectar sensor, relé ao ESP8266. Assim que estiver conectado ao Heroku, você o verá conectado. Para testar, vá para a habilidade da Amazon que você criou e clique na página de teste. Assim que for verificado que está funcionando, conectarei meu sensor ao ESP8266. Você pode ver os resultados conforme mostrado nas imagens i35, i36, 37, 38, 39, 40.

Se você usá-lo sem conectar o ESP8266, obterá este erro, conforme mostrado na imagem i41.

Expressão que você pode usar

defina o gatilho do interruptor para {Numbers} por cento {tmp_scale}

ex: - definir o gatilho do interruptor para 50 por cento de umidade

{query} é o estado do switch

ex- ligado / desligado é o estado do interruptor

{Switch_State} interruptor gatilho

gatilho do interruptor ex -on / off

defina o gatilho do interruptor para {Numbers} graus {tmp_scale}

ex - definir o gatilho do interruptor para 76 graus Fahrenheit

ex - definir o gatilho do interruptor para 24 graus Celsius

vire o interruptor {Switch_State}

ex - liga / desliga o interruptor

Veja as imagens i41 a i46 para ver os resultados.

Enquanto fala com AlexaAlexa, peça ao arduino para ligar / desligar o gatilho

Alexa, peça ao Arduino para definir o gatilho do interruptor para 24 graus Celsius.

Alexa, peça ao Arduino para definir o gatilho do interruptor para 50 por cento de umidade

Alexa, peça ao Arduino para ligar / desligar o interruptor

Etapa 7: Diagrama de VUI (interface de voz do usuário)

Diagrama de VUI (Voice User Interface)
Diagrama de VUI (Voice User Interface)

Etapa 8: demonstração

Image
Image

1. Defina o gatilho para temperatura e umidade.

2. Defina o gatilho para 20 graus Celsius.

3. Ajuste o gatilho para 80 por cento de umidade.

Etapa 9: Esquemático

Recomendado: