Բովանդակություն:

SmartWand: 6 քայլ
SmartWand: 6 քայլ

Video: SmartWand: 6 քայլ

Video: SmartWand: 6 քայլ
Video: ФИТНЕС-БРАСЛЕТ М6. SMART BAND 6 - ОБЗОР и ПЕРВАЯ НАСТРОЙКА (39 ЦИФЕРБЛАТОВ!) 2024, Նոյեմբեր
Anonim
SmartWand
SmartWand

Այս նախագիծը պետք է ձեռք բերի Python սցենար, որը կսահմանափակի Smartthings- ը `Kano կոդավորման գավազանով` որպես մուտքագրում:

Իմ դուստրերը (8 և 12) Հարրի Փոթերի մեծ երկրպագուներ են և Սուրբ Christmasննդյան համար ստացել են Կանո կոդավորման գավազանը: Kano կոդավորման ծրագիրը հիանալի է, և նրանք զվարճանում են դրա հետ: Կոդավորման հասկացությունները ներդնելու հիանալի գործիք:

Մենք ունենք նաև տան մի փոքր ավտոմատացում ՝ ամբողջ տանը շաղ տված SmartThings- ով, Phillips Hue- ով, Logitech Harmony հանգույցով և այլն … Նրանք անխուսափելիորեն հասան այն կետին, երբ ցանկացան գավազանով վառել Սուրբ Christmasննդյան տոնածառի լույսերը և սկսեցին նետել այնպիսի պայմաններ, ինչպիսիք են Լումոսը և Նոքս ինձ վրա: Հնչեց զվարճալի մարտահրավեր, այնպես որ ես ընդունեցի այն:

Պետք էր գնալ Linux OS- ով, քանի որ կարևոր տարրը (Bluepy python գրադարանը գավազանին Bluetooth- ին միանալու համար) հասանելի է միայն Linux հարթակներում: Ինչևէ, հարմար է այն տեսակետից, որ ի վերջո ցանկանում եք դա գործարկել Raspberry Pi- ով:

Այստեղ կա երկու հիմնական հղում, առանց որոնց ես երբեք չէի կարողանա դա անել:

Շնորհակալություն GammaGames- ին ՝ Կանո կոդավորման գավազանը կարդալու համար պիթոն սցենար ստեղծելու և տարածելու համար:

github.com/GammaGames/kano-wand-demos/blob…

եւ

Շնորհակալություն rllynch- ին ՝ SmartThings հրամանի տողի ինտերֆեյսի համար Python սցենար ստեղծելու և տարածելու համար:

github.com/rllynch/smartthings_cli

Որպեսզի դա անձեռնմխելի լինի, ես պատրաստվում եմ պատճենել քայլերի մեծ մասը այս Instructable- ում ՝ գրավելու ցանկացած փոփոխություն, որն անհրաժեշտ էր իմ տեղադրման վրա աշխատելու համար:

