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

LEDs controlados pelo Alexa através do Arduino Yún

Componentes e suprimentos

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

Aplicativos e serviços online

Amazon Web Services AWS IoT
Amazon Web Services AWS Lambda
Amazon Alexa Skills Kit

Sobre este projeto





Motivação


Desde que construí um espelho inteligente com Alexa onboard, tenho procurado por mais maneiras de conectar vários dispositivos de hardware e automação residencial em toda a nossa casa. Quando soube que a nova API Alexa Smart Home permite que você controle dispositivos personalizados diretamente, decidi tentar.

Esta árvore de Natal controlada por eco usa uma versão mais antiga da API, mas serviu como um ótimo ponto de partida e me apontou para o Arduino Yún direcionado à IoT. Isso dá a você um sistema Linux e um microcontrolador, tudo em um pacote prático.

A tarefa que estabeleci para mim mesmo foi a "palavra de olá" equivalente a habilidades para uma casa inteligente ... Basta ligar e desligar um LED usando minha voz. Já que eu tinha um conjunto de LEDs 2x3 por aí, decidi ligá-lo e desligá-lo para obter pontos de estilo.

Os detalhes completos podem ser encontrados abaixo, mas foi assim que acabou!





Visão geral do projeto


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

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

Eu recomendaria pegar um pedaço de cada vez e testar enquanto você faz isso. Nada no projeto é muito desafiador, mas há muitas peças interligadas. Portanto, não desanime se estiver coçando um pouco a cabeça enquanto trabalha nisso.

Eu pensaria em cada etapa como um miniprojeto, levando potencialmente mais de 1 hora cada.

Etapa 1:crie uma habilidade de casa inteligente e lambda conectado.

Aqui você cria uma habilidade de casa inteligente, cria uma função Lambda e vincula essas duas. Este processo é muito bem abordado neste tutorial. Certifique-se de seguir as etapas do LWA para obter o ID e o segredo do cliente usados ​​na configuração do Skill.

Nesse estágio, se você conseguir fazer login no painel Alexa e descobrir seu novo dispositivo de casa inteligente (neste ponto, apenas uma resposta da função Lambda), você começou com o pé direito.

Observe que esse tutorial usa Python 3.6, mas eu usei Python2.7 em vez disso. Você pode copiar o handle_discovery parte da minha função lambda, mas isso é tudo o que funcionará neste ponto.

Etapa 2:Crie uma coisa IoT.

A descoberta não é muito boa se você não pode fazer nada, então vamos dar algo para se conectar criando um AWS IoT Thing.

Isso pode ser feito seguindo as etapas nesta página. Estaremos usando a "Sombra da Coisa" do que você cria, que é uma cópia do estado de uma coisa, junto com as mudanças desejadas. O Arduino irá se inscrever em um feed de notificação que publica as mudanças ("delta") para este Thing Shadow. Confira este link aqui para mais informações sobre o Thing Shadows.

Depois de criar seu Thing, navegue até a guia de segurança no painel da web do Thing IoT e baixe a chave pública, a chave privada e o certificado. Depois de fazer isso, clique em "Ativar", que fornecerá a chave da Autoridade de Certificação Raiz. Salve isso também. Eles serão usados ​​por seu Arduino para se autenticar na sombra da IoT.

Navegue até a guia Shadow do seu negócio e clique em editar. Adicione uma propriedade à sua sombra para que se pareça com:
  {"relatado":{"light":"on"}}  

Etapa 3:Conecte seu Lambda ao seu Thing.

Com seu Thing no lugar, agora você pode atualizar seu código 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 todas as alterações relacionadas ao Discovery que você fez.

Você também deve se certificar de que sua função AWS IAM associada à função Lambda tenha permissões "AWSIoTFullAccess". Você pode ver sua função na parte inferior do painel da web Lambda Configuration. Esta permissão permite que você se conecte ao AWS IoT Thing.

