Mündəricat:
- Addım 1: Linux -u Raspberry Pi -yə quraşdırın
- Addım 2: Python 3 qurun
- Addım 3: Çubuq Modulunu qurun
- Addım 4: SmartThings CLI qurun
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Bu layihə, giriş olaraq Kano kodlaşdırma çubuğu ilə Smartthings -i idarə etmək üçün bir Python skriptini əldə etməkdir.
Qızlarım (8 və 12) böyük Harry Potter pərəstişkarlarıdır və Milad üçün Kano Kodlama Çubuğunu aldılar. Kano kodlaşdırma proqramı sərindir və onunla əylənirlər. Kodlaşdırma anlayışlarını tanıtmaq üçün əla vasitədir.
SmartThings, Phillips Hue, Logitech Harmony hub və s. İlə evin hər tərəfinə səpilən bir az ev avtomatlaşdırma sistemimiz var … İstər -istəməz Milad Ağacı İşıqlarını çubuqla yandırmaq istədikləri yerə gəldilər və Lumos kimi terminləri atmağa başladılar. Mənə yox. Əyləncəli bir problem kimi səsləndi, buna görə də götürdüm.
Kritik bir element (çubuq Bluetooth -a qoşulmaq üçün Bluepy python kitabxanası) yalnız Linux platformalarında mövcud olduğundan bir Linux OS ilə getmək məcburiyyətində qaldım. Nəhayət bunu bir Raspberry Pi üzərində işlətmək istəmək baxımından əlverişlidir.
Burada iki əsas istinad var, onsuz mən bunu heç vaxt edə bilməzdim.
Kano kodlaşdırma çubuğunu oxumaq üçün bir python skripti yaratdığınız və paylaşdığınız üçün GammaGames -ə təşəkkürlər.
github.com/GammaGames/kano-wand-demos/blob…
və
SmartThings əmr satırı interfeysi üçün bir python skriptini yaratdığınız və paylaşdığınız üçün rllynch -ə təşəkkürlər.
github.com/rllynch/smartthings_cli
Bunu pozmamaq üçün, addımlarımın çoxunu bu Təlimat kitabına kopyalayaraq quruluşumda işləməyim üçün lazım olan hər hansı bir çimdikləri çəkəcəyəm.
İşdə sizə lazım olan budur:
- Harry Potter Kano Kodlaşdırma Kiti (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Linux əsaslı bir əməliyyat sistemi (VirtualBox ilə işə saldım, sonra Raspberry Pi -də quraşdırdım)
- Bluetooth USB adapteri (Kensington Bluetooth 4.0 USB Adaptoru istifadə etdim)
- İnternet Bağlantısı (RPi üçün əvvəlki bir layihədən aldığım bir Edimax USB WiFi adapterindən istifadə etdim)
Addım 1: Linux -u Raspberry Pi -yə quraşdırın
Raspberry Pi üzərində bir Linux OS qurmaq üçün aşağıdakı bağlantıları izləyin. Raspbian Stretch -i masa üstü və tövsiyə olunan proqramla istifadə etdim və Etcher ilə parıldadım.
www.raspberrypi.org/learning/software-guid…
Quraşdırmanı başa vurduqdan və Linux Komut İstemi əldə etdikdən sonra, hər şeyin aktual olduğundan əmin olmaq üçün aşağıdakı iki əmri yerinə yetirmək yaxşı bir tətbiqdir.
sudo apt-get yeniləməsi
sudo apt-get yeniləmə
Masaüstü UI -ni işə salmaq üçün əmr satırı interfeysinə aşağıdakıları yazın.
sudo startx
Növbəti şey, İnternet bağlantısıdır ki, repo əldə edə biləsiniz və daha çox proqram quraşdıra bilərsiniz. SmartThings API -ni vurmaq üçün İnternet bağlantısı da tələb olunacaq. Bağlanmaq üçün bu təlimatı izləyin. Masaüstündən olduqca irəli. Ətrafımda yerləşdirdiyim USB wifi adapterindən istifadə etdim.
www.raspberrypi.org/learning/software-guid…
Alternativ olaraq Raspberry Pi -yə başqa bir mövcud kompüterdən istifadə edərək ya mövcud OS ilə birlikdə bir Linux OS -ni ikiqat yükləmək olar (ya da ikisi arasında keçmək üçün yenidən başlamalısınız) və ya Linux OS -in bir nümunəsini işə sala bilərsiniz. VirtualBox. Əvvəlcə bu layihəni işə salmaq üçün bu təlimatı istifadə edərək, Raspberry Pi Desktop ilə Debian Stretch'i Virtual Qutuda quraşdırdım:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(Qeyd: Yuxarıdakı təlimatlara uyğun olaraq Qonaqlar Əlavələrini düzgün bir şəkildə qurmağa vaxt tapdım. Ev sahibi ilə müştəri arasında işləməyi heç vaxt etmədim, bu yaxşı olardı, amma istifadə etmək üçün qətnaməni yeniləməyi bacardım. tam monitor ölçülərim. Bura sənəd verməyəcəyim google rabit delikləri idi.)
Addım 2: Python 3 qurun
Python3 artıq Raspian Stretch ilə quraşdırılmalıdır.
Addım 3: Çubuq Modulunu qurun
GammaGames tərəfindən yaradılan bu təlimatı izləyin
Kano_wand repo -nu klonlamadan əvvəl əvvəlcə fərqli bir qovluğa keçməli oldum, əks halda python skriptim tapa bilmədi. Yəqin ki, hər hansı bir faylda bəzi yol istinadlarını yeniləyə bilərdi, amma mən bunu araşdırmadım.
cd /usr/local/lib/python3.5/dist-packages
git klonu
sudo pip3 bluepy moosegesture qurun
Müvafiq icazələri əldə etmək üçün bunlar üçün sudo istifadə etməli oldum. Həm də numpy qurmaq üçün aşağıdakı əmrləri istifadə etməli oldum, hər hansı bir səbəbdən pip işə düşə bilmədi. Başqa bir yol problemi ola bilərdi, amma bu mənim üçün işlədi, buna görə də getdim:
sudo apt-get python3-numpy quraşdırın
Nəhayət, python skriptindən bluepy işlətmək üçün lazımi icazələri əldə etmək üçün bu əmri tapdım.
sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Skriptimizi işə salmaq üçün tələb olunanların hamısı budur. GammaGames bələdçisinin qalan hissəsi python skriptində tələb olunan addım -addım parçaları gəzir. Ssenarinin necə qurulduğunu və hər bir obyektin nə etdiyini daha yaxşı başa düşmək böyük bir bölükdür. Bu sənədi təqdim etdiyi üçün GammaGames -ə böyük təşəkkürlər. Skriptin bir hissəsinin problemlərini həll etmək üçün də faydalı ola bilər. Məsələn, göstərilən ilk obyekt çubuqlar üçün tarama və aşkar edilmiş çubuqların siyahısını qaytarmaq vəzifəsini yerinə yetirir. Bluetooth qurğunuzun bütün silindrlərə atəş açdığının yaxşı təsdiqlənməsi. Bunu etmək üçün kodu aşağıdakı repoda tapılmış test1_BLE_wand_detect.py saytından kopyalaya bilərsiniz:
github.com/maspieljr/SmartWand
Addım 4: SmartThings CLI qurun
Aşağıda github -da smartthings_cli reposuna daxil olan təlimatların bir nüsxəsi verilmişdir (https://github.com/rllynch/smartthings_cli).
Hər şeyi işə salmaq üçün quruluşumda etməli olduğum kiçik düzəlişləri bura daxil etdim. Bunu təmin etdiyi üçün rllynch -ə bir daha təşəkkür edirəm.
1) Mənim SmartApps -a daxil olun və altında groovy/app.groovy kodlu yeni bir SmartApp yaradın.
*İlk addımda SmartThings veb saytına istinad olduğunu qeyd edin. Smartthings hesabınızın harada olduğuna diqqət yetirin. Digər sayt daxil olmağım üçün icazə verdiyinə baxmayaraq, bir müddət məni yıxdı, amma heç bir şeyi tapa bilmədim. SmartThings hesabıma daxil olmaq üçün aşağıdakı linki istifadə etməli oldum.
(Bunu sıralamağa sərf etdiyim 2 saat ərzində xoş gəlmisiniz:) bu sonrakı mərhələdə də vacib olacaq.)
2) Tətbiq Ayarları və OAuth altında Ağıllı Tətbiqdə OAuthu Aktivləşdir düyməsini basın. OAuth Müştəri ID və OAuth Müştəri Sirrini qeyd edin. OAuth Müştəri Ekranını SmartThings CLI Nəzarətinə yeniləyin. Yeniləyin vurun.
3) SmartApps -a qayıdın, sonra SmartThings CLI Control düyməsini basın. Yayımla => Mənim üçün vurun.
4) smartthings_cli deposunu klonlaşdırın, istəsəniz bir virtualenv yaradın (bunu etmədim), sonra CLIENTID və CLIENTSECRET -i 2 -ci addımdakı ID və sirr ilə əvəz edərək aşağıdakı əmrləri yerinə yetirin.
Ağıllı şeylər reposunu klonlamaq üçün aşağıdakı əmrdən istifadə edə bilərsiniz. Çubuq Modulu Quraşdırması zamanı yaradılmış layihə qovluğunda linux əmr istəyinin olduğundan əmin olun.
git klon >
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…
Tövsiyə:
Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım
Arduino Avtomobil Ters Park Diqqət Sistemi | Addım-addım: Bu layihədə, Arduino UNO və HC-SR04 Ultrasonik Sensoru istifadə edərək sadə bir Arduino Car Reverse Park Sensor Dövrü dizayn edəcəyəm. Bu Arduino əsaslı Avtomobil Ters siqnal sistemi Avtonom Naviqasiya, Robot Aralığı və digər diapazonlarda istifadə edilə bilər
Addım -addım PC qurulması: 9 addım
Addım -addım PC Bina: Təchizat: Təchizat: MotherboardCPU & CPU soyuducu PSU (Enerji təchizatı vahidi) Yaddaş (HDD/SSD) RAMGPU (tələb olunmur) Kassa Alətləri: Tornavida ESD bilərzik/mattermal pasta/aplikator
Üç Hoparlör Devresi -- Addım-addım təlimat: 3 addım
Üç Hoparlör Devresi || Addım-addım Təlimat: Dinamik Dövrə, ətraf mühitdən alınan səs siqnallarını MIC-ə gücləndirir və gücləndirilmiş səsin çıxarıldığı yerdən Dinamikə göndərir.Burada bu Hoparlör Devrini düzəltməyin üç fərqli yolunu göstərəcəyəm:
Robot texnikasında bir dəst ilə addım-addım təhsil: 6 addım
Bir dəst ilə Robototexnikada Addım-addım Təhsil: Öz robotumu düzəltdikdən bir neçə ay sonra (zəhmət olmasa bunların hamısına baxın) və iki dəfə hissələri arızalandıqdan sonra bir addım geri çəkilmək və öz fikrimi yenidən düşünmək qərarına gəldim. strategiya və istiqamət. Bir neçə aylıq təcrübə bəzən çox mükafatlandırıcı idi və
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)