Мазмұны:

SmartWand: 6 қадам
SmartWand: 6 қадам

Бейне: SmartWand: 6 қадам

Бейне: SmartWand: 6 қадам
Бейне: Xiaomi Mi Band 6 — первый обзор! 2024, Шілде
Anonim
SmartWand
SmartWand

Бұл жоба кіріс ретінде Kano кодтау таяқшасымен Smartthings басқару үшін Python сценарийін алу.

Менің қыздарым (8 және 12) Гарри Поттердің үлкен жанкүйерлері және Рождествоға арналған Kano кодтау таяқшасын алды. Kano кодтау бағдарламасы керемет және олар онымен көңілді. Кодтау ұғымдарын енгізудің тамаша құралы.

Бізде үйді автоматтандыру бар, ол SmartThings, Phillips Hue, Logitech Harmony хабымен және т. Жоқ маған. Бұл қызықты сынақ сияқты естілді, сондықтан мен оны қабылдадым.

Linux ОЖ -мен жұмыс істеу керек болды, өйткені маңызды элемент (Bluetooth таяқшасына қосылуға арналған Bluepy python кітапханасы) тек Linux платформаларында қол жетімді. Ақыр соңында мұны Raspberry Pi -де іске қосқыңыз келетіндіктен ыңғайлы.

Мұнда екі негізгі сілтеме бар, онсыз мен мұны ешқашан жасай алмас едім.

GammaGames -ке Kano кодтау таяқшасын оқу үшін питон сценарийін құрғаны және бөліскені үшін рахмет.

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

және

Rllynch -ке SmartThings пәрмен жолы интерфейсі үшін питон сценарийін құрғаны және бөліскені үшін рахмет.

github.com/rllynch/smartthings_cli

Бұл өзгеріссіз қалу үшін, мен көптеген нұсқауларды осы нұсқаулыққа көшіріп, оны менің қондырғымда жұмыс істеуі үшін қажет кез келген түзетулерді түсіремін.

Міне сізге қажет:

  • Гарри Поттер Кано кодтау жинағы (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
  • Linux негізіндегі ОЖ (менде VirtualBox бар, содан кейін Raspberry Pi -де орнатылған)
  • Bluetooth USB адаптері (мен Kensington Bluetooth 4.0 USB адаптерін қолдандым)
  • Интернетке қосылу (RPi үшін мен бұрынғы жобада болған Edimax USB WiFi WiFi адаптерін қолдандым)

1 -қадам: Raspberry Pi -ге Linux орнатыңыз

Raspberry Pi -ге Linux ОЖ орнату үшін төмендегі сілтемелерді орындаңыз. Мен Raspbian Stretch -ті жұмыс үстелі мен ұсынылған бағдарламалық қамтамасыз етуде қолдандым және Etcher -де жыпылықтадым.

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

Орнатуды аяқтағаннан кейін және Linux пәрмен жолына ие болғаннан кейін, бәрі жаңартылғанына көз жеткізу үшін келесі екі пәрменді іске қосқан дұрыс.

sudo apt-get жаңартуы

sudo apt-get жаңарту

Жұмыс үстелінің интерфейсін іске қосу үшін пәрмен жолы интерфейсінде келесіні теріңіз.

sudo startx

Келесі кезекте Интернетке қосылу қажет, осылайша сіз репозиторийлерге қол жеткізе аласыз және басқа бағдарламалық жасақтаманы орната аласыз. SmartThings API интерфейсін бұзу үшін Интернет байланысы қажет болады. Қосылу үшін осы нұсқаулықты орындаңыз. Жұмыс үстелінен тікелей алға. Мен өзім орналастырған USB Wi -Fi адаптерін қолдандым.

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

Raspberry Pi -ге балама ретінде сіз басқа ОЖ -ді қолдана аласыз немесе Linux ОЖ -ні қолданыстағы ОЖ -мен қосарланған жүктеу үшін (ауыртпалық, себебі екеуінің арасында ауысу үшін қайта жүктеу керек) немесе Linux ОЖ данасын іске қосуға болады. VirtualBox. Алдымен бұл жобаны бастапқыда іске қосу үшін мен Raspberry Pi жұмыс үстелі бар Debian Stretch бағдарламасын осы нұсқаулықты қолданып виртуалды қорапқа орнаттым:

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

(Ескерту: Менде қонақтардың қондырмаларын жоғарыда көрсетілген нұсқауларға сәйкес дұрыс орнатуға уақыт болды. Мен ешқашан хост пен клиент арасында жұмыс жасай алмадым, бұл жақсы болар еді, бірақ мен пайдалану үшін ажыратымдылықты жаңарттым. менің монитордың толық өлшемі. Бұл Google -дегі саңылаулардың сериясы болды, мен мұнда құжаттамаймын.)

2 -қадам: Python 3 орнатыңыз

Python3 Raspian Stretch көмегімен орнатылуы керек.

3 -қадам: таяқша модулін орнату

GammaGames жасаған осы нұсқаулықты орындаңыз

Мен kano_wand репосын клондау алдында алдымен басқа каталогқа ауысуға тура келді, әйтпесе менің питон сценарийі оны таба алмады. Мүмкін, кейбір файлдағы кейбір жол сілтемелерін жаңартуға болар еді, бірақ мен бұған мән бермедім.

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

git clone

sudo pip3 bluepy moosegesture орнатыңыз

Тиісті рұқсаттарды алу үшін олар үшін sudo пайдалану керек болды. Сондай -ақ, numpy орнату үшін келесі пәрмендерді қолдануға тура келді, қандай да бір себептермен пип жұмыс істей алмады. Басқа жол мәселесі болуы мүмкін, бірақ бұл мен үшін жұмыс істеді, сондықтан мен онымен жүрдім:

sudo apt-get python3-numpy орнатыңыз

Ақырында, python сценарийінен жоспарды іске қосу үшін тиісті рұқсаттарды алу үшін мен бұл пәрменді таптым.

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

Бұл біздің сценарийді іске қосу үшін қажет. GammaGames нұсқаулығының қалған бөлігі питон сценарийінде қажетті қадамдық қадамдарды қарастырады. Бұл сценарийдің қалай құрылымдалғанын және әрбір объектінің не істеп жатқанын одан әрі түсіну үшін керемет бөлім. Бұл құжатты ұсынғаны үшін GammaGames -ке үлкен рахмет. Сондай -ақ, сценарий бөлімінің ақаулықтарын жою үшін пайдалы болуы мүмкін. Мысалы, бірінші көрсетілген объект таяқшаларды сканерлеу және табылған таяқшалар тізімін қайтару тапсырмасын орындайды. Bluetooth қондырғысы барлық цилиндрлерде жұмыс істейтінін жақсы тексеру. Ол үшін келесі репода табылған test1_BLE_wand_detect.py кодын көшіруге болады:

github.com/maspieljr/SmartWand

4 -қадам: SmartThings CLI орнату

Төменде github бойынша smartthings_cli репоға енгізілген нұсқаулықтардың көшірмесі берілген (https://github.com/rllynch/smartthings_cli).

Мен осында бәрін реттеп алу үшін баптауларымды жасауым керек болатын шағын түзетулерді қостым. Мұны қамтамасыз еткені үшін rllynch -ке тағы да рахмет.

1) Менің SmartApps бағдарламасына кіріңіз және оның астында groovy/app.groovy ішіндегі коды бар жаңа SmartApp жасаңыз.

*Бірінші қадамда SmartThings веб -сайтына сілтеме бар екенін ескеріңіз. Smartthings есептік жазбаңыздың қай жерде екеніне мұқият назар аударыңыз. Бұл мені біраз уақытқа қалдырды, себебі басқа сайт маған кіруге рұқсат етті, бірақ менің еш нәрсемді таба алмады. Мен SmartThings есептік жазбасына кіру үшін келесі сілтемені пайдалануым керек болды.

(Мен оны сұрыптауға жұмсалған 2 сағатқа қош келдіңіз:) бұл кейінгі кезеңде де маңызды болады.)

2) Қолданба параметрлері түймесін басыңыз және OAuth астында Smart App бағдарламасында OAuth қосуды басыңыз. OAuth клиент идентификаторы мен OAuth клиент құпиясына назар аударыңыз. OAuth клиенттік дисплейін SmartThings CLI басқару элементіне жаңартыңыз. Жаңарту түймешігін басыңыз.

3) Менің SmartApps бағдарламасына оралыңыз, содан кейін SmartThings CLI Control түймесін басыңыз. Жариялау => Мен үшін түймесін басыңыз.

4) smartthings_cli репозиторийін клондау, қаласаңыз виртуалды жүйені құру (мен мұны істемедім), содан кейін келесі пәрмендерді іске қосыңыз, CLIENTID мен CLIENTSECRET идентификаторы мен құпиясын 2 -қадамнан ауыстырыңыз.

Smartthings репо клондау үшін келесі пәрменді қолдануға болады. Линукс пәрмен жолы таяқша модулін орнату кезінде жасалған жоба каталогында екеніне көз жеткізіңіз.

git clone >

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…

Ұсынылған: