Sisukord:
- Samm 1: Bluetoothi majakate häkkimine
- Samm: looge Alexa oskus ja rakendus
- 3. samm: muutke oma oskused targemaks
- 4. samm: pange see kõik kokku
Video: Alexa, kus on minu võtmed?: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Alexa sobib eriti hästi teabe otsimiseks ja juhtmevabade koduvõrkude abil varade jälgimiseks. On loomulik kaaluda väärisesemete kiireks hankimiseks võrku panemist. Häkkime odavaid Bluetoothi vähese energiatarbega majakaid võrgu ulatuse ja aku pikaealisuse jaoks ning loome nutika rakenduse, et Alexa teaks, kuhu me võtmed jätsime.
Kuidas seda teha…
Samm 1: Bluetoothi majakate häkkimine
Kolme majaka komplekti saab osta vähem kui 15 dollari eest ja neid toetavad Android/iOS -i rakendused, kuid me loobume privaatsusest. Pealegi ei tohiks meie võtmete leidmine muutuda meie telefoni leidmiseks.
See tarkade valgustite pöördtehnoloogia õpetus aitas meil majakaid juhtida. Alustuseks lülitage sisse seadme aadressi märgutuli, käivitades:
sudo hcitool lescan
Leidke ja kopeerige nimega „iTag” märgitud aadress, seejärel käivitage:
sudo gatttool -I
Ühendage seadmega interaktiivselt, käivitades:
ühendage AA: BB: CC: DD: EE: FF
Proovige valikute vaatamiseks käivitada „abi” või teenuste vaatamiseks „esmane”:
Käivitades 'char-desc', millele järgneb ülaltoodud teeninduskäepide, leiame UUID-d, mille otsime üles, viidates gatt-i iseloomulikele spetsifikatsioonidele ja teenuse spetsifikatsioonidele. Nende teenuste kohta lisateabe saamiseks vaadake seda. Wiresharkiga liiklust kontrollides leiame, et 0100111000000001 käivitab häire ja loogiliselt lülitab 0000111000000001 selle välja. Nüüd on meil lihtne python -funktsioon:
impordi pexpectdef sound_alarm (BD_ADDR): child = pexpect.spawn ('gatttool -I') child.sendline ('connect {}'. format (BD_ADDR)) child.expect ('Ühendus õnnestus', timeout = 30) child.sendline ('char-write-cmd 0x000b 0100111000000001')
Järgmisena keskendume Alexa oskuse loomisele, mis käivitab majakad, kui võtmeid otsime.
Samm: looge Alexa oskus ja rakendus
Loome oskuse, mis lingitakse kohaliku serveriga. Seejärel seadistame oma serveri mis tahes toimingute tegemiseks, sel juhul anname ligikaudse teabe võtmete asukoha kohta ja paneme Bluetoothi majaka piiksuma. Flask pakub rakenduse teenindamiseks lihtsat ja hõlpsasti kasutatavat pythoni kogu. Kasutades kolbi-küsimust, saame serveri konfigureerida suhtlema oma Alexa oskusega, mille me hiljem ehitame. Teenindage rakendust hästi Ngrokiga, mis annab meile https -lingi, mida vajame oma Alexa oskuste jaoks. Esiteks ehitasime rakenduse kõige lihtsama funktsionaalsusega: et meie BLE -märgutuli käivitamisel piiksuks teha.
#!/usr/bin/env pythonfrom kolbist importimine Kolb kolbist '#Sinu bluetooth -majaka ID siin @ask.intent (' findkeys ') def retrievr (): sound_alarm () speech_text = "Sinu võtmed on siin kusagil." tagastuslause (kõne_tekst) def sound_alarm (): laps = pexpect.spawn ('gatttool -I') child.sendline ('connect {}'. format (BD_ADDR)) child.expect ('Ühendus õnnestus', timeout = 60) child.sendline ('char-write-cmd 0x000b 0100111000000001'), kui _name_ == "_main_": app.run (host = '127.0.0.1', port = '5000')
BLE piiksu tegemiseks kasutasime varem kirjutatud funktsiooni sound_alarm (). Funktsiooni jaoks, mida kavatsuse jaoks kasutatakse, lisame päringu dekoreerija oma kavatsusega "võtmevõtmed". Kui teeme Alexa oskusi Amazoni arendaja armatuurlaual, kasutame seda nime oma kavatsuste jaoks. Kirjutage see skript faili nimega app.py ja käivitage
python app.py
See teenib teie rakendust aadressil https:// localhost: 5000. Käivitage ngrok -server ja kopeerige loodud https -link. Seda vajate Alexa oskuste seadistamisel. Lisateabe saamiseks vaadake seda postitust. Oleme lihtsa rakenduse edukalt seadistanud, nüüd kirjutame Alexa oskuse. Liikuge Amazoni arendaja armatuurlauale ja logige sisse. Klõpsake Alexa ja alustage Alexa Skill komplektiga
Järgige gui antud juhiseid.
Vahekaardil Interaktsioonimudel soovite täita kasti Kavatskeem järgmisega:
Lahtrisse Prooviväljendid soovite kirjutada mõned näidiskäsud, mida inimene võib kasutada oskuste kasutamiseks. Kirjutasime need:
Findkeys leiavad minu võtmed võtmed võtmed kus minu võtmed findkeys ma kaotasin oma võtmed
- Valige vahekaardil Konfiguratsioon kindlasti teenuse lõpp -punkt HTTPS. Kopeerige oma https -link ja kleepige see allolevasse kasti. Konto linkimise võib jätta väärtusele Ei.
- Valige SSL-sertifikaadis keskmine valik „Minu arendamise lõpp-punkt on domeeni alamdomeen, millel on sertifikaadi väljaandja metamärk”.
- Vahekaart Test võimaldab teil uusi oskusi testida, sisestades ühe oma näidiskäskudest.
Lõpeta kahe viimase vahelehe täitmine, kuni kõik linnukesed on rohelised. Seejärel käivitage oma oskus beetatestimise funktsiooniga. See võimaldab teil oma oskusi enne avaldamist majutada mis tahes kajaseadmes. Järgige e -lingi juhiseid, et installida oskus oma kajaseadmesse.
3. samm: muutke oma oskused targemaks
Panime kogu majas levinud jõudeolevad arvutid tööle Bluetoothi majaka päringu tegemiseks, et teatada RSSI signaali tugevus.
Võttes lugemid mitmest masinast, saame signaali tugevust kasutada kauguse puhverserverina. Peame välja mõtlema, kuidas seda kasutada majaka leidmiseks kõige tõenäolisema majaosa arvutamiseks.
Pöördume masinõppe poole. Crontabi töö iga 2 minuti järel koostab RSSI numbrite andmestiku. Majaka paigutamine erinevatesse kohtadesse, nagu „Magamistuba”, „Vannituba”, „Köök”, „Elutuba”, tähistame RSSI logisid. Kui oleme kodu kaardistanud, saame kasutada puupõhiseid mudeleid, näiteks xgboosti XGBClassifier.
Gradiendi suurendamise xgboosti rakendamine hakkab puuduva ajaga aegunud näitude andmetega hakkama saama, treenides paari sekundiga. Kasutage koolitatud mudeli säilitamiseks pythoni hapukurki ja laadige see meie alexa retrievr rakendusse. Kui oskusi kutsutakse, otsib rakendus üles Bluetoothi RSSI -näidu ja loob prognoositud asukoha, alexa saab vastata, soovitades "proovida vannitoas otsida".
4. samm: pange see kõik kokku
Võttes mudeli võtmete viimase asukoha ligikaudseks muutmiseks, saame selle rakendusele lisada, et parandada Alexa tagastatud avaldust. Oleme skripti muutnud järgmiseks:
import osfrom kolbist import Kolb kolbist_ask import Küsi, avaldus import pexpect import hapukurk import panda kui pd import numpy kui np kogudest 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 &") speech_text = guess_locate () tagastuslause (kõne_tekst) def guess_locate (): read_dict = {} line_gen = reverse_readline ('YOUR_DATA_FILE.txt') res_lst = samas len (res_lst)! = 20: ln = next (line_gen) if ln.startswith ('Host'): _, ip, _, reading = ln.split () read_dict [ip] = res_lst.append (read_dict) lugemine, kui ip == 'ip.of.one.computer': read_dict = {} else: pass val = pd. DataFrame (res_lst).replace ({'N/ A ': np.nan}). Väärtused mdl_ = hapukurk.koormus (avatud (' asukoha_mudeli_fail.dat ',' rb ')) preds = mdl_.predict (val) guess = Loendur (preds) guess = guess.most_common (1) [0] [0] answer_str = 'Proovige otsida teavet' if guess == 1: answer_str += 'bedroom' elif guess == 2: answer_str += 'vannituba' elif vist == 3: answer_str += 'köök' elif vist == 4: answer_str += 'elutuba' return answer_str if _name_ == "_main_": app.run (host = '127.0.0.1', port = '5000')
Lõime uue funktsiooni nimega guess_locate (), mis võtab faili, millel on viimased salvestatud rssi signaali tugevused. Seejärel käivitab see proovid meie marineeritud xgboosti mudeli vastu ja tagastab kõige tõenäolisema asukoha stringi. See asukoht tagastatakse, kui Alexalt küsitakse. Kuna majakaga ühenduse loomine võib võtta mõne sekundi, käivitame selle protsessi eraldi protsessi, helistades sellesse sound_alarm.py.
Soovitan:
Rooli võtmed autostereo adapterini (CAN -buss -> võti 1): 6 sammu
Rooliratta võtmed autostereoadapterile (CAN -buss -> Key1): paar päeva pärast kasutatud auto ostmist avastasin, et ma ei saa telefonist muusikat stereosüsteemi kaudu esitada. Veelgi masendavam oli see, et autol oli bluetooth, kuid lubatud ainult häälkõned, mitte muusika. Sellel oli ka Windows Phone'i USB -port, kuid ma
JÄNES JÄNES KUS OLED?: 3 sammu
JÄNES JÄNES KUS SA OLED?: Olen Taiwanist ja olen 13-aastane ning minu nimi on Chia-Ying Wu. Meie peres on küülik, ta mängib meiega sageli peitust. Talle meeldib diivani kõrvale nurka peitu pugeda, kuid kuna vaatepilt on diivani poolt takistatud, ei leia me seda sageli üles. S
Puidust Macbooki võtmed (taustvalgustusega): 7 sammu
Puidust Macbooki võtmed (taustvalgustusega): sissejuhatus Maci arvuteid on viimastel aastatel tugevalt modifitseeritud. See võib varieeruda värvimuutuste, kleebiste, graveeringute ja muu poolest. Macbooki puidust võtmed avaldasid mulle alati muljet. Saate neid veebis erinevatest kohtadest umbes 70 dollari eest või
Fred! Kus sa oled?: 3 sammu
Fred! Kus sa oled?: See projekt käsitleb seda, kui palju kilomeetreid te oma kodust olete. Fredi toiteallikaks on aku, mis on laetav nagu nutitelefon, nii et saate selle endaga kaasa võtta. Seda on väga lihtne ehitada, kuid võite olla kodeerimisel kinni. Selles projektis saate
Minu klaviatuur Minu käed: 8 sammu (piltidega)
Minu klaviatuur Minu käed: kasutasin uhiuut Epilogi laserlõikurit, mille Instructables hiljuti jõudis laseriga oma käte kujutise sülearvuti klaviatuurile söövitada … jäädavalt. Nüüd kaotab see garantii DIY stiilis! Olen laseriga söövitanud rohkem sülearvuteid kui enamik, sest ma aitan