İçindekiler:

SmartWand: 6 Adım
SmartWand: 6 Adım

Video: SmartWand: 6 Adım

Video: SmartWand: 6 Adım
Video: M6 Akıllı Bileklik Kurulumu Ve İncelemesi #bayindirelektronik #akıllıbileklik 2024, Temmuz
Anonim
Akıllı Değnek
Akıllı Değnek

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: