Contrôle pratiquement tout avec siri - pas jailbreak nécessaire
Siri peut être étonnant à certains moments, mais elle ne peut faire ce que Apple lui permet de faire. Plus maintenant: un nouveau service Web appelé BetterThanSiri est de lancer les portes grandes ouvertes, et il ne nécessite pas que votre appareil jailbreaké pour en faire usage. Aujourd`hui, je vais expliquer un peu le service, et de vous montrer comment commencer avec la commande d`un jeu de lumières RGB. Regardez la vidéo premier à le voir en action.
Contenu
Comment peut-Cette magie noire fonctionne?
Lorsque vous demandez à Siri de « Google » quelque chose, elle ouvre le navigateur Safari et achemine votre demande que vous attendez. Il est à ce moment qu`une demande HTTP est faite, donc si vous avez configuré un proxy HTTP sur votre connexion Internet - une fonction standard qui ne nécessite pas jailbreaking - la demande va via le proxy premier.
Maintenant, voici où la magie est: par préfacer commandes avec « googolplex », le terme de recherche devient « plex » plus ce que vous dites. Le proxy - BetterThanSiri.com - identifie la présence de « plex » et intercepte votre requête de recherche. Quelle que soit la suivante est alors considérée comme la « commande » réelle. BetterThanSiri effectue correspondance de motif contre votre sélection personnelle de commandes configurées, et exécute le code correspondant. Il est vraiment tout à fait étonnant, et je ne peux pas attendre pour vous montrer comment l`utiliser.
Contrôle de lumières RVB
Pour démontrer BetterThanSiri, j`ai installé une base IR envoyer et recevoir circuit - voir mon précédent tutoriel sur la TV diable polisson pour en savoir plus sur l`interaction avec les codes IR, ou lire la version condensée. Voici les pièces dont vous aurez besoin:Présentation du Diable TV, une simple télécommande Arduino PrankPrésentation du Diable TV, une simple télécommande Arduino PrankLire la suite
- Arduino, bouclier Ethernet et un câble Ethernet
- LED IR, résistance de 220 ohms (dépend de votre LED en particulier, mais cela devrait suffire dans la plupart des cas), et le récepteur IR
- bande LED RGB, alimentation 12V et de commande à distance existant
Tous les travaux de contrôle à distance par codage d`un nombre dans des impulsions de lumière infrarouge - donc d`abord, vous aurez besoin d`apprendre les numéros de contrôle utilisés par votre télécommande particulière. Téléchargez la bibliothèque irRemote et redémarrez l`Arduino IDE. Pour la plupart des récepteurs IR, avec le dôme de la LED face à vous, les broches de gauche à droite: signal GND, + 5V.
Fil dans le signal à la broche 11 et les deux autres, comme d`habitude, et la charge dans le IRrecvDemo exemple fourni par la bibliothèque. Ouvrez la console série et commencez à appuyer sur les boutons de votre télécommande - vous devriez obtenir des valeurs HEX. Nous voulons réellement ces valeurs Hex comme un long nombre entier, il faut donc ajouter une nouvelle Serial.println sans la partie HEX:
Serial.println (results.value, HEX) -Serial.println (results.value) -
Notez tous les numéros dont vous avez besoin. Dans mon cas, j`ai trouvé:
- Rouge: 16195807
- Vert: 16228447
- Bleu: 16212127
Si vous utilisez un autre type de télécommande, vous devrez peut-être charger le IRrecvDump par exemple, qui affichera également la type du signal - dans mon cas, la télécommande envoyait 32 bits (ou 8 chiffres) codes NEC, qui se reflète dans mon code serveur modifié plus tard - rappelez-vous de changer cela si vous avez besoin.
Avant de poursuivre, dans le câble LED IR pour l`envoi (le côté plat de la LED passe à la masse, l`autre côté passe par une résistance de 220 ohms à la broche 3), et charger le IRsendDemo. Dupliquer la commande principale d`envoyer plusieurs fois et remplacer vos propres codes IR pour les tester - ajouter un délai entre chacun. Télécharger, et si tout fonctionne bien, vous devriez voir votre cycle de LED à travers les commandes ajoutées.
Ensuite, téléchargez le paquet RESTduino - il y a une bibliothèque Ethernet de remplacement là-bas, vous aurez besoin d`ajouter et de nouveau, redémarrez l`Arduino IDE. RESTduino est une API Web puissant RESTful - il crée un serveur, qui écoute les demandes entrantes avec la capacité de contrôler les broches ou lire les valeurs de leur part. Essayez la démo inclus d`abord d`assurer que tout fonctionne - vous devez modifier l`adresse MAC, que le serveur IP statique, et définir une adresse IP sur votre gamme de réseau local (Probablement 192.168.0.x ou 10.0.1.x).
Vous devriez alors être en mesure d`accéder à votre Arduino à partir d`un navigateur - juste essayer des commandes simples pour lire les valeurs sur l`entrée analogique 1 - par exemple:
http://10.0.1.99/a1/
Il n`a pas d`importance si rien est connecté, nous sommes en train de vérifier que le serveur fonctionne. Maintenant, télécharger ma version modifiée de cette démo. J`ai dépouillé le contrôle de la broche, et juste remplacé avec IR commande à la place. Utilisez une URL de la forme:
http://10.0.1.99/1/IRCODE
La ligne importante dans le code modifié est ici:
irsend.sendNEC (strtoul (valeur, NULL, 10), 32), -
Vous aurez besoin de changer que si votre télécommande n`est pas du type NEC, ou non de 32 bits de longueur. J`ai aussi ajouté un retard et répété la commande plusieurs fois, comme l`IR peut être un peu parfois peu fiables. Enfin, mettre en place redirection de port sur votre routeur afin que vous puissiez envoyer des commandes IR de partout dans le monde. Avant tout sur le port 80 à l`adresse IP interne de votre Arduino. Vous devriez maintenant être en mesure de remplacer l`adresse IP interne avec votre IP publique et le contrôle devrait fonctionner. Nous pouvons maintenant passer à la mise en place de nos commandes personnalisées sur BetterThanSiri.com.Qu`est-ce que la redirection de port & Comment peut-il me aider? [MakeUseOf Explique]Qu`est-ce que la redirection de port & Comment peut-il me aider? [MakeUseOf Explique]Pleurez-vous un peu à l`intérieur quand quelqu`un vous dit qu`il ya un problème de redirection de port et voilà pourquoi votre nouvelle application brillante ne fonctionnera pas? Votre Xbox ne vous laissera pas jouer à des jeux, fichiers torrent téléchargés refusent ...Lire la suite
Commencez en vous inscrivant, puis connectez-vous pour gérer votre liste de commande personnelle.
Jetez un oeil sur les commandes existantes si vous êtes curieux de savoir comment ils travaillent, ou tout simplement aller de l`avant et de créer un nouveau. Nom de la commande, et d`ajouter la phrase matcher:
lumières ~
Ce qui signifie « Cette commande correspondra lumières + quoi que ce soit ». Ensuite, collez dans le code ci-dessous - modifier cela pour inclure votre adresse IP publique (ou un DNS dynamique si vous en avez un), ainsi que les phrases que vous souhaitez apparier et les codes IR pertinents. La première variable de la fonction est juste un petit texte envoyé au navigateur. Vous pouvez copier / coller plus de else if bits pour créer autant de commandes que vous voulez.
if (expression == "lumières allumées") {RespondWithTextAndURL ( `Clignotants sur`, `http: // votreip / 1/16236607`) -} else if (expression =="feux rouges") {RespondWithTextAndURL ( `Se préparer pour le temps sexy`, `http: // votreip / 1/16195807`) -} else if (expression =="lumières bleues") {RespondWithTextAndURL ( `mode de travail actif`, `http: // votreip / 1/16212127`) -} else if (expression =="feux verts") {RespondWithTextAndURL ( `Vous n ` bizarre », `http: // votreip / 1/16228447`) -}
Suivez les instructions pour configurer le proxy sur votre appareil. Essentiellement, il vous suffit d`ajouter un proxy HTTP automatique (URL: http://totally.betterthansiri.com) À votre connexion Internet. La première fois que vous utilisez le service, vous aurez besoin de vous connecter depuis votre appareil mobile afin qu`il sache ce que vos commandes personnelles, mais vous aurez seulement besoin de le faire une fois.
Limites
Comme vous pouvez le voir, BetterThanSiri est un système assez complexe au moment - il n`y a pas de glisser-drop interface vous aurez donc besoin de comprendre les bases de javascript pour créer votre propre jeu de commandes. Cela dit, ils ont exposé énormément de puissance avec la possibilité de publier des données sur les URL au hasard soit en arrière-plan ou tout simplement une redirection, donc nous ne pouvions pas demander plus. Vous pouvez toujours parcourir les recettes existantes si vous n`êtes pas pour la programmation de votre propre.
Il ne parle pas de nouveau à vous aussi comme le fait Siri. Tous les comptes incluent une fonctionnalité similaire à Siri, mais les blagues sont de sortie « me raconter une blague » sur l`écran, dans votre navigateur Web. Il est possible qu`ils pourraient ajouter cela en utilisant plus tard un tiers plug-in javascript, mais cela peut signifier l`utilisation accrue ou la réactivité de la bande passante.
Enfin, il y a bien sûr le retard impliqué. Votre discours est envoyé à Apple pour le traitement dans une commande de texte, renvoyé vous, envoyé à la procuration, traitées par BetterThanSiri, puis renvoyé sur Internet à notre Arduino locale. Dans la démo chaque commande a pris environ 5-10 secondes au total, et il est peu probable que cela ne peut jamais être améliorée. Pour la domotique, cela est tout à fait acceptable, mais si vous essayez de fournir des informations à l`utilisateur en temps opportun, il est un peu frustrant.
Les préoccupations de sécurité
L`utilisation d`un proxy HTTP comme ce moyen chaque requête HTTP vous faites est mis en déroute par leurs serveurs: en théorie, ils pourraient examiner tout ce que vous recherchez, tous les sites que vous visitez. J`ai demandé aux développeurs à ce sujet, et ce fut leur réponse:
Sans aucun doute une préoccupation valable, mais nous ne regardons pas à chaque requête HTTP. Notre autoconfig proxy dispose d`un moteur de décision qui ne regarde que les requêtes HTTP pertinentes à googolplex (avec « plex » en eux).
Vous pouvez prendre que le visage serait forte valeur impossible de prouver le contraire, mais si le logiciel serveur open source (ce qui ne l`est pas), vous pouvez au moins vérifier que et exécutez votre propre serveur privé. Compte tenu du potentiel pour des applications commerciales, il semble peu probable qu`ils l`open source, donc si la vie privée et la sécurité de votre navigateur mobile est particulièrement important, il est compréhensible que ce n`est pas un service que vous aurez envie d`utiliser.
Personnellement, je ne pense pas que ce soit euphémisme d`appeler ce service vraiment incroyable. J`ai entendu parler initialement quelques mois en arrière, mais au moment où il était limité à contrôler fondamentalement juste Spotify - une preuve de concept. Maintenant qu`ils ont ajouté la possibilité de créer des commandes personnalisées et interface avec quoi que ce soit, il est un système incroyablement puissant que je vais revoir à l`avenir pour former la base d`un système domotique Arduino complète. Quelles utilisations peut-on penser pour BetterThanSiri?