Isi kandungan:
- Langkah 1: Pasang Linux pada Raspberry Pi
- Langkah 2: Pasang Python 3
- Langkah 3: Siapkan Modul Tongkat
- Langkah 4: Siapkan SmartThings CLI
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Projek ini adalah untuk mendapatkan skrip Python untuk mengawal Smartthings dengan tongkat pengekodan Kano sebagai input.
Anak perempuan saya (8 dan 12) adalah peminat Harry Potter yang hebat dan mendapat Kano Coding Wand untuk Krismas. Aplikasi pengekodan Kano keren dan mereka bersenang-senang dengannya. Alat yang hebat untuk memperkenalkan konsep pengekodan.
Kami juga mempunyai sedikit automasi rumah yang ditaburkan di seluruh rumah dengan SmartThings, Phillips Hue, hab Logitech Harmony, dan lain-lain … Mereka pasti sampai ke titik di mana mereka mahu menyalakan Lampu Pokok Krismas dengan tongkat sihir dan mula membuang istilah seperti Lumos dan Nox pada saya. Kedengarannya seperti cabaran yang menyeronokkan, jadi saya meneruskannya.
Perlu menggunakan OS Linux kerana elemen kritikal (perpustakaan Bluepy python untuk menyambung ke tongkat Bluetooth) hanya tersedia di platform Linux. Nyaman pula dari sudut pandang akhirnya mahu menjalankannya pada Raspberry Pi.
Terdapat dua rujukan utama di sini, tanpa itu, saya tidak akan pernah dapat melakukan ini.
Terima kasih kepada GammaGames kerana membuat dan berkongsi skrip python kerana membaca tongkat pengekodan Kano.
github.com/GammaGames/kano-wand-demos/blob…
dan
Terima kasih kepada rllynch kerana membuat dan berkongsi skrip python untuk antara muka baris arahan SmartThings.
github.com/rllynch/smartthings_cli
Untuk memastikan ini tetap utuh, saya akan menyalin sebahagian besar langkah ke Instruksional ini untuk menangkap apa-apa tweak yang saya perlukan untuk membuatnya berfungsi pada persediaan saya.
Inilah yang anda perlukan:
- Kit Pengekodan Harry Potter Kano (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- OS Berasaskan Linux (saya menggunakan dan menjalankan dengan VirtualBox, kemudian dipasang pada Raspberry Pi)
- Penyesuai USB Bluetooth (Saya menggunakan Penyesuai USB Kensington Bluetooth 4.0)
- Sambungan Internet (Untuk RPi, saya menggunakan penyesuai WiFi USB Edimax yang saya miliki dari projek sebelumnya)
Langkah 1: Pasang Linux pada Raspberry Pi
Ikuti pautan di bawah untuk memasang OS Linux ke Raspberry Pi. Saya menggunakan Raspbian Stretch dengan desktop dan perisian yang disyorkan dan menggunakan Etcher.
www.raspberrypi.org/learning/software-guid…
Setelah anda menyelesaikan pemasangan dan mempunyai Prompt Perintah Linux, adalah amalan yang baik untuk menjalankan dua arahan berikut untuk memastikan semuanya terkini.
sudo apt-get kemas kini
sudo apt-get peningkatan
Taipkan yang berikut di antara muka baris perintah untuk melancarkan UI desktop.
sudo startx
Perkara seterusnya yang perlu disediakan ialah sambungan internet supaya anda dapat ke repos dan sebagainya untuk memasang perisian lebih lanjut. Sambungan internet juga diperlukan untuk mencapai SmartThings API. Ikuti panduan ini untuk berhubung. Cukup lurus ke depan dari desktop. Saya menggunakan Adaptor wifi USB yang saya gunakan.
www.raspberrypi.org/learning/software-guid…
Sebagai alternatif kepada Raspberry Pi, anda boleh menggunakan komputer lain yang ada untuk melakukan boot dual OS Linux bersama dengan OS anda yang ada (agak menyakitkan kerana anda perlu reboot untuk beralih di antara keduanya) atau menjalankan contoh OS Linux pada Kotak Maya. Untuk memulakan projek ini pada mulanya, saya memasang Debian Stretch dengan Raspberry Pi Desktop dalam Kotak Maya menggunakan panduan ini:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(nota: Saya mempunyai waktu untuk membuat Guest Addons dipasang dengan betul mengikut arahan di atas. Tidak pernah memotong dan tampal antara host dan klien untuk berfungsi, yang pasti bagus, tetapi saya berjaya mendapatkan resolusi yang dikemas kini untuk digunakan ukuran monitor penuh saya. Ini adalah rangkaian lubang rabit google yang tidak akan saya dokumentasikan di sini.)
Langkah 2: Pasang Python 3
Python3 semestinya sudah dipasang dengan Raspian Stretch.
Langkah 3: Siapkan Modul Tongkat
Ikuti panduan ini yang dibuat oleh GammaGames
Saya mula-mula terpaksa menukar ke direktori lain sebelum mengklon kano_wand repo, jika tidak, skrip python saya tidak dapat mencarinya. Mungkin boleh mengemas kini sebilangan rujukan jalan dalam beberapa fail di suatu tempat, tetapi saya tidak mencarinya.
cd /usr/local/lib/python3.5/dist-pakej
klon git
sudo pip3 memasang moosegesture bluepy
Harus menggunakan sudo untuk ini untuk mendapatkan kebenaran yang betul. Juga harus menggunakan perintah berikut sebagai ganti untuk memasang numpy, dengan alasan apa pun, tidak dapat berfungsi. Mungkin ada masalah jalan lain, tetapi ini berjaya bagi saya, jadi saya meneruskannya:
sudo apt-get install python3-numpy
Terakhir, untuk mendapatkan kebenaran yang betul untuk menjalankan bluepy dari skrip python, saya dapati perintah ini.
sudo setcap 'cap_net_raw, cap_net_admin + eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Ini semua yang diperlukan untuk menghidupkan skrip kami. Panduan GammaGames selebihnya berjalan melalui langkah demi langkah yang diperlukan dalam skrip python. Ini adalah pecahan yang baik untuk lebih memahami bagaimana skrip disusun dan apa yang dilakukan oleh setiap objek. Terima kasih banyak kepada GammaGames kerana menyediakan dokumentasi ini. Juga berguna untuk menyelesaikan masalah bahagian skrip. Sebagai contoh, objek pertama yang ditunjukkan menjalankan tugas mengimbas tongkat dan mengembalikan senarai tongkat yang ditemui. Pengesahan yang baik bahawa penyediaan bluetooth anda menyala pada semua silinder. Untuk melakukan ini, anda boleh menyalin kod dari test1_BLE_wand_detect.py yang terdapat di repo berikut:
github.com/maspieljr/SmartWand
Langkah 4: Siapkan SmartThings CLI
Berikut adalah salinan arahan yang disertakan dalam repo smartthings_cli di github (https://github.com/rllynch/smartthings_cli).
Saya telah memasukkan sedikit perubahan yang harus saya buat pada persediaan saya agar semuanya berfungsi. Terima kasih sekali lagi kepada rllynch kerana menyediakan ini.
1) Log masuk dan di bawah My SmartApps, buat SmartApp baru dengan kod di groovy / app.groovy.
* Perhatikan pada langkah pertama terdapat rujukan ke laman web SmartThings. Perhatikan di mana akaun pintar anda berada. Ini membuat saya tersekat sebentar kerana laman web lain membenarkan saya masuk, tetapi tidak dapat mencari barang saya. Saya terpaksa menggunakan pautan berikut untuk masuk ke akaun SmartThings saya.
(Anda dialu-alukan selama 2 jam yang saya habiskan untuk menyelesaikannya:) ini akan menjadi penting juga.
2) Klik Tetapan Aplikasi dan di bawah OAuth, klik Aktifkan OAuth di Aplikasi Pintar. Catat ID Pelanggan OAuth dan Rahsia Pelanggan OAuth. Kemas kini Paparan Pelanggan OAuth ke SmartThings CLI Control. Klik Kemas kini.
3) Kembali ke SmartApps Saya kemudian klik pada SmartThings CLI Control. Klik Terbitkan => Untuk Saya.
4) Klon repositori smartthings_cli, buat virtualenv jika dikehendaki (saya tidak melakukan ini), kemudian jalankan arahan berikut, ganti CLIENTID dan CLIENTSECRET dengan ID dan rahsia dari langkah 2.
Untuk mengklon repo smartthings anda boleh menggunakan arahan berikut. Pastikan prompt arahan linux ada di direktori projek anda yang dibuat semasa Wand Module Setup.
klon git >
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…
Disyorkan:
Sistem Makluman Tempat Letak Balik Kereta Arduino - Langkah demi Langkah: 4 Langkah
Sistem Makluman Tempat Letak Balik Kereta Arduino | Langkah demi Langkah: Dalam projek ini, saya akan merancang Litar Sensor Tempat Letak Kereta Berbalik Arduino yang ringkas menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem amaran Car Reverse berasaskan Arduino ini dapat digunakan untuk Navigasi Autonomi, Robot Ranging dan rangkaian lain
Langkah demi Langkah Pembinaan PC: 9 Langkah
Langkah demi Langkah Pembinaan PC: Persediaan: Perkakasan: MotherboardCPU & CPU cooler PSU (Unit bekalan kuasa) Penyimpanan (HDD / SSD) RAMGPU (tidak diperlukan) Alat kes: Pemutar skru Gelang ESD / tampal matsthermal dengan aplikator
Tiga Litar Pembesar Suara -- Tutorial Langkah demi Langkah: 3 Langkah
Tiga Litar Pembesar Suara || Tutorial Langkah-demi-Langkah: Loudspeaker Circuit menguatkan isyarat audio yang diterima dari persekitaran ke MIC dan menghantarnya ke Speaker dari tempat audio diperkuat dihasilkan. Di sini, saya akan menunjukkan kepada anda tiga cara berbeza untuk membuat Loudspeaker Circuit ini menggunakan:
Pendidikan Langkah demi Langkah dalam Robotik Dengan Kit: 6 Langkah
Pendidikan Langkah-demi-Langkah dalam Robotik Dengan Kit: Setelah beberapa bulan membina robot saya sendiri (sila rujuk semua ini), dan setelah dua kali bahagian gagal, saya memutuskan untuk mengambil langkah mundur dan memikirkan semula strategi dan arahan. Pengalaman selama beberapa bulan kadang-kadang sangat bermanfaat, dan
Pengangkatan Akustik Dengan Arduino Uno Langkah demi Langkah (8-langkah): 8 Langkah
Acoustic Levitation With Arduino Uno Step-by Step (8-step): transduser suara ultrasonik L298N Dc power adaptor wanita dengan pin dc lelaki Arduino UNOBreadboardBagaimana ini berfungsi: Pertama, anda memuat naik kod ke Arduino Uno (ia adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk menukar kod (C ++)