ዝርዝር ሁኔታ:

አሌክሳ ፣ ቁልፎቼ የት አሉ? 4 ደረጃዎች
አሌክሳ ፣ ቁልፎቼ የት አሉ? 4 ደረጃዎች

ቪዲዮ: አሌክሳ ፣ ቁልፎቼ የት አሉ? 4 ደረጃዎች

ቪዲዮ: አሌክሳ ፣ ቁልፎቼ የት አሉ? 4 ደረጃዎች
ቪዲዮ: Amazon Echo Dot | Alexa - አሌክሳ የአማዞን ምርት ነው | በዚህ ዘመን ከተሰሩ በጣም እጅግ አስፈላጊ ቴክኖሎጂ | የ Daily Life የሚያቀል! 2024, ሀምሌ
Anonim
Image
Image
የብሉቱዝ ቢኮኖችን መጥለፍ
የብሉቱዝ ቢኮኖችን መጥለፍ

አሌክሳ በተለይ የገመድ አልባ የቤት ኔትወርኮችን በመጠቀም ለመረጃ መልሶ ማግኛ ተግባራት እና ንብረቶችን ለመቆጣጠር በጣም ተስማሚ ነው። ፈጣን መልሶ ለማግኘት ውድ ዕቃዎችን በፍርግርግ ላይ ማስቀመጥ ማሰቡ ተፈጥሯዊ ነው። እኛ ለአውታረ መረቡ ክልል እና ለባትሪ ዕድሜን ርካሽ ብሉቱዝ ዝቅተኛ የኃይል ቢኮኖችን ሰብረን እና አሌክሳ ቁልፎቹን የት እንደወጣን እንዲያውቅ ዘመናዊ መተግበሪያን እንገነባለን።

እንዴት ማድረግ እንደሚቻል…

ደረጃ 1 የብሉቱዝ ቢኮኖችን መጥለፍ

የ 3 ቢኮኖች ስብስብ ከ 15 ዶላር በታች ሊገዛ ይችላል እና በ Android/iOS መተግበሪያዎች ይደገፋል ፣ ግን ለግላዊነት እንመርጣለን። በተጨማሪም ቁልፎቻችንን ማግኘት ስልካችንን ወደማግኘት መለወጥ የለበትም።

በተገላቢጦሽ ኢንጂነሪንግ ስማርት መብራቶች ላይ ይህ የአዳፍ ፍሬ አጋዥ ስልጠና ቢኮኖቹን እንድንቆጣጠር ረድቶናል። በመሮጥ የመሣሪያውን አድራሻ የምልክት ቅኝት በማብራት ይጀምሩ ፦

sudo hcitool lescan

‹Itag ›በሚለው ስም የተሰየመውን አድራሻ ይፈልጉ እና ይቅዱ ፣ ከዚያ ያሂዱ

sudo gatttool -I

በመሮጥ በይነተገናኝ ከመሣሪያው ጋር ይገናኙ ፦

AA: BB: CC: DD: EE: FF ን ያገናኙ

አማራጮችን ለማየት ወይም ‘የመጀመሪያ ደረጃ’ አገልግሎቶችን ለማየት ‹እገዛ› ለማሄድ ይሞክሩ ፦

ከላይ እንደነበረው የአገልግሎት እጀታ ተከትሎ ‹ቻር-ታች› ን ፣ እኛ የ gatt ባህርይ መግለጫዎችን እና የአገልግሎት ዝርዝሮችን በማጣቀስ የምናየውን UUIDs እናገኛለን። በእነዚህ አገልግሎቶች ላይ የበለጠ ለማግኘት ፣ ይህንን ይመልከቱ። በ Wireshark ትራፊክን በመመርመር ፣ 0100111000000001 ማንቂያውን ቀስቅሶ እና አመክንዮ ፣ 0000111000000001 ያጠፋዋል። አሁን እኛ ቀለል ያለ የፓይዘን ተግባር አለን

pexpectdef sound_alarm (BD_ADDR): ልጅ = pexpect.spawn ('gatttool -I') child.sendline ('አገናኝ {}'. ቅርጸት (BD_ADDR)) ልጅ.ጠብቁ ('ግንኙነቱ ተሳክቷል' ፣ የእረፍት ጊዜ = 30) ልጅ.sendline ('ቻር-ፃፍ- cmd 0x000b 0100111000000001')

በመቀጠልም ቁልፎችን ስንፈልግ መብራቱን ለመቀስቀስ የአሌክሳውን ክህሎት በመፍጠር ላይ እናተኩራለን።

ደረጃ 2 የአሌክሳ ችሎታ እና መተግበሪያ መፍጠር

የአሌክሳ ችሎታ እና መተግበሪያ መፍጠር
የአሌክሳ ችሎታ እና መተግበሪያ መፍጠር
የአሌክሳ ችሎታ እና መተግበሪያ መፍጠር
የአሌክሳ ችሎታ እና መተግበሪያ መፍጠር

ከአካባቢያዊ አገልጋይ ጋር የሚገናኝ ክህሎት እንፈጥራለን። ከዚያ እኛ የምንፈልገውን ማንኛውንም እርምጃ እንዲወስድ አገልጋያችንን እናዋቅራለን ፣ በዚህ ሁኔታ ቁልፎቹ ሊገኙበት የሚችሉበትን ግምታዊነት ያቅርቡ እና የብሉቱዝ ቢኮንን ቢፕ ያድርጉ። Flask መተግበሪያን ለማገልገል የፓይዘን ቤተ -መጽሐፍት ቀላል እና ለመጠቀም ቀላል ይሰጣል። Flask-ask ን በመጠቀም ፣ በኋላ ላይ ከምንገነባው የአሌክሳ ችሎታችን ጋር ለመገናኘት አገልጋዩን ማዋቀር እንችላለን። ለ ‹አሌክሳ› ችሎታችን የሚያስፈልገንን የ https አገናኝ የሚሰጠን ከ Ngrok ጋር መተግበሪያውን በደንብ ያቅርቡ። በመጀመሪያ ትግበራውን በጣም ቀላል በሆነ ተግባር ገንብተናል -ሲቀሰቀስ የእኛን BLE ቢኮን ቢፕ ለማድረግ።

#!/usr/bin/env python ከ flask ማስመጣት ከ flask_ask ማስመጣት ጠይቅ ፣ መግለጫ አስመጪ pexpect app = Flask (_ name_) ask = ጠይቅ (መተግበሪያ ፣ '/') BD_ADDR = 'AA: BB: CC: DD: EE: FF ' #የእርስዎ የብሉቱዝ ቢኮን መታወቂያ እዚህ @ask.intent (' findkeys ') def retrievr (): sound_alarm () speech_text = "ቁልፎችዎ እዚህ የሆነ ቦታ አሉ።" የመመለሻ መግለጫ (ንግግር_text) def sound_alarm (): ልጅ = pexpect.spawn ('gatttool -I') child.sendline ('ተገናኝ {}'. ቅርጸት (BD_ADDR)) ልጅ። child.sendline ('char-write-cmd 0x000b 0100111000000001') _name_ == "_main_": app.run (አስተናጋጅ = '127.0.0.1' ፣ ወደብ = '5000')

BLE beep ን ለማድረግ ቀደም ብለን የጻፍነውን ተግባር sound_alarm () ተጠቅመንበታል። ለዓላማው ጥቅም ላይ ለሚውለው ተግባር እኛ የጠየቁትን ማስጌጫ በእኛ ዓላማ “ፍለጋዎች” እንጨምራለን። በአማዞን ገንቢ ዳሽቦርድ ላይ የአሌክሳ ችሎታን ስንሠራ ይህንን ስም ለዓላማችን እንጠቀምበታለን። ይህንን ስክሪፕት app.py ወደሚባል ፋይል ይፃፉ እና ያሂዱ

Python app.py

ይህ ማመልከቻዎን በ https:// localhost: 5000 ላይ ያገለግላል። የ ngrok አገልጋይ ያሂዱ እና የመነጨውን የ https አገናኝ ይቅዱ። የአሌክሳውን ክህሎት ሲያዋቅሩት ያስፈልግዎታል። ለተጨማሪ ዝርዝሮች ይህንን ልጥፍ ይመልከቱ። እኛ አንድ ቀላል መተግበሪያን በተሳካ ሁኔታ አዘጋጅተናል ፣ አሁን የአሌክሳ ችሎታን እንጽፋለን። ወደ የአማዞን ገንቢ ዳሽቦርድ ይሂዱ እና ይግቡ። አሌክሳ ላይ ጠቅ ያድርጉ እና በአሌክሳ የክህሎት ኪት ይጀምሩ

