Alexa, ligue ESTA lâmpada:Sensor 3D inteligente para Amazon Echo
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 |
Sobre este projeto
Introdução
Se você já possuiu uma Alexa ou qualquer alto-falante inteligente e tem integração com a casa inteligente, você teve esse problema em que precisa se lembrar do nome do dispositivo para controlar. Tenho muitos dispositivos domésticos inteligentes e às vezes é difícil lembrar o nome de cada um.
Às vezes eu dizia:
3 coisas vão acontecer:
- Acabou confundindo Alexa, ligando um dispositivo inteligente diferente.
- Xingando Alexa (você sabe do que estou falando, admita)
- Ou desistir, ficar frustrado e dizer a ela:'Esqueça Alexa, eu mesmo faço isso' ... caminhando a contragosto em direção ao switch.
Meus filhos costumam gostar deste comando:"Alexa, acenda TODAS as luzes". E, claro, toda a casa ficará iluminada como uma árvore de Natal. Não é divertido quando alguém faz isso no meio da noite!
Como fazer
E se eu puder apenas dizer:Alexa, acenda essa lâmpada?
Faça Alexa detectar onde estou próximo ao dispositivo. E sabe do que estou falando ... não seria uma ótima ideia?
Bem, uma solução possível é montar uma câmera na minha sala e monitorar os movimentos e tal. Mas isso seria MUITO ASSUSTADOR. Não quero câmeras dentro da minha casa para fazer reconhecimento de imagem.
É aí que entra o Walabot:
Walabot
O que é um Walabot?
Walabot é um sensor 3D programável perfeito para projetos eletrônicos DIY. Walabot é um novo tipo de sensor de imagem 3D. Ele usa frequência de rádio (RFID) e irá revelar todos os tipos de coisas ocultas no mundo ao seu redor. É portátil, programável e nosso SDK (kit de desenvolvimento de software) contém uma variedade de recursos de imagem e nossa API permitirá que você crie seus próprios aplicativos personalizados para ele.
Ele pode acompanhar os movimentos usando RFID.
LattePanda
LattePanda é um x86 / x64 SBC com processador quad-core Intel Atom x8300 “Cherrytrail” que pode executar Windows 10. Inclui 2 GB ou 4 GB de RAM com Bluetooth 4.0 integrado e 802.11 n WiFi, 1 x USB 3.0, 2 x USB 2.0, saída HDMI e um co-processador ATMega32u4 integrado - como você encontraria em um Arduino Leonardo - com GPIO acompanhante - tudo em uma placa do tamanho da palma da mão!
Esta configuração torna o LattePanda ideal para vários cenários. Neste tutorial, o foco será nas vantagens do microcontrolador integrado do LattePanda. Quando este microcontrolador é usado em conjunto com o processador Intel Atom, você pode conectar o walabot e o arduino.
Nó-Vermelho
Node-Red é uma ferramenta baseada em navegador que permite construir de forma rápida e fácil sua própria lógica de tratamento de vários dispositivos IoT, incluindo a assinatura de mensagens TCP, ouvir solicitações Alexa, ler e gravar em bancos de dados, publicar em corretores MQTT e responder a solicitações HTTP . Ele também permite que você defina funções específicas escritas em JavaScript para fornecer operações lógicas complexas, enquanto usa uma interface de usuário visual, fácil de usar, de arrastar e soltar para vincular diferentes componentes e lógicas.
Node-Red é um tempo de execução muito leve construído sobre Node.js, aproveitando ao máximo seu modelo de operação orientado por eventos e sem bloqueio.
Se pudermos ter o plug de dados Walabot no Node-Red, isso abrirá muitas coisas que podemos fazer, especialmente em automação residencial. Existem alguns pacotes que usei para conectar Alexa e Arduino:
- node-red-contrib-alexa-local:um nó simples para adicionar o recurso Alexa ao seu fluxo NodeRED.
- node-red-node-arduino:um nó Node-RED para falar com um Arduino
Aqui estão algumas documentações que você pode usar para configurar o firmata:https://nodered.org/docs/hardware/arduino.html
Como funciona
Hardware
- LattePanda
- Tela de 7 polegadas 1024 x 600 IPS para LattePanda
- Teclado e mouse USB sem fio
- Walabot
- Hub alimentado por USB
- Relés
- lâmpada
Instalação
Etapa 1. Walabot SDK
Baixe o SDK e instale-o:https://walabot.com/getting-started
Etapa 2. Configure o Arduino no Walabot
http://docs.lattepanda.com/content/hardware/accessPinoutsFromVS/
1. Habilite o modo de desenvolvedor em seu sistema operacional
Etapa 3. Configurar o Arduino
1. Abra o Arduino. E selecione o “StandardFirmata”
2. Selecione “Arduino Leonardo”
3. Selecione sua porta COM
4. Faça upload do esboço
5. Upload concluído!
Conecte os relés ao LattePanda.
Etapa 4 . Instale e baixe NodeJS e Node-Red
Se você não estiver familiarizado com NodeJS e node-red, aqui estão alguns links:
- https://nodejs.org/en/
- http://docs.lattepanda.com/content/projects/NodeRED/
- https://nodered.org/docs/getting-started/installation
Etapa 5. Baixe Python3 e instale
Etapa 6 . Este é o repositório do projeto:https://github.com/rondagdag/smart3DSensorForAlexa
Baixe e extraia o arquivo zip:
> npm install> npm start
Etapa 7 . Certifique-se de que você está no mesmo wi-fi e habilitou o Smart Home Skills em seu aplicativo Alexa. Diga:'Alexa, descubra dispositivos'. Alexa encontraria a lâmpada. Se você deseja ver os fluxos do Node-Red e modificá-los:http:// localhost:8080 / red /
Agora você pode conectá-lo a um pino diferente nos pinos do Arduino no LattePanda. Ou conecte-o com MQTT ou outros módulos Node-Red.
Todo o fluxo é assim ...
3 etapas:
- Gerenciar serviço Walabot :um programa python que lê dados do sensor walabot e transmite dados para uma porta tcp 1890
- Obtenha e salve dados de objetos Walabot :lê dados do serviço walabot através da porta 1890 e armazena a última localização de objeto detectada conhecida
- Lidar com comandos Alexa :é executado quando um comando é recebido do Alexa e, com base no último local conhecido, determina o pino do Arduino para alternar conectado a um relé.
- Gerenciar serviço Walabot
Aqui está o código Walabot Python. Ele lê os dados do Walabot e transmite uma string JSON via TCP.
from __future__ import print_functionfrom sys import platformfrom os import systemfrom imp import load_sourceWalabotAPI =load_source ('WalabotAPI', 'C:\\ Program Files \\ Walabot \\ WalabotSDK \\ python \\ WalabotAPI.py') importar socket, sysif __name__ =='__main__':WalabotAPI.Init () # carrega o WalabotSDK para o wrapper Python WalabotAPI.SetSettingsFolder () # define o caminho para os arquivos de banco de dados essenciais WalabotAPI.ConnectAny () # estabelece comunicação com o Walabot WalabotAPI. SetProfile (WalabotAPI.PROF_SENSOR) # definir perfil de digitalização fora das possibilidades WalabotAPI.SetThreshold (35) WalabotAPI.SetArenaR (50.400,4) WalabotAPI.SetArenaPhi (-45,45,2) WalabotAPI.SetArenaTheta (-20,20,10) WalabotAPI.SetDynamicImageFilter (WalabotAPI.FILTER_TYPE_MTI) # especifica o filtro para usar WalabotAPI.Start () # inicia o Walabot em preparação para o sistema de digitalização ('cls' if platform =='win32' else 'clear') # limpa o terminal numOfTargetsToDisplay =1 se len (sys.argv) ==2:TCP_IP ='127.0.0.1' TCP_PORT =int ( sys.argv [1]) s =socket.socket (socket.AF_INET, socket.SOCK_STREAM) s.bind ((TCP_IP, TCP_PORT)) s.listen (1) conn, addr =s.accept () enquanto True:WalabotAPI .Trigger () # inicia uma varredura e registra os sinais alvos =WalabotAPI.GetSensorTargets () # fornece uma lista de alvos identificados achados ='{"alvos":[' índice =0 para i, t em enumerar (alvos):se i
- Obtenha e salve dados de objetos Walabot
Isso receberá dados da porta 1890, analise os dados json para definir as variáveis globais de acordo.
Este é o código a ser convertido em array json
raw =msg.payload.toString ('UTF-8') j =JSON.parse (raw); var msg1 ={carga útil:bruta}; var msg2 ={carga útil:j}; if (raw.length> 20) {X =msg2.payload.targets [0] .x; Y =msg2.payload.targets [0] .y; Z =msg2.payload.targets [0] .z; global.set ("X", X); global.set ("Y", Y); global.set ("Z", Z); var msg3 ={carga útil:X}; var msg4 ={carga útil:Y}; var msg5 ={carga útil:Z}; } retorno [msg1, msg2, msg3, msg4, msg5];
- Lidar com comandos Alexa
Para lidar com os comandos Alexa, estamos usando o node-red-contrib-alexa-local. Então detectaríamos nesta lógica qual rotear o comando com base na última posição conhecida da pessoa.
Se este projeto despertou seu interesse em aprender mais sobre Amazon Echo, Walabot, LattePanda, Node-Red, Python, ou se você está apenas tendo um dia incrível, basta clicar no botão 'Respeitar projeto' e seguir-me. se isso ajudou você a construir um projeto, deixe uma mensagem e nos dê um feedback. Eu quero ouvir como este projeto ajudou você.
Observe que não há nenhuma habilidade Alexa customizada sendo usada para este projeto, ela usa a funcionalidade de casa inteligente Amazon Echo que controla as lâmpadas Phillips Hue. O nó node-red-contrib-alexa-local no Node-Red apenas falsifica qualquer "Bulbs" personalizado que você deseja controlar com o Alexa!
Código
Sensor 3D inteligente para Alexa
https://github.com/rondagdag/smart3DSensorForAlexaProcesso de manufatura
- Visão computacional como sensor de movimento para SmartThings
- Sistema de sensor de movimento infravermelho faça você mesmo para Raspberry Pi
- IoT celular:Lixeira inteligente
- Amazon Alexa Controlando um Chromecast
- Semáforo inteligente
- Construir robôs Raspberry Pi:Melhor tutorial para iniciantes
- Smart Pen:Projeto Final para ECE5725
- Este é o ‘aplicativo matador’ para têxteis inteligentes?
- Sensor ultra-sensível e resiliente para têxteis inteligentes
- Sensor ultrafino para lentes de contato inteligentes