Агуулгын хүснэгт:

SmartWand: 6 алхам
SmartWand: 6 алхам

Видео: SmartWand: 6 алхам

Видео: SmartWand: 6 алхам
Видео: XIAOMI MI BAND 6 - ОБЗОР И ПЕРВАЯ НАСТРОЙКА 2024, Долдугаар сарын
Anonim
SmartWand
SmartWand

Энэхүү төсөл нь Smartthings -ийг Кано кодчилдог саваагаар оруулахад зориулагдсан Python скриптийг авах явдал юм.

Миний охид (8 ба 12) Харри Поттерын том шүтэн бишрэгчид бөгөөд Христийн Мэндэлсний Баярын үеэр Кано кодлох саваа авсан. Кано кодлох програм нь дажгүй бөгөөд тэд үүнтэй хамт зугаацаж байна. Кодлох ойлголтыг нэвтрүүлэх гайхалтай хэрэгсэл.

Гэрийн автоматжуулалт нь SmartThings, Phillips Hue, Logitech Harmony hub гэх мэт бүх байшинд цацагдсан байдаг. Тэд зайлшгүй зул сарын гацуур модны гэрлийг асаахыг хүссэн хэмжээнд хүрч, Lumos, Нокс над руу. Хөгжилтэй сорилт шиг сонсогдож байсан тул би үүнийг хүлээж авлаа.

Линукс үйлдлийн системтэй ажиллах шаардлагатай болсон, учир нь чухал элемент (Bluetooth балаар холбогдох Bluepy python номын сан) нь зөвхөн Линукс платформ дээр байдаг. Эцэст нь үүнийг Raspberry Pi дээр ажиллуулахыг хүсч байгаагаас харахад тохиромжтой.

Энд хоёр үндсэн ишлэл байгаа бөгөөд үүнгүйгээр би үүнийг хэзээ ч хийж чадахгүй байсан.

Кано кодчилдог савааг унших питон скрипт үүсгэж, хуваалцсан GammaGames -т баярлалаа.

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

ба

SmartThings командын шугамын интерфэйсийн питон скриптийг үүсгэж, хуваалцсан rllynch -д баярлалаа.

github.com/rllynch/smartthings_cli

Үүнийг бүрэн бүтэн байлгахын тулд би энэ зааварчилгаанд орсон ихэнх алхмуудыг хуулж, тохиргоогоо ажиллуулахад шаардлагатай бүх тохируулгыг авах болно.

Энд танд хэрэгтэй зүйл байна:

  • Харри Поттер Кано кодлох хэрэгсэл (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
  • Линукс дээр суурилсан OS (би үүнийг VirtualBox дээр ажиллуулж, дараа нь Raspberry Pi дээр суулгасан)
  • Bluetooth USB адаптер (би Kensington Bluetooth 4.0 USB адаптер ашигласан)
  • Интернет холболт (RPi -ийн хувьд би өмнөх төслөөс авсан Edimax USB WiFi адаптер ашигласан)

Алхам 1: Raspberry Pi дээр Linux суулгаарай

Raspberry Pi дээр Linux үйлдлийн систем суулгахын тулд доорх линкүүдийг дагана уу. Би Raspbian Stretch -ийг ширээний компьютер болон санал болгож буй програм хангамжийг ашиглан Etcher -ээр асаасан.

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

Суулгаж дуусаад Linux командын мөртэй болсны дараа бүх зүйл шинэчлэгдсэн эсэхийг шалгахын тулд дараах хоёр тушаалыг ажиллуулах нь зүйтэй.

sudo apt-get update

sudo apt-get шинэчлэлт

Ширээний интерфэйсийг ажиллуулахын тулд командын шугамын интерфэйс дээр дараах зүйлийг бичнэ үү.

sudo startx

Дараагийн тохируулах зүйл бол интернет холболт бөгөөд ингэснээр та репо руу орж, нэмэлт програм суулгах боломжтой болно. SmartThings API -ийг устгахын тулд интернет холболт шаардлагатай болно. Холбогдохын тулд энэ гарын авлагыг дагана уу. Ширээний компьютер дээрээс шууд урагшаа. Би хажууд нь байсан USB wifi адаптер ашигласан.

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

Raspberry Pi -ийн оронд та одоо байгаа өөр компьютерийг ашиглан одоо байгаа OS -ийнхээ хамт Линукс OS -ийг давхар ачаалах боломжтой (энэ хоёрын хооронд шилжихийн тулд дахин ачаалах шаардлагатай болдог) эсвэл Linux OS -ийн жишээг ажиллуулж болно. VirtualBox. Энэ төслийг анх ажиллуулахын тулд би Raspberry Pi Desktop -тэй Debian Stretch -ийг энэ гарын авлагыг ашиглан Виртуал хайрцагт суулгасан.

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

(Тэмдэглэл: Дээрх зааврын дагуу Guest Addons -ийг зөв суулгаж өгөхөд надад маш их цаг хугацаа байсан. Хост болон үйлчлүүлэгчийн хооронд огтлох, буулгах ажлыг хэзээ ч хийж байгаагүй, энэ нь сайн байсан, гэхдээ би ашиглах нарийвчлалыг шинэчилж чадсан. миний дэлгэцийн бүрэн хэмжээ

Алхам 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 данс руугаа орохын тулд дараах линкийг ашиглах шаардлагатай болсон.

(Үүнийг цэгцлэхэд зарцуулсан 2 цагийн турш та бүхнийг урьж байна:) энэ нь дараагийн шатанд бас чухал байх болно.)

2) Апп тохиргоо дээр дарж, OAuth -ийн доор Smart App дээр OAuth -г идэвхжүүлэх дээр дарна уу. OAuth Client ID болон OAuth Client Secret -ийг тэмдэглэнэ үү. OAuth клиент дэлгэцийг SmartThings CLI Control болгон шинэчилнэ үү. Шинэчлэх дээр дарна уу.

3) Миний SmartApps руу буцаж очоод SmartThings CLI Control дээр дарна уу. Publish => Миний хувьд дарна уу.

4) smartthings_cli репозиторыг хуулбарлаж, хэрэв хүсвэл виртуал сүлжээ үүсгэ (би үүнийг хийгээгүй), дараа нь дараах тушаалуудыг ажиллуулж, CLIENTID болон CLIENTSECRET -ийг 2 -р алхамаас ID болон нууц үгээр соль.

Ухаалаг зүйл репо -г клон хийхийн тулд та дараах тушаалыг ашиглаж болно. Линукс командын мөр нь Wand Module Setup хийх явцад үүсгэсэн таны төслийн лавлахад байгаа эсэхийг шалгаарай.

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…

Зөвлөмж болгож буй: