Სარჩევი:

SmartWand: 6 ნაბიჯი
SmartWand: 6 ნაბიჯი

ვიდეო: SmartWand: 6 ნაბიჯი

ვიდეო: SmartWand: 6 ნაბიჯი
ვიდეო: ФИТНЕС-БРАСЛЕТ М6. SMART BAND 6 - ОБЗОР и ПЕРВАЯ НАСТРОЙКА (39 ЦИФЕРБЛАТОВ!) 2024, ივლისი
Anonim
SmartWand
SmartWand

ეს პროექტი არის პითონის სკრიპტის მიღება Smartthings– ის გასაკონტროლებლად კანოს კოდირების კვერთხით, როგორც შეყვანისთვის.

ჩემი ქალიშვილები (8 და 12) ჰარი პოტერის დიდი გულშემატკივრები არიან და საშობაოდ მიიღეს კანოს კოდირების ჯოხი. კანოს კოდირების აპლიკაცია მაგარია და ისინი მას სიამოვნებენ. შესანიშნავი ინსტრუმენტი კოდირების ცნებების დანერგვისთვის.

ჩვენ ასევე გვაქვს სახლის სახლის ავტომატიზაცია, რომელიც დაფარულია მთელ სახლში SmartThings– ით, Phillips Hue– ით, Logitech Harmony– ით და სხვა… ისინი აუცილებლად მივიდნენ იქამდე, როდესაც მათ სურდათ საშობაო ხის შუქების ჩაქრობა ჯოხით და დაიწყეს ისეთი პირობების სროლა, როგორიცაა Lumos და ნოქსი ჩემზე. გასართობ გამოწვევად ჟღერდა, ასე რომ მე მივიღე.

Linux– ის ოპერაციული სისტემის გამოყენება იყო საჭირო, რადგან კრიტიკული ელემენტი (Bluepy python ბიბლიოთეკა ჯოხზე Bluetooth– თან დასაკავშირებლად) ხელმისაწვდომია მხოლოდ Linux– ის პლატფორმებზე. მაინც მოსახერხებელია იმ თვალსაზრისით, რომ საბოლოოდ სურდა ამის გაშვება Raspberry Pi– ზე.

აქ არის ორი ძირითადი ცნობა, რომლის გარეშეც მე ამას ვერასდროს შევძლებდი.

მადლობა GammaGames– ს პანინის სკრიპტის შექმნისა და გაზიარებისთვის კანო კოდის კვერთხის წასაკითხად.

github.com/GammaGames/kano-wand-demos/blob…

და

მადლობა rllynch– ს SmartThings ბრძანების ხაზის ინტერფეისისთვის პითონის სკრიპტის შექმნისა და გაზიარებისთვის.

github.com/rllynch/smartthings_cli

იმისათვის, რომ შევინარჩუნო ეს ხელუხლებელი, მე ვაპირებ დავაკოპირო ნაბიჯების უმეტესი ნაწილი ამ Instructable– ში, რათა დავიცვა ყველა ის შესწორება, რაც მჭირდებოდა ჩემს კონფიგურაციაზე მუშაობისთვის.

