Orodha ya maudhui:

SmartWand: 6 Hatua
SmartWand: 6 Hatua

Video: SmartWand: 6 Hatua

Video: SmartWand: 6 Hatua
Video: XIAOMI MI BAND 6 - ОБЗОР И ПЕРВАЯ НАСТРОЙКА 2024, Novemba
Anonim
SmartWand
SmartWand

Mradi huu ni kupata hati ya Python kudhibiti Smartthings na wand ya Kano coding kama pembejeo.

Binti zangu (8 na 12) ni mashabiki wakubwa wa Harry Potter na walipata Kano Coding Wand kwa Krismasi. Programu ya kuweka alama ya Kano ni nzuri na wanafurahi nayo. Chombo bora cha kuanzisha dhana za usimbuaji.

Sisi pia tuna vifaa vya nyumbani vya kunyunyizia nyumba nzima na SmartThings, Phillips Hue, Logitech Harmony hub, nk … Walifika mahali ambapo walitaka kuwasha Taa za Mti wa Krismasi na fimbo na kuanza kutupa maneno kama Lumos na Nox kwangu. Ilionekana kama changamoto ya kufurahisha kwa hivyo nikachukua.

Ilibidi kwenda na Linux OS kwani kipengee muhimu (Bluepy python library ya kuunganisha kwa wand Bluetooth) inapatikana tu kwenye majukwaa ya Linux. Urahisi hata hivyo kutoka kwa mtazamo wa mwishowe kutaka kuendesha hii kwenye Raspberry Pi.

Kuna marejeleo mawili kuu hapa, bila ambayo, nisingeweza kufanya hivyo.

Shukrani kwa GammaGames kwa kuunda na kushiriki hati ya chatu kwa kusoma wand ya usimbuaji wa Kano.

medium.com/@jesse007.gg/control-a-phillips …….

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

na

Shukrani kwa rllynch kwa kuunda na kushiriki hati ya chatu kwa kiolesura cha laini ya amri ya SmartThings.

github.com/rllynch/smartthings_cli

Ili kuweka sawa, nitaiga nakala nyingi kwa hii inayoweza kufundishwa ili kunasa tweaks yoyote niliyohitaji kuifanya ifanye kazi kwenye usanidi wangu.

