Obsah:
- Krok 1: Hackovanie majákov Bluetooth
- Krok 2: Vytvorenie zručnosti a aplikácie Alexa
- Krok 3: Zlepšenie našich schopností
- Krok 4: Dajte to všetko dohromady
Video: Alexa, kde sú moje kľúče?: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Alexa je obzvlášť vhodná pre úlohy získavania informácií a monitorovanie aktív pomocou bezdrôtových domácich sietí. Je prirodzené zvážiť umiestnenie cenností na mriežku na rýchle získanie. Hackujeme lacné nízkoenergetické majáky bluetooth pre dosah siete a životnosť batérie a staviame inteligentnú aplikáciu, aby Alexa vedela, kde sme nechali kľúče.
Ako to spraviť…
Krok 1: Hackovanie majákov Bluetooth
Súpravu 3 majákov je možné kúpiť za menej ako 15 dolárov a sú podporované aplikáciami pre Android/iOS, ale odmietneme ochranu osobných údajov. Okrem toho by nájdenie našich kľúčov nemalo znamenať nájdenie nášho telefónu.
Tento návod na používanie inteligentných svetiel pre reverzné inžinierstvo nám pomohol ovládať majáky. Začnite zapnutím skenovania majákov pre adresu zariadenia spustením:
sudo hcitool lescan
Nájdite a skopírujte adresu označenú názvom „iTag“a spustite:
sudo gatttool -I
Pripojte sa k zariadeniu interaktívne spustením:
pripojiť AA: BB: CC: DD: EE: FF
Skúste spustiť 'pomoc' pre zobrazenie možností alebo 'primárny' pre zobrazenie služieb:
Po spustení príkazu „char-desc“, za ktorým nasleduje servisná rukoväť, ako je uvedené vyššie, nájdeme UUID, ktoré vyhľadáme odkazom na charakteristické vlastnosti a servisné špecifikácie gatt. Ak sa chcete dozvedieť viac o týchto službách, pozrite sa na to. Pri kontrole prevádzky s Wiresharkom zistíme, že 0100111000000001 spustí alarm a logicky ho 0000111000000001 vypne. Teraz máme jednoduchú funkciu python:
import pexpectdef sound_alarm (BD_ADDR): child = pexpect.spawn ('gatttool -I') child.sendline ('connect {}'. format (BD_ADDR)) child.expect ('Connection successful', timeout = 30) child.sendline ('char-write-cmd 0x000b 0100111000000001')
Ďalej sa zameriame na vytvorenie zručnosti Alexa na spustenie majáka pri hľadaní kľúčov.
Krok 2: Vytvorenie zručnosti a aplikácie Alexa
Vytvárame zručnosť, ktorá bude prepojená s lokálnym serverom. Potom nakonfigurujeme náš server tak, aby vykonal akúkoľvek akciu, ktorú by sme chceli, v tomto prípade poskytnite približný odhad umiestnenia kľúčov a pípnutie majáku Bluetooth. Flask poskytuje jednoduchú a ľahko použiteľnú knižnicu pythonu na obsluhu aplikácie. Prostredníctvom flask-ask môžeme server nakonfigurovať tak, aby komunikoval s našimi schopnosťami Alexa, ktoré vytvoríme neskôr. Dobre poslúžte aplikácii s Ngrokom, ktorá nám poskytne odkaz https, ktorý budeme potrebovať pre našu zručnosť Alexa. Najprv sme vytvorili aplikáciu s najjednoduchšou funkčnosťou: aby náš maják BLE pri spustení pípol.
#!/usr/bin/env python z fľaše importujte banku z flask_ask import Ask, príkaz import pexpect app = Flask (_ name_) ask = Ask (app, '/') BD_ADDR = 'AA: BB: CC: DD: EE: FF '#Váš identifikátor majáku bluetooth tu @ask.intent (' findkeys ') def retrievr (): sound_alarm () speech_text = "Vaše kľúče sú niekde tu." return statement (speech_text) def sound_alarm (): child = pexpect.spawn ('gatttool -I') child.sendline ('connect {}'. format (BD_ADDR)) child.expect ('Connection successful', timeout = 60) child.sendline ('char-write-cmd 0x000b 0100111000000001') if _name_ == "_main_": app.run (host = '127.0.0.1', port = '5000')
Na spustenie zvukového signálu BLE sme použili funkciu sound_alarm (), ktorú sme napísali predtým. Pre funkciu, ktorá bude použitá pre zámer, pridáme dekorátora ask s našimi zámermi „findkeys“. Keď na informačnom paneli vývojárov Amazonu dosiahneme zručnosť Alexa, použijeme tento názov na svoj zámer. Tento skript napíšte do súboru s názvom app.py a spustite ho
python app.py
To bude slúžiť vašej aplikácii na https:// localhost: 5000. Spustite server ngrok a skopírujte vygenerovaný odkaz https. Budete to potrebovať pri konfigurácii zručnosti Alexa. Viac informácií nájdete v tomto príspevku. Úspešne sme vytvorili jednoduchú aplikáciu, teraz napíšeme zručnosť Alexa. Prejdite na hlavný panel vývojárov Amazonu a prihláste sa. Kliknite na Alexa a začnite so súpravou Alexa Skill
Postupujte podľa pokynov, ktoré vám poskytol gui.
Na karte Interation Model budete chcieť vyplniť pole Schéma zámeru nasledujúcim spôsobom:
Do poľa Ukážkové výpovede chcete napísať niekoľko ukážkových príkazov, ktoré by osoba mohla použiť na vyvolanie zručnosti. Napísali sme tieto:
Findkeys find my keyfindkeys where my keys findkeyys Stratila som kľúče
- Na karte Konfigurácia vyberte koncový bod služby pre HTTPS. Skopírujte svoj odkaz https a vložte ho do predvoleného poľa pod ním. Prepojenie účtu môžete ponechať na Nie.
- V certifikáte SSL vyberte strednú možnosť „Môj koncový bod vývoja je subdoménou domény, ktorá má zástupný certifikát od certifikačnej autority“.
- Karta Test vám umožní otestovať nové zručnosti zadaním jedného zo vzorových príkazov.
Dokončite vypĺňanie posledných dvoch záložiek, kým nie sú všetky značky začiarknutia zelené. Potom spustite svoje schopnosti pomocou funkcie beta testovania. To vám umožní hostiť svoje schopnosti na akomkoľvek zariadení na ozveny pred jeho zverejnením. Nainštalujte si zručnosti do svojho zariadenia na ozveny podľa pokynov v e -mailovom odkaze.
Krok 3: Zlepšenie našich schopností
Nechali sme nečinné počítače rozmiestnené po celom dome, aby pracovali na dotazovaní majáku bluetooth na hlásenie sily signálu RSSI.
Na základe meraní z viacerých počítačov môžeme silu signálu použiť ako zástupný znak vzdialenosti. Musíme zistiť, ako to použiť na výpočet najpravdepodobnejšej časti domu na nájdenie majáka.
Prejdeme k strojovému učeniu. Úloha crontab každé 2 minúty vytvára množinu údajov o množinách RSSI. Umiestnením majáka na rôzne miesta, ako sú: „Spálňa“, „Kúpeľňa“, „Kuchyňa“, „Obývací priestor“, označíme protokoly RSSI. Akonáhle budeme mať zmapovaný domov, môžeme použiť stromové modely, ako napríklad XGBClassifier xgboost.
Implementácia gradientu xgboost zvládne chýbajúce údaje z vypršania časového limitu čítania a školenia za pár sekúnd. Na udržanie natrénovaného modelu použite nakladač pythonu a načítajte ho do našej aplikácie alexa retrievr. Keď sa zručnosť zavolá, aplikácia vyhľadá čítanie bluetooth RSSI a vygeneruje predpokladané miesto, alexa môže odpovedať a navrhnúť „skúste sa pozrieť do kúpeľne“.
Krok 4: Dajte to všetko dohromady
Keď máme model na aproximáciu posledného umiestnenia kľúčov, môžeme ho pridať do aplikácie a zlepšiť tak vyhlásenie, ktoré vrátil Alexa. Skript sme upravili tak, aby čítal:
import osfrom flask import Flask from flask_ask import Ask, statement import pexpect import pickle import pandas as pd import numpy as np from collections import defaultdict, Counter from reverse_read import reverse_readline app = Flask (_ name_) ask = Ask (app, '/') @ ask.intent ('findkeys') def retrievr (): os.system ("/cesta/k/repo/sound_alarm.py &") line_gen = reverse_readline ('YOUR_DATA_FILE.txt') res_lst = while len (res_lst)! = 20: ln = next (line_gen) if ln.startswith ('Host'): _, ip, _, reading = ln.split () read_dict [ip] = čítanie res_lst.append (read_dict) if ip == 'ip.of.one.computer': read_dict = {} else: pass val = pd. DataFrame (res_lst).replace ({'N/ A ': np.nan}). Values mdl_ = pickle.load (open (' location_model_file.dat ',' rb ')) preds = mdl_.predict (val) hádať = počítadlo (preds) hádať = hádať.most_common (1] [0] [0] answer_str = 'Skúste sa pozrieť na' if odhad == 1: answer_str += 'spálňu' hádať == 2: answer_str += 'kúpeľňa' elif odhad == 3: answer_str += 'kuchyňa' elif odhad == 4: answer_str += 'obývačka' návrat response_str if _name_ == "_main_": app.run (host = '127.0.0.1', port = '5000')
Vytvorili sme novú funkciu s názvom guess_locate (), ktorá zaberá súbor s najnovšími zaznamenanými silami signálu rssi. Potom vzorky spustí proti nášmu nakladanému modelu xgboost a vráti najpravdepodobnejší reťazec umiestnenia. Toto miesto bude vrátené, keď bude Alexa vyzvaná. Pretože nadviazanie spojenia s majákom môže trvať niekoľko sekúnd, spustíme samostatný proces, ktorý túto funkciu volá v sound_alarm.py.
Odporúča:
Kľúče od volantu k stereo adaptéru do auta (zbernica CAN -> kľúč1): 6 krokov
Kľúče od volantu k stereofónnemu adaptéru do auta (zbernica CAN -> kľúč1): Niekoľko dní po kúpe ojazdeného auta som zistil, že prostredníctvom autorádia nemôžem prehrávať hudbu z telefónu. Ešte frustrujúcejšie bolo, že auto malo bluetooth, ale umožňovalo iba hlasové hovory, nie hudbu. Mal tiež USB port Windows Phone, ale
Anténa na kľúče Ford: 3 kroky
Anténa na kľúče Ford: Vzhľadom na to, že Ford je úplne lacný alebo nedbanlivý, moje dvere sa naďalej zmrazujú zatvorené alebo otvorené. 3 neúspešné cesty k predajcovi za prácou neskôr. Rozhodol som sa podniknúť kroky na zníženie svojej frustrácie počas tohto obdobia medzi tým, keď príde a keď prídu
Kľúčenka! Zariadenie, vďaka ktorému nestratíte kľúče!: 3 kroky (s obrázkami)
Kľúčenka! Zariadenie, vďaka ktorému nestratíte kľúče !: Toto zariadenie vám pomôže nestratiť kľúče! Ak ste ako ja, potom po príchode z práce okamžite stratíte kľúče po odomknutí dverí a počkáte do nasledujúceho dňa, kým ich budete musieť odísť hľadať. Áno, môžete mať
Lacná čiapka na kľúče pre iPod Shuffle: 4 kroky
Lacná čiapka na kľúče od iPodu Shuffle: Nedávno som zdvihol dva zrekonštruované iPod Shuffles od spoločnosti Apple. Teraz ich nový model predáva lacno. Zdá sa, že sú vypredané z modelu 512 MB za 29 dolárov, ale k 9. novembru 2006 majú stále 1 GB model za 59 dolárov. Moja manželka a
Hackovanie digitálnej kamery na kľúče pre ovládanie Arduino: 6 krokov
Hackovanie digitálnej kamery na kľúče pre ovládanie Arduino: Možnosti fotografovania pre Arduino sú málo a sú veľmi vzdialené. Webkamery nie sú praktické pre aplikácie, ako je fotografovanie drakov alebo verejné fotografovanie, pokiaľ nemáte chuť kúpiť 200 -metrový kábel USB. A súčasné techniky pre samostatné fotenie Arduino