Ահա այն, ինչ ձեզ հարկավոր կլինի

  • Հարրի Փոթեր Կանո կոդավորման հավաքածու (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
  • Linux- ի վրա հիմնված ՕՀ (ես գործարկեցի մեկը VirtualBox- ով, այնուհետև տեղադրեցի Raspberry Pi- ի վրա)
  • Bluetooth USB ադապտեր (ես օգտագործել եմ Kensington Bluetooth 4.0 USB ադապտեր)
  • Ինտերնետ կապ (RPi- ի համար ես օգտագործել եմ Edimax USB WiFi ադապտեր, որն ունեի նախորդ նախագծից)

Քայլ 1: Տեղադրեք Linux Raspberry Pi- ի վրա

Հետևեք ստորև բերված հղումներին ՝ Linux OS- ը Raspberry Pi- ի վրա տեղադրելու համար: Ես օգտագործեցի Raspbian Stretch- ը աշխատասեղանով և առաջարկվող ծրագրակազմով և բռնկվեցի Etcher- ով:

www.raspberrypi.org/learning/software-guid…

Տեղադրումն ավարտելուց և Linux- ի հրամանի տող ունենալուց հետո լավ պրակտիկա է `գործարկել հետևյալ երկու հրամանները` համոզված լինելու համար, որ ամեն ինչ արդիական է:

sudo apt-get թարմացում

sudo apt-get բարելավում

Հրամանի տողի միջերեսում մուտքագրեք հետևյալը ՝ աշխատասեղանի միջերեսը գործարկելու համար:

sudo startx

Հաջորդ բանը, որ պետք է ստեղծվի, ինտերնետ կապն է, որպեսզի կարողանաք հասնել պահեստների և նման ծրագրերի հետագա տեղադրմանը: SmartThings API- ը միացնելու համար կպահանջվի նաև ինտերնետ կապ: Հետևեք այս ուղեցույցին ՝ միանալու համար: Բավականին ուղիղ աշխատասեղանից: Ես օգտագործեցի USB wifi ադապտեր, որը տեղադրված էր շուրջս:

www.raspberrypi.org/learning/software-guid…

Որպես այլընտրանք Raspberry Pi- ի, դուք կարող եք օգտագործել մեկ այլ գոյություն ունեցող համակարգիչ ՝ ձեր գործող ՕՀ -ի հետ երկակի վերբեռնելու համար (մի տեսակ ցավ, որովհետև երկուսի միջև անցնելու համար պետք է վերագործարկել) կամ գործարկել Linux OS- ի օրինակ VirtualBox. Այս նախագիծը սկզբում աշխատեցնելու համար ես տեղադրեցի Debian Stretch- ը Raspberry Pi Desktop- ով Վիրտուալ արկղում ՝ օգտագործելով այս ուղեցույցը.

thepi.io/how-to-run-raspberry-pi-desktop-o…

(Նշում. Ես շատ ժամանակ ունեի, որ Հյուրերի հավելումները պատշաճ կերպով տեղադրվեին վերը նշված հրահանգների համաձայն: Երբեք չստացա աշխատողի և հաճախորդի միջև աշխատելը, ինչը լավ կլիներ, բայց ես կարողացա թարմացնել բանաձևը օգտագործելու համար իմ ամբողջական մոնիտորի չափը: Սա մի շարք google rabit անցքեր էին, որոնք ես այստեղ չեմ փաստաթղթավորի):

Քայլ 2: Տեղադրեք Python 3

Python3- ն արդեն պետք է տեղադրվի Raspian Stretch- ով:

Քայլ 3: Կարգավորել գավազան մոդուլը

Հետևեք GammaGames- ի ստեղծած այս ուղեցույցին

Սկզբում ես պետք է փոխեի այլ գրացուցակ ՝ նախքան kano_wand ռեպո -ի ռեպոն կլոնավորելը, այլապես իմ python սցենարը չէր կարող գտնել այն: Հավանաբար կարող էր ինչ -որ տեղ ինչ -որ տեղ թարմացնել որոշ ուղու հղումներ, բայց ես դրա մեջ չփորեցի:

cd /usr/local/lib/python3.5/dist-packages

git կլոն

sudo pip3 տեղադրել bluepy moosegesture

Սրանց համար պետք էր օգտագործել sudo ՝ համապատասխան թույլտվություններ ստանալու համար: Նաև փոխարենը պետք է օգտագործեի հետևյալ հրամանները ՝ numpy- ն տեղադրելու համար, ինչ պատճառներով էլ չկարողանա գործի դնել pip- ը: Հնարավոր է, որ դա այլ ճանապարհի խնդիր էր, բայց սա աշխատեց ինձ համար, և ես գնացի դրանով.

sudo apt-get տեղադրել python3-numpy

Եվ վերջապես, python սցենարից bluepy գործարկելու համար համապատասխան թույլտվություններ ստանալու համար գտա այս հրամանը:

sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper

Սա այն ամենն է, ինչ պահանջվում է մեր սցենարը գործարկելու համար: GammaGames- ի մնացած ուղեցույցը քայլ առ քայլ շրջում է պիթոնի սցենարում պահանջվող հատվածներով: Դա մեծ խափանում է `հետագայում հասկանալու համար, թե ինչպես է կառուցված սցենարը և ինչ է անում յուրաքանչյուր օբյեկտ: Մեծ շնորհակալություն GammaGames- ին այս փաստաթղթերը տրամադրելու համար: Նաև կարող է օգտակար լինել սցենարի մի հատվածի անսարքությունների վերացման համար: Օրինակ, ցուցադրված առաջին օբյեկտը կատարում է գավազանների սկանավորման և հայտնաբերված գավազանների ցանկը վերադարձնելու խնդիրը: Լավ հաստատում, որ ձեր Bluetooth կարգավորումը կրակում է բոլոր բալոնների վրա: Դա անելու համար կարող եք պատճենել ծածկագիրը հետևյալ repo- ում գտնվող test1_BLE_wand_detect.py- ից:

github.com/maspieljr/SmartWand

Քայլ 4: Կարգավորեք SmartThings CLI- ը

Ստորև բերված են github- ում smartthings_cli ռեպոում ներառված հրահանգների պատճենը (https://github.com/rllynch/smartthings_cli):

Ես այստեղ ներառել եմ այն փոքր փոփոխությունները, որոնք ես պետք է կատարեի իմ կարգավորման վրա, որպեսզի ամեն ինչ աշխատի: Կրկին շնորհակալություն rllynch- ին `սա տրամադրելու համար:

1) Մուտք գործեք և My SmartApps- ի ներքո, ստեղծեք նոր SmartApp ՝ groovy/app.groovy կոդով:

*Նշում առաջին քայլում հղում կա SmartThings կայքին: Ուշադիր ուշադրություն դարձրեք, թե որտեղ է գտնվում ձեր խելացի հաշիվը: Սա որոշ ժամանակ ինձ խանգարեց, քանի որ մյուս կայքը թույլ տվեց մուտք գործել, բայց չկարողացա գտնել իմ իրերը: Իմ SmartThings հաշիվ մուտք գործելու համար ես ստիպված էի օգտագործել հետևյալ հղումը:

(Դուք ողջունում եք այն 2 ժամվա ընթացքում, որը ես ծախսել եմ դրա դասավորմանը:) սա կարևոր կլինի նաև հաջորդ քայլին):

2) Կտտացրեք Settingsրագրի կարգավորումները և OAuth- ի ներքո, կտտացրեք Միացնել OAuth- ը Smart App- ում: Նշեք OAuth Client ID- ն և OAuth Client Secret- ը: Թարմացրեք OAuth Client Display- ը SmartThings CLI Control- ին: Կտտացրեք Թարմացնել:

3) Վերադարձեք Իմ SmartApps, այնուհետև կտտացրեք SmartThings CLI Control- ին: Կտտացրեք Հրապարակել => Ինձ համար:

4) Մուտքագրեք smartthings_cli պահեստը, ցանկության դեպքում ստեղծեք virtualenv (ես դա չեմ արել), այնուհետև գործարկեք հետևյալ հրամանները ՝ փոխարինելով CLIENTID և CLIENTSECRET- ը ID- ով և գաղտնի 2 -րդ քայլից:

Smartthings repo- ն կլոնավորելու համար կարող եք օգտագործել հետևյալ հրամանը. Համոզվեք, որ linux հրամանի տողը գտնվում է Wand Module Setup- ի ընթացքում ստեղծված ձեր նախագծի գրացուցակում:

git կլոնավորել >

then change directory again down to the smartthings_cli directory that was just created.

cd smartthings_cli

python setup.py install

smartthings_cli --clientid clientid --clientsecret clientsecret

5) smartthings_cli will direct you to a url to authorized access. copy the url from the response in the command window and be sure to update it with the proper path as we had to in step 1. go to that url in a browser and specify which devices the cli should be able to access. click authorize when finished. you should be redirected to a page reporting smartthings_cli.py received auth code.

last few things i needed to do in order to get rid of a warning that kept coming up:

sudo apt-get install libssl-dev

pip install service_identity

pip install attrs pip install pyopenssl pip install pyasn1 pip install pyasn1-modules pip install ipaddress

raspberry pi should now be set-up to issue smart thing commands from the command line interface, try it out with these examples:

smartthings_cli query switch all

smartthings_cli query switch "switch name"

smartthings_cli set switch "switch name" on

step 5: improve response

everything is running at this point but there's a bit of a lag once the wand gesture is captured. in attempt to speed up the response, i've embedded the smarthings logic into the smartwand python script rather than calling it from a command line as it does in smartwand.py. this eliminated the need to repeatedly import the modules required for smartthings communication, which is what was slowing everything down. here's what i had to do to get that working:

python3 -m pip install future

python3 -m pip install twisted

made update to the python script. see smartwand2.py stored in the following repo:

github.com/maspieljr/smartwand

step 6: make smartwand execute on raspberry pi bootup

so you only need to plug in the raspberry pi near your smartthings things and not require a monitor, and keyboard, i followed these instructions to get the script to run on boot or any time a command line terminal is launched. the script seems pretty robust but does get hung up from time to time, requiring a reboot. alternatively you could have a keyboard connected and use alt+f4 to kill a running script and ctrl+alt+t to launch a new terminal without needing a monitor to see anything.

method 2: modify the.bashrc file as described in the link below:

www.dexterindustries.com/howto/run-a-progr…

Խորհուրդ ենք տալիս: