Агуулгын хүснэгт:
- Алхам 1: Bluetooth дохиог хакердах
- Алхам 2: Alexa ур чадвар, програмыг бий болгох
- Алхам 3: Бидний ур чадварыг илүү ухаалаг болгох
- Алхам 4: Бүгдийг нэгтгэх
Видео: Alexa, Миний түлхүүрүүд хаана байна?: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Alexa нь утасгүй гэрийн сүлжээг ашиглан мэдээлэл хайх, хөрөнгийг хянах ажилд маш сайн тохирдог. Үнэ цэнэтэй зүйлийг сүлжээнд хурдан оруулахын тулд сүлжээнд оруулах талаар бодох нь зүйн хэрэг юм. Бид сүлжээний хүрээ болон батерейны ашиглалтын хугацааг хэмнэсэн хямд Bluetooth бага эрчим хүчийг цохиж, ухаалаг програм бүтээдэг бөгөөд ингэснээр Alexa түлхүүрээ хаана үлдээсэнээ мэддэг болно.
Үүнийг хэрхэн хийх вэ…
Алхам 1: Bluetooth дохиог хакердах
3 ширхэг гэрэлт цамхагийг 15 доллараас бага үнээр худалдаж авах боломжтой бөгөөд үүнийг Android/iOS аппликейшнд дэмждэг боловч бид нууцлалыг сонгохоос татгалзах болно. Үүнээс гадна түлхүүрээ олох нь утсыг хайж олох ёсгүй.
Энэхүү урвуу инженерчлэлийн ухаалаг гэрлийн талаархи adafruit заавар нь гэрэлт цамхагуудыг удирдахад бидэнд тусалсан юм. Төхөөрөмжийн хаягийг хайж олохын тулд гэрэлтүүлэгчийг асаана уу.
sudo hcitool lescan
'ITag' гэсэн хаягтай хаягийг олоод хуулж аваад дараа нь ажиллуулна уу.
sudo gatttool -Би
Төхөөрөмжийг дараах байдлаар ажиллуулж интерактив холбоно уу.
холбох AA: BB: CC: DD: EE: FF
Сонголтуудыг үзэхийн тулд 'тусламж' эсвэл үйлчилгээг үзэхийн тулд 'үндсэн' ажиллуулж үзээрэй:
"Char-desc" -ийг ажиллуулсны дараа үйлчилгээний бариулыг дээр дурдсаны дагуу бид gatt-ийн онцлог шинж чанар, үйлчилгээний тодорхойлолтыг ашиглан хайж олох боломжтой UUID-ийг олдог. Wireshark -ийн урсгалыг шалгаж үзэхэд 0100111000000001 нь дохиоллыг асааж, логикийн хувьд 0000111000000001 унтраадаг болохыг олж мэдээрэй. Одоо бидэнд энгийн питон функц байна:
pexpectdef sound_alarm (BD_ADDR) импортлох: хүүхэд = pexpect.spawn ('gatttool -I') child.sendline ('холбох {}'. формат (BD_ADDR)) child.expect ('Холболт амжилттай', хугацаа дууссан = 30) хүүхэд.sendline ('char-write-cmd 0x000b 0100111000000001')
Дараа нь бид түлхүүр хайж байхдаа гэрэлт цамхгийг ажиллуулахын тулд Alexa ур чадварыг бий болгоход анхаарлаа төвлөрүүлдэг.
Алхам 2: Alexa ур чадвар, програмыг бий болгох
Бид локал сервертэй холбогдох ур чадварыг бий болгодог. Дараа нь бид серверээ хүссэн бүх арга хэмжээг авахаар тохируулдаг бөгөөд энэ тохиолдолд түлхүүрүүд хаана байрлаж болох талаар ойролцоогоор өгч, Bluetooth дохио өгөх дохио өгдөг. Flask нь програмд үйлчлэх энгийн, ашиглахад хялбар питон номын санг өгдөг. Колбаны тусламжийг ашиглан бид серверээ дараа нь бүтээх Alexa ур чадвараараа харилцахаар тохируулах боломжтой болно. Ngrok програмыг ашиглаарай, энэ нь бидэнд Alexa ур чадварын хувьд бидэнд хэрэгтэй https линкийг өгөх болно. Эхлээд бид програмыг хамгийн энгийн функцээр бүтээсэн: ажиллуулах үед BLE дохио дохио өгөх.
#!/usr/bin/env pythonfrom колбоос импортлох колбыг колбоос оруулах ' #Таны блютүүт дохио энд байна @ask.intent (' findkeys ') def retrievr (): sound_alarm () speech_text = "Таны түлхүүрүүд хаа нэгтээ хаа нэгтээ байна." буцах мэдэгдэл (speech_text) def sound_alarm (): child = pexpect.spawn ('gatttool -I') child.sendline ('connect {}'. format (BD_ADDR)) child.expect ('Холболт амжилттай боллоо', хугацаа дууссан = 60) child.sendline ('char-write-cmd 0x000b 0100111000000001') бол _name_ == "_main_": app.run (хост = '127.0.0.1', порт = '5000')
Бид өмнө нь бичсэн sound_alarm () функцийг ашиглан BLE дохио өгчээ. Зорилгод ашиглагдах функцын хувьд бид "Findkeys" гэсэн санаа бүхий гоёл чимэглэлийн элементийг нэмж өгдөг. Амазоны хөгжүүлэгчийн хяналтын самбар дээр Alexa -ийн ур чадварыг бий болгосноор бид энэ нэрийг зорилгодоо ашиглах болно. Энэ скриптийг app.py нэртэй файлд бичээд ажиллуулна уу
python програм.py
Энэ нь таны програмыг https:// localhost: 5000 дээр ашиглах болно. Ngrok сервер ажиллуулж, үүсгэсэн https линкийг хуулж ав. Alexa ур чадварыг тохируулах үед танд хэрэгтэй болно. Дэлгэрэнгүй мэдээллийг энэ бичлэгээс үзнэ үү. Бид энгийн програмыг амжилттай суулгалаа, одоо бид Alexa ур чадварыг бичих болно. Амазоны хөгжүүлэгчийн хяналтын самбар руу очоод нэвтэрнэ үү. Alexa дээр дарж Alexa Skill иж бүрдлийг ашиглаж эхлээрэй.
Gui -ийн өгсөн зааврыг дагана уу.
Interation Model табын доор та Intent Schema хайрцгийг дараах байдлаар бөглөхийг хүсч байна
Sample Utterances хайрцагт та ур чадвараа өдөөхийн тулд ашиглаж болох зарим жишээ тушаалуудыг бичихийг хүсч байна. Бид эдгээрийг бичсэн:
findkeys миний түлхүүрийг олдог түлхүүрүүд миний түлхүүрийг олдог түлхүүрүүд миний түлхүүрийг алдсан
- Тохиргооны таб дээрээс HTTPS -ийн үйлчилгээний төгсгөлийн цэгийг сонгохоо мартуузай. Https линкээ хуулж, доорх Анхдагч хайрцагт буулгана уу. Дансны холбоосыг Үгүй гэж үлдээж болно.
- SSL гэрчилгээнд "Миний хөгжлийн төгсгөлийн цэг бол гэрчилгээжүүлэх байгууллагаас орлуулагдсан тэмдэг бүхий гэрчилгээтэй домэйны дэд домэйн юм" гэсэн дунд сонголтыг сонгоно уу.
- Туршилтын таб нь дээжийн нэг командыг бичиж шинэ ур чадвараа шалгах боломжийг танд олгоно.
Бүх шалгах тэмдэг ногоон өнгөтэй болтол сүүлийн хоёр табыг бөглөж дуусгана уу. Дараа нь ур чадвараа Бета тестийн онцлогоор эхлүүлээрэй. Энэ нь хэвлэхээсээ өмнө ямар ч цуурай төхөөрөмж дээр өөрийн ур чадвараа байршуулах боломжийг олгодог. Ур чадвараа цуурай төхөөрөмж дээрээ суулгахын тулд имэйлийн холбоос дээрх зааврыг дагана уу.
Алхам 3: Бидний ур чадварыг илүү ухаалаг болгох
Бид RSSI дохионы хүчийг мэдээлэхийн тулд блютүүт гэрэлтүүлгийг хайж олохын тулд байшин даяар тархсан сул зогсолт бүхий компьютеруудыг ажиллуулав.
Олон машинаас уншилт авснаар бид дохионы хүчийг зайн прокси болгон ашиглаж болно. Үүнийг ашиглан гэрэлт цамхгийг олохын тулд байшингийн хамгийн их магадлалтай хэсгийг хэрхэн яаж тооцоолохоо олж мэдэх хэрэгтэй.
Бид машин сурах руу шилждэг. Crontab -ийн ажил 2 минут тутамд RSSI файлуудын мэдээллийн санг бүрдүүлж өгдөг. Гэрэлт цамхагийг 'Унтлагын өрөө', 'Угаалгын өрөө', 'Гал тогоо', 'Зочны өрөө' гэх мэт өөр өөр газар байрлуулснаар бид RSSI бүртгэлийг тэмдэглэдэг. Гэрийн зураглалыг хийсний дараа бид xgboost-ийн XGBClassifier гэх мэт модонд суурилсан загваруудыг ашиглаж болно.
Градиент өргөлтийн xgboost хэрэгжилт нь хэдхэн секундын дотор цаг тухайд нь уншсан өгөгдлийг алдах болно. Python даршилсан ногоо ашиглан бэлтгэгдсэн загвараа хадгалж, манай alexa retrievr програм руу ачаална уу. Ур чадварыг дуудах үед програм нь bluetooth RSSI уншилтыг хайж, урьдчилан таамагласан байршлыг бий болгодог.
Алхам 4: Бүгдийг нэгтгэх
Түлхүүрүүдийн сүүлчийн байршлыг ойролцоогоор тодорхойлох загвартай бол бид үүнийг Alexa -ийн буцааж өгсөн мэдэгдлийг сайжруулахын тулд програмд нэмж болно. Бид скриптийг дараах байдлаар өөрчилсөн.
колбыг импортлох колбыг flask_ask импортоос авах Асуулт, мэдэгдэл импорт pexpect импортлох даршилсан ногоо импортлох панда pd импорт numpy гэж цуглуулгаас импортлох defaultdict ask.intent ('findkeys') def retrievr (): os.system ("/path/to/repo/sound_alarm.py &") speech_text = guess_locate () return statement (speech_text) def tahmin_locate (): read_dict = {} 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] = унших res_lst. A ': np.nan}). Утгууд mdl_ = pickle.load (open (' location_model_file.dat ',' rb ')) preds = mdl_.predict (val) guess = Counter (preds) guess = guess.most_common (1)) [0] [0] reply_str = 'Хэрэв таавар == 1: reply_str +=' унтлагын өрөө 'elif таамаглалыг хайж үзээрэй == 2: reply_str += 'угаалгын өрөө' elif таамаг == 3: reply_str += 'гал тогоо' elif таамаглах == 4: reply_str += 'зочны өрөө' _name_ == "_main_" байвал буцах reply_str: app.run (хост = '127.0.0.1', порт = '5000')
Бид guess_locate () нэртэй шинэ функцийг үүсгэсэн бөгөөд энэ нь хамгийн сүүлийн үеийн rssi дохионы хүчийг агуулсан файлыг авдаг. Дараа нь энэ нь бидний даршилсан xgboost загварын эсрэг дээжийг ажиллуулж, хамгийн магадлалтай байршлын мөрийг буцаана. Alexa -г асуухад энэ байрлалыг буцааж өгөх болно. Гэрэлт цамхагтай холбоо тогтооход хэдэн секунд шаардагдах тул бид sound_alarm.py дотор энэ функцийг дуудах тусдаа процессыг явуулдаг.
Зөвлөмж болгож буй:
Туулайн туулай та хаана байна?: 3 алхам
Туулайн туулай та хаана байна?: Би Тайванийн гаралтай, би 13 настай, намайг Чиа-Ин Ву гэдэг.Манай гэр бүл туулайтай, тэр ихэвчлэн бидэнтэй нуугдмал тоглодог. Буйдангийн дэргэдэх буланд нуугдах дуртай боловч нүдний харааг буйдангаар хаадаг тул бид ихэнхдээ олж чаддаггүй. С
Фред! Та хаана байна вэ? 3 алхам
Фред! Та хаана байна вэ?: Энэхүү төсөл нь танай гэрээс хэдэн км зайтай байгаа тухай юм. Фред нь ухаалаг гар утас шиг цэнэглэдэг батерейгаар тэжээгддэг тул та өөрөө авч явах боломжтой. Үүнийг бүтээхэд маш хялбар боловч та кодчилолд гацсан байж магадгүй. Энэ төсөлд та
Яагаад миний диск 100%ажиллаж байна вэ? 3 алхам
Яагаад миний диск 100%ажиллаж байна вэ? Энэ бүхэн нь таны байнга ашигладаг өгөгдлийг Windows 8, Windows 8.1 болон Windows 10 дээр хэт их татаж авснаас болж болдог. Энэ нь арын програмыг идэвхжүүлдэг, defr
Миний гар миний гар: 8 алхам (зурагтай)
Миний гар миний гар: Би цоо шинэ Epilog лазер таслагчийг ашигласан бөгөөд Instructables саяхан гарныхаа зургийг зөөврийн компьютерын гар дээрээ лазераар сийлэх боломжтой болсон. Одоо энэ нь таны баталгааг DIY хэв маягаар хүчингүй болгож байна! Би тусалж эхэлснээсээ хойш ихэнх зөөврийн компьютерээ лазераар сийлсэн
Миний бодлоор робот бага зэрэг харж байна. 4 алхам
Би робот бага зэрэг харж байна гэж бодож байна. Би зааварчилгааны нэгийг харж байсан. Тэд роботын төрхийг хаана өөрчилж байгааг би харсан. Үүнийг тойрч тоглоно гэж бодсон. Вэбсайтад тэдний хийж буй зүйлийн талаар ямар ч заавар байгаагүй. Тэр хүн чадахгүй гэж хэлсэн