Sadržaj:
- Korak 1: Instalirajte Linux na Raspberry Pi
- Korak 2: Instalirajte Python 3
- Korak 3: Postavite modul štapića
- Korak 4: Postavite SmartThings CLI
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Ovaj projekat treba da dobije Python skriptu za kontrolu Smartthings -a sa Kano štapićem za kodiranje kao ulazom.
Moje kćeri (8 i 12) su veliki obožavatelji Harryja Pottera i za Božić su dobile Kano štapić za kodiranje. Aplikacija za kodiranje Kano je super i zabavljaju se s njom. Odličan alat za uvođenje koncepata kodiranja.
Imamo i malo kućne automatizacije posute po cijeloj kući SmartThings, Phillips Hue, Logitech Harmony hub, itd … Oni su neizbježno došli do tačke u kojoj su željeli palicom paliti svjetla božićne jelke i počeli uvoditi termine poput Lumosa i Nox na mene. Zvučalo je kao zabavan izazov pa sam se prihvatio.
Morao sam ići s Linux OS -om jer je kritični element (Bluepy python biblioteka za povezivanje na štapić Bluetooth) dostupan samo na Linux platformama. U svakom slučaju zgodno sa stajališta da na kraju poželite pokrenuti ovo na Raspberry Pi.
Ovdje postoje dvije glavne reference, bez kojih ovo nikada ne bih mogao učiniti.
Hvala GammaGames -u za kreiranje i deljenje python skripte za čitanje Kano štapića za kodiranje.
github.com/GammaGames/kano-wand-demos/blob…
i
Zahvaljujući rllynch -u za kreiranje i dijeljenje python skripte za sučelje naredbenog retka SmartThings.
github.com/rllynch/smartthings_cli
Kako bih ovo zadržao netaknutim, kopirat ću većinu koraka u ovaj Instructable kako bih uhvatio sve izmjene koje su mi bile potrebne da bi mogao raditi na mom postavljanju.
Evo šta će vam trebati:
- Harry Potter Kano Kit za kodiranje (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- OS zasnovan na Linuxu (pokrenuo sam jedan sa VirtualBox -om, zatim instaliran na Raspberry Pi)
- Bluetooth USB adapter (koristio sam Kensington Bluetooth 4.0 USB adapter)
- Internet veza (Za RPi sam koristio Edimax USB WiFi adapter koji sam imao iz prethodnog projekta)
Korak 1: Instalirajte Linux na Raspberry Pi
Slijedite donje veze da biste instalirali Linux OS na Raspberry Pi. Koristio sam Raspbian Stretch sa radnom površinom i preporučenim softverom i bljesnuo sa Etcher -om.
www.raspberrypi.org/learning/software-guid…
Nakon što dovršite instalaciju i imate Linux naredbeni redak, dobra je praksa pokrenuti sljedeće dvije naredbe kako biste bili sigurni da je sve ažurirano.
sudo apt-get update
sudo apt-get nadogradnja
Unesite sljedeće na sučelje naredbene linije da biste pokrenuli korisničko sučelje radne površine.
sudo startx
Sljedeća stvar koju trebate postaviti je internetska veza kako biste mogli pristupiti repo -ovima i slično za instaliranje daljnjeg softvera. Internet veza će također biti potrebna za pristup SmartThings API -ju. Slijedite ovaj vodič da biste se povezali. Prilično direktno sa radne površine. Koristio sam USB adapter za WiFi koji sam imao u blizini.
www.raspberrypi.org/learning/software-guid…
Alternativno Raspberry Pi -u, mogli biste upotrijebiti drugo postojeće računalo za dvostruko pokretanje Linux OS -a zajedno sa svojim postojećim OS -om (bolno jer morate ponovo pokrenuti sustav da biste se prebacivali s jednog na drugi) ili pokrenuti instancu Linux OS -a na VirtualBox. Kako bih ovaj projekt prvo počeo funkcionirati, instalirao sam Debian Stretch s Raspberry Pi Desktop u Virtual Box koristeći ovaj vodič:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(napomena: Imao sam dosta vremena da pravilno instaliram Guest Addons prema gore navedenim uputstvima. Nikada nisam uspio prerezati između hosta i klijenta, što bi bilo lijepo, ali uspio sam ažurirati rezoluciju za korištenje moja puna veličina monitora. Ovo je bio niz google rabit rupa koje ovdje neću dokumentirati.)
Korak 2: Instalirajte Python 3
Python3 bi već trebao biti instaliran sa Raspian Stretch -om.
Korak 3: Postavite modul štapića
Slijedite ovaj vodič koji je izradio GammaGames
Prvo sam morao prijeći u drugi direktorij prije nego što sam klonirao kano_wand repo, inače ga moja python skripta nije mogla pronaći. Vjerojatno sam mogao ažurirati neke reference puta u nekoj datoteci, ali nisam se u to udubio.
cd /usr/local/lib/python3.5/dist-packages
git clone
sudo pip3 install bluepy moosegesture
Morao sam koristiti sudo za ovo da bih dobio odgovarajuće dozvole. Također sam morao koristiti sljedeće naredbe umjesto da instaliram numpy, iz bilo kojeg razloga, pip nije mogao raditi. Možda je to bio još jedan problem sa stazom, ali ovo mi je uspjelo pa sam krenuo s tim:
sudo apt-get install python3-numpy
Na kraju, kako bih dobio odgovarajuća dopuštenja za izvršavanje bluepy iz python skripte, pronašao sam ovu naredbu.
sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Ovo je sve što je potrebno za pokretanje naše skripte. Ostatak vodiča kroz GammaGames vodi kroz korake korak po korak koji su potrebni u python skripti. Odličan je pregled za daljnje razumijevanje kako je skripta strukturirana i šta svaki objekt radi. Veliko hvala GammaGames -u na pružanju ove dokumentacije. Također bi moglo biti korisno za rješavanje problema u dijelu skripte. Na primjer, prvi prikazani objekt obavlja zadatak skeniranja štapića i vraćanja popisa otkrivenih štapića. Dobra potvrda da vaša postavka za bluetooth puca na sve cilindre. Da biste to učinili, možete kopirati kôd iz test1_BLE_wand_detect.py koji se nalazi u sljedećem repo:
github.com/maspieljr/SmartWand
Korak 4: Postavite SmartThings CLI
Ispod se nalazi kopija uputa uključenih u repo smartthings_cli na githubu (https://github.com/rllynch/smartthings_cli).
Ovdje sam uključio male izmjene koje sam morao napraviti na svom postavljanju da bi sve funkcioniralo. Još jednom hvala rllynch -u na pružanju ove informacije.
1) Prijavite se i pod My SmartApps, stvorite novu SmartApp sa kodom u groovy/app.groovy.
*Napomena: u prvom koraku postoji referenca na web stranicu SmartThings. Obratite posebnu pažnju na to gdje se nalazi vaš račun pametnih stvari. To me je neko vrijeme spotaknulo jer mi je druga web lokacija omogućila prijavu, ali nisam mogao pronaći ništa od svojih stvari. Morao sam koristiti sljedeću vezu da bih došao do svog računa SmartThings.https://graph-na04-useast2.api.smartthings.com
(Nema na čemu 2 sata koja sam proveo rješavajući to:) ovo će biti važno i u kasnijem koraku.)
2) Kliknite Postavke aplikacije i ispod OAuth kliknite Omogući OAuth u Pametnoj aplikaciji. Zapišite OAuth Client ID i OAuth Client Secret. Ažurirajte OAuth klijentski ekran na SmartThings CLI kontrolu. Kliknite Ažuriraj.
3) Vratite se na Moje SmartApps, a zatim kliknite na SmartThings CLI Control. Kliknite Objavi => Za mene.
4) Klonirajte spremište smartthings_cli, po želji stvorite virtualenv (ja to nisam učinio), a zatim pokrenite sljedeće naredbe, zamjenjujući CLIENTID i CLIENTSECRET ID -om i tajnom iz 2. koraka.
Da biste klonirali repo smartthings, možete koristiti sljedeću naredbu. Uvjerite se da je linux naredbeni redak u direktoriju vašeg projekta koji je kreiran tokom postavljanja modula štapića.
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…
Preporučuje se:
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način da napravite igru, posebno nešto poput zagonetke, vizuelnog romana ili avanturističke igre
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: 3 koraka
Prepoznavanje lica na Raspberry Pi 4B u 3 koraka: U ovom uputstvu ćemo izvršiti otkrivanje lica na Raspberry Pi 4 sa Shunya O/S koristeći biblioteku Shunyaface. Shunyaface je biblioteka za prepoznavanje/otkrivanje lica. Cilj projekta je postići najbržu brzinu otkrivanja i prepoznavanja sa
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovo početi vježbati. Koju opremu treba pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekat će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kada se Micro: Bit protrese, broju ćemo dodati 2 i prikazati ga na ekranu
Broj koraka / koraka: 3 koraka
পেনড্রাইভ / মেমোরি কার্ডে ভাইরাসের ভাইরাসের হারিয়ে সমাধান সমাধান সমাধান সমাধান সমাধান পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ পেনড্রাইভ মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি মেমোরি এখন এখন এখন।।।।।। Zaštita podataka, pristup prečicama / virusima