აი რა დაგჭირდებათ:

  • ჰარი პოტერ კანოს კოდირების ნაკრები (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
  • Linux- ზე დაფუძნებული ოპერაციული სისტემა (მე ვიწყებ მუშაობას VirtualBox– ით, შემდეგ დაყენებულია Raspberry Pi– ზე)
  • Bluetooth USB ადაპტერი (მე გამოვიყენე Kensington Bluetooth 4.0 USB ადაპტერი)
  • ინტერნეტ კავშირი (RPi– სთვის, მე გამოვიყენე Edimax USB WiFi ადაპტერი, რომელიც მქონდა წინა პროექტიდან)

ნაბიჯი 1: დააინსტალირეთ Linux Raspberry Pi– ზე

მიჰყევით ქვემოთ მოცემულ ბმულებს, რომ დააინსტალიროთ Linux OS Raspberry Pi– ზე. მე გამოვიყენე Raspbian Stretch დესკტოპით და რეკომენდებული პროგრამული უზრუნველყოფით და Etcher– ით გავანათე.

www.raspberrypi.org/learning/software-guid…

მას შემდეგ რაც დაასრულებთ ინსტალაციას და გექნებათ Linux ბრძანების სტრიქონი, კარგი პრაქტიკაა შემდეგი ორი ბრძანების გაშვება, რომ დარწმუნდეთ რომ ყველაფერი განახლებულია.

sudo apt-get განახლება

sudo apt-get განახლება

აკრიფეთ შემდეგი ბრძანების ხაზის ინტერფეისში, დესკტოპის ინტერფეისის გასაშვებად.

sudo startx

შემდეგი რაც უნდა შეიქმნას არის ინტერნეტ კავშირი, ასე რომ თქვენ შეგიძლიათ მიიღოთ repos და ასეთი დააინსტალიროთ შემდგომი პროგრამული უზრუნველყოფა. ასევე საჭირო იქნება ინტერნეტ კავშირი SmartThings API- ის გასააქტიურებლად. მიჰყევით ამ სახელმძღვანელოს დასაკავშირებლად. საკმაოდ პირდაპირ დესკტოპიდან. მე გამოვიყენე USB wifi ადაპტერი, რომელსაც გარშემო ვდებდი.

www.raspberrypi.org/learning/software-guid…

ალტერნატიულად Raspberry Pi, თქვენ შეგიძლიათ გამოიყენოთ სხვა არსებული კომპიუტერი ან ორმაგი ჩატვირთვისას Linux OS თქვენს არსებულ ოპერაციულ სისტემასთან ერთად (ერთგვარი ტკივილი, რადგან თქვენ უნდა გადატვირთოთ ამ ორს შორის გადასართავად) ან გაუშვათ Linux OS– ის მაგალითი ვირტუალური ყუთი. ამ პროექტის თავდაპირველად მუშაობის მიზნით, მე დავაყენე Debian Stretch Raspberry Pi Desktop– ით ვირტუალურ ყუთში ამ სახელმძღვანელოს გამოყენებით:

thepi.io/how-to-run-raspberry-pi-desktop-o…

(შენიშვნა: დიდი დრო დამჭირდა, რომ სტუმრების დამატებები სწორად დამეყენებინა ზემოთ მითითებული ინსტრუქციის შესაბამისად. არასოდეს მიმიღია სამუშაოს მასპინძელსა და კლიენტს შორის, რაც კარგი იქნებოდა, მაგრამ მე გამოვაყენე რეზოლუციის განახლება. ჩემი სრული მონიტორის ზომა. ეს იყო google rabit ხვრელების სერია, რომელსაც აქ არ დავწერ.)

ნაბიჯი 2: დააინსტალირეთ პითონი 3

Python3 უკვე უნდა იყოს დაინსტალირებული Raspian Stretch– ით.

ნაბიჯი 3: ჯოხის მოდულის დაყენება

მიჰყევით ამ სახელმძღვანელოს, რომელიც შექმნილია GammaGames– ის მიერ

მე პირველად უნდა შევიცვალო სხვა დირექტორიაში, სანამ არ დამეწერა kano_wand repo, წინააღმდეგ შემთხვევაში ჩემი პითონის სკრიპტი ვერ იპოვა. ალბათ შეიძლებოდა სადმე გამეახლებინა გზების მითითებები რომელიმე ფაილში, მაგრამ მე არ ჩავწვდი ამაში.

cd /usr/local/lib/python3.5/dist-packages

git კლონი

sudo pip3 დააინსტალირეთ bluepy moosegesture

ამისთვის sudo უნდა გამოვიყენო სათანადო ნებართვების მისაღებად. ასევე უნდა გამოეყენებინა შემდეგი ბრძანებები ნაცვლად დააინსტალიროთ numpy, რაიმე მიზეზის გამო, ვერ მივიღე პიპ მუშაობა. შეიძლება სხვა გზის პრობლემა იყო, მაგრამ ეს გამომადგა, ასე რომ მე მას მივუდექი:

sudo apt-get install python3-numpy

დაბოლოს, პითონის სკრიპტიდან Bluepy– ის გასაშვებად სათანადო ნებართვების მისაღებად ვიპოვე ეს ბრძანება.

sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper

ეს არის ყველაფერი რაც საჭიროა იმისათვის, რომ ჩვენი სკრიპტი ამოქმედდეს. GammaGames– ის დანარჩენი სახელმძღვანელო გადის პითონის სკრიპტში საჭირო ეტაპობრივად. ეს არის დიდი ავარია იმის გაგება, თუ როგორ არის სტრუქტურირებული სკრიპტი და რას აკეთებს თითოეული ობიექტი. დიდი მადლობა GammaGames– ს ამ დოკუმენტაციის უზრუნველსაყოფად. ასევე შეიძლება სასარგებლო იყოს სკრიპტის მონაკვეთის პრობლემების გადასაჭრელად. მაგალითად, ნაჩვენები პირველი ობიექტი ასრულებს კვერთხების სკანირების და აღმოჩენილი კვერთხების სიის დაბრუნების ამოცანას. კარგი დადასტურებაა, რომ თქვენი Bluetooth კონფიგურაცია მუშაობს ყველა ცილინდრზე. ამისათვის თქვენ შეგიძლიათ დააკოპიროთ კოდი test1_BLE_wand_detect.py– დან, რომელიც ნაპოვნია შემდეგ რეპოში:

github.com/maspieljr/SmartWand

ნაბიჯი 4: SmartThings CLI- ის დაყენება

ქვემოთ მოცემულია ინსტრუქციის ასლი, რომელიც შედის smartthings_cli რეპოში github– ზე (https://github.com/rllynch/smartthings_cli).

მე აქ ჩავრთე ის მცირედი შესწორებები, რომლებიც უნდა შემექმნა ჩემს კონფიგურაციაზე, რომ ყველაფერი გამეშვა. კიდევ ერთხელ მადლობა rllynch– ს ამის უზრუნველსაყოფად.

1) შედით და My SmartApps– ში, შექმენით ახალი SmartApp კოდით groovy/app.groovy კოდით.

*შენიშვნა პირველ ეტაპზე არის მითითება SmartThings ვებსაიტზე. დიდი ყურადღება მიაქციეთ სად არის თქვენი ჭკვიანური ანგარიში. ამან ცოტა ხნით შემაძრწუნა, რადგან სხვა საიტმა მომცა საშუალება შეხვიდე სისტემაში, მაგრამ ვერ ვიპოვე ჩემი პერსონალი. მე უნდა გამოვიყენო შემდეგი ბმული ჩემს SmartThings ანგარიშზე შესასვლელად.

(კეთილი იყოს თქვენი მობრძანება იმ 2 საათის განმავლობაში, რაც მე დავხარჯე ამის დასალაგებლად:) ეს ასევე მნიშვნელოვანი იქნება მომდევნო ეტაპზეც.)

