Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Controle Luzes LED com Alexa via Arduino Yun – Tutorial de Casa Inteligente

Componentes e Materiais

1× Arduino Yun
1× Amazon Alexa / Amazon Echo
1× LED (genérico)
1× Cartão Micro SD

Aplicativos e Serviços Online

Sobre o Projeto

Motivação

Desde que construí um espelho inteligente com Alexa integrado, venho procurando mais formas de conectar diversos hardwares e dispositivos de automação residencial pela casa. Quando soube que a nova API Alexa Smart Home permite controlar dispositivos personalizados diretamente, decidi testar.

Esta Árvore de Natal controlada por Echo usa uma versão mais antiga da API, mas serviu como excelente ponto de partida e me direcionou ao Arduino Yún voltado para IoT. Isso oferece um sistema Linux e um microcontrolador tudo em um pacote prático.

A tarefa que me propus foi o equivalente ao "hello world" de skills de casa inteligente... Apenas ligar e desligar um LED usando minha voz. Como tinha um array 2x3 de LEDs por aí, decidi ligar e desligar esse array por questões de estilo.

Visão Geral do Projeto

Este projeto visa conectar uma placa Arduino Yún a uma Skill Alexa Smart Home v3. Isso é feito usando uma Skill Alexa Smart Home (v3), uma Função AWS Lambda, um AWS IoT Thing e um Arduino Yún inscrito no IoT Thing.

No diagrama abaixo, você pode ver todas as peças principais envolvidas em acender a luz.

Controle Luzes LED com Alexa via Arduino Yun – Tutorial de Casa Inteligente

Recomendo fazer uma peça por vez e testar à medida que avança. Nada no projeto é muito desafiador, mas há muitas peças interconectadas. Não se desanime se ficar confuso em alguns momentos.

Pense em cada etapa como um mini-projeto, potencialmente levando 1+ horas cada.

Passo 1: Criar uma Smart Home Skill e Lambda Conectada

Aqui você cria uma Smart Home Skill, cria uma função Lambda e vincula as duas. Este processo é muito bem coberto neste tutorial. Certifique-se de seguir os passos do LWA para obter seu client ID e client secret usados na Configuração da Skill.

Nesta etapa, se você conseguir acessar o painel da Alexa e descobrir seu novo dispositivo de casa inteligente (neste ponto apenas uma resposta da função Lambda), você está no bom caminho.

Nota: aquele tutorial usa Python 3.6, mas usei Python 2.7. Você pode copiar a parte handle_discovery da minha função Lambda, mas só isso funcionará neste momento.

Passo 2: Criar um IoT Thing

Descoberta não adianta muito se você não pode fazer nada, então vamos dar algo para conectar criando um AWS IoT Thing.

Isso pode ser feito seguindo os passos nesta página. Usaremos a "Thing Shadow" (Sombra da Coisa) do que você criar, que é uma cópia do estado de uma coisa, junto com as alterações desejadas. O Arduino se inscreverá em um feed de notificação que publica as alterações ("delta") para esta Thing Shadow.

Uma vez criado seu Thing, navegue até a aba de segurança no painel web do IoT Thing e baixe a chave pública, chave privada e certificado. Feito isso, clique em "Ativar", que lhe dará a chave da Autoridade Certificadora Raiz. Salve isso também. Eles serão usados pelo seu Arduino para autenticar na sombra do IoT.

Navegue até a aba Shadow do seu Thing e clique em editar. Adicione uma propriedade à sua sombra para que fique assim:

{ "reported": { "light": "on" } }

Passo 3: Conectar seu Lambda ao seu Thing

Com seu Thing no lugar, agora você pode atualizar o código do Lambda para atualizar a sombra da coisa. Agora você pode copiar o código completo da minha função Lambda, mas certifique-se de manter quaisquer alterações relacionadas à Descoberta que você fez.

Você também deve garantir que a função IAM AWS associada à função Lambda tenha permissões "AWSIoTFullAccess". Você pode ver sua função na parte inferior do painel web de Configuração do Lambda. Essa permissão permite conectar ao AWS IoT Thing.

Uma vez feito isso, navegue até a página de configuração da função Lambda. Na aba de teste da sua função, adicione uma diretiva chamada "TurnOff" com o seguinte JSON específico v3. Você pode adicionar um segundo teste chamado "TurnOn" também, onde apenas altera o nome do cabeçalho para "TurnOn".

{
  "directive": {
    "header": {
      "namespace": "Alexa.PowerController",
      "name": "TurnOff",
      "payloadVersion": "3",
      "messageId": "1bd5d003-31b9-476f-ad03-71d471922820",
      "correlationToken": "1234"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "some-access-token"
      },
      "endpointId": "appliance-001",
      "cookie": {}
    },
    "payload": {}
  }
}

Quando você executar os testes TurnOn e TurnOff, deve ver a Thing Shadow reportar um estado desejado consistente com a ação. Se estiver vendo esse resultado, tudo bem.

Passo 4: Configurar seu Arduino Yún

Hora de configurar o hardware do Arduino Yún. Achei este guia mais útil que o guia do Arduino. Algumas notas: se você é usuário Windows, ao formatar o SD certifique-se de usar FAT32 (exFAT não é suportado). Também não consegui ver a página de "upgrade" corretamente até conectar com ethernet. Uma vez configurado, o wifi funcionou perfeitamente.

Você completou esta etapa quando vir esta opção e seguir os passos:

Controle Luzes LED com Alexa via Arduino Yun – Tutorial de Casa Inteligente

Você também deve conseguir fazer ssh no seu Arduino com sucesso. Recomendo executar "df -h" e procurar um volume que sugira que seu cartão SD foi adicionado.

Abrir a Arduino IDE e verificar se consegue rodar o exemplo Blink também seria bom neste estágio.

Passo 5: Conectar seu Yún ao AWS IoT

Com o Arduino funcionando, vamos fazê-lo conversar com o IoT Thing. Isso é feito instalando o AWS Arduino IoT SDK e rodando um sketch de exemplo para monitorar deltas da Thing Shadow.

Recomendo começar com este tutorial que faz um excelente trabalho guiando você pelo processo de instalação do SDK. Nota para usuários Windows, se estiver usando cygwin, siga as instruções Mac/Linux (não tive problemas com a dependência "expect"). Em particular, executar o seguinte script do seu sistema host facilita muito a vida:

./AWSIoTArduinoYunInstallAll.sh <IP da Placa> <Nome de Usuário> <Senha da Placa>

Esse tutorial termina adicionando o AWS-IoT-SDK à Arduino IDE. Agora, ao abrir a Arduino IDE, você deve encontrar o exemplo ShadowThing em Arquivo → Exemplos → AWS-IoT-Arduino-Yun-Library.

Abra este sketch e edite o arquivo aws_iot_config.h para conter seus endpoints relevantes e nomes de certificado/chave.

Rodar este sketch deve mostrar uma saída serial indicando que o status de conexão foi bem-sucedido. Se você alterar sua coisa shadow no painel IoT, deve receber uma notificação no Serial Logger.

Se estiver tendo problemas neste estágio, certifique-se de que seus certificados estão nos caminhos corretos e verifique se copiou o texto Root-CA para um arquivo corretamente.

Passo 6: Conectar seu Yún ao AWS IoT (Manipulação de Mudanças)

Agora tudo que resta é realmente lidar com as mudanças na sua Thing Shadow no Arduino. Você deve conseguir simplesmente copiar o conteúdo do meu sketch.

Meu sketch é basicamente apenas o exemplo ThingShadow, exceto que procura especificamente por mudanças na chave "light". Quando estas são recebidas, ele define todos os pinos no ledArray para HIGH ou LOW baseado se light era "on" ou "off".

Este ledArray inclui o pino onboard 13, então sem LEDs adicionais conectados você verá o LED onboard do YUN ligar e desligar baseado nos seus comandos de voz. Se quiser um cubo de LED mais sofisticado como estou usando, confira este projeto que ensina como conectá-lo. Então apenas adicione os números dos pinos positivos ao ledArray no meu sketch.

Você saberá que completou esta etapa quando conseguir pedir ao seu dispositivo Alexa para ligar e desligar sua coisa inteligente personalizada.

Se não estiver funcionando como esperado, sugiro tentar com suas funções Lambda TestOn e TestOff no painel web. Isso dá mais informações sobre o que pode estar errado.

Poste comentários com quaisquer problemas que encontrar e não estiverem cobertos e eu os abordarei o mais rápido possível!

Passo 7: Comemore!

Se chegou até aqui, parabéns! Arduinos podem fazer quase tudo que você quiser, e agora você sabe como iniciar isso com um simples comando de voz através da Alexa. Comemore sua conquista ligando e desligando a luz muitas vezes. O mundo IoT é sua ostra!

Controle Luzes LED com Alexa via Arduino Yun – Tutorial de Casa Inteligente

Código

Código Lambda e Arduino para o Projeto

Arquivos .ino e .h são usados para o Sketch Arduino, e lambda_function é usado na AWS Lambda Cloud.

Processo de manufatura

  1. Controle seu Chromecast com Amazon Alexa usando Raspberry Pi e Python
  2. Construa um Robô Raspberry Pi Controlado por Bluetooth com Feedback de Áudio
  3. Demo ARDrone 2.0 Controlado por Alexa: Drone Ativado por Voz com Raspberry Pi e Hologram Nova
  4. Lâmpada de Mesa RGB Controlada por Gestos – Iluminação Interativa e Sem Toque
  5. Transforme seu Teclado MIDI em Tutor de Piano Inteligente com Arduino, LEDs e MuseScore
  6. Controlar LEDs com Alexa via Raspberry Pi – Guia Passo a Passo Fácil
  7. Transforme um Carro RC Antigo em Veículo Controlado por Joystick com Arduino
  8. Braço Robótico 6 GDL Controlado por Nunchuk com Arduino Mega
  9. Construa um Robô Controlado por Voz com Arduino Nano
  10. Braço Robô Controlado por Ethernet: Controle Remoto Simplificado