Sisällysluettelo:
- Vaihe 1: Bluetooth -majakkien hakkerointi
- Vaihe 2: Alexa -taidon ja -sovelluksen luominen
- Vaihe 3: Taidostamme älykkäämpi
- Vaihe 4: Yhdistä kaikki
Video: Alexa, missä avaimet ovat?: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Alexa soveltuu erityisen hyvin tiedonhakuun ja resurssien seurantaan langattomien kotiverkkojen avulla. On luonnollista harkita arvoesineiden asettamista verkkoon nopeaa hakua varten. Hakkeroimme halpoja Bluetooth -energiatehokkaita majakoita verkon kantaman ja akun kestävyyden kannalta ja rakennamme älykkään sovelluksen, jotta Alexa tietää, mihin jätimme avaimet.
Kuinka tehdä se…
Vaihe 1: Bluetooth -majakkien hakkerointi
Kolmen majakan sarjan voi ostaa alle 15 dollarilla, ja niitä tuetaan Android-/iOS -sovelluksilla, mutta poistamme yksityisyyden käytöstä. Lisäksi avainten löytämisen ei pitäisi muuttua puhelimen löytämiseksi.
Tämä käänteisen suunnittelun älykkäitä valoja käsittelevä adafruit -opetusohjelma auttoi meitä hallitsemaan majakoita. Aloita ottamalla käyttöön laitteen osoitteen majakkahaku suorittamalla:
sudo hcitool lescan
Etsi ja kopioi osoite, jossa on nimi 'iTag', ja suorita sitten:
sudo gatttool -I
Muodosta yhteys laitteeseen vuorovaikutteisesti suorittamalla:
yhdistä AA: BB: CC: DD: EE: FF
Kokeile käynnistää 'help' nähdäksesi vaihtoehdot tai 'ensisijainen' nähdäksesi palvelut:
Suorittamalla 'char-desc' ja sen jälkeen yllä oleva huoltokahva, löydämme UUID-tunnuksia, joita etsimme viittaamalla gatt-ominaisuuksiin ja palvelumäärityksiin. Lisätietoja näistä palveluista saat tästä. Nyt meillä on yksinkertainen python -toiminto:
tuo pexpectdef sound_alarm (BD_ADDR): child = pexpect.spawn ('gatttool -I') child.sendline ('connect {}'. format (BD_ADDR)) child.expect ('Yhteys onnistui', aikakatkaisu = 30) child.sendline ('char-write-cmd 0x000b 0100111000000001')
Seuraavaksi keskitymme luomaan Alexa -taidon, joka käynnistää majakan, kun etsimme avaimia.
Vaihe 2: Alexa -taidon ja -sovelluksen luominen
Luomme taidon, joka linkitetään paikalliseen palvelimeen. Sitten määritämme palvelimemme toteuttamaan haluamamme toimenpiteet, tässä tapauksessa antamaan likimääräiset tiedot avainten sijainnista ja antamaan Bluetooth -majakkaäänen. Flask tarjoaa yksinkertaisen ja helppokäyttöisen python -kirjaston sovelluksen palvelemiseen. Käyttämällä flask-askia voimme määrittää palvelimen kommunikoimaan myöhemmin rakennettavan Alexa-taitomme kanssa. Palvele sovellusta hyvin Ngrokin kanssa, joka antaa meille https -linkin, jota tarvitsemme Alexa -taitollemme. Aluksi rakensimme sovelluksen, jolla on yksinkertaisin toiminto: saada BLE -majakka piippaamaan, kun se laukaistaan.
#!/usr/bin/env pythonfolkista ' #Bluetooth -majakkasi tunnus täällä @ask.intent (' findkeys ') def retrievr (): sound_alarm () speech_text = "Avaimesi ovat täällä jossain." return lausunto (puheteksti) def sound_alarm (): child = pexpect.spawn ('gatttool -I') child.sendline ('connect {}'. format (BD_ADDR)) child.expect ('Yhteys onnistui', aikakatkaisu = 60) child.sendline ('char-write-cmd 0x000b 0100111000000001'), jos _name_ == "_main_": app.run (host = '127.0.0.1', port = '5000')
Käytimme BLE -äänimerkkiä aikaisemmin kirjoittamallamme sound_alarm (). Toimintoa varten, jota käytetään tarkoitukseen, lisäämme ask decoratorin "etsintäavaimilla". Kun teemme Alexa -taitoa Amazon -kehittäjien hallintapaneelissa, käytämme tätä nimeä tarkoitukseemme. Kirjoita tämä komentosarja tiedostoon nimeltä app.py ja suorita
python app.py
Tämä palvelee sovellustasi osoitteessa https:// localhost: 5000. Suorita ngrok -palvelin ja kopioi luotu https -linkki. Tarvitset sitä, kun määrität Alexa -taitoa. Jos haluat lisätietoja, tutustu tähän viestiin. Olemme onnistuneesti perustaneet yksinkertaisen sovelluksen, nyt kirjoitamme Alexa -taidon. Siirry Amazon -kehittäjien hallintapaneeliin ja kirjaudu sisään. Napsauta Alexaa ja aloita Alexa Skill Kit
Noudata guin antamia ohjeita.
Täytä Vuorovaikutusmalli -välilehden Intent Schema -ruutu seuraavasti:
Sample Utterances -ruutuun haluat kirjoittaa joitain esimerkkikomentoja, joita henkilö voi käyttää taidon viemiseen. Kirjoitimme nämä:
findkeys löytää avaimeni avaimen avaimet jossa avaimet findkeys olen kadottanut avaimeni
- Varmista Määritykset -välilehdessä, että palvelun päätepiste on HTTPS. Kopioi https -linkki ja liitä se alla olevaan Oletus -ruutuun. Tilin linkitys voidaan jättää arvoon Ei.
- Valitse SSL-varmenteessa keskimmäinen vaihtoehto "Oma kehityspäätepiste on sen verkkotunnuksen aliverkkotunnus, jolla on varmenneviranomaisen yleismerkki".
- Testi -välilehden avulla voit testata uutta taitoa kirjoittamalla jonkin esimerkkikomennoistasi.
Viimeistele kahden viimeisen välilehden täyttäminen, kunnes kaikki valintamerkit ovat vihreitä. Käynnistä sitten taitosi betatestaustoiminnolla. Tämän avulla voit isännöidä taitojasi millä tahansa kaikulaitteella ennen sen julkaisemista. Asenna taito echo -laitteellesi noudattamalla sähköpostilinkin ohjeita.
Vaihe 3: Taidostamme älykkäämpi
Laitoimme käyttämättömät tietokoneet ympäri taloa työskentelemään kyselemällä Bluetooth -majakasta raportoimaan RSSI -signaalin voimakkuuden.
Kun otamme lukemia useilta koneilta, voimme käyttää signaalin voimakkuutta etäisyyden välityspalvelimena. Meidän on selvitettävä, kuinka käyttää tätä laskettaessa todennäköisin osa talosta majakan löytämiseksi.
Siirrymme koneoppimiseen. Crontab -työ 2 minuutin välein muodostaa RSSI -korttien tietojoukon. Sijoittamalla majakka eri paikkoihin, kuten 'Makuuhuone', 'Kylpyhuone', 'Keittiö', 'Olohuone', merkitsemme RSSI -lokit. Kun olemme kartoittaneet kodin, voimme käyttää puupohjaisia malleja, kuten xgboostin XGBClassifier.
Kaltevuuden tehostamisen xgboost -toteutus käsittelee puuttuvat tiedot aikakatkaisuista lukemista ja harjoittelee parissa sekunnissa. Käytä python -suolakurkkua säilyttääksesi koulutetun mallin ja lataa se alexa retrievr -sovellukseemme. Kun taitoa kutsutaan, sovellus etsii Bluetooth -RSSI -lukeman ja luo ennustetun sijainnin, alexa voi vastata ehdottaen "yritä katsoa kylpyhuoneessa".
Vaihe 4: Yhdistä kaikki
Kun meillä on malli, joka arvioi avainten viimeisen sijainnin, voimme lisätä sen sovellukseen Alexan palauttaman lausunnon parantamiseksi. Olemme muuttaneet käsikirjoituksen seuraavasti:
tuoda osfrom pullosta tuonti Pullo pullosta_ask tuonti Kysy, lausunto tuonti pexpect tuonti suolakurkku tuonti pandat pd tuonti numeroina np kokoelmista tuonti oletusarvo, laskuri käänteislukujen tuonnista reverse_readline app = Pullo (_ name_) ask = Ask (sovellus, '/') @ ask.intent ('findkeys') def retrievr (): os.system ("/path/to/repo/sound_alarm.py &") speech_text = guess_locate () return lauseke (puheen_teksti) def guess_locate (): read_dict = {} line_gen = reverse_readline ('YOUR_DATA_FILE.txt') res_lst = kun taas len (res_lst)! = 20: ln = next (line_gen) if ln.startswith ('Host'): _, ip, _, reading = ln.split () read_dict [ip] = lukeminen 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}). Arvot mdl_ = suolakurkku (open (' location_model_file.dat ',' rb ')) preds = mdl_.predict (val) guess = Counter (preds) guess = guess.most_common (1) [0] [0] answer_str = 'Kokeile etsiä jos arvaus == 1: answer_str +=' makuuhuone 'elif -arvaus == 2: answer_str += 'kylpyhuone' elif -arvaus == 3: answer_str += 'kitchen' elif guess == 4: answer_str += 'olohuone' return answer_str if _name_ == "_main_": app.run (host = '127.0.0.1', portti = '5000')
Loimme uuden funktion nimeltä guess_locate (), joka ottaa tiedoston, jolla on viimeisimmät tallennetut rssi -signaalin vahvuudet. Sitten se suorittaa näytteet peitattua xgboost -mallia vastaan ja palauttaa todennäköisimmän sijaintimerkkijonon. Tämä sijainti palautetaan, kun Alexaa pyydetään. Koska yhteyden muodostaminen majakkaan voi kestää muutaman sekunnin, suoritamme erillisen prosessin, joka kutsuu tätä toimintoa sound_alarm.py -tiedostossa.
Suositeltava:
Usean ikkunan ottaminen käyttöön missä tahansa Android -puhelimessa: 6 vaihetta
Multiwindow -toiminnon ottaminen käyttöön missä tahansa Android -puhelimessa: Multiwindow -tila on salainen tai beetatila Android 6.0 Marshmallow -ominaisuudessa. Tämä ominaisuus ei ole käytettävissä kaikissa mobiililaitteissa, mutta on olemassa tekniikka, jolla moni -ikkuna -tila otetaan käyttöön Android 6.0 Marshmallow -laitteessa. Vaatimukset: 1. Puhelimen on oltava juurtunut.2. Android -versio
Nopea lataus missä tahansa: 5 vaihetta (kuvilla)
Nopea lataus missä tahansa: Hei! kaikki Nimeni on Steve. Tänään näytän sinulle kuinka ladata puhelimesi nopeasti missä tahansa Tämä aivan kuten DIY -projekti Klikkaa tästä nähdäksesi videon Aloita
Kuinka tehdä 10 dollarin WiFi -turvajärjestelmä kotona? Ei maksuja ja toimii missä tahansa!: 3 vaihetta
Kuinka tehdä 10 dollarin WiFi -turvajärjestelmä kotona? Ei maksuja ja toimii missään!: Kuinka tehdä 10 dollarin wifi -suojausilmoitusjärjestelmä kotona? Ei veloitusta ja se toimii kaikkialla! Jos PIR -liiketunnistin havaitsee liikettä, se lähettää ilmoituksen matkapuhelimeesi. ESP8266 ESP-01 WiFi-moduuli, PIR-liiketunnistin ja 3.3
Acurite 5 in 1 Weather Station käyttäen Raspberry Pi- ja Weewx -laitteita (muut sääasemat ovat yhteensopivia): 5 vaihetta (kuvilla)
Acurite 5 in 1 Weather Station Raspberry Pi: n ja Weewxin avulla (muut sääasemat ovat yhteensopivia): Kun olin ostanut Acurite 5 in 1 -sääaseman, halusin pystyä tarkistamaan sääni kotona ollessani poissa. Kun tulin kotiin ja asetin sen, tajusin, että minun oli joko liitettävä näyttö tietokoneeseen tai ostettava heidän älykeskittymänsä
Mistä tietää, jos Yahoo! Käyttäjät ovat kirjautuneet näkymättömiksi: 6 vaihetta
Mistä tietää, jos Yahoo! Käyttäjät ovat kirjautuneet näkymättömiin tilaan: tämä näyttää, kuinka voit tietää, ovatko Yahoo -käyttäjät kirjautuneet näkymättömäksi tilaksi ja että se todella toimii yahoo messenger 8: ssa, mutta en kokeillut sitä yhdeksään (beta) …. miten se toimii: doodle käynnistyy, jos ystäväsi on näkymätön tila näin ::: "JOHN" näkyy pois päältä