2) დააწკაპუნეთ აპლიკაციის პარამეტრებზე და OAuth– ის ქვეშ, დააწკაპუნეთ OAuth– ის ჩართვა სმარტ აპლიკაციაში. ჩაწერეთ OAuth კლიენტის ID და OAuth კლიენტის საიდუმლო. განაახლეთ OAuth კლიენტის ჩვენება SmartThings CLI Control– ით. დააწკაპუნეთ განახლებაზე.

3) დაუბრუნდით ჩემს SmartApps– ს, შემდეგ დააწკაპუნეთ SmartThings CLI Control– ზე. დააწკაპუნეთ გამოქვეყნება => ჩემთვის.

4) კლონირება smartthings_cli საცავი, სურვილისამებრ შექმენით virtualenv (მე ეს არ გამიკეთებია), შემდეგ შეასრულეთ შემდეგი ბრძანებები, შეცვალეთ CLIENTID და CLIENTSECRET ID– ით და საიდუმლო ნაბიჯი 2 – დან.

Smartthings რეპოს კლონირებისთვის შეგიძლიათ გამოიყენოთ შემდეგი ბრძანება. დარწმუნდით, რომ linux ბრძანების სტრიქონი არის თქვენი პროექტის დირექტორიაში, რომელიც შექმნილია Wand მოდულის დაყენების დროს.

გიტ კლონი >

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…

გირჩევთ: