Obsah:
- Krok 1: Nainstalujte Linux na Raspberry Pi
- Krok 2: Nainstalujte Python 3
- Krok 3: Nastavení modulu hůlky
- Krok 4: Nastavení SmartThings CLI
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Tento projekt má získat skript Pythonu pro ovládání Smartthings pomocí kódovací hůlky Kano jako vstupu.
Moje dcery (8 a 12) jsou velkými fanoušky Harryho Pottera a na Vánoce dostaly Kano Coding Wand. Programovací aplikace Kano je skvělá a baví se s ní. Skvělý nástroj pro představení konceptů kódování.
Máme také trochu domácí automatizace posypané po celém domě SmartThings, Phillips Hue, Logitech Harmony hub atd.… Nevyhnutelně se dostali do bodu, kdy chtěli pomocí hůlky rozsvítit osvětlení vánočního stromu a začali házet výrazy jako Lumos a Nox na mě. Znělo to jako zábavná výzva, tak jsem se jí chopil.
Musel jsem jít s operačním systémem Linux, protože kritický prvek (knihovna Python Bluepy pro připojení k hůlkové Bluetooth) je k dispozici pouze na platformách Linux. Pohodlné v každém případě z hlediska toho, že to nakonec budete chtít spustit na Raspberry Pi.
Jsou zde dvě hlavní reference, bez nichž bych to nikdy nedokázal.
Díky GammaGames za vytvoření a sdílení pythonového skriptu pro čtení kódovací hůlky Kano.
github.com/GammaGames/kano-wand-demos/blob…
a
Děkujeme rllynch za vytvoření a sdílení skriptu pythonu pro rozhraní příkazového řádku SmartThings.
github.com/rllynch/smartthings_cli
Aby to zůstalo nedotčené, zkopíruji většinu kroků do tohoto Instructable, abych zachytil všechny vylepšení, které jsem potřeboval, aby to fungovalo na mém nastavení.
Co budete potřebovat:
- Harry Potter Kano Coding Kit (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Operační systém založený na Linuxu (jeden jsem spustil s VirtualBoxem a poté nainstaloval na Raspberry Pi)
- Bluetooth USB adaptér (použil jsem Kensington Bluetooth 4.0 USB adaptér)
- Připojení k internetu (Pro RPi jsem použil USB WiFi adaptér Edimax, který jsem měl z předchozího projektu)
Krok 1: Nainstalujte Linux na Raspberry Pi
Pomocí níže uvedených odkazů nainstalujte operační systém Linux na Raspberry Pi. Použil jsem Raspbian Stretch s desktopem a doporučeným softwarem a flashoval s Etcherem.
www.raspberrypi.org/learning/software-guid…
Jakmile dokončíte instalaci a máte příkazový řádek Linux, je vhodné spustit následující dva příkazy, abyste se ujistili, že je vše aktuální.
sudo apt-get update
sudo apt-get upgrade
Chcete -li spustit uživatelské rozhraní plochy, zadejte do rozhraní příkazového řádku následující příkaz.
sudo startx
Další věcí, kterou je třeba nastavit, je připojení k internetu, abyste se mohli dostat k úložištím a instalovat další software. K spuštění rozhraní SmartThings API bude také vyžadováno připojení k internetu. Podle tohoto průvodce se připojte. Docela přímo z plochy. Použil jsem USB wifi adaptér, který jsem měl kolem.
www.raspberrypi.org/learning/software-guid…
Alternativně k Raspberry Pi můžete použít jiný existující počítač k duálnímu spuštění operačního systému Linux společně se stávajícím operačním systémem (druh bolesti, protože musíte restartovat, abyste mezi nimi mohli přepínat) nebo spustit instanci operačního systému Linux na VirtualBox. Aby tento projekt nejprve fungoval, nainstaloval jsem Debian Stretch s Raspberry Pi Desktop ve virtuálním boxu pomocí této příručky:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(poznámka: Měl jsem sakra čas dostat správně nainstalované doplňky pro hosty podle výše uvedených pokynů. Nikdy jsem nedostal střih a vložení mezi hostitelem a klientem do práce, což by bylo hezké, ale podařilo se mi aktualizovat rozlišení, aby bylo možné použít moje plná velikost monitoru. Jednalo se o sérii děr pro Google Rabit, které zde nebudu dokumentovat.)
Krok 2: Nainstalujte Python 3
Python3 by již měl být nainstalován s Raspian Stretch.
Krok 3: Nastavení modulu hůlky
Postupujte podle této příručky vytvořené GammaGames
Před klonováním repo kano_wand jsem nejprve musel přejít do jiného adresáře, jinak to můj python skript nenašel. Pravděpodobně jsem mohl někde aktualizovat nějaké odkazy na cesty v nějakém souboru, ale do toho jsem se nekopal.
cd /usr/local/lib/python3.5/dist-packages
klon git
sudo pip3 nainstalujte bluepy moosegesture
K získání správných oprávnění bylo nutné použít sudo. Také musel použít následující příkazy místo toho nainstalovat numpy, z jakéhokoli důvodu nemohl dostat pip do práce. Možná to byl další problém cesty, ale fungovalo to pro mě, takže jsem šel s tím:
sudo apt-get install python3-numpy
Nakonec jsem tento příkaz našel, abych získal správná oprávnění ke spuštění bluepy ze skriptu pythonu.
sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
To je vše, co je potřeba k uvedení našeho skriptu do provozu. Zbytek průvodce GammaGames prochází krok za krokem kusy požadované ve skriptu pythonu. Je skvělým rozpisem dále porozumět tomu, jak je skript strukturován a co jednotlivé objekty dělají. Velké díky GammaGames za poskytnutí této dokumentace. Může být také užitečné při řešení potíží s částí skriptu. Například první zobrazený objekt plní úlohu skenování hůlek a vrácení seznamu nalezených hůlek. Dobré ověření, že vaše nastavení bluetooth běží na všech válcích. Chcete -li to provést, můžete zkopírovat kód z test1_BLE_wand_detect.py nalezený v následujícím repo:
github.com/maspieljr/SmartWand
Krok 4: Nastavení SmartThings CLI
Níže je kopie pokynů obsažených v repo smartthings_cli na github (https://github.com/rllynch/smartthings_cli).
Zahrnul jsem zde malé vylepšení, které jsem musel provést v nastavení, aby vše fungovalo. Ještě jednou děkuji rllynch za poskytnutí tohoto.
1) Přihlaste se do části Moje SmartApps a vytvořte novou SmartApp s kódem v groovy/app.groovy.
*Poznámka v prvním kroku je odkaz na webovou stránku SmartThings. Věnujte velkou pozornost tomu, kde se váš účet smartthings nachází. To mě na chvíli podrazilo, protože ostatní stránky mi umožnily přihlásit se, ale nenašly žádné mé věci. Abych se dostal ke svému účtu SmartThings, musel jsem použít následující odkaz.
(Jste vítáni 2 hodiny, které jsem strávil tím, že jsem to vyřešil:) to bude důležité i v dalším kroku.)
2) Klikněte na Nastavení aplikace a v části OAuth klikněte na Povolit OAuth ve Smart App. Poznamenejte si ID klienta OAuth a tajemství klienta OAuth. Aktualizujte zobrazení klienta OAuth na ovládání CLI SmartThings. Klikněte na Aktualizovat.
3) Vraťte se zpět do My SmartApps a poté klikněte na SmartThings CLI Control. Klikněte na Publikovat => Pro mě.
4) Naklonujte úložiště smartthings_cli, v případě potřeby vytvořte virtualenv (nedělal jsem to), poté spusťte následující příkazy a nahraďte CLIENTID a CLIENTSECRET ID a tajným kódem z kroku 2.
Klonování úložiště smartthings můžete použít následující příkaz. Ujistěte se, že příkazový řádek linux je v adresáři projektu vytvořeném během instalace modulu hůlky.
git klon >
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…
Doporučuje:
Počitadlo kroků - mikro: bit: 12 kroků (s obrázky)
Počitadlo kroků - Micro: Bit: Tento projekt bude počítadlem kroků. K měření našich kroků použijeme snímač akcelerometru, který je zabudovaný v Micro: Bit. Pokaždé, když se Micro: Bit zatřese, přidáme 2 k počtu a zobrazíme ho na obrazovce
Akustická levitace s Arduino Uno krok za krokem (8 kroků): 8 kroků
Akustická levitace s Arduino Uno krok za krokem (8 kroků): Ultrazvukové měniče zvuku L298N Dc samice napájecí zdroj s mužským DC pinem Arduino UNOBreadboard Jak to funguje: Nejprve nahrajete kód do Arduino Uno (je to mikrokontrolér vybavený digitálním a analogové porty pro převod kódu (C ++)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): 6 kroků (s obrázky)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): Indukční nabíjení (známé také jako bezdrátové nabíjení nebo bezdrátové nabíjení) je druh bezdrátového přenosu energie. Využívá elektromagnetickou indukci k poskytování elektřiny přenosným zařízením. Nejběžnější aplikací je bezdrátové nabíjení Qi
Jak rozebrat počítač pomocí jednoduchých kroků a obrázků: 13 kroků (s obrázky)
Jak rozebrat počítač pomocí jednoduchých kroků a obrázků: Toto je návod, jak rozebrat počítač. Většina základních komponent je modulární a lze je snadno odstranit. Je však důležité, abyste o tom byli organizovaní. To vám pomůže zabránit ztrátě součástí a také při opětovné montáži
Banka přepínaného zatěžovacího odporu s menší velikostí kroku: 5 kroků
Banka přepínaného zatěžovacího odporu s menší velikostí kroku: Banky zatěžovacích odporů jsou vyžadovány pro testování energetických produktů, pro charakterizaci solárních panelů, v testovacích laboratořích a v průmyslových odvětvích. Reostaty zajišťují nepřetržité kolísání odporu zátěže. Jak se však hodnota odporu snižuje, výkon