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

Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Componentes e Materiais

Arduino UNO O Arduino Nano também pode ser usado. O Arduino Mega pode ser útil para controlar mais pixels de LED. 1
Raspberry Pi 3 Model B 1
Fita NeoPixel (WS2812) Qualquer fita LED WS2812 pode ser utilizada. 1

Aplicativos e Serviços Online

Sobre o Projeto

Por Que uma Fita LED?

Sempre fui fascinado por fitas LED RGB endereçáveis. Os infinitos efeitos de cor e capacidades de animação sempre estimularam minha criatividade. Há alguns anos, desenvolvi uma biblioteca para placas Arduino chamada ALA (Arduino Light Animations). A Alexa agora me dá a possibilidade de controlar a iluminação e efeitos do ambiente com minha voz, e isso é incrível!

Visão Geral do Projeto

Os componentes necessários para este projeto formam uma cadeia completa:

Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Nada no projeto é muito desafiador individualmente, mas há muitas peças interconectadas. Sugiro seguir a estrutura proposta para construir seu projeto sobre uma base sólida antes de avançar para o próximo passo. Para simplificar, dividi o projeto em duas sub-partes.

A primeira parte é descrita no meu projeto "Web-Controlled LED Animations with Raspberry Pi and Arduino" no Hackster.io e guiará você pelos passos para conectar o Raspberry Pi, a placa Arduino e a fita LED WS2812. Ao final desta fase, você será capaz de controlar as animações LED a partir de um smartphone ou PC usando o navegador web.

Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

A segunda parte, descrita aqui, adicionará controle por voz à implementação anterior usando Amazon Alexa. Há várias etapas para configurar toda a cadeia corretamente, então tenha paciência e siga as instruções cuidadosamente.

Amazon IoT

Completou a parte de hardware? Agora é hora de ir para a nuvem! Usaremos a plataforma AWS IoT para gerenciar nosso "dispositivo" (thing) a partir da internet.

Usaremos uma "Sombra de Dispositivo" (Device Shadow), que é uma cópia do estado de um thing, junto com as alterações desejadas. O Raspberry Pi se inscreverá em um feed de notificação que publica as alterações ("delta") nesta Shadow. Consulte este link para mais informações sobre a plataforma e APIs AWS IoT.

Criar um IoT Thing

  1. Faça login no Console AWS. Se ainda não fez, crie uma conta gratuita.
  2. Certifique-se de estar logado na região US East (N. Virginia) ou EU (Ireland) no canto superior direito.
  3. Procure por 'IoT' e selecione o serviço AWS IoT. Clique em Get Started se houver um tutorial introdutório.
  4. Primeiro, crie uma política de segurança para nosso "thing". Vá em Secure > Policies e clique em Create a Policy:
    • Nome: LightStripPolicy
    • Ação: *
    • Recurso: *
    • Efeito - Permitir: marcado
    • Clique em 'Create'
  5. Agora crie o IoT Thing:
    • Selecione Manage > Things e crie um novo AWS IoT Thing clicando em Register a Thing (ou Create no canto superior direito) e depois em Create a single thing.
    • Digite 'LS01' no campo Nome. Deixe os padrões para os outros campos e clique em Next.
    • Clique em Create certificate na seção One-click certificate creation.
    • Baixe os 3 certificados do seu dispositivo e o Root CA. Para o Root CA, pode ser necessário clicar com botão direito e salvar.
    • Após baixar os certificados, clique em Activate.
    • Clique em Attach a Policy, selecione a LightStripPolicy criada anteriormente e clique em Register Thing.
  6. Antes de prosseguir, anote o AWS IoT Endpoint. Clique no menu Settings no canto inferior esquerdo da página AWS IoT, abra e anote o Endpoint.
Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Configurar Raspberry Pi para Escutar o 'Thing'

Primeiro, instale o AWS IoT Device SDK for Python no terminal do Raspberry Pi:

sudo pip3 install AWSIoTPythonSDK

Baixe o repositório LightStrip do GitHub e descompacte:

mkdir -p /home/pi/LightStrip
cd /home/pi/LightStrip
wget https://github.com/bportaluri/LightStrip/archive/master.zip
unzip master.zip

Copie os quatro certificados baixados ao criar o IoT Thing para a pasta /home/pi/LightStrip/LightStrip-master/pi.

Edite o script lightstripcfg.py (pode usar o editor nano):

cd /home/pi/LightStrip/LightStrip-master/pi
nano lightstripcfg.py

Edite as configurações para corresponder à sua configuração:

Salve e saia do nano (Ctrl+X, depois Y).

Execute o script lightstrip.py:

sudo python3 lightstrip.py

O script listará as portas USB conectadas. O Arduino deve estar em /dev/ttyACM0, então execute passando a porta:

sudo python3 lightstrip.py /dev/ttyACM0

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

Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Para verificar se tudo funciona, volte ao console AWS IoT, selecione Manage > Things, abra o dispositivo LS01 e selecione o menu Shadow para ver o estado da sombra do dispositivo.

Clique no link Edit na seção Shadow Document e cole o seguinte documento JSON na caixa de estado da sombra:

{ "desired": { "animation": "101" } }
Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Ao clicar no link Save, uma mensagem 'delta' será enviada ao cliente MQTT no Raspberry Pi, que ligará a fita LED.

O seguinte documento JSON mudará a cor para azul:

{ "desired": { "color": "0066CC" } }

Neste ponto, já conseguimos controlar nossa fita LED a partir do serviço AWS IoT. Você deve se orgulhar!

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 por voz na etapa final.

  1. Faça login no Console AWS. Selecione Lambda na lista de serviços.
  2. Certifique-se de estar na mesma região usada anteriormente: US East (N. Virginia) ou EU (Ireland).
  3. Clique em Create Function. Selecione Author from scratch e configure:
    • Name = LightStrip
    • Runtime = Python 3.6
    • Role = Create a Custom Role. Abrirá nova aba. Clique em "Allow" para criar role chamada lambda_basic_execution.
    • Existing role: lambda_basic_execution
    • Clique em Create Function
  4. Anote o Lambda ARN ID no canto superior direito.
Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

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

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

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

Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

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

Skill Alexa

Agora podemos criar a skill personalizada Light Strip para Alexa.

  1. Acesse o Amazon Developer Console e faça login (pode ser necessário registrar a conta).
  2. Vá em Alexa > Alexa Skills Kit (Get Started).
  3. Clique em Add a New Skill no canto superior direito e preencha a aba Skill Information:
    • Skill Type: Custom Interaction Model
    • Language: English (U.S.)
    • Name: LightStrip
    • Invocation Name: light strip
    • Clique Save
  4. Anote o Skill ID.
Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Selecione o menu Interaction Model e clique em Launch Skill Builder.

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

Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Clique em Save Model e Build Model. Levará alguns minutos para construir o modelo. Clique em Skill Information para voltar à página de configuração da skill.

Agora clique no menu Configuration.

Em Service Endpoint Type, selecione AWS Lambda ARN e cole o ARN da função Lambda anotado acima.

Deixe os valores padrão e clique em Save.

Conectar Skill Alexa à Função Lambda

  1. Volte à sua função Lambda. No lado direito há uma lista de triggers predefinidos. Selecione Alexa Skills Kit e será adicionado à sua função.
  2. Configure:
    • Application Id = o Skill ID anotado acima
    • Clique Add
    • Clique Save
Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Pronto!

O projeto está completo. Experimente os seguintes comandos de voz:

A skill LightStrip permite interações de voz mais avançadas:

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

Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Melhorias e Refinamentos

Iniciar Automaticamente o AlaWeb no Boot

Uma pequena melhoria é iniciar automaticamente o script lightstrip.py no boot, para não precisar lançá-lo manualmente toda vez que ligar o Raspberry Pi ou após um reset. Siga estas instruções.

Adicionar e Ajustar Animações

A skill Light Strip já possui 20 variações de animação definidas. No entanto, a biblioteca ALA permite configurar facilmente suas próprias animações escolhendo preset 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 pode modificar ou aprimorar conforme seu gosto.

Código

Todo o código necessário para este projeto: https://github.com/bportaluri/LightStrip

Esquemáticos

Crie uma Fita LED Inteligente Animada Controlada por Alexa com Arduino

Processo de manufatura

  1. Painel de Controle para Flight Simulator 2020 com Arduino Nano – Display LCD e CDI
  2. Painel de Chaves e LEDs para Microsoft Flight Simulator 2020 com Arduino
  3. Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
  4. Tênis Inteligentes com Auto-Ajuste e Colheita de Energia Integrada
  5. Construa um Robô Quadrúpede Inteligente com Arduino: Guia Passo a Passo
  6. Arduino e MPU6050: Controle Preciso de Servomotores SG90 e MG996R
  7. Controle Suave de Brilho de LED com Bolt IoT e Arduino UNO
  8. Módulo GPS u-blox LEA‑6H 02: Guia de Integração com Arduino e Python
  9. Braço Robótico Inteligente Controlado por Arduino: Tutorial DIY Fácil
  10. Dominando Reconhecimento e Síntese de Fala no Arduino Due