Mục lục:
- Bước 1: Cài đặt Linux trên Raspberry Pi
- Bước 2: Cài đặt Python 3
- Bước 3: Thiết lập mô-đun Wand
- Bước 4: Thiết lập SmartThings CLI
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Dự án này là để có được một tập lệnh Python để điều khiển Smartthings với cây đũa phép mã hóa Kano làm đầu vào.
Các con gái của tôi (8 và 12 tuổi) rất hâm mộ Harry Potter và đã nhận được Đũa phép mã hóa Kano vào dịp Giáng sinh. Ứng dụng mã hóa Kano rất thú vị và họ rất vui với nó. Công cụ tuyệt vời để giới thiệu các khái niệm mã hóa.
Chúng tôi cũng có một chút tự động hóa gia đình được rải khắp nhà với SmartThings, Phillips Hue, trung tâm Logitech Harmony, v.v. Nox tại tôi. Nghe có vẻ như một thử thách thú vị nên tôi đã tham gia.
Phải đi cùng với hệ điều hành Linux vì một yếu tố quan trọng (thư viện trăn Bluepy để kết nối với Bluetooth đũa phép) chỉ khả dụng trên nền tảng Linux. Dù sao cũng thuận tiện từ quan điểm cuối cùng muốn chạy điều này trên Raspberry Pi.
Có hai tài liệu tham khảo chính ở đây, nếu không có tài liệu này, tôi sẽ không bao giờ có thể làm được điều này.
Cảm ơn GammaGames đã tạo và chia sẻ tập lệnh python để đọc đũa phép mã hóa Kano.
github.com/GammaGames/kano-wand-demos/blob…
và
Cảm ơn rllynch đã tạo và chia sẻ tập lệnh python cho giao diện dòng lệnh SmartThings.
github.com/rllynch/smartthings_cli
Để giữ nguyên điều này, tôi sẽ sao chép hầu hết các bước đối với Tài liệu hướng dẫn này để nắm bắt bất kỳ chỉnh sửa nào tôi cần để làm cho nó hoạt động trên thiết lập của tôi.
Đây là những gì bạn cần:
- Bộ mã hóa Harry Potter Kano (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Hệ điều hành dựa trên Linux (tôi đã thiết lập và chạy với VirtualBox, sau đó được cài đặt trên Raspberry Pi)
- Bộ điều hợp USB Bluetooth (Tôi đã sử dụng Bộ điều hợp USB 4.0 Kensington Bluetooth)
- Kết nối Internet (Đối với RPi, tôi đã sử dụng bộ điều hợp Wi-Fi USB Edimax mà tôi có từ một dự án trước đó)
Bước 1: Cài đặt Linux trên Raspberry Pi
Làm theo các liên kết bên dưới để cài đặt HĐH Linux vào Raspberry Pi. Tôi đã sử dụng Raspbian Stretch với máy tính để bàn và phần mềm được đề xuất và flash bằng Etcher.
www.raspberrypi.org/learning/software-guid…
Khi bạn đã hoàn tất cài đặt và có Dấu nhắc lệnh của Linux, bạn nên chạy hai lệnh sau để đảm bảo mọi thứ đều được cập nhật.
sudo apt-get cập nhật
sudo apt-get nâng cấp
Nhập dòng lệnh sau vào giao diện dòng lệnh để khởi chạy giao diện người dùng trên máy tính để bàn.
sudo startx
Điều tiếp theo cần thiết lập là kết nối internet để bạn có thể truy cập các kho lưu trữ và cài đặt phần mềm khác. Kết nối Internet cũng sẽ được yêu cầu để đạt được API SmartThings. Làm theo hướng dẫn này để kết nối. Khá thẳng từ máy tính để bàn. Tôi đã sử dụng Bộ điều hợp USB wifi mà tôi đã đặt xung quanh.
www.raspberrypi.org/learning/software-guid…
Ngoài Raspberry Pi, bạn có thể sử dụng một máy tính hiện có khác để khởi động kép HĐH Linux cùng với HĐH hiện có của mình (hơi khó vì bạn phải khởi động lại để chuyển đổi giữa hai hệ điều hành này) hoặc chạy một phiên bản của HĐH Linux trên một VirtualBox. Trước tiên, để dự án này hoạt động ban đầu, tôi đã cài đặt Debian Stretch với Raspberry Pi Desktop trong Virtual Box bằng cách sử dụng hướng dẫn sau:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(lưu ý: Tôi đã rất lâu để cài đặt Tiện ích Khách cho khách đúng cách theo hướng dẫn ở trên. Chưa bao giờ việc cắt và dán giữa máy chủ và máy khách hoạt động, điều này sẽ rất hay, nhưng tôi đã cố gắng cập nhật độ phân giải để sử dụng kích thước màn hình đầy đủ của tôi. Đây là một loạt các lỗ hổng của google mà tôi sẽ không ghi lại ở đây.)
Bước 2: Cài đặt Python 3
Python3 đã được cài đặt với Raspian Stretch.
Bước 3: Thiết lập mô-đun Wand
Làm theo hướng dẫn này do GammaGames tạo
Đầu tiên tôi phải thay đổi sang một thư mục khác trước khi sao chép repo kano_wand, nếu không tập lệnh python của tôi không thể tìm thấy nó. Có lẽ có thể đã cập nhật một số tham chiếu đường dẫn trong một số tệp ở đâu đó, nhưng tôi không tìm hiểu kỹ về điều đó.
cd /usr/local/lib/python3.5/dist-packages
git clone
sudo pip3 cài bluepy moosegesture
Phải sử dụng sudo cho những điều này để nhận được các quyền thích hợp. Cũng phải sử dụng các lệnh sau để cài đặt numpy, vì bất kỳ lý do gì, không thể làm cho pip hoạt động. Có thể là một vấn đề về đường dẫn khác, nhưng điều này phù hợp với tôi vì vậy tôi đã đi với nó:
sudo apt-get install python3-numpy
Cuối cùng, để có được quyền thích hợp để chạy bluepy từ tập lệnh python, tôi đã tìm thấy lệnh này.
sudo setcap 'cap_net_raw, cap_net_admin + eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Đây là tất cả những gì cần thiết để thiết lập và chạy tập lệnh của chúng tôi. Phần còn lại của hướng dẫn GammaGames sẽ đi qua các phần từng bước được yêu cầu trong tập lệnh python. Đó là một bản phân tích tuyệt vời để hiểu thêm về cách tập lệnh được cấu trúc và những gì mỗi đối tượng đang làm. Xin chân thành cảm ơn GammaGames đã cung cấp tài liệu này. Cũng có thể hữu ích để khắc phục sự cố một phần của tập lệnh. Ví dụ: đối tượng đầu tiên được hiển thị thực hiện nhiệm vụ quét tìm cây đũa phép và trả về danh sách cây đũa phép được phát hiện. Xác minh tốt rằng thiết lập bluetooth của bạn đang kích hoạt trên tất cả các trụ. Để thực hiện việc này, bạn có thể sao chép mã từ test1_BLE_wand_detect.py được tìm thấy trong repo sau:
github.com/maspieljr/SmartWand
Bước 4: Thiết lập SmartThings CLI
Dưới đây là bản sao của các hướng dẫn có trong repo smartthings_cli trên github (https://github.com/rllynch/smartthings_cli).
Tôi đã đưa vào đây những chỉnh sửa nhỏ mà tôi phải thực hiện trên thiết lập của mình để mọi thứ hoạt động. Một lần nữa, cảm ơn rllynch đã cung cấp điều này.
1) Đăng nhập và bên dưới SmartApps của tôi, tạo một SmartApp mới với mã trong groovy / app.groovy.
* Lưu ý trong bước đầu tiên có tham chiếu đến trang web SmartThings. Hãy chú ý xem tài khoản smartthings của bạn đang ở đâu. Điều này khiến tôi gặp khó khăn trong một thời gian vì trang web khác cho phép tôi đăng nhập, nhưng không thể tìm thấy bất kỳ nội dung nào của tôi. Tôi phải sử dụng liên kết sau để truy cập tài khoản SmartThings của mình.
(Bạn được hoan nghênh trong 2 giờ tôi đã dành để phân loại nó:) điều này cũng sẽ quan trọng ở bước sau.)
2) Nhấp vào Cài đặt ứng dụng và trong OAuth, nhấp vào Bật OAuth trong Ứng dụng thông minh. Ghi lại ID ứng dụng khách OAuth và Bí mật về ứng dụng khách OAuth. Cập nhật Hiển thị ứng dụng khách OAuth thành Kiểm soát CLI SmartThings. Nhấp vào Cập nhật.
3) Quay lại My SmartApps rồi nhấp vào SmartThings CLI Control. Nhấp vào Xuất bản => Dành cho tôi.
4) Sao chép kho lưu trữ smartthings_cli, tạo một virtualenv nếu muốn (tôi không làm điều này), sau đó chạy các lệnh sau, thay thế CLIENTID và CLIENTSECRET bằng ID và bí mật từ bước 2.
Để sao chép kho lưu trữ thông minh, bạn có thể sử dụng lệnh sau. Đảm bảo rằng dấu nhắc lệnh linux nằm trong thư mục dự án của bạn được tạo trong quá trình Thiết lập mô-đun Wand.
git clone >
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…
Đề xuất:
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)
Động cơ bước được điều khiển bằng động cơ bước Không cần vi điều khiển (V2): Trong một trong những Hướng dẫn trước đây của tôi, tôi đã chỉ cho bạn cách điều khiển động cơ bước bằng cách sử dụng động cơ bước mà không cần vi điều khiển. Đó là một dự án nhanh chóng và thú vị nhưng nó đi kèm với hai vấn đề sẽ được giải quyết trong Có thể hướng dẫn này. Vì vậy, hóm hỉnh
Đầu máy mô hình điều khiển động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Đầu máy mô hình điều khiển động cơ bước | Động cơ bước làm bộ mã hóa quay: Trong một trong những phần Hướng dẫn trước, chúng ta đã học cách sử dụng động cơ bước làm bộ mã hóa quay. Trong dự án này, bây giờ chúng ta sẽ sử dụng bộ mã hóa quay động cơ bước đó để điều khiển đầu máy mô hình bằng vi điều khiển Arduino. Vì vậy, không có fu
Âm thanh bay bổng với Arduino Uno Từng bước (8 bước): 8 bước
Acoustic Levitation With Arduino Uno Step-by-by-by (8 bước): bộ chuyển đổi âm thanh siêu âm L298N Dc cấp nguồn cho bộ chuyển đổi âm thanh nữ với chân cắm một chiều nam Arduino UNOBreadboard Cách hoạt động: Đầu tiên, bạn tải mã lên Arduino Uno (nó là một vi điều khiển được trang bị kỹ thuật số và các cổng tương tự để chuyển đổi mã (C ++)
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy