Агуулгын хүснэгт:
- Алхам 1: Raspberry Pi дээр Linux суулгаарай
- Алхам 2: Python 3 -ийг суулгана уу
- Алхам 3: Саваа модулийг тохируулна уу
- Алхам 4: SmartThings CLI -ийг тохируулна уу
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Видео: SmartWand: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Энэхүү төсөл нь 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…
Зөвлөмж болгож буй:
Ухаалаг мотоциклийн HUD прототип (алхам алхмаар навигаци хийх гэх мэт): 9 алхам
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт): Сайн байна уу! Энэхүү зааварчилгаа нь миний мотоциклийн дуулга дээр суурилуулах зориулалттай HUD (Heads-Up Display) платформыг хэрхэн бүтээж, бүтээсэн тухай түүх юм. Үүнийг " газрын зураг " уралдааны хүрээнд бичсэн болно. Харамсалтай нь би үүнийг бүрэн дуусгаж чадаагүй
Arduino машины урвуу зогсоолын дохиоллын систем - Алхам алхамаар: 4 алхам
Arduino машины урвуу зогсоолын дохиоллын систем | Алхам алхамаар: Энэ төсөлд би Arduino UNO болон HC-SR04 хэт авианы мэдрэгч ашиглан Arduino автомашины урвуу зогсоолын мэдрэгчийн энгийн хэлхээг зохион бүтээнэ. Энэхүү Arduino дээр суурилсан Автомашины Урвуу дохиоллын системийг бие даасан навигаци, роботын хүрээ болон бусад хүрээний зориулалтаар ашиглаж болно
Алхам алхамаар PC -ийн барилга: 9 алхам
Алхам алхамаар PC барилга: хангамж: хангамж: техник хангамж: MotherboardCPU & CPU хөргөгч PSU (Цахилгаан хангамжийн хэсэг) Хадгалалт (HDD/SSD) RAMGPU (шаардлагагүй) Кейс Хэрэгсэл: Халив ESD бугуйвч/матстермал оо
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
DIY Arduino робот гар, Алхам алхам: 9 алхам
DIY Arduino робот гар, алхам алхмаар: Эдгээр заавар нь танд робот гарыг хэрхэн яаж хийхийг зааж өгөх болно