İçindekiler:
- Adım 1: Linux'u Raspberry Pi'ye kurun
- Adım 2: Python 3'ü yükleyin
- Adım 3: Değnek Modülünü Ayarlayın
- 4. Adım: SmartThings CLI'yi Ayarlayın
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Bu proje, giriş olarak Kano kodlama çubuğu ile Smartthings'i kontrol etmek için bir Python betiği elde etmektir.
Kızlarım (8 ve 12) büyük Harry Potter hayranları ve Noel için Kano Kodlama Değneğini aldılar. Kano kodlama uygulaması harika ve onunla eğleniyorlar. Kodlama kavramlarını tanıtmak için harika bir araç.
Ayrıca SmartThings, Phillips Hue, Logitech Harmony hub, vb. ile evin her yerine serpiştirilmiş bir miktar ev otomasyonumuz var. Kaçınılmaz olarak Noel Ağacı Işıklarını asa ile açmak istedikleri noktaya geldiler ve Lumos ve Nox bana. Kulağa eğlenceli bir meydan okuma gibi geldi, ben de kabul ettim.
Kritik bir öğe (Bluepy python kitaplığı Bluetooth'a bağlanmak için) yalnızca Linux platformlarında mevcut olduğundan, bir Linux işletim sistemi ile gitmek zorunda kaldı. Sonunda bunu bir Ahududu Pi'de çalıştırmayı istemek açısından zaten uygun.
Burada iki ana referans var, bunlar olmasaydı bunu asla yapamazdım.
Kano kodlama çubuğunu okumak için bir python betiği oluşturup paylaştığı için GammaGames'e teşekkürler.
github.com/GammaGames/kano-wand-demos/blob…
ve
SmartThings komut satırı arabirimi için bir python betiği oluşturup paylaştığınız için rllynch'e teşekkürler.
github.com/rllynch/smartthings_cli
Bunu sağlam tutmak için, kurulumumda çalışmasını sağlamak için ihtiyaç duyduğum herhangi bir ince ayarı yakalamak için adımların çoğunu bu Eğitilebilir Dosyaya kopyalayacağım.
İşte ihtiyacınız olacak:
- Harry Potter Kano Kodlama Kiti (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Linux Tabanlı Bir İşletim Sistemi (VirtualBox ile kurdum ve çalıştırdım, ardından bir Raspberry Pi üzerine kurdum)
- Bir Bluetooth USB adaptörü (Kensington Bluetooth 4.0 USB Adaptörü kullandım)
- İnternet Bağlantısı (RPi için önceki bir projeden aldığım bir Edimax USB WiFi adaptörü kullandım)
Adım 1: Linux'u Raspberry Pi'ye kurun
Raspberry Pi'ye bir Linux işletim sistemi kurmak için aşağıdaki bağlantıları izleyin. Raspbian Stretch'i masaüstü ve önerilen yazılımla kullandım ve Etcher ile flash yaptım.
www.raspberrypi.org/learning/software-guid…
Kurulumu tamamladıktan ve bir Linux Komut İstemi'ne sahip olduğunuzda, her şeyin güncel olduğundan emin olmak için aşağıdaki iki komutu çalıştırmak iyi bir uygulamadır.
sudo apt-get güncellemesi
sudo apt-get yükseltme
Masaüstü kullanıcı arayüzünü başlatmak için komut satırı arayüzüne aşağıdakini yazın.
sudo startx
Kurulacak bir sonraki şey, depolara ulaşabilmeniz ve daha fazla yazılım yükleyebilmeniz için bir internet bağlantısıdır. SmartThings API'sini çalıştırmak için İnternet bağlantısı da gerekli olacaktır. Bağlanmak için bu kılavuzu izleyin. Masaüstünden oldukça düz ileri. Yerleştirdiğim bir USB wifi Adaptörü kullandım.
www.raspberrypi.org/learning/software-guid…
Raspberry Pi'ye alternatif olarak, mevcut işletim sisteminizle birlikte bir Linux işletim sistemini çift önyüklemek için (ikisi arasında geçiş yapmak için yeniden başlatmanız gerektiğinden biraz acı verici) veya bir Linux işletim sistemi örneğini çalıştırmak için mevcut başka bir bilgisayarı kullanabilirsiniz. Sanal Kutu. İlk olarak bu projenin çalışmasını sağlamak için, bu kılavuzu kullanarak Debian Stretch'i Raspberry Pi Desktop ile Sanal Kutuya kurdum:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(not: Konuk Eklentilerini yukarıdaki talimatlara göre düzgün bir şekilde kurmak için çok zaman geçirdim. Ana bilgisayar ile istemci arasında kes ve yapıştır işlemi hiç olmadı, bu iyi olurdu, ancak çözünürlüğü kullanmak için güncellemeyi başardım. benim tam monitör boyutum. Bu, burada belgelendirmeyeceğim bir dizi google tavşan deliğiydi.)
Adım 2: Python 3'ü yükleyin
Python3, Raspian Stretch ile önceden kurulmuş olmalıdır.
Adım 3: Değnek Modülünü Ayarlayın
GammaGames tarafından oluşturulan bu kılavuzu izleyin
Kano_wand deposunu klonlamadan önce farklı bir dizine geçmek zorunda kaldım, aksi halde python betiğim onu bulamadı. Muhtemelen bir dosyadaki bazı yol referanslarını bir yerde güncellemiş olabilir, ama ben buna girmedim.
cd /usr/local/lib/python3.5/dist paketleri
git klonu
sudo pip3 bluepy moosegesture yükleyin
Uygun izinleri almak için bunlar için sudo kullanmak zorunda kaldım. Ayrıca, numpy'yi kurmak yerine aşağıdaki komutları kullanmak zorunda kaldı, ne sebeple olursa olsun, pip'in çalışmasını sağlayamadı. Başka bir yol sorunu olabilirdi, ancak bu benim için çalıştı, ben de onunla gittim:
sudo apt-get install python3-numpy
Son olarak, bluepy'yi python betiğinden çalıştırmak için uygun izinleri almak için bu komutu buldum.
sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Komut dosyamızı çalışır duruma getirmek için gereken tek şey bu. GammaGames kılavuzunun geri kalanı, python betiğinde gerekli olan adım adım parçaları açıklar. Komut dosyasının nasıl yapılandırıldığını ve her bir nesnenin ne yaptığını daha iyi anlamak için harika bir döküm. Bu belgeleri sağladığı için GammaGames'e çok teşekkürler. Komut dosyasının bir bölümünde sorun giderme için de yararlı olabilir. Örneğin, gösterilen ilk nesne asaları tarama ve keşfedilen asaların listesini döndürme görevini yerine getirir. Bluetooth kurulumunuzun tüm silindirlere ateş açtığına dair iyi bir doğrulama. Bunu yapmak için, aşağıdaki depoda bulunan test1_BLE_wand_detect.py kodunu kopyalayabilirsiniz:
github.com/maspieljr/SmartWand
4. Adım: SmartThings CLI'yi Ayarlayın
Aşağıda, github'daki (https://github.com/rllynch/smartthings_cli) smartthings_cli deposunda bulunan talimatların bir kopyası bulunmaktadır.
Her şeyin çalışması için kurulumumda yapmam gereken küçük değişiklikleri buraya ekledim. Bunu sağladığı için rllynch'e tekrar teşekkürler.
1) SmartApps'e giriş yapın ve My SmartApps altında, groovy/app.groovy içindeki kodla yeni bir SmartApp oluşturun.
*İlk adımda bir SmartThings web sitesine referans olduğuna dikkat edin. Smartthings hesabınızın nerede olduğuna çok dikkat edin. Diğer site giriş yapmama izin verdiğinden, ancak hiçbir şeyimi bulamadığından, bu beni bir süreliğine çıldırttı. SmartThings hesabıma ulaşmak için aşağıdaki bağlantıyı kullanmak zorunda kaldım.https://graph-na04-useast2.api.smartthings.com
(Bunu halletmek için harcadığım 2 saat için rica ederim:) bu sonraki adımda da önemli olacak.)
2) Uygulama Ayarları'na tıklayın ve OAuth altında, Akıllı Uygulamada OAuth'u Etkinleştir'e tıklayın. OAuth İstemci Kimliğini ve OAuth İstemci Sırrını not edin. OAuth İstemci Ekranını SmartThings CLI Kontrolüne güncelleyin. Güncelle'yi tıklayın.
3) My SmartApps'e geri dönün ve SmartThings CLI Control'e tıklayın. Yayınla => Benim İçin'e tıklayın.
4) smartthings_cli deposunu klonlayın, istenirse bir sanalenv oluşturun (bunu ben yapmadım), ardından aşağıdaki komutları çalıştırın, CLIENTID ve CLIENTSECRET'i 2. adımdaki ID ve secret ile değiştirin.
Smartthings deposunu klonlamak için aşağıdaki komutu kullanabilirsiniz. Linux komut isteminin, Wand Module Setup sırasında oluşturulan proje dizininizde olduğundan emin olun.
git klonu >
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…
Önerilen:
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): 9 Adım
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): Merhaba !Bu Talimatlar, motosiklet kasklarına monte edilmek üzere tasarlanmış bir HUD (Heads-Up Display) platformunu nasıl tasarladığımın ve inşa ettiğimin hikayesidir. "Haritalar" yarışması bağlamında yazılmıştır. Maalesef tamamen bitiremedim
Arduino Araba Geri Geri Park Uyarı Sistemi - Adım Adım: 4 Adım
Arduino Araba Geri Geri Park Uyarı Sistemi | Adım Adım: Bu projede Arduino UNO ve HC-SR04 Ultrasonik Sensör kullanarak basit bir Arduino Araba Geri Park Sensörü Devresi tasarlayacağım. Bu Arduino tabanlı Araba Ters uyarı sistemi, Otonom Navigasyon, Robot Mesafesi ve diğer menzil r
Adım Adım PC Oluşturma: 9 Adım
Adım Adım Bilgisayar Oluşturma: Sarf Malzemeleri: Donanım: AnakartCPU & CPU soğutucusuPSU (Güç kaynağı ünitesi)Depolama (HDD/SSD)RAMGPU (gerekli değil)CaseTools: TornavidaESD bilezik/aplikatörlü matstermal macun
Üç Hoparlör Devresi -- Adım Adım Eğitim: 3 Adım
Üç Hoparlör Devresi || Adım Adım Eğitim: Hoparlör Devresi, ortamdan alınan ses sinyallerini MIC'e güçlendirir ve bunu, güçlendirilmiş sesin üretildiği Hoparlöre gönderir. Burada, size bu Hoparlör Devresini kullanarak bu Hoparlör Devresini yapmanın üç farklı yolunu göstereceğim:
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)