Daftar Isi:
- Langkah 1: Instal Linux di Raspberry Pi
- Langkah 2: Instal 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]. Terakhir diubah: 2024-01-30 09:55
Proyek ini adalah untuk mendapatkan skrip Python untuk mengontrol Smartthings dengan tongkat pengkodean Kano sebagai input.
Anak perempuan saya (8 dan 12) adalah penggemar berat Harry Potter dan mendapatkan Tongkat Pengkodean Kano untuk Natal. Aplikasi pengkodean Kano keren dan mereka bersenang-senang dengannya. Alat hebat untuk memperkenalkan konsep pengkodean.
Kami juga memiliki sedikit otomatisasi rumah yang ditaburkan di seluruh rumah dengan SmartThings, Phillips Hue, hub Logitech Harmony, dll… Mereka pasti sampai pada titik di mana mereka ingin menyalakan Lampu Pohon Natal dengan tongkat dan mulai melemparkan istilah seperti Lumos dan Nox padaku. Kedengarannya seperti tantangan yang menyenangkan jadi saya menerimanya.
Harus menggunakan OS Linux karena elemen penting (pustaka python Bluepy untuk menghubungkan ke tongkat Bluetooth) hanya tersedia di platform Linux. Nyaman pula dari sudut pandang akhirnya ingin menjalankan ini di Raspberry Pi.
Ada dua referensi utama di sini, tanpanya, saya tidak akan pernah bisa melakukan ini.
Terima kasih kepada GammaGames karena telah membuat dan membagikan skrip python untuk membaca tongkat pengkodean Kano.
github.com/GammaGames/kano-wand-demos/blob…
dan
Terima kasih kepada rllynch karena telah membuat dan membagikan skrip python untuk antarmuka baris perintah SmartThings.
github.com/rllynch/smartthings_cli
Untuk menjaga ini tetap utuh, saya akan menyalin sebagian besar langkah ke Instructable ini untuk menangkap tweak apa pun yang saya perlukan untuk membuatnya berfungsi pada pengaturan saya.
Inilah yang Anda perlukan:
- Kit Coding Harry Potter Kano (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- OS Berbasis Linux (Saya menjalankannya dengan VirtualBox, lalu menginstalnya di Raspberry Pi)
- Adaptor USB Bluetooth (Saya menggunakan Adaptor USB Kensington Bluetooth 4.0)
- Koneksi Internet (Untuk RPi, saya menggunakan adaptor WiFi USB Edimax yang saya miliki dari proyek sebelumnya)
Langkah 1: Instal Linux di Raspberry Pi
Ikuti tautan di bawah ini untuk menginstal OS Linux ke Raspberry Pi. Saya menggunakan Raspbian Stretch dengan desktop dan perangkat lunak yang direkomendasikan dan mem-flash dengan Etcher.
www.raspberrypi.org/learning/software-guid…
Setelah Anda menyelesaikan penginstalan dan memiliki Prompt Perintah Linux, praktik yang baik adalah menjalankan dua perintah berikut untuk memastikan semuanya mutakhir.
sudo apt-get update
sudo apt-get upgrade
Ketik yang berikut di antarmuka baris perintah untuk meluncurkan UI desktop.
sudo startx
Hal berikutnya yang harus disiapkan adalah koneksi internet sehingga Anda bisa mendapatkan repo dan semacamnya untuk menginstal perangkat lunak lebih lanjut. Koneksi internet juga akan diperlukan untuk mengaktifkan SmartThings API. Ikuti panduan ini untuk terhubung. Cukup lurus ke depan dari desktop. Saya menggunakan Adaptor wifi USB yang saya miliki.
www.raspberrypi.org/learning/software-guid…
Sebagai alternatif untuk Raspberry Pi, Anda dapat menggunakan komputer lain yang ada untuk melakukan dual boot OS Linux bersama dengan OS yang ada (agak menyusahkan karena Anda harus mem-boot ulang untuk beralih di antara keduanya) atau menjalankan instance OS Linux pada a Kotak Virtual. Untuk pertama kali membuat proyek ini berfungsi, saya menginstal Debian Stretch dengan Raspberry Pi Desktop di Virtual Box menggunakan panduan ini:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(catatan: Saya memiliki banyak waktu untuk menginstal Guest Addons dengan benar sesuai instruksi di atas. Tidak pernah membuat cut and paste antara Host dan klien berfungsi, yang pasti menyenangkan, tetapi saya berhasil memperbarui resolusi untuk digunakan ukuran monitor penuh saya. Ini adalah serangkaian lubang google rabit yang tidak akan saya dokumentasikan di sini.)
Langkah 2: Instal Python 3
Python3 seharusnya sudah diinstal dengan Raspian Stretch.
Langkah 3: Siapkan Modul Tongkat
Ikuti panduan ini dibuat oleh GammaGames
Saya pertama-tama harus mengubah ke direktori yang berbeda sebelum mengkloning repo kano_wand, jika tidak, skrip python saya tidak dapat menemukannya. Mungkin bisa memperbarui beberapa referensi jalur di beberapa file di suatu tempat, tetapi saya tidak menggalinya.
cd /usr/local/lib/python3.5/dist-packages
git clone
sudo pip3 instal bluepy moosegesture
Harus menggunakan Sudo untuk mendapatkan izin yang tepat. Juga harus menggunakan perintah berikut untuk menginstal numpy, untuk alasan apa pun, tidak dapat membuat pip berfungsi. Mungkin ada masalah jalur lain, tetapi ini berhasil bagi saya, jadi saya melakukannya:
sudo apt-get install python3-numpy
Terakhir, untuk mendapatkan izin yang tepat untuk menjalankan bluepy dari skrip python saya menemukan 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 menjalankan dan menjalankan skrip kami. Panduan GammaGames lainnya menjelaskan langkah demi langkah yang diperlukan dalam skrip python. Ini adalah perincian yang bagus untuk lebih memahami bagaimana skrip disusun dan apa yang dilakukan setiap objek. Terima kasih banyak kepada GammaGames karena telah menyediakan dokumentasi ini. Juga dapat berguna untuk memecahkan masalah bagian skrip. Misalnya, objek pertama yang ditampilkan melakukan tugas memindai tongkat dan mengembalikan daftar tongkat yang ditemukan. Verifikasi bagus bahwa pengaturan bluetooth Anda aktif di semua silinder. Untuk melakukan ini, Anda dapat menyalin kode dari test1_BLE_wand_detect.py yang ditemukan di repo berikut:
github.com/maspieljr/SmartWand
Langkah 4: Siapkan SmartThings CLI
Di bawah ini adalah salinan instruksi yang disertakan dalam repo smartthings_cli di github (https://github.com/rllynch/smartthings_cli).
Saya telah menyertakan di sini tweak kecil yang harus saya buat pada pengaturan saya agar semuanya berfungsi. Sekali lagi terima kasih kepada rllynch karena telah menyediakan ini.
1) Masuk ke dan di bawah My SmartApps, buat SmartApp baru dengan kode di groovy/app.groovy.
*Perhatikan pada langkah pertama ada referensi ke situs web SmartThings. Perhatikan baik-baik di mana akun smartthings Anda berada. Ini membuat saya tersandung untuk sementara waktu karena situs lain mengizinkan saya untuk masuk, tetapi tidak dapat menemukan barang-barang saya. Saya harus menggunakan tautan berikut untuk membuka akun SmartThings saya.
(Terima kasih atas 2 jam yang saya habiskan untuk menyelesaikannya:) ini juga akan penting pada langkah selanjutnya.)
2) Klik Pengaturan Aplikasi dan di bawah OAuth, klik Aktifkan OAuth di Aplikasi Cerdas. Catat ID Klien OAuth dan Rahasia Klien OAuth. Perbarui Tampilan Klien OAuth ke Kontrol CLI SmartThings. Klik Perbarui.
3) Kembali ke My SmartApps lalu klik SmartThings CLI Control. Klik Terbitkan => Untuk Saya.
4) Kloning repositori smartthings_cli, buat virtualenv jika diinginkan (saya tidak melakukan ini), lalu jalankan perintah berikut, ganti CLIENTID dan CLIENTSECRET dengan ID dan rahasia dari langkah 2.
Untuk mengkloning repo smartthings Anda dapat menggunakan perintah berikut. Pastikan command prompt linux ada di direktori proyek Anda yang dibuat selama Wand Module Setup.
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…
Direkomendasikan:
Sistem Peringatan Parkir Terbalik Mobil Arduino - Langkah demi Langkah: 4 Langkah
Sistem Peringatan Parkir Mundur Mobil Arduino | Langkah demi Langkah: Pada proyek kali ini, saya akan merancang Rangkaian Sensor Parkir Mundur Mobil Arduino sederhana menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem peringatan mundur mobil berbasis Arduino ini dapat digunakan untuk Navigasi Otonom, Jarak Robot, dan r
Langkah demi Langkah Membangun PC: 9 Langkah
Langkah demi Langkah Membangun PC: Perlengkapan: Perangkat Keras: MotherboardCPU & Pendingin CPUPSU (Unit catu daya)Penyimpanan (HDD/SSD)RAMGPU (tidak diperlukan)Kasing Alat: Obeng Gelang ESD/pasta matstermal dengan aplikator
Tiga Sirkuit Loudspeaker -- Tutorial Langkah-demi-Langkah: 3 Langkah
Tiga Sirkuit Loudspeaker || Tutorial Langkah-demi-Langkah: Sirkuit Loudspeaker memperkuat sinyal audio yang diterima dari lingkungan ke MIC dan mengirimkannya ke Speaker dari mana audio yang diperkuat diproduksi. Di sini, saya akan menunjukkan kepada Anda tiga cara berbeda untuk membuat Sirkuit Loudspeaker ini menggunakan:
Pendidikan Langkah demi Langkah dalam Robotika Dengan Kit: 6 Langkah
Pendidikan Selangkah demi Selangkah dalam Robotika Dengan Kit: Setelah beberapa bulan membuat robot saya sendiri (silakan lihat semua ini), dan setelah dua kali mengalami bagian yang gagal, saya memutuskan untuk mengambil langkah mundur dan memikirkan kembali strategi dan arahan. Pengalaman beberapa bulan terkadang sangat bermanfaat, dan
Levitasi Akustik Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): 8 Langkah
Akustik Levitation Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): transduser suara ultrasonik L298N Dc female adapter power supply dengan pin dc laki-laki Arduino UNOBreadboardCara kerjanya: Pertama, Anda mengunggah kode ke Arduino Uno (ini adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk mengonversi kode (C++)