በጊዩ የተሰጡትን መመሪያዎች ይከተሉ።

በይነተገናኝ ሞዴል ትር ስር የ Intent Schema ሳጥኑን በሚከተለው መሙላት ያስፈልግዎታል።

በናሙና መግለጫዎች ሳጥን ውስጥ አንድ ሰው ክህሎቱን ለመጥራት ሊጠቀምባቸው የሚችሉ አንዳንድ የናሙና ትዕዛዞችን መጻፍ ይፈልጋሉ። እነዚህን ጽፈናል -

ቁልፎች ቁልፎቼን ያጡብኝ ቁልፎቼን አግኝተዋል

  • በማዋቀር ትር ውስጥ የአገልግሎት ማብቂያ ነጥቡን ወደ HTTPS መምረጥዎን ያረጋግጡ። የ https አገናኝዎን ይቅዱ እና ከታች ባለው ነባሪ ሳጥን ውስጥ ይለጥፉት። የመለያ ማገናኘት ወደ ቁጥር ሊተው ይችላል።
  • በኤስኤስኤል ሰርቲፊኬት ውስጥ የመካከለኛውን አማራጭ ይምረጡ ፣ “የእኔ የልማት መጨረሻ ነጥብ ከምስክር ወረቀት ባለስልጣን የዱር ምልክት ያለው የጎራ ንዑስ ጎራ ነው”።
  • የሙከራ ትር በአንዱ የናሙና ትዕዛዞችዎ ውስጥ በመተየብ አዲሱን ክህሎት እንዲሞክሩ ያስችልዎታል።

ሁሉም የቼክ ምልክቶች አረንጓዴ እስኪሆኑ ድረስ የመጨረሻዎቹን ሁለት ትሮች መሙላት ይጨርሱ። ከዚያ ችሎታዎን በቅድመ -ይሁንታ ሙከራ ባህሪ ያስጀምሩ። ይህ ከማተምዎ በፊት በማንኛውም የማስተጋባት መሣሪያ ላይ ችሎታዎን እንዲያስተናግዱ ያስችልዎታል። በአስተጋባ መሣሪያዎ ላይ ችሎታውን ለመጫን በኢሜል አገናኙ ላይ ያሉትን መመሪያዎች ይከተሉ።

ደረጃ 3 የእኛን ችሎታ የበለጠ ብልህ ማድረግ

የእኛን ችሎታ የበለጠ ብልህ ማድረግ
የእኛን ችሎታ የበለጠ ብልህ ማድረግ
የእኛን ችሎታ የበለጠ ብልህ ማድረግ
የእኛን ችሎታ የበለጠ ብልህ ማድረግ
የእኛን ችሎታ የበለጠ ብልህ ማድረግ
የእኛን ችሎታ የበለጠ ብልህ ማድረግ

የ RSSI የምልክት ጥንካሬን ሪፖርት ለማድረግ የብሉቱዝ መብራቱን ለመጠየቅ እንዲሰሩ ሥራ ፈት ኮምፒውተሮች በቤቱ ውስጥ እንዲሰራጭ አድርገናል።

ከብዙ ማሽኖች ንባቦችን በመውሰድ የምልክት ጥንካሬን ለርቀት እንደ ተኪ ልንጠቀምበት እንችላለን። መብራቱን ለማግኘት የቤቱን በጣም ክፍል ክፍል ለማስላት ይህንን እንዴት እንደሚጠቀሙበት ማወቅ አለብን።

ወደ ማሽን ትምህርት እንሸጋገራለን። በየ 2 ደቂቃው የ crontab ሥራ ፣ የ RSSI tuples የውሂብ ስብስብ ይገነባል። እንደ ‹መኝታ ቤት› ፣ ‹መታጠቢያ ቤት› ፣ ‹ወጥ ቤት› ፣ ‹የመኖሪያ አካባቢ› ባሉ የተለያዩ ቦታዎች ላይ ቢኮኑን ማስቀመጥ የ RSSI ምዝግብ ማስታወሻዎችን እንሰይማለን። ቤቱን አንዴ ካርታ ካደረግን በኋላ እንደ xgboost's XGBClassifier ያሉ በዛፍ ላይ የተመሰረቱ ሞዴሎችን መጠቀም እንችላለን።

