Índice:

Alexa Voice Control TV Remote ESP8266: 9 etapas
Alexa Voice Control TV Remote ESP8266: 9 etapas

Vídeo: Alexa Voice Control TV Remote ESP8266: 9 etapas

Vídeo: Alexa Voice Control TV Remote ESP8266: 9 etapas
Vídeo: How to make Universal Remote control using ESP8266 Google Assistant & Cadio 2024, Novembro
Anonim
Alexa Voice Control TV Remote ESP8266
Alexa Voice Control TV Remote ESP8266

Alguém em sua casa perde o controle remoto, você entra em uma sala vazia e descobre que a TV está desligando. Baterias começando a falhar e nenhum controle no fundo da sala. Agora você pode controlar sua TV, DVR, qualquer coisa com controle IR para o qual você pode capturar o sinal IR. Fiz este sistema para controlar meu DVR SKY com uma interface de voz simples.

Hardware necessário:

  1. Amazon Echo ou Dot
  2. Um roteador wi-fi que pode encaminhar a porta (meu provedor de serviços fez isso por mim)
  3. Um Arduino NANO convertido para 3V3
  4. ESP8266 -01 ou similar
  5. Módulo transmissor IR ou circuito
  6. Módulo receptor de infravermelho se você deseja capturar códigos.

Software e serviços necessários:

  1. IDE Arduino, usei 1.6.11
  2. Conta de habilidades do Amazon Alexa (gratuita)
  3. Conta Amazon AWS (nível gratuito, mas requer cartão de crédito para abrir a conta) ou servidor alternativo.

Etapa 1: Configuração do Alexa Skills

Alexa Skills Setup
Alexa Skills Setup
Alexa Skills Setup
Alexa Skills Setup
Alexa Skills Setup
Alexa Skills Setup

O kit de habilidades Alexas pega o comando de voz e o filtra usando uma lista de 'valores'

Depois de registrado:

No console do Amazon Developer, selecione a guia Alexa> Alexa Skills Kit [Introdução]

[Adicionar uma nova habilidade]

Tipo de habilidade: modelo de interação personalizado

Idioma: selecione o correto, quando configurado para Inglês (EUA) não responderia!

Nome: isso não é importante agora, pois não estamos publicando.

Nome de invocação: escolha um nome curto, é a palavra usada para abrir o aplicativo.

[PRÓXIMO]

Esquema de intenção, cole o código

Tipos de slot personalizados {Adicionar tipo de slot], insira EFFECT_ON_TV

nos valores de Slot, cole o código

Expressões de amostra, put, TVCommandIntent tv {TVAction}

[SAVE], na próxima página de habilidades, temos que adicionar um link para o código que vamos executar quando o "Intent" for acionado pela palavra de início do aplicativo "clicker" ou depois disso por "tv {slot value}".

Voltaremos ao Alexa depois de configurar o script python do servidor Lambda.

Etapa 2: script Python do servidor AWS Lambda

Inscrever-se no nível gratuito da AWS, eu estava preocupado que isso pudesse me custar dinheiro real, mas depois de usá-lo por um tempo e ler os fóruns, os limites de uso são tão altos para uso pessoal e de desenvolvimento que nunca deve chegar a um ponto de carga. Existe uma alternativa para usar seu próprio servidor HTTPS e talvez isso seja algo que o esp8266 possa fazer, outro instrutível!

Este é o código executado quando o nome de invocação é pronunciado (por exemplo, "Alexa clicker aberto") e recebe a palavra mágica de Alexa. Depois que o aplicativo for iniciado, você só precisa dizer "tv play, tv jump five" e Alexa enviará "play", "jump 5" para este script python. O aplicativo atinge o tempo limite se não obtiver respostas após um tempo.

Em AWS Services, primeiro selecione seu local, no canto superior direito há uma opção.

para os EUA, selecione N Virgínia, para a UE, selecione a Irlanda.

selecione Lambda no cabeçalho Compute.

[Criar uma função Lambda]

[Função em branco]

Configure o gatilho: clique na caixa pontilhada e selecione Alexa Skills Kit

[PRÓXIMO]

Configurar Função

Nomeie o que quiser

Descrição, depende de você

Runtine: Python 2.7

cole no código python,

no código, o endereço HTTP da URL precisará ser alterado para seu próprio endereço IP externo posteriormente

link = "https://185.255.255.255:777/text?data=" + favorite_color

inferior na tela é uma função, clique na guia e selecione Selecionar uma função personalizada

Isso abrirá uma nova tela e clique em permitir., Ele retorna à tela Configurar função com a execução básica Lamda selecionada como Função existente.

[PRÓXIMO] a revisão, clique em [Criar Função] e deve compilar e fornecer um número ARN. COPIE este código e nós o colocaremos no kit de habilidades do alexa.

Etapa 3:

Etapa 4: definir o link Alexa Skills Kit para AWS Lambda

Defina o link Alexa Skills Kit para AWS Lambda
Defina o link Alexa Skills Kit para AWS Lambda

No kit de habilidades Alexa, selecione a página Configuração, intitulada Campos globais, selecione AWS Lambda e sua região e cole o código ARN na caixa, [PRÓXIMO], no teste, marque ENABLED selecionado.

Terminamos aqui por enquanto, agora por algum hardware.

Etapa 5: conversão do Arduino NANO 3V3

Conversão Arduino NANO 3V3
Conversão Arduino NANO 3V3
Conversão Arduino NANO 3V3
Conversão Arduino NANO 3V3

O ESP8266 funciona a partir de 3v3, então você pode executá-lo em um regulador externo ou converter um nano. Eu usei um clone nano com um chip USB CH340. Eu tenho dois layouts de pcb diferentes que conheço, mas espero que isso abranja a maioria dos layouts.

Precisamos substituir o regulador 5V por um 3v3 compatível com pinos, 1117-3. em seguida, direcione os 5 V do soquete usb apenas para o regulador e conecte todo o resto à sua saída. felizmente, isso pode ser conseguido removendo o diodo de entrada substituindo o regulador e adicionando um fio do lado de entrada do diodo ao Vin na placa nano.

verifique se você pode programar o nano após a conversão.

Etapa 6: Código NANO

Código NANO
Código NANO
Código NANO
Código NANO

Este código usado para o meu controle remoto SKY UK, pode ser específico do modelo e vale a pena verificar se seus códigos funcionam em um esboço separado não vinculado ao esp8266.

Eu usei a biblioteca IRremote de shirriff Versão 2.0.1

Use o exemplo IRrecord para capturar comandos remotos que requerem um módulo receptor de IR ou você pode encontrar seus códigos na web? Não vou entrar nisso aqui, mas é aqui que você pode escolher o que controla e como.

Conecte um transmissor IR disponível no ebay ou construa um. Você deve usar um led IR de 850 nm, pois são os mais comuns em receptores. A biblioteca IR usou D3 como seu pino TX

A palavra alexa é passada para o nano, então daqui é nano com controle de voz.

Etapa 7: ESP8266

ESP8266
ESP8266
ESP8266
ESP8266
ESP8266
ESP8266

Existem muitos módulos ESP8266, eu usei um que tive que conectar sob um microscópio, o ESP8266-01 tem um cabeçalho 2x4 e todos os pinos que você precisa e é barato. Muitos exemplos na web,. Minhas viagens, GPIO_0 precisa ser conectado ao gnd durante a inicialização (pode então ser flutuado) durante a programação, é um pino de configuração, puxado para cima internamente. Uma vez programado, deixe GPIO_0 flutuar e religar. O CHPD conecta-se a V + permanentemente.

O gerenciador de placa no arduino 1.6.11 não tem o link esp8622, em Arduino IDEfile> preferências> URL adicional do Board Manager, adicione:

arduino.esp8266.com/stable/package_esp8266c…

em seguida, vá para o gerenciador de placa e encontre o pacote esp8266. isso agora deve fornecer a você uma grande lista de placas esp8266, selecione Ferramentas> Placa> Módulo genérico ESP8266. Usando um módulo usb para uart, agora você pode programar a parte esp com esp8266_server_text. Alimentação com 3V3, conecte TX-RX, RX-TX e Gnd.

Você precisa inserir seu SSID de rede e senha no script e a porta que você configurará para o encaminhamento de porta, por exemplo, 777.

Você pode executar o código religando o esp enquanto conectado ao conversor usb para uart e a janela serial do arduino (9600 baud) deve exibir o endereço IP local do módulo esp. insira isso no código e reprograme.

Etapa 8: configuração da rede

Configuração de rede
Configuração de rede
Configuração de rede
Configuração de rede

Portanto, para permitir que a chamada de URL Lambda se conecte ao servidor ESP HTTP, precisamos configurar seu roteador para encaminhamento de porta. Peguei meu endereço IP externo em https://www.whatsmyip.org/, estou em um link de microondas, então meu provedor tem o roteador e tive que solicitar o encaminhamento de porta deles. Tive de fornecer o endereço IP do ESP8266 em minha rede e a porta que escolhi, por exemplo, 777. O endereço IP externo precisa ser inserido no script lambda python e seu endereço esp local será mostrado quando você executar o código esp8266 por meio o usb para o link uart.

O módulo ESP na conexão usb para uart deve mostrar em um terminal a palavra de entrada de lambda.

Conecte o ESP ao nano conforme mostrado 3v3, gnd e TX ao nano D2 soft serial. se você tiver o nano no usb para um display de comunicação serial no epc, ele deverá mostrar o que recebe do esp.

Se o ESP não estiver conectado à rede ou não responder à chamada de URL de lambda, lambda atingirá o tempo limite e Alexa relatará uma resposta de habilidade com falha

Etapa 9: Pausa na TV do Alexa Open Clicker

Alexa Open Clicker Tv Pause
Alexa Open Clicker Tv Pause

Coloquei o módulo ao lado do receptor, mas com uma saída IR de maior potência, ele poderia estar em qualquer lugar da sala. Eu uso um adaptador de alimentação USB de marca conhecida para fornecer energia através do USB.

Sente-se e diga "Alexa abre Clicker"

guia de TV

tv descer

seleção de tv

jogo de tv

tv salto cinco

para avançar um determinado número de minutos, as macros irão para 30x esperar por um tempo solicitado e, em seguida, reproduzir.

Os anúncios no Reino Unido duram cerca de cinco minutos.

Para sair do aplicativo, diga Alexa quit.

Aproveitar.

Recomendado: