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

Luz inteligente animada com Alexa e Arduino

Componentes e suprimentos

Arduino UNO
Arduino Nano também pode ser usado. O Arduino Mega pode ser útil para direcionar mais pixels de LED.
× 1
Raspberry Pi 3 Modelo B
× 1
NeoPixel strip
Qualquer faixa de LED WS8212 pode ser usada.
× 1

Aplicativos e serviços online

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

Sobre este projeto





Por que Light Strip


Sempre fui fascinado por fitas LED RGB endereçáveis. Os infinitos efeitos de cor e recursos de animação sempre capturaram minha criatividade, há alguns anos decidi desenvolver uma biblioteca para as placas Arduino chamada ALA (Arduino Light Animations). Alexa agora está me dando a possibilidade de controlar a iluminação da sala e os efeitos com minha voz e isso é legal!





Visão geral do projeto


Existem os componentes necessários para este projeto.
  • Amazon Alexa: Uma habilidade Alexa customizada (Light Strip) define o modelo de interação de voz e traduz comandos (intents) que são emitidos para a função Lambda.
  • Amazon Lambda :Um script Python que recebe mensagens do Alexa e envia atualizações para o serviço IoT.
  • Amazon IoT :O serviço IoT armazena uma 'sombra de coisa' que é uma representação do estado da faixa RGB. Cada vez que a sombra é atualizada, os clientes MQTT assinados (Raspberry PI) são notificados.
  • Framboesa PI :Este pequeno PC executa um cliente MQTT para receber mensagens do serviço Amazon IoT. Por outro lado, ele ligará e enviará comandos para a placa Arduino por meio da porta USB.
  • Arduino :Este bom microcontrolador executará a biblioteca ALA para acionar a faixa de LED que recebe os comandos do Raspberry PI pela porta serial USB. Você pode usar a placa Arduino Uno, Nano ou Mega.
  • WS8212 Fita LED RGB :Estas são faixas de LED endereçáveis ​​para que cada LED possa ser controlado individualmente. Isso permite animações de luz bonitas e coloridas.

Nada no projeto é muito desafiador, mas há muitas peças interligadas. Eu sugiro que você siga a estrutura sugerida para construir seu projeto sobre uma base sólida antes de passar para a próxima etapa. Para tornar as coisas o mais simples possível, dividi o projeto em dois subprojetos.

A primeira parte do projeto é descrito em meu projeto Animações LED controladas pela Web com Raspberry Pi e Arduino Hackster.io e irá guiá-lo pelas etapas necessárias para conectar o Raspberry PI, a placa Arduino e a faixa de LED WS8212. No final desta fase, você será capaz de controlar as animações de LED de um smartphone ou PC usando o navegador da web.

A segunda parte do projeto descrito aqui irá adicionar controle de voz à implementação anterior usando o Amazon Alexa. Existem várias etapas a serem executadas para configurar toda a cadeia corretamente, então seja paciente e siga as instruções cuidadosamente.





Amazon IoT


Você concluiu a parte do hardware? Agora é hora de ir para a nuvem! Usaremos a plataforma AWS IoT para gerenciar nossa 'coisa' da Internet.

Estaremos usando um "Device Shadow", que é uma cópia do estado de uma coisa, junto com as alterações desejadas. O Raspberry PI irá se inscrever em um feed de notificação que publica as alterações ("delta") para esta sombra. Verifique este link para obter mais informações sobre a plataforma AWS IoT e APIs.

Crie uma coisa IoT

Faça login no console da AWS. Caso ainda não tenha feito isso, você precisará criar uma conta gratuita.

Certifique-se de estar conectado a US East (N. Virginia) ou EU (Irlanda) zona no canto superior direito.

Pesquise por ‘IoT’ e selecione AWS IoT serviço. Clique em Começar botão (se houver) para fechar o tutorial de introdução.

Primeiro precisamos criar uma política de segurança para nossa "coisa". Vá para Seguro> Políticas menu e clique em Criar uma política botão e insira as seguintes informações:
  • Nome:LightStripPolicy
  • Ação:*
  • Recurso:*
  • Efeito - Permitir:verificado
  • Clique em ‘Criar’

