Tartalomjegyzék:
- Lépés: Telepítse a Linuxot a Raspberry Pi -re
- 2. lépés: Telepítse a Python 3 -at
- 3. lépés: A pálcamodul beállítása
- 4. lépés: A SmartThings CLI beállítása
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Videó: SmartWand: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Ennek a projektnek az a célja, hogy egy Python -szkriptet kapjon a Smartthings vezérléséhez a Kano kódoló pálcával bemenetként.
A lányaim (8 és 12) nagy Harry Potter rajongók, és karácsonyra kapták a Kano kódoló pálcát. A Kano kódoló alkalmazás klassz, és jól szórakoznak rajta. Kiváló eszköz a kódolási fogalmak bevezetéséhez.
Van egy kis otthonautomatizálásunk is, amelyet SmartThings, Phillips Hue, Logitech Harmony hub stb. Szórnak a házban … Óhatatlanul eljutottak odáig, hogy be akarták kapcsolni a karácsonyfavilágítást a pálcával, és elkezdtek dobni olyan kifejezéseket, mint a Lumos és Nox rám. Szórakoztató kihívásnak tűnt, ezért vállaltam.
Linux operációs rendszert kellett használni, mivel egy kritikus elem (Bluepy python könyvtár a pálca Bluetooth -hoz való csatlakozáshoz) csak Linux platformokon érhető el. Kényelmes amúgy abból a szempontból, hogy végül ezt egy Raspberry Pi -n akarom futtatni.
Itt két fő hivatkozás van, amelyek nélkül soha nem tudtam volna ezt megtenni.
Köszönet a GammaGames -nek, hogy létrehozott és megosztott egy python -szkriptet a Kano kódolópálca olvasásához.
github.com/GammaGames/kano-wand-demos/blob…
és
Köszönet az rllynch -nek, hogy létrehozott és megosztott egy python szkriptet a SmartThings parancssori felülethez.
github.com/rllynch/smartthings_cli
Annak érdekében, hogy ez sértetlen maradjon, a lépések nagy részét átmásolom ebbe az Instructable -be, hogy rögzítsek minden olyan módosítást, amelyre szükségem volt ahhoz, hogy működésbe léphessek.
Íme, amire szüksége lesz:
- Harry Potter Kano kódolási készlet (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Linux alapú operációs rendszer (a VirtualBox segítségével elindítottam, majd Raspberry Pi -re telepítettem)
- Bluetooth USB adapter (én Kensington Bluetooth 4.0 USB adaptert használtam)
- Internetkapcsolat (Az RPi esetében Edimax USB WiFi adaptert használtam, amely egy korábbi projektemben volt)
Lépés: Telepítse a Linuxot a Raspberry Pi -re
Kövesse az alábbi linkeket a Linux operációs rendszer Raspberry Pi -re történő telepítéséhez. A Raspbian Stretch -t használtam asztali és ajánlott szoftverrel, és villogtam Etcherrel.
www.raspberrypi.org/learning/software-guid…
Miután befejezte a telepítést és rendelkezik Linux parancssorral, jó gyakorlat az alábbi két parancs futtatása, hogy biztosan minden naprakész legyen.
sudo apt-get update
sudo apt-get upgrade
Az asztali felhasználói felület elindításához írja be a következőt a parancssori felületre.
sudo startx
A következő lépés az internetkapcsolat beállítása, hogy hozzáférhessen a repókhoz és egyéb szoftverek telepítéséhez. A SmartThings API eléréséhez internetkapcsolatra is szükség lesz. Kövesse ezt az útmutatót a csatlakozáshoz. Szépen előre az asztaltól. Egy USB wifi adaptert használtam, amit lefektettem.
www.raspberrypi.org/learning/software-guid…
A Raspberry Pi alternatívájaként használhat egy másik meglévő számítógépet a Linux operációs rendszer kettős indításához a meglévő operációs rendszerrel együtt (egyfajta fájdalom, mert újra kell indítani a kettő közötti váltást), vagy futtathatja a Linux operációs rendszer egy példányát VirtualBox. Ahhoz, hogy a projekt először működjön, telepítettem a Debian Stretch alkalmazást a Raspberry Pi Desktoppal egy virtuális dobozba az alábbi útmutató segítségével:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(Megjegyzés: Volt egy fura időm, amikor a Vendég -kiegészítőket megfelelően telepítettem a fenti utasítások szerint. Soha nem sikerült a vágás és beillesztés a gazda és az ügyfél között, ami jó lett volna, de sikerült frissítenem a felbontást a használathoz teljes monitorméretem. Ez egy sor google rabit lyuk volt, amelyeket itt nem dokumentálok.)
2. lépés: Telepítse a Python 3 -at
A Python3 -at már telepíteni kell a Raspian Stretch segítségével.
3. lépés: A pálcamodul beállítása
Kövesse ezt az útmutatót, amelyet a GammaGames készített
Először a kano_wand repó klónozása előtt kellett másik könyvtárba váltanom, különben a python szkriptem nem találta. Valószínűleg frissíthetett volna néhány elérési utat egy fájlban valahol, de nem ástam bele ebbe.
cd /usr/local/lib/python3.5/dist-packages
git klón
sudo pip3 install bluepy moosegesture
A megfelelő engedélyek megszerzéséhez a sudo -t kellett használni. Szintén a következő parancsokat kellett használnia a numpy telepítéséhez, bármilyen okból nem tudta működtetni a pip -et. Lehet, hogy egy másik útvonal probléma volt, de ez nekem bevált, így mentem hozzá:
sudo apt-get install python3-numpy
Végül, annak érdekében, hogy megkapjam a megfelelő engedélyeket a bluepy futtatásához a python szkriptből, megtaláltam ezt a parancsot.
sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Ez minden, ami szükséges a szkriptünk működéséhez. A GammaGames útmutató többi része lépésről lépésre végigjárja a python szkriptben előírt lépéseket. Nagyszerű összeomlás, ha jobban megértjük a szkript felépítését és az egyes objektumok tevékenységét. Nagy köszönet a GammaGames -nek, hogy rendelkezésre bocsátotta ezt a dokumentációt. Hasznos lehet a szkript egy részének hibaelhárításában is. Például az első megjelenített objektum elvégzi a pálcák keresését és a felfedezett pálcák listájának visszaadását. Jó ellenőrzés, hogy a bluetooth beállítás minden hengerre aktiválódik. Ehhez másolja a kódot a következő repóban található test1_BLE_wand_detect.py fájlból:
github.com/maspieljr/SmartWand
4. lépés: A SmartThings CLI beállítása
Az alábbiakban a smartthings_cli repo githubon (https://github.com/rllynch/smartthings_cli) található utasítások egy példánya található.
Ide soroltam azokat az apró módosításokat, amelyeket a beállítások során el kellett végeznem, hogy minden működjön. Még egyszer köszönöm az rllynch -nek, hogy ezt biztosította.
1) Jelentkezzen be a My SmartApps alkalmazásba, és hozzon létre egy új SmartApp alkalmazást a groovy/app.groovy kóddal.
*Megjegyzés: az első lépésben van egy hivatkozás egy SmartThings webhelyre. Ügyeljen arra, hogy hol van a smartthings fiókja. Ez egy időre megbotránkoztatott, mivel a másik webhely lehetővé tette a bejelentkezést, de nem találtam semmit. A következő linket kellett használnom a SmartThings-fiókom eléréséhez.
(Szívesen várom azt a 2 órát, amit a rendezéssel töltöttem:) ez a későbbiekben is fontos lesz.)
2) Kattintson az Alkalmazásbeállítások elemre, majd az OAuth alatt kattintson az OAuth engedélyezése az Intelligens alkalmazásban elemre. Jegyezze fel az OAuth ügyfélazonosítót és az OAuth ügyféltitkot. Frissítse az OAuth ügyfél kijelzőjét a SmartThings CLI Control rendszerre. Kattintson a Frissítés gombra.
3) Menjen vissza a Saját SmartApps oldalra, majd kattintson a SmartThings CLI Control elemre. Kattintson a Közzététel => Nekem.
4) Klónozza a smartthings_cli lerakatot, szükség esetén hozzon létre egy virtuualenv -t (ezt nem én tettem), majd futtassa a következő parancsokat, és cserélje le a CLIENTID és a CLIENTSECRET azonosítót és titkot a 2. lépésből.
A smartthings repo klónozásához használja a következő parancsot. Győződjön meg arról, hogy a linux parancssor a Wand Module telepítése során létrehozott projektkönyvtárban található.
git klón >
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…
Ajánlott:
DC - DC feszültség Lépés lekapcsoló mód Buck feszültségátalakító (LM2576/LM2596): 4 lépés
DC-DC feszültség Lépés lekapcsoló üzemmód Buck feszültségátalakító (LM2576/LM2596): A rendkívül hatékony bakkonverter készítése nehéz feladat, és még a tapasztalt mérnököknek is többféle kivitelre van szükségük, hogy a megfelelőt hozzák létre. egy DC-DC áramátalakító, amely csökkenti a feszültséget (miközben növeli
Akusztikus levitáció az Arduino Uno-val Lépésről lépésre (8 lépés): 8 lépés
Akusztikus lebegés az Arduino Uno-val Lépésről lépésre (8 lépés): ultrahangos hangátvivők L298N Dc női adapter tápegység egy egyenáramú tűvel Arduino UNOBreadboard és analóg portok a kód konvertálásához (C ++)
Élő 4G/5G HD videó streamelés DJI drónról alacsony késleltetéssel [3 lépés]: 3 lépés
Élő 4G/5G HD videó streaming a DJI Drone-tól alacsony késleltetéssel [3 lépés]: Az alábbi útmutató segít abban, hogy szinte bármilyen DJI drónról élő HD minőségű videó streameket kapjon. A FlytOS mobilalkalmazás és a FlytNow webes alkalmazás segítségével elindíthatja a videó streamingjét a drónról
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő
4 lépés az akkumulátor belső ellenállásának méréséhez: 4 lépés
4 lépés az akkumulátor belső ellenállásának mérésére: Íme a 4 egyszerű lépés, amelyek segítenek mérni az akkumulátor belső ellenállását