Control de prácticamente cualquier cosa con siri - jailbreak no es necesario
Siri puede ser sorprendente a veces, pero ella sólo puede hacer lo que Apple le permite hacer. Ya no es así: un nuevo servicio web llamado BetterThanSiri es tirar las puertas de par en par, y que no requiere que el dispositivo esté jailbreak a hacer uso de ella. Hoy en día, voy a explicar un poco sobre el servicio, y que muestra cómo empezar con el control de un conjunto de luces RGB. Ver el video primero en verlo en acción.
¿Cómo funciona esta magia oscura?
Cuando preguntas a Siri a “Google” algo, se abre el navegador y las rutas de su solicitud como era de esperar Safari. Es en este punto que una petición HTTP se hace, por lo que si ha configurado un proxy HTTP en su conexión a Internet - una característica estándar que no requiere jailbreak - la solicitud va a través del proxy primero.
Ahora aquí es donde la magia es: anteponiendo a los comandos con “googolplex”, el término de búsqueda se convierte en “Plex”, además de lo que usted diga. El proxy - BetterThanSiri.com - identifica la presencia de “Plex” e intercepta la consulta de búsqueda. Lo que sigue a continuación se considera el “comando” real. BetterThanSiri realiza la coincidencia de patrones en contra de su selección personal de los comandos configurados, y se ejecuta el código en cuestión. Realmente es bastante sorprendente, y no puedo esperar para mostrarle cómo usarlo.
El control de luces RGB
Para demostrar BetterThanSiri, he configurar un IR básica enviar y recibir circuito - ver mi tutorial anterior sobre el travesura diablo TV para aprender más sobre la interacción con los códigos IR, o para leer en la versión condensada. Aquí están las piezas que necesitará:Al presentar el Diablo TV, un fácil control remoto Arduino bromaAl presentar el Diablo TV, un fácil control remoto Arduino bromaLee mas
Vídeo: TOP 25 funciones de iOS 10 en español
- Arduino, escudo Ethernet y cableado Ethernet
- IR LED, 220 Ohm resistor (depende de su LED particular, pero esto debe ser suficiente en la mayoría de los casos), y el receptor IR
- RGB LED luces de tira, fuente de alimentación de 12V y mando a distancia existente
Cada control remoto funciona por codifica una serie de pulsos de luz infrarroja - por lo primero, tendrá que aprender los números de control utilizados por el mando a distancia en particular. Descargar la biblioteca irRemote y reiniciar el IDE Arduino. Para la mayoría de los receptores IR, con la cúpula del LED hacia arriba, los pasadores de izquierda a derecha son: señal, GND, + 5V.
Wire en la señal a la clavija 11 y los otros dos como de costumbre, y la carga en el IRrecvDemo ejemplo proporcionado por la biblioteca. Abre la consola de serie y comenzar presionando los botones en el mando a distancia - usted debe conseguir algunos valores HEX. Queremos realmente esos valores Hex como un número entero largo, por lo que añadir un nuevo Serial.println sin la parte HEX:
Serial.println (results.value, HEX) -Serial.println (results.value) -
Registrar todos los números que necesita. En mi caso, he encontrado:
- Rojo: 16195807
- Verde: 16228447
- Azul: 16212127
Si está utilizando un tipo diferente de distancia, también puede ser necesario para cargar el IRrecvDump ejemplo, que también salida de la tipo de la señal - en mi caso, el mando a distancia estaba enviando de 32 bits (o de 8 dígitos) códigos de NEC, que se refleja en mi código de servidor modificado más adelante - recuerde de cambiar eso si es necesario.
Antes de continuar, el alambre en su IR LED para el envío (el lado plano de la LED va a GND, el otro lado pasa a través de una resistencia de 220 ohmios a la clavija 3), y cargar el IRsendDemo. Duplicar el comando principal Enviar un par de veces y sustituir sus propios códigos IR para probarlos - añadir un retardo entre cada uno. Suba, y si todo funciona bien, se debe ver a su ciclo de LEDs a través de los comandos que ha añadido.
Vídeo: UntetheredHeySiri iPhone Tweak
A continuación, descargar el paquete RESTduino - hay una librería Ethernet reemplazo de ahí que tendrá que añadir una y otra vez, reiniciar el IDE Arduino. RESTduino es una potente API REST Web - se crea un servidor, que escucha las peticiones de entrada con capacidad de controlar pasadores o leer los valores de los mismos. Pruebe la primera demostración incluida para asegurar que todo está funcionando - se necesita modificar la dirección MAC, hacer que el servidor IP estática, y definir una IP en el rango de red local (Probablemente 192.168.0.x. o 10.0.1.x).
Vídeo: 3 iPhone Tricks You Didn't Know
A continuación, debería ser capaz de acceder a su Arduino desde cualquier navegador - sólo tratar de comandos simples para leer los valores en la entrada analógica 1 - por ejemplo:
https://10.0.1.99/a1/
No importa si no hay nada conectado, sólo estamos comprobando que el servidor funciona. Ahora, subir mi versión modificada de esta demo. He despojado a cabo el control de alfiler, y justo lo reemplazó con IR de control en su lugar. Utilizar una dirección URL de la forma:
https://10.0.1.99/1/IRCODE
La línea importante en el código modificado está aquí:
irsend.sendNEC (strtoul (valor, NULL, 10), 32) -
Tendrá que cambiar que si el mando a distancia no es del tipo NEC, o no es de 32 bits de longitud. También he añadido un retraso y repetí el comando varias veces, como el IR puede ser un poco fiable a veces. Por último, configure el reenvío de puertos en el router para que pueda enviar comandos IR desde cualquier parte del mundo. Reenviar todo en el puerto 80 a la IP interna de su Arduino. Ahora debería ser capaz de reemplazar la IP interna con su IP pública y el control debería funcionar. Ahora podemos pasar a la configuración de nuestros comandos personalizados en BetterThanSiri.com.¿Qué es el reenvío de puertos & ¿Cómo me puede ayudar? [Explica MakeUseOf]¿Qué es el reenvío de puertos & ¿Cómo me puede ayudar? [Explica MakeUseOf]¿Llora un poco por dentro cuando alguien le dice que hay un problema de reenvío de puertos y es por eso que su nueva aplicación brillante no va a funcionar? Xbox no le permitirá jugar juegos, sus descargas de torrents se niegan ...Lee mas
Comience por inscribirse, a continuación, inicie sesión para administrar su lista de mando personal.
Echar un vistazo a los comandos existentes si eres curioso acerca de cómo funcionan, o simplemente seguir adelante y crear una nueva. Nombre del comando, y añadir la frase de coincidencias:
luces ~
Lo que significa “Este comando coincidirá con las luces + nada”. A continuación, pega en el código de abajo - modificar esto para incluir su dirección IP pública (o un DNS dinámico si tiene uno), así como las frases que desea emparejado, y los códigos IR pertinentes. La primera variable de la función es sólo un poco de texto enviado de vuelta al navegador. Puede copiar / pegar más de la else if bits para crear tantos comandos como desee.
si (la frase == "luces encendidas") {RespondWithTextAndURL ( `encender las luces`, `http: // YOURIP / 1/16236607`) -} else if (frase =="luces rojas") {RespondWithTextAndURL ( `Cómo prepararse para el tiempo atractiva`, `http: // YOURIP / 1/16195807`) -} else if (frase =="luces azules") {RespondWithTextAndURL ( `modo de trabajo activo`, `http: // YOURIP / 1/16212127`) -} else if (frase =="luces verdes") {RespondWithTextAndURL ( `You ` re raro`, `http: // YOURIP / 1/16228447`) -}
Siga las instrucciones para configurar el proxy en su dispositivo. Esencialmente, sólo tiene que añadir un proxy HTTP automática (URL: https://totally.betterthansiri.com) Para su conexión a Internet. La primera vez que utilice el servicio, tendrá que entrar desde su dispositivo móvil para que sepa lo que sus comandos son personales, pero lo único que necesita hacer esto una vez.
limitaciones
Como se puede ver, es bastante BetterThanSiri un sistema complejo en el momento - no hay interfaz de arrastrar y soltar por lo que tendrá que entender los conceptos básicos de javascript para crear su propio conjunto de comandos. Dicho esto, se han expuesto una gran cantidad de energía con la capacidad de enviar datos a direcciones URL al azar, ya sea en el fondo o simplemente una redirección, así que realmente no se puede pedir más. Siempre se puede navegar por las recetas existentes si no eres para la programación de su propia.
También no habla con usted lo hace Siri. Todas las cuentas incluyen una función de “dime una broma” similar a Siri, pero los chistes son de salida en la pantalla, en su navegador web. Es posible que podría añadir esto más adelante usando un tercero javascript plug-in, pero puede significar un mayor uso de ancho de banda o capacidad de respuesta.
Por último, hay por supuesto el retraso en cuestión. Su voz se envía a Apple para su procesamiento en un comando de texto, enviado de vuelta que, envía al proxy, procesado por BetterThanSiri, a continuación, envía de vuelta a través de Internet a nuestro Arduino local. En la demo de cada comando tomó unos 5-10 segundos en total, y es poco probable que esto nunca se puede mejorar. Para la automatización del hogar, esto es perfectamente aceptable, pero si usted está tratando de entregar la información de vuelta al usuario en el momento oportuno, que es un poco frustrante.
Preocupaciones de seguridad
El uso de un proxy HTTP como éste medios cada petición HTTP haces se enruta a través de sus servidores: en teoría, podrían examinar todo lo que la búsqueda de, cada sitio que visita. Pregunté a los desarrolladores acerca de esto, y esto fue su respuesta:
Sin duda una preocupación válida, pero que no se ven en cada petición HTTP. Nuestra configuración automática de proxy tiene un motor de decisión que sólo se ve en las peticiones HTTP correspondientes a googolplex (con “Plex” en ellos).
Que puede tomar que el rostro de valor sería imposible demostrar lo contrario, pero si el software de servidor era de código abierto (que no lo es) que podría, al menos, y verificar que ejecuta su propio servidor privado. Dado el potencial de las aplicaciones comerciales parece improbable que el código abierto, así que si la privacidad y la seguridad de su navegador móvil es especialmente importante, es comprensible que esto no es un servicio que usted desea utilizar.
Personalmente, no creo que es insuficiente para llamar a este servicio realmente sorprendente. Me enteré de que inicialmente hace unos meses, pero en el momento que estaba limitado a, básicamente, sólo el control de Spotify - una prueba de concepto. Ahora que han añadido la posibilidad de crear comandos personalizados y una interfaz con cualquier cosa, es un sistema increíblemente poderosa voy a estar volviendo a visitar en el futuro para formar la base de un sistema domótico completa Arduino. ¿Qué usos se te ocurren para BetterThanSiri?