Ok TV - ensine o Google Now a controlar um zumbi


"Ok Google, ligue as notícias!" Seria conveniente iniciar rapidamente uma voz em qualquer canal de uma TV comum. Ou controle o ar condicionado sem ter o controle remoto em mãos.

Neste artigo, mostrarei como você pode implementar o controle por voz de qualquer TV sem programar ou usar um ferro de soldar usando o controlador Broadlink RM, muito barato, e alguns aplicativos Android.

Assista a uma demonstração em vídeo do resultado e leia como fazer você mesmo.


O que nós temos?


  • TV zumbi comum
  • Remoto dele
  • Smartphone Android
  • Broadlink RM Controller


Que tipo de animal é Broadlink RM?



Este é um controlador doméstico inteligente tão barato que você pode comprar por apenas 3 mil rublos. Ele pode controlar qualquer equipamento estúpido que possua um controle remoto por infravermelho. Pode ser televisões, aparelhos de ar condicionado e muito mais.
Além disso, ele sabe como controlar equipamentos nas frequências de rádio 315 e 433 MHz - como todos os tipos de interruptores, dimmers e assim por diante. Em princípio, todas as suas características e habilidades estão bem escritas aqui .

Isso funciona como um blaster de infravermelho (não deve ser confundido com um blaster de Star Wars e de todos os Terminadores de lá). Ou seja, o comando de qualquer smartphone, tablet ou computador é transmitido a ela por um wi-fi comum e ela já "preenche" o sinal IR necessário em todas as direções.

O que queremos no final?


Queremos tornar o Google Now um pouco mais (bem, pelo menos um pouquinho) mais inteligente e aprender a entender comandos de voz como "Ligue o canal Sport", "Tornar a TV mais silenciosa". Bem, em geral, aprendi a pressionar todos os outros botões. Assim, você não precisa mais procurar controles remotos diferentes e pode gerenciar todo o equipamento, mesmo usando um relógio inteligente no Android Wear .

Vamos começar


Após a configuração inicial do Broadlink RM usando um aplicativo Android padrão, precisamos ensinar códigos de IR no controle remoto da TV. Para que mais tarde, quando enviamos comandos para este programa, ela saiba qual sinal deve ser enviado ao controlador.



Para fazer isso, instale o aplicativo Broadlink Control (os códigos-fonte estão abertos e estão localizados aqui ). É muito simples e permite que você ensine Broadlink nossos botões, além de adicionar combinações de botões como funções. Porque, para alguns canais de TV, você precisa pressionar mais de um botão. Por exemplo, canal 11.

Todos os botões e funções são nomeados, funções podem ser selecionadas na lista para testar seu trabalho e também para iniciá-las por voz diretamente do programa.

Quando adicionamos um novo botão à base do programa, o controlador entra no modo de aprendizado para o novo código IR. A luz começa a piscar, trazemos o painel de controle e pressionamos o botão desejado. O programa solicitará que você nomeie o botão de alguma forma e salve-o na lista.

Isso deve ser feito para todos os botões no controle remoto, que são necessários!

Aprenda o Google Now


O Google Now é ótimo para controle de voz. Mas ele não pode clicar nos botões da TV ... Agora, vamos corrigir essa falha dos engenheiros do Google!

Como você sabe, o Google Now não possui uma API aberta para "incorporar" suas funções. Mas há um assistente de voz em língua russa, Dusya, que pode "retirar" o texto da solicitação do Google Now e processá-la se ela se adequar a uma das funções. Além disso, o Dusya permite que você crie suas próprias funções sem nenhuma programação na sua interface.

Essas funções “próprias” são chamadas de scripts e permitem transformar a frase de um usuário em uma sequência de ações que você precisa acionar em seu smartphone. Como Usando modelos de frase, cuja sintaxe é bastante simples:

* (*|*) [] [*] $Text *


Frases como "Hey, mude para notícias" são adequadas para esse modelo. Ou "Ligue o canal Sport". Nesse caso, o nome do canal a ser lançado será colocado na variável $ Text. Tudo é simples!

Em resposta a esse comando, você pode adicionar o envio de intenção - ou seja, enviar um sinal em um smartphone local para outro programa. Este programa será o Broadlink Control, que recebe uma linha de texto, pesquisa um canal configurado anteriormente e envia sinais dos botões Broadlink.

É basicamente isso!

Bem, nem tudo, é claro ...


Vamos criar esse script no Dus, adicionar o modelo descrito acima e, nas ações que adicionamos enviando a intenção do tipo Broadcast com a ação com.broadlink.control.action.QUERY e nos parâmetros, passamos nossa variável $ Text no parâmetro text. Como nas capturas de tela:



O que mais pode ser feito?
, , . .


E, é claro, lembre-se de ativar a integração com o Google Now na configuração "Modo de segundo plano" para que Dusya possa "interceptar" seu comando e iniciar os botões necessários no Broadlink Control.

Agora, quando você inicia o Google Now com a frase mágica "Ok Google", podemos comandar nosso querido "Ligue o primeiro canal", após o qual Dusya reagirá a essa frase, feche o Google Now, extraia o nome do canal da frase e envie-o para o programa Broadlink Control. Por sua vez, ele encontrará pelo nome a lista de botões que precisam ser pressionados e os enviará na sequência correta ao controlador Broadlink RM. Bem, esse transformará o código em um sinal de infravermelho e o puxará em todas as direções, de forma que alcance definitivamente o receptor de infravermelho até da TV de tubo mais antiga .

E agora com certeza!


Aqui está um exemplo de como ensinar qualquer técnica para controlar a voz sem programação e ferro de soldar em um tempo muito curto e com muito pouco dinheiro (para uma solução em caixa da classe “casa inteligente”). Lembre-me de que o Google Now também pode ser iniciado na tela do smartphone (por exemplo, funciona apenas no meu carregador) e no smartwatch Android Wear.

Isso causará uma impressão duradoura nos convidados e, de fato, é legal ...

Ok Google, eu não assisto TV!

Source: https://habr.com/ru/post/pt389883/


All Articles