Controle praticamente qualquer coisa com siri - sem jailbreak necessário
Siri pode ser surpreendente, às vezes, mas ela só pode fazer o que a Apple permite que ela faça. Não mais: um novo serviço Web chamado BetterThanSiri está jogando os portões abertos, e não requer o dispositivo para ser jailbroken para fazer uso dele. Hoje, eu vou estar explicando um pouco sobre o serviço, e mostrando-lhe como começar com o controle de um conjunto de luzes RGB. Assista ao vídeo primeiro a vê-lo em ação.
Conteúdo
Como é que esta magia negra funciona?
Quando você pergunta a Siri para “Google” alguma coisa, ela abre o navegador e rotas seu pedido como você esperaria Safari. É neste ponto que uma solicitação HTTP é feita, por isso, se você configurar um proxy HTTP na sua conexão de Internet - um recurso padrão que não requer jailbreaking - o pedido vai através do proxy primeiro.
Agora aqui é onde a mágica é: por prefaciar comandos com “googolplex”, o termo de pesquisa torna-se “complexa” mais o que você diz. O proxy - BetterThanSiri.com - identifica a presença de “plex” e intercepta a sua consulta de pesquisa. O que quer que se segue é então considerado o “comando” real. BetterThanSiri executa a correspondência de padrão contra a sua seleção pessoal de comandos configurados, e roda o código relevante. É realmente muito incrível, e eu não posso esperar para mostrar-lhe como usá-lo.
Controlando RGB Luzes
Para demonstrar BetterThanSiri, eu tenho uma configuração IR básica enviar e receber circuito - ver meu tutorial anterior sobre o brincadeira diabo TV para saber mais sobre a interação com códigos IR, ou para ler sobre a versão condensada. Eis as peças que você vai precisar:Apresentando a TV Diabo, um fácil controle remoto Arduino PrankApresentando a TV Diabo, um fácil controle remoto Arduino Prankconsulte Mais informação
- Arduino, Ethernet escudo, e os cabos Ethernet
- LED IR, 220 Ohm resistor (depende do seu LED particular, mas isso deve ser suficiente na maioria dos casos), e receptor IR
- RGB tira luzes, fonte de alimentação de 12V e controlador remoto existente LED
Video: Aula iPhone e iPad - Dicas Siri em Português
A cada controlo remoto funciona através da codificação de um número em pulsos de luz infra-vermelha - Então, primeiro, você precisa aprender os números de controle usados pelo seu controle remoto particular. Baixar a biblioteca irRemote e reiniciar o Arduino IDE. Para a maioria dos receptores de IV, com a cúpula do LED voltada para si, os pinos da esquerda para a direita: sinal, GND, + 5V.
Fios no sinal para o pino 11 e os outros dois como é habitual, e a carga no IRrecvDemo exemplo fornecido pela biblioteca. Abra o console serial e começar a pressionar botões no seu controle remoto - você deve obter alguns valores HEX. Nós realmente querem esses valores Hex como um número inteiro longo, então adicionar um novo Serial.println sem a parte HEX:
Video: Ativação por voz da siri "Eai, Siri" em português, sem jailbreak e fonte de alimentação ,
Serial.println (results.value, HEX) -Serial.println (results.value) -
Grave todos os números que você precisa. No meu caso, eu encontrei:
- Vermelho: 16195807
- Verde: 16228447
- Azul: 16212127
Se você estiver usando um tipo diferente de controle remoto, você também pode precisar de carregar o IRrecvDump exemplo, que também emite o tipo do sinal - no meu caso, o controle remoto estava enviando 32 bits (ou 8 dígitos) códigos NEC, que se reflete no meu código do servidor modificada mais tarde - lembre-se de mudar isso se você precisar.
Antes de prosseguir, de arame no seu IR LED para o envio (o lado plano do LED passa a GND, do outro lado passa através de um resistor de 220 ohm para o pino 3), e carregar o IRsendDemo. Duplicar o principal comando send algumas vezes e substituir seus próprios códigos IR para testá-los - adicionar um atraso entre cada uma. Carregar, e se tudo está funcionando bem, você deve ver o seu ciclo de LEDs através dos comandos que você adicionou.
Em seguida, baixe o pacote RESTduino - há uma biblioteca Ethernet substituto lá dentro, você vai precisar adicionar e, novamente, reinicie o Arduino IDE. RESTduino é um poderoso RESTful Web API - ele cria um servidor, que escuta as solicitações de entrada com capacidade de controlar pinos ou ler valores a partir deles. Experimente o incluiu primeira demo para garantir que tudo está funcionando - você vai precisar para modificar o endereço MAC, fazer o servidor IP estático, e definir um IP em sua faixa de rede local (Provavelmente 192.168.0.xe ou 10.0.1.x).
Você deve então ser capaz de acessar o seu Arduino partir de qualquer navegador - apenas tentar comandos simples para ler os valores de entrada analógica 1 - por exemplo:
http://10.0.1.99/a1/
Não importa se nada for conectado, nós estamos apenas verificando que o servidor trabalha. Agora, carregar a minha versão modificada desta demo. Eu já retirados do controle pin, e apenas substituiu-o com IR controle em vez. Use um URL no formato:
http://10.0.1.99/1/IRCODE
O importante linha no código modificado é aqui:
irsend.sendNEC (strtoul (valor, NULL, 10), 32) -
Você vai precisar para mudar isso, se o seu controlo remoto não é do tipo NEC, ou não é de 32 bits de comprimento. Eu também acrescentou um atraso e repetiu o comando algumas vezes, como IR pode ser um pouco confiável, por vezes. Finalmente, configurar encaminhamento de porta no seu roteador para que você possa enviar comandos IR de qualquer lugar do mundo. Atacante tudo na porta 80 para o IP interno do Arduino. Agora você deve ser capaz de substituir o IP interno com o seu IP público, e o controle ainda deve funcionar. Podemos agora passar para a criação de nossos comandos personalizados em BetterThanSiri.com.O que é Port Forwarding & Como é que isso pode ajudar-me? [MakeUseOf Explica]O que é Port Forwarding & Como é que isso pode ajudar-me? [MakeUseOf Explica]Você chora um pouco para dentro quando alguém lhe diz que há um problema de encaminhamento de porta e é por isso que seu aplicativo novo e brilhante não vai funcionar? O Xbox não vai deixar você jogar jogos, seus downloads de torrent recusar ...consulte Mais informação
Comece por inscrever-se, em seguida, faça o login para gerenciar sua lista de ordem pessoal.
Dê uma olhada os comandos existentes, se você está curioso sobre como eles funcionam, ou simplesmente ir em frente e criar uma nova. Nome de comando e adicionar a frase de correspondência:
luzes ~
Que significa “Este comando irá corresponder luzes + qualquer coisa”. Em seguida, cole no código abaixo - modificar isso para incluir o seu endereço IP público (ou um DNS dinâmico se você tiver um), bem como as frases que você quer combinados, e os códigos de IR relevantes. A primeira variável na função é apenas um pequeno texto enviado de volta para o navegador. Você pode copiar / colar mais do else if bits para criar tantos comandos como você quer.
if (frase == "luzes acesas") {RespondWithTextAndURL ( `Virando as luzes acesas`, `http: // YOURIP / 1/16236607`) -} else if (frase =="luzes vermelhas") {RespondWithTextAndURL ( `Preparando-se para o tempo sexy`, `http: // YOURIP / 1/16195807`) -} else if (frase =="luzes azuis") {RespondWithTextAndURL ( `modo de trabalho ativo`, `http: // YOURIP / 1/16212127`) -} else if (frase =="luzes verdes") {RespondWithTextAndURL ( `Você ` re estranho`, `http: // YOURIP / 1/16228447`) -}
Siga as instruções para configurar o proxy no seu dispositivo. Basicamente, você só precisa adicionar um proxy HTTP automática (URL: http://totally.betterthansiri.com) Para sua conexão com a internet. A primeira vez que você usar o serviço, você precisa fazer login do seu dispositivo móvel para que ele saiba o que seus comandos pessoais são, mas você só precisa fazer isso uma vez.
limitações
Como você pode ver, BetterThanSiri é bastante um sistema complexo no momento - não há nenhuma interface drag and drop de forma que você precisa entender os conceitos básicos de javascript para criar seu próprio conjunto de comandos. Dito isto, eles já exposta uma enorme quantidade de poder com a capacidade de publicar dados para URLs aleatórias, quer no fundo ou apenas um redirecionamento, então nós realmente não poderia pedir mais. Você sempre pode procurar receitas existentes se você não se para programar o seu próprio.
Ele também não fala de volta para você como Siri faz. Todas as contas incluem um recurso de “diga-me uma piada” semelhante ao Siri, mas as piadas são saída na tela, no seu navegador web. É possível que eles poderiam adicionar isso mais tarde usando um terceiro javascript plugin, mas pode significar o aumento do uso da largura de banda ou capacidade de resposta.
Finalmente, há, naturalmente, o atraso envolvido. O seu discurso é enviado para a Apple para a transformação em um comando de texto, enviado de volta você, enviado para o proxy, processado por BetterThanSiri, em seguida, enviado de volta através da Internet para o nosso Arduino local. Na demo cada comando levou cerca de 5-10 segundos totais, e é improvável que isso pode nunca ser melhorado. Para automação residencial, este é perfeitamente aceitável, mas se você está tentando entregar informações de volta para o usuário em tempo hábil, que é um pouco frustrante.
Preocupações com segurança
Usando um proxy HTTP como este meio cada solicitação HTTP você faz é encaminhado através de seus servidores: em teoria, eles poderiam examinar tudo o que você procurar, cada site que você visita. Perguntei aos desenvolvedores sobre isso, e esta foi a sua resposta:
Definitivamente uma preocupação válida, mas não olhar para cada solicitação HTTP. Nossa autoconfig proxy tem um motor de decisão que só olha para as solicitações HTTP relevantes para googolplex (com “plex” neles).
Você pode levar isso para o rosto de valor que seria impossível para provar o contrário, mas se o software servidor foi código aberto (que não é) você poderia pelo menos verificar se e executar o seu próprio servidor privado. Dado o potencial para aplicações comerciais parece improvável que iriam abrir o código-lo, por isso, se a privacidade e segurança no seu navegador móvel é particularmente importante, é compreensível que este não é um serviço que você vai querer usar.
Pessoalmente, eu não acho que é eufemismo para chamar este serviço realmente impressionante. Eu ouvi sobre isso, inicialmente, alguns meses atrás, mas no momento em que foi limitada a, basicamente, apenas controlando Spotify - uma prova de conceito. Agora que eles adicionaram a capacidade de criar comandos personalizados e de interface com qualquer coisa, é um sistema incrivelmente poderoso eu vou estar revisitando no futuro para formar a base de um sistema completo de automação residencial Arduino. Que usos que você pode pensar para BetterThanSiri?