Cuprins:
- Pasul 1: Instalați Linux pe Raspberry Pi
- Pasul 2: Instalați Python 3
- Pasul 3: Configurați modulul baghetă
- Pasul 4: Configurați SmartThings CLI
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Acest proiect este de a obține un script Python pentru a controla Smartthings cu bagheta de codare Kano ca intrare.
Fiicele mele (8 și 12) sunt mari fani ai lui Harry Potter și au primit bagheta de codare Kano pentru Crăciun. Aplicația de codare Kano este grozavă și se distrează cu ea. Un instrument excelent pentru a introduce concepte de codare.
De asemenea, avem un pic de automatizare a locuinței presărată în toată casa cu SmartThings, Phillips Hue, hub Logitech Harmony, etc … Au ajuns inevitabil în punctul în care au vrut să aprindă lumina pomului de Crăciun cu bagheta și au început să arunce termeni precum Lumos și Nox la mine. Părea o provocare distractivă, așa că am luat-o.
A trebuit să merg cu un sistem de operare Linux, deoarece un element critic (biblioteca Python Bluepy pentru conectarea la bagheta Bluetooth) este disponibil numai pe platformele Linux. Convenabil oricum din punctul de vedere al dorinței de a rula în cele din urmă pe un Raspberry Pi.
Există două referințe principale aici, fără de care, nu aș fi reușit niciodată să fac acest lucru.
Mulțumim GammaGames pentru crearea și partajarea unui script python pentru citirea baghetei de codare Kano.
github.com/GammaGames/kano-wand-demos/blob…
și
Mulțumim lui rllynch pentru crearea și partajarea unui script python pentru o interfață de linie de comandă SmartThings.
github.com/rllynch/smartthings_cli
Pentru a păstra acest lucru intact, voi copia majoritatea pașilor din acest Instructable pentru a surprinde orice modificări de care aveam nevoie pentru a-l face să funcționeze la configurarea mea.
Iată de ce veți avea nevoie:
- Kit de codare Harry Potter Kano (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Un sistem de operare bazat pe Linux (am instalat unul și am rulat cu VirtualBox, apoi am instalat pe un Raspberry Pi)
- Un adaptor USB Bluetooth (am folosit un adaptor USB Kensington Bluetooth 4.0)
- Conexiune la internet (Pentru RPi, am folosit un adaptor Edimax USB WiFi pe care l-am avut dintr-un proiect anterior)
Pasul 1: Instalați Linux pe Raspberry Pi
Urmați linkurile de mai jos pentru a instala un sistem de operare Linux pe Raspberry Pi. Am folosit Raspbian Stretch cu desktop și software-ul recomandat și am făcut flash cu Etcher.
www.raspberrypi.org/learning/software-guid…
Odată ce ați finalizat instalarea și ați primit un prompt de comandă Linux, este o bună practică să rulați următoarele două comenzi pentru a vă asigura că totul este actualizat.
sudo apt-get update
sudo apt-get upgrade
Tastați următoarele în interfața liniei de comandă pentru a lansa interfața de utilizare a desktopului.
sudo startx
Următorul lucru pe care trebuie să-l configurați este o conexiune la internet, astfel încât să puteți accesa repozitii și altele pentru a instala software suplimentar. Conexiunea la internet va fi, de asemenea, necesară pentru a accesa SmartThings API. Urmați acest ghid pentru a vă conecta. Destul de direct de pe desktop. Am folosit un adaptor USB wifi pe care îl aveam în jurul meu.
www.raspberrypi.org/learning/software-guid…
Alternativ la Raspberry Pi, puteți utiliza un alt computer existent pentru a porni dual un sistem de operare Linux împreună cu sistemul de operare existent (un fel de durere, deoarece trebuie să reporniți pentru a comuta între cele două) sau să rulați o instanță a sistemului de operare Linux pe un VirtualBox. Pentru ca acest proiect să funcționeze inițial, am instalat Debian Stretch cu Raspberry Pi Desktop într-o cutie virtuală folosind acest ghid:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(notă: am avut o vreme când am instalat corect suplimentele pentru oaspeți conform instrucțiunilor de mai sus. Nu am reușit niciodată să funcționeze tăierea și lipirea între gazdă și client, ceea ce ar fi fost frumos, dar am reușit să actualizez rezoluția pentru a o utiliza dimensiunea mea completă a monitorului. Aceasta a fost o serie de găuri Google Rabit pe care nu le voi documenta aici.)
Pasul 2: Instalați Python 3
Python3 ar trebui să fie deja instalat cu Raspian Stretch.
Pasul 3: Configurați modulul baghetă
Urmați acest ghid creat de GammaGames
Mai întâi a trebuit să mă schimb într-un alt director înainte de a clona repo kano_wand, altfel scriptul meu python nu l-ar putea găsi. Probabil că ar fi putut actualiza unele referințe de cale într-un fișier undeva, dar nu am săpat în asta.
cd /usr/local/lib/python3.5/dist-packages
git clone
sudo pip3 instala bluepy moosegesture
A trebuit să folosesc sudo pentru a obține permisiunile corespunzătoare. De asemenea, a trebuit să folosească următoarele comenzi în schimb pentru a instala numpy, indiferent de motiv, nu a reușit ca pip să funcționeze. S-ar putea să fi fost o altă problemă de cale, dar acest lucru a funcționat pentru mine, așa că am mers cu ea:
sudo apt-get install python3-numpy
În cele din urmă, pentru a obține permisiunile corespunzătoare pentru a rula bluepy din scriptul python, am găsit această comandă.
sudo setcap 'cap_net_raw, cap_net_admin + eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Acesta este tot ceea ce este necesar pentru a pune în funcțiune scriptul nostru. Restul ghidului GammaGames parcurge pas cu pas piesele necesare în scriptul Python. Este o defecțiune excelentă pentru a înțelege în continuare modul în care este structurat scriptul și ce face fiecare obiect. Mulțumiri mari GammaGames pentru furnizarea acestei documentații. De asemenea, ar putea fi util pentru depanarea unei secțiuni din script. De exemplu, primul obiect afișat îndeplinește sarcina de scanare a baghetelor și returnarea unei liste de baghete descoperite. Bună verificare a faptului că configurarea dvs. Bluetooth se declanșează pe toți cilindrii. Pentru a face acest lucru, puteți copia codul din test1_BLE_wand_detect.py găsit în următoarea repo:
github.com/maspieljr/SmartWand
Pasul 4: Configurați SmartThings CLI
Mai jos este o copie a instrucțiunilor incluse în repozitia smartthings_cli de pe github (https://github.com/rllynch/smartthings_cli).
Am inclus aici micile modificări pe care a trebuit să le fac la configurarea mea pentru ca totul să funcționeze. Vă mulțumim din nou lui rllynch pentru că ați furnizat acest lucru.
1) Conectați-vă și sub SmartApp-urile mele, creați o nouă SmartApp cu codul în groovy / app.groovy.
* Rețineți că în primul pas există o referință la un site web SmartThings. Acordați o atenție deosebită locului în care este contul dvs. smartthings. Acest lucru m-a împiedicat o vreme, deoarece celălalt site mi-a permis să mă conectez, dar nu am putut găsi nimic din lucrurile mele. A trebuit să folosesc următorul link pentru a ajunge la contul meu SmartThings.https://graph-na04-useast2.api.smartthings.com
(Sunteți binevenit pentru cele 2 ore pe care le-am petrecut sortând asta:) acest lucru va fi important și în etapa ulterioară.)
2) Faceți clic pe Setări aplicație și sub OAuth, faceți clic pe Activați OAuth în aplicația inteligentă. Notați ID-ul clientului OAuth și secretul clientului OAuth. Actualizați afișajul clientului OAuth la SmartThings CLI Control. Faceți clic pe Actualizare.
3) Reveniți la My SmartApps, apoi faceți clic pe SmartThings CLI Control. Faceți clic pe Publicare => Pentru mine.
4) Clonați depozitul smartthings_cli, creați un virtualenv dacă doriți (nu am făcut asta), apoi executați următoarele comenzi, înlocuind CLIENTID și CLIENTSECRET cu ID-ul și secretul de la pasul 2.
Pentru a clona reparația smartthings puteți utiliza următoarea comandă. Asigurați-vă că promptul de comandă linux se află în directorul de proiect creat în timpul configurării modulului Wand.
git clona >
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…
Recomandat:
Cum să faci 4G LTE dublă antenă BiQuade Pași simpli: 3 pași
Cum să fac 4G LTE Double BiQuade Antenna Pași simpli: De cele mai multe ori mă confrunt, nu am o putere de semnal bună pentru lucrările mele de zi cu zi. Asa de. Căut și încerc diferite tipuri de antenă, dar nu funcționează. După un timp pierdut, am găsit o antenă pe care sper să o fac și să o testez, pentru că nu se bazează pe principiul
Design de joc în Flick în 5 pași: 5 pași
Designul jocului în Flick în 5 pași: Flick este un mod foarte simplu de a crea un joc, în special ceva de genul puzzle, roman vizual sau joc de aventură
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Detectarea feței pe Raspberry Pi 4B în 3 pași: 3 pași
Detectarea feței pe Raspberry Pi 4B în 3 pași: În acest instructabil vom efectua detectarea feței pe Raspberry Pi 4 cu Shunya O / S folosind Biblioteca Shunyaface. Shunyaface este o bibliotecă de recunoaștere / detectare a feței. Proiectul își propune să obțină cea mai rapidă viteză de detectare și recunoaștere cu
Cum să faci un contor de pași ?: 3 pași (cu imagini)
Cum să fac un contor de pași ?: obișnuiam să performez bine la multe sporturi: mersul pe jos, alergatul, mersul pe bicicletă, jocul de badminton etc. Îmi place să călăresc să călătoresc în preajmă. Ei bine, uită-te la burtica mea ostilă …… Ei bine, oricum, decid să reîncep să fac mișcare. Ce echipament ar trebui să pregătesc?