Përmbajtje:
- Hapi 1: Instaloni Linux në Raspberry Pi
- Hapi 2: Instaloni Python 3
- Hapi 3: Konfiguro modulin e shkopit
- Hapi 4: Vendosni SmartThings CLI
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
Ky projekt do të marrë një shkrim Python për të kontrolluar Smartthings me shkopin e kodimit Kano si një hyrje.
Vajzat e mia (8 dhe 12) janë adhuruese të mëdha të Harry Potter dhe morën shkopin e kodimit Kano për Krishtlindje. Aplikacioni i kodimit Kano është i lezetshëm dhe ata po argëtohen me të. Mjet i shkëlqyeshëm për të futur konceptet e kodimit.
Ne gjithashtu kemi një pjesë të automatizimit të shtëpisë të spërkatur në të gjithë shtëpinë me SmartThings, Phillips Hue, shpërndarës Logitech Harmony, etj … Ata në mënyrë të pashmangshme arritën në pikën ku donin të ndiznin Dritat e Pemëve të Krishtlindjeve me shkopin dhe filluan të hedhin terma si Lumos dhe Nox në mua. Dukej si një sfidë argëtuese, kështu që e mora atë.
Duhej të shkoja me një Linux OS pasi një element kritik (biblioteka Bluepy python për t'u lidhur me shkopin Bluetooth) është i disponueshëm vetëm në platformat Linux. I përshtatshëm gjithsesi nga pikëpamja e dëshirës përfundimtare për ta drejtuar këtë në një Raspberry Pi.
Ka dy referenca kryesore këtu, pa të cilat, unë kurrë nuk do të kisha qenë në gjendje ta bëja këtë.
Faleminderit GammaGames për krijimin dhe ndarjen e një shkrimi python për leximin e shkopit të kodimit Kano.
github.com/GammaGames/kano-wand-demos/blob…
dhe
Faleminderit rllynch për krijimin dhe ndarjen e një shkrimi python për një ndërfaqe të linjës së komandës SmartThings.
github.com/rllynch/smartthings_cli
Për ta mbajtur këtë të paprekur, do të kopjoj shumicën e hapave në këtë Instructable për të kapur çdo rregullim që më duhej për ta bërë atë të funksionojë në konfigurimin tim.
Ja çfarë do t'ju duhet:
- Kompleti i kodimit të Harry Potter Kano (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Një sistem operativ i bazuar në Linux (fillova të funksionoj me VirtualBox, pastaj u instalova në një Raspberry Pi)
- Një përshtatës USB Bluetooth (kam përdorur një përshtatës USB Kensington Bluetooth 4.0 USB)
- Lidhja në internet (Për RPi, kam përdorur një përshtatës USB Edimax USB WiFi që kisha nga një projekt i mëparshëm)
Hapi 1: Instaloni Linux në Raspberry Pi
Ndiqni lidhjet më poshtë për të instaluar një OS Linux në Raspberry Pi. Përdora Raspbian Stretch me desktop dhe softuer të rekomanduar dhe u ndez me Etcher.
www.raspberrypi.org/learning/software-guid…
Pasi të keni përfunduar instalimin dhe të keni një Linux Command Prompt, është praktikë e mirë të ekzekutoni dy komandat e mëposhtme për t'u siguruar që gjithçka është e përditësuar.
përditësim sudo apt-get
sudo apt-get upgrade
Shkruani sa vijon në ndërfaqen e linjës së komandës për të nisur ndërfaqen e përdoruesit të desktopit.
sudo startx
Gjëja tjetër për të krijuar është një lidhje interneti në mënyrë që të arrini në repo dhe të tillë për të instaluar softuer të mëtejshëm. Gjithashtu do të kërkohet lidhje interneti për të aktivizuar API -në SmartThings. Ndiqni këtë udhëzues për t'u lidhur. Mjaft përpara nga desktopi. Kam përdorur një përshtatës wifi USB që kisha vendosur rreth e rrotull.
www.raspberrypi.org/learning/software-guid…
Përndryshe për Raspberry Pi, mund të përdorni një kompjuter tjetër ekzistues për të dyfishtë nisjen e një Linux OS së bashku me sistemin tuaj ekzistues (një lloj dhimbjeje sepse duhet të rindizni për të kaluar midis të dyve) ose të ekzekutoni një shembull të Linux OS në një VirtualBox. Për të filluar fillimisht funksionimin e këtij projekti, unë instalova Debian Stretch me Despberry Raspberry Pi në një Kuti Virtuale duke përdorur këtë udhëzues:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(Shënim: Unë kisha një kohë të mirë duke i instaluar siç duhet Shtojcat e Vizitorëve sipas udhëzimeve të mësipërme. Asnjëherë nuk kam marrë prerjen dhe ngjitjen midis hostit dhe klientit në punë, gjë që do të ishte mirë, por kam arritur të azhurnoj rezolucionin për ta përdorur madhësia ime e plotë e monitorit. Kjo ishte një seri vrimash google rabit të cilat nuk do t'i dokumentoj këtu.)
Hapi 2: Instaloni Python 3
Python3 tashmë duhet të instalohet me Raspian Stretch.
Hapi 3: Konfiguro modulin e shkopit
Ndiqni këtë udhëzues të krijuar nga GammaGames
Së pari më duhej të ndryshoja në një drejtori të ndryshme para se të klonoja repo kano_wand, përndryshe skripti im python nuk mund ta gjente. Ndoshta mund të ketë përditësuar diku ndonjë referencë të rrugës në ndonjë skedar, por unë nuk e gërmova atë.
cd /usr/local/lib/python3.5/dist-paketa
git klon
sudo pip3 instaloni moosegesture bluepy
Duhej të përdorja sudo për këto për të marrë lejet e duhura. Gjithashtu duhej të përdorte komandat e mëposhtme për të instaluar numpy, për çfarëdo arsye, nuk mund të merrte pip në punë. Mund të ketë qenë një çështje tjetër e rrugës, por kjo funksionoi për mua kështu që unë shkova me të:
sudo apt-get install python3-numpy
Së fundmi, për të marrë lejet e duhura për të ekzekutuar blupy nga shkrimi python gjeta këtë komandë.
sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Kjo është gjithçka që kërkohet për të funksionuar skenarin tonë. Pjesa tjetër e udhëzuesit GammaGames ecën nëpër pjesët hap pas hapi të kërkuara në shkrimin python. Ashtë një avari e madhe për të kuptuar më tej se si është strukturuar skenari dhe çfarë po bën secili objekt. Faleminderit shumë GammaGames për sigurimin e këtij dokumentacioni. Gjithashtu mund të jetë e dobishme për zgjidhjen e problemeve të një pjese të skenarit. Për shembull, objekti i parë i shfaqur kryen detyrën e skanimit të shkopinjve dhe kthimin e një liste të shkopinjve të zbuluar. Verifikim i mirë që konfigurimi juaj bluetooth po ndizet në të gjitha cilindrat. Për ta bërë këtë, mund të kopjoni kodin nga test1_BLE_wand_detect.py që gjendet në repon e mëposhtme:
github.com/maspieljr/SmartWand
Hapi 4: Vendosni SmartThings CLI
Më poshtë janë një kopje të udhëzimeve të përfshira në repo smartthings_cli në github (https://github.com/rllynch/smartthings_cli).
Unë kam përfshirë këtu rregullimet e vogla që duhej të bëja në konfigurimin tim për të funksionuar gjithçka. Faleminderit përsëri për rllynch për sigurimin e kësaj.
1) Hyni dhe nën My SmartApps, krijoni një SmartApp të ri me kodin në groovy/app.groovy.
*Shënim në hapin e parë ka një referencë për një uebfaqe të SmartThings. Kushtojini vëmendje asaj se ku është llogaria juaj smartthings. Kjo më pengoi për ca kohë pasi sajti tjetër më lejoi të identifikohesha, por nuk gjeta asgjë nga gjërat e mia. Më duhej të përdorja lidhjen e mëposhtme për të arritur në llogarinë time SmartThings.https://graph-na04-useast2.api.smartthings.com
(Jeni të mirëpritur për 2 orët që kalova për ta zgjidhur atë:) kjo do të jetë e rëndësishme edhe në hapin e mëvonshëm.)
2) Klikoni Cilësimet e Aplikacionit dhe nën OAuth, klikoni Enable OAuth në Smart App. Shënoni ID -në e Klientit OAuth dhe Sekretin e Klientit OAuth. Përditësoni ekranin e klientit OAuth në SmartThings CLI Control. Klikoni Update.
3) Kthehuni te My SmartApps pastaj klikoni në SmartThings CLI Control. Kliko Publiko => Për Mua.
4) Klononi deponinë smartthings_cli, krijoni një virtualenv nëse dëshironi (nuk e bëra këtë), pastaj ekzekutoni komandat e mëposhtme, duke zëvendësuar CLIENTID dhe CLIENTSECRET me ID dhe sekretin nga hapi 2.
Për të klonuar repon e smartthings mund të përdorni komandën e mëposhtme. Sigurohuni që linux komanda linux të jetë në drejtorinë e projektit tuaj të krijuar gjatë konfigurimit të modulit Wand.
git klon >
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…
Recommended:
Si të bëni 4G LTE Antenë të BiQuade të Dyfishtë Hapa të Lehtë: 3 Hapa
Si të bëni 4G LTE Antenë BiQuade të Dyfishtë Hapa të Lehtë: Shumicën e kohës me të cilën jam përballur, nuk kam forcë të mirë të sinjalit në punët e mia të përditshme. Kështu që. Kërkoj dhe provoj lloje të ndryshme antenash por nuk funksionoj. Pas humbjes së kohës gjeta një antenë që shpresoj ta bëj dhe ta provoj, sepse është parimi i ndërtimit jo
Dizajni i lojës në lëvizje në 5 hapa: 5 hapa
Dizajni i lojës në Flick në 5 hapa: Flick është një mënyrë vërtet e thjeshtë për të bërë një lojë, veçanërisht diçka si një enigmë, roman vizual ose lojë aventure
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: 3 hapa
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: Në këtë Instructable ne do të bëjmë zbulimin e fytyrës në Raspberry Pi 4 me Shunya O/S duke përdorur Bibliotekën Shunyaface. Shunyaface është një bibliotekë për njohjen/zbulimin e fytyrës. Projekti synon të arrijë shpejtësinë më të shpejtë të zbulimit dhe njohjes me
Pasqyrë DIY Vanity në hapa të thjeshtë (duke përdorur dritat LED të shiritit): 4 hapa
DIY Vanity Mirror në hapa të thjeshtë (duke përdorur dritat e shiritit LED): Në këtë postim, unë bëra një DIY Vanity Mirror me ndihmën e shiritave LED. Reallyshtë vërtet e lezetshme dhe duhet t'i provoni gjithashtu
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni