Controlați practic nimic cu Siri - Nu este necesar jailbreak
Siri poate fi uimitor uneori, dar ea nu poate face decât ceea ce îi permite Apple să facă. Nu mai este: un nou serviciu Web numit BetterThanSiri aruncă porțile larg deschise și nu necesită ca dispozitivul dvs. să fie jailbroken pentru al folosi. Astăzi, voi explica puțin despre serviciu și vă va arăta cum să începeți să controlați un set de lumini RGB. Urmăriți mai întâi videoclipul pentru ao vedea în acțiune.
Cum funcționează această magie întunecată?
Când îl întrebi pe Siri “Google” ceva, ea deschide browserul Safari și rutează cererea dvs. așa cum v-ați aștepta. În acest moment este făcută o solicitare HTTP, deci dacă ați configurat un proxy HTTP pe conexiunea dvs. la Internet - o caracteristică standard care nu necesită jailbreaking - cererea merge prin proxy primul.
Acum, acolo este magia: prin prefacarea comenzilor “googolplex”, termenul de căutare devine “plex” plus ce spui. Proxy - BetterThanSiri.com - identifică prezența “plex” și interceptează interogarea dvs. de căutare. Ceea ce urmează este considerat apoi real “comanda”. BetterThanSiri efectuează potrivirea modelului față de selecția personală a comenzilor configurate și execută codul relevant. Este cu adevărat uimitor și nu pot să aștept să vă arăt cum să îl folosiți.
Controlul luminilor RGB
Pentru a demonstra BetterThanSiri, am instalat un circuit de bază IR de trimitere și recepție - vedeți tutorialul meu anterior pe televizorul devil prank Introducerea TV Devil, o telecomandă ușoară Arduino Prank Introducerea diavolului TV, un ușor de control la distanță Arduino Prank Citiți mai multe aflați mai multe despre interacțiunea cu codurile IR sau citiți-o pentru versiunea condensată. Iată părțile de care aveți nevoie:
- Arduino, scut Ethernet și cabluri Ethernet
- IR LED, rezistență 220 Ohm (depinde de LED-ul dvs. special, dar acest lucru ar trebui să fie suficient în majoritatea cazurilor) și receptor IR
- LED-uri de banda LED-uri RGB, sursa de alimentare de 12V si telecomanda existenta
Fiecare telecomandă funcționează prin codarea unui număr în impulsuri de lumină infraroșie - în primul rând, va trebui să aflați numerele de control utilizate de telecomanda particulară. Descărcați biblioteca IRremote și reporniți ID-ul Arduino. Pentru majoritatea receptoarelor IR, cu cuplul LED-ului îndreptat spre dvs., pinii de la stânga la dreapta sunt: semnal, GND, + 5V.
Trageți semnalul către pinul 11 și celelalte două, ca de obicei, și încărcați în IRrecvDemo exemplu furnizat de bibliotecă. Deschideți consola seria și începeți să apăsați butoanele de pe telecomandă - ar trebui să obțineți câteva valori HEX. Vrem acele valori Hex ca un număr întreg întreg lung, deci adăugați un nou Serial.println fără partea HEX:
Serial.println (rezultate.value, HEX); Serial.println (results.value);
Înregistrați toate numerele de care aveți nevoie. În cazul meu, am aflat:
- Roșu: 16195807
- Verde: 16228447
- Albastru: 16212127
Dacă utilizați un alt tip de telecomandă, este posibil să fie necesară și încărcarea acestuia IRrecvDump exemplu, care va scoate de asemenea tip de semnal - în cazul meu, telecomanda a trimis coduri NEC de 32 de biți (sau 8 cifre), care se reflectă mai târziu în codul serverului meu modificat - nu uitați să schimbați acest lucru dacă aveți nevoie.
Înainte de a începe, conectați LED-ul IR pentru expediere (partea plată a LED-ului merge la GND, cealaltă parte trece printr-o rezistență de 220 Ohm la pinul 3) și încărcați IRsendDemo. Duplicați comanda principală de trimitere de câteva ori și înlocuiți propriile coduri IR pentru a le testa - adăugați o întârziere între fiecare dintre acestea. Încărcați și, dacă toate funcționează bine, ar trebui să vedeți ciclul LED-urilor prin comenzile pe care le-ați adăugat.
Apoi, descărcați pachetul RESTduino - există o bibliotecă de înlocuire Ethernet acolo unde va trebui să adăugați și din nou, reporniți ID-ul Arduino. RESTduino este un puternic API web de tip RESTful - creează un server care ascultă cererile primite, cu capacitatea de a controla pini sau de a citi valorile de la acestea. Încercați mai întâi demo-ul inclus, pentru a vă asigura că totul funcționează - va trebui să modificați adresa MAC, să faceți starea IP a serverului și să definiți o adresă IP în gama de rețele locale (probabil 192.168.0.x sau 10.0.1.x).
Ar trebui să puteți accesa arduinul dvs. din orice browser - încercați doar comenzi simple pentru a citi valorile de pe intrarea analogică 1 - de exemplu:
http://10.0.1.99/a1/
Nu contează dacă nimic nu este conectat, doar verificăm dacă serverul funcționează. Acum, încărcați versiunea mea modificată a acestui demo. Am eliminat controlul pinului și am înlocuit-o cu control IR. Utilizați o adresă URL a formularului:
http://10.0.1.99/1/IRCODE
Linia importantă din codul modificat este aici:
irsend.sendNEC (strtoul (valoare, NULL, 10), 32);
Va trebui să schimbați acest lucru dacă telecomanda dvs. nu este de tip NEC sau nu are lungimea de 32 de biți. De asemenea, am adăugat o întârziere și am repetat comanda de câteva ori, deoarece IR poate fi uneori puțin fiabil. În cele din urmă, configurați portul de expediere Ce este portul de expediere și cum mă poate ajuta? [Explicarea MakeUseOf] Ce este portul de expediere și cum mă poate ajuta? [MakeUseOf explică] Plângeți puțin înăuntru când cineva vă spune că există o problemă de expediere a portului și de aceea noua dvs. aplicație strălucitoare nu va funcționa? Xbox-ul dvs. nu vă va permite să jucați jocuri, descărcările de torrent refuză ... Citiți mai multe pe routerul dvs., astfel încât să puteți trimite comenzi IR de oriunde din lume. Transmiteți totul de pe portul 80 la IP-ul intern al telefonului dvs. Arduino. Acum ar trebui să puteți înlocui IP-ul intern cu IP dvs. public, iar controlul ar trebui să funcționeze în continuare. Acum putem trece la configurarea comenzilor noastre personalizate pe BetterThanSiri.com.
Începeți prin înscriere, apoi conectați-vă pentru a vă gestiona lista de comenzi personale.
Uitați-vă la comenzile existente dacă sunteți curioși de modul în care funcționează sau pur și simplu continuați și creați unul nou. Denumiți comanda și adăugați macheta fraza:
lumini ~
Care înseamnă “această comandă se va potrivi cu luminile + orice”. Apoi lipiți codul de mai jos - modificați-l astfel încât să includeți adresa IP publică (sau un DNS dinamic dacă aveți unul), precum și frazele pe care doriți să le potriviți și codurile IR relevante. Prima variabilă a funcției este doar un mic text trimis înapoi în browser. Puteți copia / lipi mai multe din altfel dacă biți pentru a crea cât mai multe comenzi după cum doriți.
dacă (fraza == "luminează aprins") respondWithTextAndURL ("Activarea luminilor", "http: // YOURIP / 1/16236607"); altfel dacă (fraza == "luminează roșu") replyWithTextAndURL ("Pregătiți-vă timp sexy", "http: // YOURIP / 1/16195807"); altfel dacă (fraza == "luminează albastru") respondWithTextAndURL ("Mod de lucru activ", "http: // YOURIP / 1/16212127"); altfel dacă (fraza == "luminează verde") respondWithTextAndURL ("Ești ciudat", "http: // YOURIP / 1/16228447");
Urmați instrucțiunile pentru a configura proxy-ul de pe dispozitiv. În esență, trebuie doar să adăugați un proxy automat HTTP (URL: http://totally.betterthansiri.com) la conexiunea la internet. Prima dată când utilizați serviciul, va trebui să vă conectați de pe dispozitivul mobil, astfel încât acesta să știe care sunt comenzile dvs. personale, dar va trebui să faceți acest lucru o singură dată.
limitări
După cum puteți vedea, BetterThanSiri este un sistem destul de complex în acest moment - nu există nici o interfață de tip drag-and-drop, deci va trebui să înțelegeți noțiunile de bază ale Javascript pentru a vă crea propriul set de comenzi. Acestea fiind spuse, au fost expuse o mulțime de putere cu capacitatea de a posta date la adrese URL aleatoare, fie în fundal, fie doar o redirecționare, așa că nu am putut cere mai mult. Puteți oricând să răsfoiți rețetele existente dacă nu sunteți pregătiți pentru programarea propriei dvs..
De asemenea, nu vă vorbește așa cum face Siri. Toate conturile includ a “spune-mi o gluma” caracteristică similară cu cea a lui Siri, dar glumele sunt afișate pe ecran, în browserul dvs. web. Este posibil ca aceștia să poată adăuga mai târziu folosind un plugin JavaScript de la o terță parte, dar poate însemna o utilizare mai mare a lățimii de bandă sau o capacitate de reacție mai mare.
În cele din urmă, există, bineînțeles, întârzierea. Discursul tău este trimis către Apple pentru a fi procesat într-o comandă de text, trimisă înapoi, expediată la proxy, procesată de BetterThanSiri, apoi trimisă înapoi prin Internet către localul nostru Arduino. În demo, fiecare comandă a durat aproximativ 5-10 secunde în total, și este puțin probabil ca acest lucru să poată fi îmbunătățit vreodată. Pentru automatizarea acasă, acest lucru este perfect acceptabil, dar dacă încercați să furnizați informații în timp util utilizatorului, este puțin frustrant.
Preocupările legate de securitate
Utilizarea unui proxy HTTP înseamnă acest lucru fiecare cerere HTTP pe care le faceți este direcționat prin serverele lor: în teorie, ei ar putea examina tot ceea ce căutați, fiecare site pe care îl vizitați. L-am întrebat pe dezvoltatori despre asta, și acesta a fost răspunsul lor:
Cu siguranta o preocupare valida, dar nu ne uitam la fiecare cerere HTTP. Autoconfigul nostru proxy are un motor de decizie care se uită numai la cererile HTTP relevante pentru GoogolPlex (cu “plex” în ele).
Puteți lua asta la valoarea nominală; ar fi imposibil să se demonstreze altfel, dar dacă software-ul de server a fost open source (ceea ce nu este), ați putea cel puțin să verificați și să rulați propriul server privat. Având în vedere potențialul pentru aplicațiile comerciale, pare puțin probabil ca ei să-și deschidă sursa, astfel că dacă confidențialitatea și securitatea browserului dvs. mobil sunt deosebit de importante, este de înțeles că acesta nu este un serviciu pe care doriți să îl utilizați.
Personal, nu cred că este subevaluat să numesc acest serviciu cu adevărat uimitor. Am auzit despre asta inițial câteva luni în urmă, dar la acel moment sa limitat la doar controlul Spotify - o dovadă a conceptului. Acum că au adăugat abilitatea de a crea comenzi personalizate și interfață cu orice, este un sistem incredibil de puternic pe care îl voi revizui în viitor pentru a forma baza unui sistem complet de automatizare Arduino. Pentru ce foloseți mai bine pentru BetterThanSiri?
Explorați mai multe despre: Siri.