Hapa ndivyo utahitaji:

  • Kitengo cha Usimbuaji Kano cha Harry Potter (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki …….
  • OS ya Linux (Niliinua na kukimbia na VirtualBox, kisha nikaweka kwenye Raspberry Pi)
  • Adapta ya USB ya Bluetooth (nilitumia Kensington Bluetooth 4.0 USB Adapter)
  • Uunganisho wa Mtandao (Kwa RPi, nilitumia adapta ya Edimax USB WiFi niliyokuwa nayo kutoka kwa mradi uliopita)

Hatua ya 1: Sakinisha Linux kwenye Raspberry Pi

Fuata viungo hapa chini kusanikisha OS ya Linux kwenye Raspberry Pi. Nilitumia Raspbian Stretch na desktop na programu iliyopendekezwa na kuangaza na Etcher.

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

Mara tu ukimaliza kusanikisha na kuwa na Amri ya Kuamuru ya Linux, ni mazoezi mazuri kutekeleza amri mbili zifuatazo ili kuhakikisha kuwa kila kitu kimesasishwa.

Sudo apt-pata sasisho

sasisho la kupata apt

Andika zifuatazo kwenye kiolesura cha mstari wa amri ili kuzindua UI ya eneo-kazi.

Sudo kuanza

Jambo linalofuata kusanidi ni muunganisho wa mtandao ili uweze kupata raha na vile vile kusanikisha programu zaidi. Uunganisho wa mtandao pia utahitajika kupata SmartThings API. Fuata mwongozo huu ili uunganishwe. Moja kwa moja mbele kutoka kwa desktop. Nilitumia adapta ya wifi ya USB niliyokuwa nimeweka karibu.

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

Vinginevyo kwa Raspberry Pi, unaweza kutumia kompyuta nyingine iliyopo kwa boot mbili Linux OS pamoja na OS yako iliyopo (aina ya maumivu kwa sababu lazima uanze tena kubadili kati ya hizo mbili) au uanze mfano wa Linux OS kwenye VirtualBox. Ili kupata kwanza mradi huu hapo awali, niliweka Debian Stretch na Raspberry Pi Desktop kwenye Sanduku la Virtual kutumia mwongozo huu:

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

(kumbuka: Nilikuwa na wakati mwingi kupata Adons ya Wageni iliyosanikishwa vizuri kwa maagizo hapo juu. Sikuwahi kukata na kubandika kati ya mwenyeji na mteja kufanya kazi, ambayo ingekuwa nzuri, lakini niliweza kupata azimio kusasishwa kutumia saizi yangu kamili ya ufuatiliaji. Hii ilikuwa safu ya mashimo ya sungura za google ambayo sitaandika hapa.)

Hatua ya 2: Sakinisha Python 3

Python3 inapaswa kuwa tayari imewekwa na Raspian Stretch.

Hatua ya 3: Sanidi Module ya Wand

Fuata mwongozo huu iliyoundwa na GammaGames

medium.com/@jesse007.gg/control-a-phillips …….

Kwanza ilibidi nibadilishe saraka tofauti kabla ya kuunda kano_wand repo, vinginevyo hati yangu ya chatu haikuweza kuipata. Labda inaweza kuwa imesasisha marejeleo kadhaa ya njia kwenye faili fulani mahali pengine, lakini sikuichimba.

cd / usr / mitaa / lib / python3.5 / vifurushi-daftari

clone ya git

sudo pip3 kusanikisha moosegesture ya bluu

Ilibidi nitumie Sudo kwa hizi kupata idhini sahihi. Pia ilibidi kutumia amri zifuatazo badala yake kusanikisha numpy, kwa sababu yoyote, haikuweza kupata bomba kufanya kazi. Inaweza kuwa suala lingine la njia, lakini hii ilinifanyia kazi kwa hivyo nilienda nayo:

Sudo apt-get kufunga python3-numpy

Mwishowe, ili kupata ruhusa inayofaa ya kukimbia kutoka kwa hati ya chatu nimepata amri hii.

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

Hii ndio yote inahitajika kupata hati yetu na kufanya kazi. Mwongozo wote wa GammaGames hutembea kupitia vipande kwa hatua vinavyohitajika katika hati ya chatu. Ni uharibifu mkubwa kuelewa zaidi jinsi maandishi yanavyoundwa na kile kila kitu kinafanya. Shukrani kubwa kwa GammaGames kwa kutoa nyaraka hizi. Pia inaweza kuwa na manufaa kwa kusuluhisha sehemu ya hati. Kwa mfano, kitu cha kwanza kilichoonyeshwa hufanya kazi ya skanning kwa wands na kurudisha orodha ya wands zilizogunduliwa. Uthibitishaji mzuri kwamba usanidi wako wa Bluetooth unapiga kwenye mitungi yote. Ili kufanya hivyo, unaweza kunakili nambari kutoka kwa test1_BLE_wand_detect.py inayopatikana katika repo ifuatayo:

github.com/maspieljr/SmartWand

Hatua ya 4: Sanidi SmartThings CLI

Chini ni nakala ya maagizo yaliyojumuishwa kwenye repo ya smartthings_cli kwenye github (https://github.com/rllynch/smartthings_cli).

Nimejumuisha hapa tweaks ndogo ambazo nililazimika kufanya kwenye usanidi wangu ili kila kitu kifanye kazi. Asante tena kwa rllynch kwa kutoa hii.

1) Ingia ndani na chini ya My SmartApps, unda SmartApp mpya na nambari katika groovy / app.groovy.

* Kumbuka katika hatua ya kwanza kuna kumbukumbu ya wavuti ya SmartThings. Zingatia sana akaunti yako ya smartthings iko wapi. Hii ilinichukua kwa muda kwani tovuti nyingine iliniruhusu kuingia, lakini haikuweza kupata yoyote ya vitu vyangu. Ilinibidi nitumie kiunga kifuatacho kufika kwenye akaunti yangu ya SmartThings.

(Unakaribishwa kwa masaa 2 niliyotumia kuyapanga hayo:) hii itakuwa muhimu katika hatua ya baadaye pia.)

2) Bonyeza Mipangilio ya App na chini ya OAuth, bonyeza Washa OAuth katika Smart App. Kumbuka kitambulisho cha Mteja wa OAuth na Siri ya Mteja wa OAuth. Sasisha onyesho la Mteja wa OAuth kwa Udhibiti wa SmartThings CLI. Bonyeza Sasisha.

3) Rudi kwenye My SmartApps kisha bonyeza Udhibiti wa SmartThings CLI. Bonyeza Chapisha => Kwangu.

4) Fanya jalada la smartthings_cli, unda fadhila ikiwa inavutiwa (sikufanya hivi), kisha tumia amri zifuatazo, ukibadilisha CLIENTID na CLIENTSECRET na kitambulisho na siri kutoka hatua ya 2.

Kuunganisha repo ya smartthings unaweza kutumia amri ifuatayo. Hakikisha kuwa haraka ya amri ya linux iko kwenye saraka yako ya mradi iliyoundwa wakati wa Usanidi wa Moduli ya Wand.

clone ya 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…

Ilipendekeza: