Բովանդակություն:
- Քայլ 1: Տեղադրեք Linux Raspberry Pi- ի վրա
- Քայլ 2: Տեղադրեք Python 3
- Քայլ 3: Կարգավորել գավազան մոդուլը
- Քայլ 4: Կարգավորեք SmartThings CLI- ը
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Այս նախագիծը պետք է ձեռք բերի 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…
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
Քայլ առ քայլ համակարգչային շենք. 9 քայլ
Քայլ առ քայլ համակարգչի կառուցում. Պարագաներ. Սարքավորումներ. Մայրական համակարգիչ CPU coolerPSU (Էներգամատակարարման միավոր) Պահեստավորում (HDD/SSD) RAMGPU (պարտադիր չէ) Գործ CaseTools: Պտուտակահան ESD ապարանջան/matsthermal paste w/aplikator
Երեք բարձրախոս շղթա -- Քայլ առ քայլ ձեռնարկ ՝ 3 քայլ
Երեք բարձրախոս շղթա || Քայլ առ քայլ ձեռնարկ. Բարձրախոսների սխեման ուժեղացնում է շրջակա միջավայրից ստացված աուդիո ազդանշանները MIC- ում և այն ուղարկում է խոսնակին, որտեղից արտադրվում է ուժեղացված ձայնը:
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ `հանդերձանքով. 6 քայլ
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ ՝ հանդերձանքով. Իմ սեփական ռոբոտը կառուցելուց մի քանի ամիս անց (խնդրում եմ անդրադառնալ այս բոլորին), և երկու անգամ մասերի խափանումից հետո, ես որոշեցի մի քայլ հետ գնալ և նորից մտածել իմ մասին ռազմավարություն և ուղղություն: Մի քանի ամսվա փորձը երբեմն շատ հատուցող էր, և
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)