Agora podemos criar a IoT Coisa .
  • Selecione Gerenciar > Coisas menu e crie um novo AWS IoT Thing clicando em Register a Thing botão (ou Criar botão no canto superior direito) e, em seguida, em Criar uma única coisa .
  • Digite ‘LS01’ no campo Nome. Deixe os padrões para outros campos e clique em Avançar .
  • Clique em Criar certificado botão na Criação de certificado com um clique seção.
  • Baixe os 3 certificados para o seu dispositivo e a CA raiz. Para a CA raiz, você pode precisar clicar com o botão direito e salvá-la.
  • Depois de baixar os certificados, clique em Ativar botão.
  • Clique em Anexar uma política botão e selecione a LightStripPolicy você criou antes e clique em Registrar coisa .

Antes de prosseguir, você precisa anotar o AWS IoT Endpoint. Clique em Configurações menu no canto inferior esquerdo da página da web AWS IoT, abra-o e anote o Endpoint.

Configure o Raspberry PI para ouvir 'Coisa'

Primeiro precisamos instalar o AWS IoT Device SDK para Python com o seguinte comando na linha de comando Raspberry PI:
  sudo pip3 install AWSIoTPythonSDK  

Agora baixe o repositório LightStrip do GitHub e descompacte-o.
  mkdircd / home / pi / LightStripwget https://github.com/bportaluri/LightStrip/archive/master.zipunzip master.zip  

Copie os quatro certificados que você baixou quando criou o IoT Thing no / home / pi / LightStrip / LightStrip-master / pi pasta.

Edite o lightstripcfg.py roteiro. Você pode usar qualquer editor de texto. Aqui estão os comandos para o nano editor.
  cd / home / pi / LightStrip / LightStrip-master / pinano lightstripcfg.py  

Agora edite as configurações para corresponder à sua configuração.
  • AWSIOT:digite o AWS IoT Endpoint que você anotou anteriormente.
  • ROOT_CA:nome do arquivo do certificado CA raiz
  • CERTIFICADO:nome do arquivo do certificado
  • PRIVATE_KEY:nome do arquivo da chave privada
  • DEVICE_NAME:deixe-o inalterado para "LS01"

Feche o editor nano e salve o arquivo pressionando 'Ctrl + X' e depois 'Y'.

Inicie o script lightstrip.py da seguinte maneira.
  sudo python3 lightstrip.py  

O script listará as portas USB conectadas. O Arduino deve estar conectado a / dev / ttyACM0, então execute o script passando a porta assim.
  sudo python3 lightstrip.py / dev / ttyACM0  

O cliente de teste se conectará ao serviço Amazon Thing Shadow e assinará as alterações do LS01 dispositivo de sombra. Após a conexão bem-sucedida, o script do cliente atualizará seu status para a sombra do dispositivo LS01 e receberá uma mensagem de confirmação como esta.

Para verificar se tudo está funcionando corretamente, volte ao console AWS IoT e selecione Gerenciar> Coisas menu e, em seguida, abra o LS01 dispositivo. Selecione a Sombra menu e você verá o estado de sombra do dispositivo.

Clique em Editar link na seção Shadow Document e cole o seguinte documento JSON na caixa Shadow state.
  {"desejado":{"animação":"101"}}  

Aqui está o que você deve ver.

Ao clicar no link Salvar, uma mensagem ‘delta’ será enviada ao cliente MQTT no Raspberry PI que ligará a faixa de led.

O seguinte documento JSON mudará a cor para azul.
  {"desejado":{"color":"0066CC"}}  

Neste ponto, somos capazes de controlar nossa faixa de LED do serviço ASW IoT, então você deve estar orgulhoso de você.





Função AWS Lambda


O AWS Lambda permite executar código na nuvem sem provisionar ou gerenciar servidores. É a ponte perfeita entre o Alexa Skills Kit que habilitará o controle de voz na última etapa deste projeto.

Faça login no console da AWS. Na lista de serviços, selecione Lambda .

Verifique se você está conectado à mesma região usada na etapa anterior: Leste dos EUA (Norte da Virgínia) ou EU (Irlanda) zona no canto superior direito.

Clique em Criar Função botão. Clique em Autor do zero e configure da seguinte forma:
  • Name =LightStrip
  • Runtime =Python 3.6
  • Role =Criar um papel personalizado. Isso abrirá uma nova guia. Basta clicar no botão “Permitir” para criar uma nova função chamada lambda_basic_execution.
  • Função existente:lambda_basic_execution
  • Clique em Criar função botão

Anote o Lambda ARN ID no canto superior direito.

Clique em LightStrip caixa para abrir a seção de código de função.

Tipo de entrada de código:Editar código embutido
  • Tempo de execução:Python 3.6
  • Manipulador:lambda_function.lambda_handler

A lambda_function.py o script já deve estar definido. Cole o código de LightStrip \ lambda \ lambda_function.py arquivo no editor de código.

Crie outro arquivo chamado ala_controller.py e cole o código de LightStrip \ lambda \ ala_controller.py arquivo no editor de código.

É assim que a coisa toda deveria ser.

Quando terminar, clique no botão laranja Salvar botão no canto superior direito.





Habilidade Alexa


Agora podemos criar a habilidade customizada Light Strip para Alexa.

Vá para o Amazon Developer Console e faça login conforme necessário. Você pode precisar registrar sua conta primeiro.

Vá para Alexa> Alexa Skills Kit (primeiros passos) .

Clique em Adicionar uma nova habilidade botão no canto superior direito e insira os seguintes dados em Informações de habilidade aba:
  • Tipo de habilidade:modelo de interação personalizado
  • Idioma:Inglês (EUA)
  • Nome:LightStrip
  • Nome de invocação:faixa de luz
  • Clique em Salvar

Isso cria a habilidade. Observe o ID da habilidade.

Selecione o Modelo de interação menu e, em seguida, clique em Iniciar Skill Builder botão.

Clique no Editor de código botão e cole o conteúdo de LightStrip / alexaskill / lightstrip_skill.json arquivo na caixa de texto.

Clique em Salvar modelo e Construir Modelo botões. A construção do modelo levará alguns minutos, portanto, seja paciente. Clique em Informações sobre habilidades botão para voltar à página de configuração de habilidade.

Agora clique em Configuração cardápio.

Em Service Endpoint Type, selecione AWS Lambda ARN e cole a função Lambda ARN que você anotou acima.

Deixe todos os valores padrão e clique em Salvar botão abaixo.





Conecte a habilidade Alexa à função Lambda


Volte para a sua função Lambda. No lado direito, há uma lista de gatilhos predefinidos. Selecione Alexa Skills Kit e será adicionado à sua função.

Configure da seguinte forma:
  • ID do aplicativo =o ID da habilidade que você anotou acima
  • Clique em Adicionar
  • Clique em Salvar





Você terminou


O projeto agora está concluído. Experimente os seguintes comandos de voz:
  • Faixa de luz aberta
  • Ligue
  • Defina o brilho para 20 por cento
  • Defina o brilho para 50 por cento
  • Defina a cor para vermelho
  • Defina a cor como turquesa
  • Desligue
  • Execute uma animação emocionante
  • Execute uma animação relaxante

A habilidade LightStrip também permite interações de voz mais avançadas
  • Eu:Alexa, abra a Light Strip
  • Alexa:Bem-vindo ao LightStrip - A faixa de LED irá brilhar com uma luz azul
  • Eu:inicie uma animação
  • Alexa:você quer uma animação relaxante ou emocionante?
  • Eu:relaxando
  • Alexa:OK - A faixa de LED mostrará uma animação aleatória
  • Eu:próxima animação
  • Alexa:OK - Outra animação aleatória será exibida

Para entender melhor o modelo de interação, aqui está o diagrama VUI completo da habilidade.





Aprimoramentos e refinamentos


Iniciar automaticamente o AlaWeb na inicialização

Uma pequena melhoria no projeto é iniciar automaticamente o script lightstrip.py na inicialização, para que você não precise iniciá-lo manualmente toda vez que ligar o Raspberry PI ou algo der errado e você precisar reiniciar. Siga estas instruções.

Adicionar e ajustar animações

O cskill Light Strip já tem 20 variações de animação definidas. No entanto, a biblioteca ALA permite configurar facilmente suas próprias animações escolhendo a predefinição de animação, paleta de cores e velocidade. Você pode adicionar suas próprias animações ou ajustar as existentes no script ala_controller.py. Por volta da linha 80, você verá uma lista de configurações de animações que você pode modificar ou aprimorar com base em seus gostos.


Código

LightStrip
Todo o código de que você precisa para este projetohttps://github.com/bportaluri/LightStrip

Esquemas


Processo de manufatura

  1. Painel LCD com Arduino para o simulador de vôo
  2. Switch / Painel de LED com Arduino para FS2020
  3. Arduino com Bluetooth para controlar um LED!
  4. Sapatos inteligentes (com laço automático e geração de eletricidade)
  5. Arduino Quadruped
  6. Controle do Servo Motor com Arduino e MPU6050
  7. Controle de brilho do LED usando Bolt e Arduino
  8. u-blox LEA-6H 02 Módulo GPS com Arduino e Python
  9. Braço robótico simples e inteligente usando Arduino
  10. Reconhecimento de fala e síntese com Arduino