Мазмұны:
- 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 10:24
Бұл жоба кіріс ретінде 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…
Ұсынылған:
Arduino басқарылатын робот - екі қадам: 13 қадам (суреттермен)
Arduino басқарылатын роботты екіжақты: Мен әрқашан роботтарға қызығатынмын, әсіресе адамның іс -әрекетіне еліктеуге тырысатын. Бұл қызығушылық мені жаяу жүруге және жүгіруге еліктей алатын екіжақты робот құрастыруға және дамытуға талпындырды. Бұл нұсқаулықта мен сізге көрсетемін
Arduino Uno көмегімен акустикалық левитация Қадамдық қадам (8 қадам): 8 қадам
Акустикалық левитация Arduino Uno Қадамдық қадаммен (8-қадам): ультрадыбыстық дыбыс түрлендіргіштері L298N Dc әйелдер адаптерінің ток көзі еркек тоқ сымымен Arduino UNOBreadboard Бұл қалай жұмыс істейді: Біріншіден, сіз кодты Arduino Uno-ға жүктейсіз (бұл сандық жүйемен жабдықталған микроконтроллер) және кодты түрлендіру үшін аналогтық порттар (C ++)
Түймені іске қосатын қадам реттегіші: 4 қадам
Түймені іске қосатын қадам реттегіші:
Тікелей 4G/5G HD бейне ағыны DJI Drone -ден төмен кідірісте [3 қадам]: 3 қадам
Тікелей 4G/5G HD бейне ағыны DJI Drone-ден төмен кідірісте [3 қадам]: Келесі нұсқаулық кез-келген DJI дронынан HD сапалы бейне ағындарын алуға көмектеседі. FlytOS мобильді қосымшасы мен FlytNow веб -қосымшасының көмегімен сіз дроннан бейне ағынды бастай аласыз
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): 6 қадам (суреттермен)
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): Индуктивті зарядтау (сымсыз зарядтау немесе сымсыз зарядтау деп те аталады) - сымсыз қуат беру түрі. Ол портативті құрылғыларды электрмен қамтамасыз ету үшін электромагниттік индукцияны қолданады. Ең көп таралған қолданба - Qi сымсыз зарядтау