የ xgboost ትግበራ የግራዲየንት ማጎልበት ትግበራ የጠፋውን መረጃ በጊዜ ከተነበቡ ንባቦች ፣ በጥቂት ሰከንዶች ውስጥ ስልጠና ይሰጣል። የሰለጠነውን ሞዴል ለመቀጠል እና በእኛ የአሌክሳሪ መልሶ ማግኛ መተግበሪያ ውስጥ ለመጫን የፓይዘን ፒክ ይጠቀሙ። ችሎታው በሚጠራበት ጊዜ ትግበራው የብሉቱዝ RSSI ንባብን ይመለከታል እና የተተነበየ ቦታን ይፈጥራል ፣ አሌክሳ ‘በመታጠቢያ ቤት ውስጥ ለመመልከት ይሞክሩ’ የሚል ሀሳብ ሊሰጥ ይችላል።

ደረጃ 4 - ሁሉንም በአንድ ላይ ማዋሃድ

የቁልፎቹን የመጨረሻ ቦታ ለመገመት ሞዴል ስላለን ፣ በአሌክሳ የተመለሰውን መግለጫ ለማሻሻል ወደ ማመልከቻው ማከል እንችላለን። ለማንበብ ስክሪፕቱን ቀይረነዋል -

ከ osskrom flask ማስመጣት Flask ን ከ flask_ask ማስመጣት ይጠይቁ ፣ መግለጫ ማስመጣት Pexpect አስመጪ ማስመጣት ፓንዳዎችን እንደ ፒዲ ማስመጣት numpy እንደ np ከስብስቦች ማስመጣት ነባሪ ዲክሪፕት ፣ Counter ከ revers_read አስመጪ ተገላቢጦሽ መተግበሪያ = ፍላሽ (_ ስም_) ይጠይቁ = ይጠይቁ (መተግበሪያ ፣ '/') @ ask.intent ('findkeys') def retrievr (): os.system ("/path/to/repo/sound_alarm.py &") speech_text = guess_locate () return statement (speech_text) def guess_locate (): read_dict = {} line_gen = revers_readline ('YOUR_DATA_FILE.txt') res_lst = ሌን (res_lst)! = 20: ln = next (line_gen) ln.startswith ('አስተናጋጅ'): _, ip, _, ማንበብ = ln.split () read_dict [ip] = ማንበብ res_lst.append (read_dict) ip == 'ip.of.one.computer': read_dict = {} ሌላ: pass val = pd. DataFrame (res_lst). ቦታው ({'N/ ሀ ': np.nan})። እሴቶች mdl_ = pickle.load (ክፍት (' location_model_file.dat '' 'rb'))) [0] [0] reply_str = 'መገመት ከሆነ' ውስጥ ለመመልከት ይሞክሩ == 1: reply_str += 'መኝታ ቤት' elif ግምትን == 2: reply_str += 'መታጠቢያ ቤት' elif መገመት == 3: reply_str += 'ወጥ ቤት' elif መገመት == 4: reply_str += 'ሳሎን' መመለስ reply_str _name_ == "_main_": app.run (አስተናጋጅ) = '127.0.0.1' ፣ ወደብ = '5000')

የቅርብ ጊዜ የተመዘገበው የ rssi ሲግናል ጥንካሬዎች የያዘ ፋይል የሚወስድ guess_locate () የተባለ አዲስ ተግባር ፈጥረናል። ከዚያ ናሙናዎቹን በተመረጠው የ xgboost ሞዴላችን ላይ ያካሂዳል እና በጣም ሊሆን የሚችልበትን ቦታ ሕብረቁምፊ ይመልሳል። አሌክሳ ሲጠየቅ ይህ ቦታ ይመለሳል። ከቢኮን ጋር ግንኙነት መመስረት ጥቂት ሰከንዶች ሊወስድ ስለሚችል ፣ በ sound_alarm.py ውስጥ ያንን ተግባር በመጥራት የተለየ ሂደት እናካሂዳለን።

የሚመከር: