Obsah:
- Krok 1: Hackování majáků Bluetooth
- Krok 2: Vytvoření dovednosti a aplikace Alexa
- Krok 3: Naše dovednosti budou chytřejší
- Krok 4: Dát to všechno dohromady
Video: Alexa, kde jsou moje klíče?: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Alexa je obzvláště vhodná pro úkoly získávání informací a monitorování aktiv pomocí bezdrátových domácích sítí. Je přirozené zvážit umístění cenností na mřížku pro rychlé získání. Nabouráváme levné bluetooth nízkoenergetické majáky pro dosah sítě a životnost baterie a stavíme chytrou aplikaci, aby Alexa věděla, kde jsme klíče nechali.
Jak to udělat…
Krok 1: Hackování majáků Bluetooth
Sada 3 majáků lze zakoupit za méně než 15 USD a jsou podporována aplikacemi pro Android/iOS, ale odhlásíme se z důvodu ochrany osobních údajů. Kromě toho by nalezení klíčů nemělo vést k nalezení našeho telefonu.
Tento výukový program adafruit o inteligentních světlech reverzního inženýrství nám pomohl ovládat majáky. Začněte zapnutím skenování majáku pro adresu zařízení spuštěním:
sudo hcitool lescan
Najděte a zkopírujte adresu označenou názvem „iTag“a poté spusťte:
sudo gatttool -I
Připojte se k zařízení interaktivně spuštěním:
připojte AA: BB: CC: DD: EE: FF
Zkuste spustit 'nápovědu' pro zobrazení možností nebo 'primární' pro zobrazení služeb:
Po spuštění 'char-desc' následovaném servisním držadlem, jak je uvedeno výše, najdeme UUID, které vyhledáme odkazem na specifikace charakteristik gatt a specifikace služeb. Další informace o těchto službách najdete na tomto webu. Nyní máme jednoduchou funkci pythonu:
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')
Dále se zaměříme na vytvoření dovednosti Alexa pro spuštění majáku, když hledáme klíče.
Krok 2: Vytvoření dovednosti a aplikace Alexa
Vytváříme dovednost, která bude propojena s místním serverem. Poté nakonfigurujeme náš server tak, aby provedl jakoukoli akci, kterou bychom chtěli, v tomto případě poskytneme přibližné informace o tom, kde mohou být klíče umístěny, a vydáme zvukový signál Bluetooth. Flask poskytuje jednoduchou a snadno použitelnou knihovnu pythonu k obsluze aplikace. Pomocí flask-ask můžeme nakonfigurovat server tak, aby komunikoval s naší schopností Alexa, kterou vytvoříme později. Dobře sloužte aplikaci s Ngrok, což nám poskytne odkaz https, který budeme potřebovat pro naši dovednost Alexa. Nejprve jsme aplikaci vytvořili s nejjednodušší funkcí: aby náš maják BLE při spuštění pípnul.
#!/usr/bin/env python z baňky import Baňka z flask_ask import Ask, příkaz import pexpect app = Flask (_ name_) ask = Ask (aplikace, '/') BD_ADDR = 'AA: BB: CC: DD: EE: FF '#Váš identifikátor bluetooth majáku zde @ask.intent (' findkeys ') def retrievr (): sound_alarm () speech_text = "Vaše klíče jsou někde tady." 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')
K pípnutí BLE jsme použili funkci sound_alarm (), kterou jsme napsali dříve. Pro funkci, která bude použita pro záměr, přidáme dekorátora dotazu pomocí našich záměrných „vyhledávacích klíčů“. Když uděláme dovednosti Alexa na hlavním panelu pro vývojáře Amazonu, použijeme toto jméno pro svůj záměr. Zapište tento skript do souboru s názvem app.py a spusťte
python app.py
To bude sloužit vaší aplikaci na https:// localhost: 5000. Spusťte server ngrok a zkopírujte vygenerovaný odkaz https. Budete to potřebovat při konfiguraci dovednosti Alexa. Další podrobnosti najdete v tomto příspěvku. Úspěšně jsme vytvořili jednoduchou aplikaci, nyní napíšeme dovednost Alexa. Přejděte na hlavní panel vývojářů Amazon a přihlaste se. Klikněte na Alexa a začněte se sadou Alexa Skill
Postupujte podle pokynů gui.
Na kartě Interation Model budete chtít vyplnit pole Intent Schema následujícím:
Do pole Ukázkové výpovědi chcete napsat několik ukázkových příkazů, které by osoba mohla použít k vyvolání dovednosti. Napsali jsme tyto:
Findkeys najdi moje klíče
- Na kartě Konfigurace vyberte koncový bod služby pro HTTPS. Zkopírujte odkaz https a vložte jej do pole Výchozí pod ním. Propojení účtu lze ponechat na Ne.
-
V certifikátu SSL vyberte střední možnost „Můj koncový bod vývoje je subdoménou domény, která má zástupný certifikát od certifikační autority“.
- Karta Test vám umožní otestovat nové dovednosti zadáním některého z vašich ukázkových příkazů.
Dokončete vyplňování posledních dvou karet, dokud nebudou všechny zatržítka zelené. Poté spusťte své dovednosti pomocí funkce beta testování. To vám umožní hostit své dovednosti na jakémkoli zařízení pro echo před jeho publikováním. Podle pokynů v e -mailovém odkazu nainstalujte dovednost do svého echo zařízení.
Krok 3: Naše dovednosti budou chytřejší
Nechali jsme nečinné počítače rozmístěné po celém domě, aby pracovaly na dotazování majáku bluetooth pro hlášení síly signálu RSSI.
Když odebíráme údaje z více počítačů, můžeme použít sílu signálu jako proxy pro vzdálenost. Musíme zjistit, jak to použít k výpočtu nejpravděpodobnější části domu k nalezení majáku.
Obracíme se na strojové učení. Úloha crontab každé 2 minuty vytváří datovou sadu řazených řadičů RSSI. Umístěním majáku na různá místa jako: „Ložnice“, „Koupelna“, „Kuchyně“, „Obývací prostor“označujeme protokoly RSSI. Jakmile zmapujeme domov, můžeme použít stromové modely, jako je XGBClassifier xgboost.
Implementace gradientu xgboost zvládne chybějící data z vypršení časového limitu, trénink za pár sekund. Použijte pythonový nátěr k zachování natrénovaného modelu a načtení do naší aplikace alexa retrievr. Když je dovednost vyvolána, aplikace vyhledá čtení bluetooth RSSI a vygeneruje předpokládané umístění, alexa může odpovědět a navrhnout „zkuste se podívat do koupelny“.
Krok 4: Dát to všechno dohromady
Když máme model pro přiblížení posledního umístění klíčů, můžeme jej přidat do aplikace, abychom vylepšili prohlášení vrácené Alexou. Upravili jsme skript tak, aby četl:
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 ("/path/to/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] = čtení 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) odhad = Counter (preds) odhad = odhad.most_common (1) [0] [0] answer_str = 'Zkuste se podívat do' if odhad == 1: answer_str += 'ložnice' elif odhad 2 = '127.0.0.1', port = '5000')
Vytvořili jsme novou funkci s názvem guess_locate (), která přebírá soubor s nejnovějšími zaznamenanými silami signálu rssi. Poté spustí vzorky proti našemu nakládanému modelu xgboost a vrátí nejpravděpodobnější řetězec umístění. Toto umístění bude vráceno, jakmile bude Alexa vyzván. Protože navázání připojení k majáku může trvat několik sekund, spustíme samostatný proces, který tuto funkci volá v sound_alarm.py.
Doporučuje:
Bezdrátová verze Jsou moje garážová vrata otevřená nebo zavřená?: 7 kroků
Bezdrátová verze … Jsou moje garážová vrata otevřená nebo zavřená?: Chtěli jsme jednoduchý, levný a spolehlivý indikační systém, který nám ukáže, zda jsou naše garážová vrata otevřená nebo zavřená. Existuje spousta " Jsou moje garážová vrata otevřená " projekty. Největší většina těchto projektů je pevně zapojena. V mém případě běh
NFC zámek - když jsou PCB také tlačítky, anténou a dalšími : 7 kroků (s obrázky)
Zámek NFC - Když jsou PCB také tlačítky, anténou a dalšími …: Z tohoto Instructable si můžete vzít jednu ze dvou věcí. Můžete pokračovat a vytvořit si vlastní kombinaci numerické klávesnice a čtečky NFC. Schéma je zde. Rozložení DPS je zde. Najdete u nás kusovník k objednání p
Klíčenka! Zařízení, díky kterému neztratíte klíče!: 3 kroky (s obrázky)
Klíčenka! Zařízení, díky kterému neztratíte klíče !: Toto zařízení vám pomůže neztratit klíče! Pokud jste jako já, pak když přijdete z práce, okamžitě ztratíte klíče po odemčení dveří a počkáte do druhého dne, než je budete muset odejít hledat. Ano, možná máte
Moje klávesnice Moje ruce: 8 kroků (s obrázky)
Moje klávesnice Moje ruce: Použil jsem zbrusu nový laserový řezač Epilog, který Instructables nedávno dostal k laserovému leptání obrazu mých rukou na klávesnici mého notebooku … trvale. Nyní tím ztrácíte záruku ve stylu „udělej si sám“! Od doby, kdy jsem pomohl… jsem laserem vyleptal více notebooků než většina ostatních
Jak extrahovat hry Wii do počítače pomocí USB klíče: 3 kroky
Jak extrahovat hry Wii do počítače pomocí USB klíče: Tento návod vám ukáže, jak zkopírovat kopii hry Wii do počítače pouze pomocí USB flash disku a Wii a jak ji zkomprimovat pro uložení. k tomu je potřeba několik věcí: Hardwarové požadavky: Wii s firmwarem 3.4 a