Feito isso, navegue até a página de configuração da função Lambda. Na guia de teste de sua função, adicione uma diretiva chamada "TurnOff" com o seguinte JSON específico da v3. Você pode adicionar um segundo teste chamado "TurnOn", bem como apenas alterar o nome do cabeçalho para "TurnOn".
  {"diretiva":{"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ê executa os testes TurnOn e TurnOff, você deve ver o relatório Thing Shadow um estado desejado consistente com a ação. Se você está vendo esse resultado, está tudo bem.

Etapa 4:configure seu Arduino Yún.

É hora de configurar o hardware Arduino Yún. Achei este guia mais útil do que o guia do Arduino. Algumas observações - se você for um usuário do Windows, ao formatar o SD certifique-se de usar FAT32 (exFAT não é compatível). Eu também não consegui ver a página de "atualização" corretamente até que fui conectado com a ethernet. Depois de configurado, o wi-fi funcionou bem.

Você concluiu esta etapa quando viu esta opção e seguiu as etapas:

Você também deve ser capaz de fazer o SSH com êxito em seu Arduino. Eu recomendo executar "df -h" também e procurar um volume que sugira que seu cartão SD foi adicionado.

Abrir o IDE do Arduino e verificar se você pode executar o exemplo Blink também seria bom neste estágio.

Etapa 6:Conecte seu Yún ao AWS IoT.

Com o Arduino instalado e funcionando, vamos colocá-lo em contato com o IoT Thing. Isso é feito instalando o AWS Arduino IoT SDK e executando um esboço de exemplo para monitorar Thing Shadow deltas.

Recomendo começar com este tutorial, que faz um excelente trabalho ao guiá-lo pelo processo de instalação do SDK. Nota para usuários do Windows, se você estiver usando o cygwin, basta seguir as instruções do Mac / Linux (não tive problemas com a dependência "esperar"). Em particular, executar o script a seguir em seu sistema host torna a vida muito mais fácil:

./AWSIoTArduinoYunInstallAll.sh

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

Abra este esboço e edite o aws_iot_config.h arquivo para conter seus pontos de extremidade relevantes e nomes de certificado / chave.

A execução deste esboço deve mostrar uma saída serial indicando que o status da conexão foi bem-sucedido. Se você alterar sua sombra de coisa no painel IoT, deverá receber uma notificação no registrador serial.

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

Etapa 7:Conecte seu Yún ao AWS IoT.

Agora tudo o que resta é realmente lidar com as alterações em sua Thing Shadow no Arduino. Você deve ser capaz de simplesmente copiar o conteúdo do meu esboço.

Meu esboço é basicamente apenas o exemplo de esboço ThingShadow, exceto que ele procura especificamente por alterações na chave "luz". Quando estes são recebidos, ele define todos os pinos em ledArray como HIGH ou LOW com base na luz se a luz estava "ligada" ou "desligada".

Este ledArray inclui o pino 13 integrado, portanto, sem LEDs adicionais conectados, você verá o LED YUN integrado ligar e desligar com base em seus comandos de voz. Se você quiser um cubo de LED mais sofisticado como o que estou usando, verifique este projeto que lhe dirá como conectá-lo. Em seguida, basta adicionar os números de pinos positivos ao ledArray em meu esboço.

Você saberá que concluiu esta etapa quando puder pedir ao seu dispositivo Alexa para ligar e desligar seu smart smart personalizado.

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

Poste comentários sobre quaisquer problemas que você encontrar que não foram abordados e eu irei tratá-los o mais rápido possível!

Etapa 9:Comemore!

Se você chegou até aqui, muito bem! Os Arduinos podem fazer quase tudo o que você quiser e agora você sabe como dar o pontapé inicial com um simples comando de voz por meio de Alexa. Comemore sua conquista acendendo e apagando a luz várias vezes. O mundo da IoT é sua ostra!


Código

Lambda e código Arduino para o projeto
Os arquivos .ino e .h são usados ​​para o Arduino Sketch e lambda_function é usado na nuvem AWS Lambda

Processo de manufatura

  1. Amazon Alexa Controlando um Chromecast
  2. Robô Raspberry Pi controlado por Bluetooth
  3. MajorTom:Alexa Voice Controlled ARDrone 2.0
  4. Luz da mesa interativa controlada por gestos
  5. Arduino + LEDs + Teclado MIDI + MuseScore =Piano Tutor
  6. LEDs controlados por Alexa através do Raspberry Pi
  7. Carro RC controlado por joystick
  8. Braço robótico controlado por Nunchuk (com Arduino)
  9. Robô controlado por fala
  10. Braço do robô controlado por Ethernet