Obsah:
- Krok 1: Nainštalujte Linux na Raspberry Pi
- Krok 2: Nainštalujte Python 3
- Krok 3: Nastavte modul prútika
- Krok 4: Nastavte SmartThings CLI
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Tento projekt má získať skript Python na ovládanie Smartthings pomocou kódovacej paličky Kano ako vstupu.
Moje dcéry (8 a 12) sú veľkými fanúšikmi Harryho Pottera a na Vianoce dostali kódovaciu paličku Kano. Aplikácia na kódovanie Kano je skvelá a bavia sa s ňou. Skvelý nástroj na predstavenie konceptov kódovania.
V celom dome sme tiež posypali trochou domácej automatizácie SmartThings, Phillips Hue, Logitech Harmony hub, atď … Nevyhnutne sa dostali do bodu, kedy chceli pomocou paličky zapnúť osvetlenie vianočného stromčeka a začali hádzať výrazy ako Lumos a Nox na mňa. Znelo to ako zábavná výzva, tak som sa jej chopil.
Musel som ísť s operačným systémom Linux, pretože kritický prvok (knižnica pythonov Bluepy na pripojenie k Bluetooth prútiku) je k dispozícii iba na platformách Linux. Pohodlné v každom prípade z hľadiska toho, že by ste to nakoniec chceli spustiť na Raspberry Pi.
Existujú tu dve hlavné referencie, bez ktorých by som to nikdy nedokázal.
Ďakujem spoločnosti GammaGames za vytvorenie a zdieľanie pythonového skriptu na čítanie kódovacej paličky Kano.
github.com/GammaGames/kano-wand-demos/blob…
a
Ďakujeme rllynch za vytvorenie a zdieľanie pythonového skriptu pre rozhranie príkazového riadka SmartThings.
github.com/rllynch/smartthings_cli
Aby to zostalo nedotknuté, skopírujem väčšinu krokov k tomuto pokynu, aby som zachytil všetky vylepšení, ktoré som potreboval, aby fungoval pri mojom nastavení.
Čo budete potrebovať:
- Harry Potter Kano Coding Kit (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Operačný systém Linux (nainštaloval som ho s VirtualBox a potom nainštaloval na Raspberry Pi)
- USB adaptér Bluetooth (použil som USB adaptér Kensington Bluetooth 4.0)
- Pripojenie k internetu (Pre RPi som použil USB WiFi adaptér Edimax, ktorý som mal z predchádzajúceho projektu)
Krok 1: Nainštalujte Linux na Raspberry Pi
Podľa nasledujúcich odkazov nainštalujte operačný systém Linux na Raspberry Pi. Použil som Raspbian Stretch s desktopom a odporúčaným softvérom a blýskal sa s Etcherom.
www.raspberrypi.org/learning/software-guid…
Keď dokončíte inštaláciu a máte príkazový riadok systému Linux, je vhodné spustiť nasledujúce dva príkazy, aby ste sa presvedčili, že je všetko aktuálne.
sudo apt-get aktualizácia
sudo apt-get upgrade
Na rozhraní príkazového riadka zadajte nasledujúce, aby ste spustili používateľské rozhranie pre stolné počítače.
sudo startx
Ďalšou vecou, ktorú musíte nastaviť, je internetové pripojenie, aby ste sa mohli dostať k úložiskám a inštalovať ďalší softvér. Na spustenie rozhrania SmartThings API bude potrebné aj internetové pripojenie. Pripojte sa podľa tohto sprievodcu. Docela rovno z pracovnej plochy. Použil som USB wifi adaptér, ktorý som mal položený okolo.
www.raspberrypi.org/learning/software-guid…
Alternatívne k Raspberry Pi môžete použiť iný existujúci počítač na duálne zavedenie operačného systému Linux spolu s existujúcim operačným systémom (druh bolesti, pretože na prepínanie medzi týmito dvoma počítačmi je potrebné reštartovať) alebo spustenie inštancie operačného systému Linux na VirtualBox. Aby tento projekt najskôr začal fungovať, nainštaloval som Debian Stretch s Raspberry Pi Desktop do virtuálneho boxu pomocou tejto príručky:
thepi.io/how-to-run-raspberry-pi-desktop-o…) moja plná veľkosť monitora. Bola to séria dier od spoločnosti Google, ktoré tu nebudem dokumentovať.)
Krok 2: Nainštalujte Python 3
Python3 by už mal byť nainštalovaný s Raspian Stretch.
Krok 3: Nastavte modul prútika
Postupujte podľa tohto sprievodcu vytvoreného spoločnosťou GammaGames
Pred klonovaním repo kano_wand som najskôr musel prejsť do iného adresára, inak to môj python skript nenašiel. Pravdepodobne som niekde mohol aktualizovať niektoré odkazy na cesty v nejakom súbore, ale do toho som sa nekopal.
cd /usr/local/lib/python3.5/dist-packages
klon git
sudo pip3 nainštalujte bluepy moosegesture
Na získanie správnych povolení som na to musel použiť sudo. Tiež musel namiesto toho použiť nasledujúce príkazy na inštaláciu numpy, z akéhokoľvek dôvodu nemohol pip fungovať. Možno to bol ďalší problém s cestou, ale mne to fungovalo, tak som s tým začal:
sudo apt-get install python3-numpy
Nakoniec, aby som získal správne povolenia na spustenie bluepy zo skriptu python, našiel som tento príkaz.
sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
To je všetko, čo je potrebné na spustenie nášho skriptu. Zvyšok sprievodcu GammaGames prechádza krok za krokom, ktoré sú vyžadované v pythonovom skripte. Je to skvelé rozdelenie na ďalšie pochopenie štruktúry skriptu a toho, čo jednotlivé objekty robia. Veľká vďaka spoločnosti GammaGames za poskytnutie tejto dokumentácie. Môže byť tiež užitočný pri riešení problémov s časťou skriptu. Napríklad prvý zobrazený objekt plní úlohu skenovania prútikov a vrátenia zoznamu nájdených prútikov. Dobré overenie, že vaše nastavenie bluetooth beží na všetkých valcoch. Za týmto účelom môžete skopírovať kód z test1_BLE_wand_detect.py, ktorý sa nachádza v nasledujúcom repo:
github.com/maspieljr/SmartWand
Krok 4: Nastavte SmartThings CLI
Nasleduje kópia pokynov zahrnutých do repo obchodu smartthings_cli na github (https://github.com/rllynch/smartthings_cli).
Zahrnul som sem malé vylepšenia, ktoré som musel urobiť pri svojom nastavení, aby všetko fungovalo. Ešte raz ďakujem rllynch za poskytnutie tohto.
1) Prihláste sa do priečinka My SmartApps a vytvorte si z neho novú aplikáciu SmartApp s kódom v groovy/app.groovy.
*Poznámka v prvom kroku je odkaz na webovú stránku SmartThings. Dávajte veľký pozor na to, kde sa váš účet smartthings nachádza. To ma na chvíľu podrazilo, pretože druhá stránka mi umožňovala prihlásiť sa, ale nenašiel som nič z môjho. Na prístup k svojmu účtu SmartThings som musel použiť nasledujúci odkaz.
(Ste vítaní 2 hodiny, ktoré som strávil triedením:) to bude dôležité aj v neskoršom kroku.)
2) Kliknite na položku Nastavenia aplikácie a v časti OAuth kliknite na položku Povoliť protokol OAuth v inteligentnej aplikácii. Poznačte si ID klienta OAuth a tajomstvo klienta OAuth. Aktualizujte zobrazenie klienta OAuth na ovládanie CLI SmartThings. Kliknite na Aktualizovať.
3) Vráťte sa do My SmartApps a potom kliknite na položku SmartThings CLI Control. Kliknite na Publikovať => Pre mňa.
4) Klonujte úložisko smartthings_cli, podľa potreby vytvorte virtualenv (neurobil som to), potom spustite nasledujúce príkazy a v kroku 2 nahraďte CLIENTID a CLIENTSECRET ID a tajomstvo.
Na klonovanie úložiska smartthings môžete použiť nasledujúci príkaz. Uistite sa, že príkazový riadok linux je v adresári vášho projektu vytvorenom počas inštalácie modulu prútika.
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…
Odporúča:
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): 8 krokov
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): Ultrazvukové meniče zvuku L298N Dc napájací adaptér ženského adaptéra s mužským DC kolíkom Arduino UNOBreadboard Ako to funguje: Najprv nahráte kód do Arduino Uno (je to mikrokontrolér vybavený digitálnym a analógové porty na prevod kódu (C ++)
Bolt - Nočné hodiny pre bezdrôtové nabíjanie DIY (6 krokov): 6 krokov (s obrázkami)
Bolt - Nočné hodiny bezdrôtového nabíjania DIY (6 krokov): Indukčné nabíjanie (tiež známe ako bezdrôtové nabíjanie alebo bezdrôtové nabíjanie) je typ bezdrôtového prenosu energie. Na prenos elektriny do prenosných zariadení používa elektromagnetickú indukciu. Najbežnejšou aplikáciou je bezdrôtové nabíjanie Qi
Ako rozobrať počítač pomocou jednoduchých krokov a fotografií: 13 krokov (s obrázkami)
Ako rozobrať počítač jednoduchými krokmi a obrázkami: Toto je návod, ako rozobrať počítač. Väčšina základných komponentov je modulárna a dá sa ľahko odstrániť. Je však dôležité, aby ste o tom boli organizovaní. Pomôže to zabrániť strate súčiastok a tiež pri opätovnej montáži
Od Roomby k Roveru iba 5 krokov!: 5 krokov
Od Roomby po Rover za pouhých 5 krokov !: Roboti Roomba sú zábavným a jednoduchým spôsobom, ako ponoriť prsty do nohy vo svete robotiky. V tomto návode podrobne popíšeme, ako previesť jednoduchú Roombu na ovládateľný rover, ktorý súčasne analyzuje svoje okolie. Zoznam dielov 1.) MATLAB2.) Roomb