Sisällysluettelo:
- Vaihe 1: Asenna Linux Raspberry Pi: hen
- Vaihe 2: Asenna Python 3
- Vaihe 3: Asenna sauvamoduuli
- Vaihe 4: Määritä SmartThings CLI
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
Video: SmartWand: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tämän projektin tarkoituksena on saada Python -komentosarja, joka ohjaa Smartthing -toimintoja syötteenä Kano -koodaussauvalla.
Tyttäreni (8 ja 12) ovat suuria Harry Potter -faneja ja saivat Kano Coding Wandin jouluksi. Kano -koodaussovellus on siisti ja he pitävät siitä hauskaa. Erinomainen työkalu koodauskonseptien esittelyyn.
Meillä on myös hiukan koti -automaatiota, joka on siroteltu koko taloon SmartThings, Phillips Hue, Logitech Harmony -keskittymä, jne.… He väistämättä pääsivät siihen pisteeseen, että halusivat sytyttää joulukuusi -valot sauvalla ja alkoivat heittää termejä, kuten Lumos ja Nox minua kohtaan. Kuulosti hauskalta haasteelta, joten otin sen vastaan.
Piti käyttää Linux -käyttöjärjestelmää, koska kriittinen elementti (Bluepy python -kirjasto Bluetooth -yhteyden muodostamiseen) on käytettävissä vain Linux -alustoilla. Kätevä joka tapauksessa siltä kannalta, että haluan lopulta käyttää tätä Raspberry Pi: llä.
Tässä on kaksi pääviittausta, joita ilman en olisi koskaan voinut tehdä tätä.
Kiitos GammaGamesille python -komentosarjan luomisesta ja jakamisesta Kano -koodaussauvan lukemista varten.
github.com/GammaGames/kano-wand-demos/blob…
ja
Kiitos rllynchille python -komentosarjan luomisesta ja jakamisesta SmartThings -komentorivikäyttöliittymälle.
github.com/rllynch/smartthings_cli
Jotta tämä säilyisi ehjänä, aion kopioida useimmat vaiheet tähän Instructable -ohjelmaan kaapataakseni kaikki muutokset, joita tarvitsin saadakseni sen toimimaan asetuksissani.
Tässä on mitä tarvitset:
- Harry Potter Kano -koodaussarja (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Linux -pohjainen käyttöjärjestelmä (otin sellaisen käyttöön VirtualBoxilla ja asensin sitten Raspberry Pi: lle)
- Bluetooth -USB -sovitin (käytin Kensington Bluetooth 4.0 USB -sovitinta)
- Internet -yhteys (RPi: ssä käytin Edimax USB WiFi -sovitinta, joka minulla oli edellisestä projektista)
Vaihe 1: Asenna Linux Raspberry Pi: hen
Asenna Linux -käyttöjärjestelmä Raspberry Pi -laitteeseen alla olevien linkkien avulla. Käytin Raspbian Stretchiä työpöydän ja suositellun ohjelmiston kanssa ja vilkkasin Etcherin kanssa.
www.raspberrypi.org/learning/software-guid…
Kun olet suorittanut asennuksen ja sinulla on Linux -komentorivi, on hyvä käytäntö suorittaa seuraavat kaksi komentoa varmistaaksesi, että kaikki on ajan tasalla.
sudo apt-get päivitys
sudo apt-get päivitys
Käynnistä työpöydän käyttöliittymä kirjoittamalla komentorivikäyttöliittymään seuraava.
sudo startx
Seuraavaksi määritettävä asia on Internet -yhteys, jotta voit päästä repoihin ja muihin ohjelmistoihin. Internet -yhteys tarvitaan myös SmartThings -sovellusliittymän avaamiseen. Noudata tätä opasta muodostaaksesi yhteyden. Melko suoraan eteenpäin työpöydältä. Käytin USB -wifi -sovitinta, joka oli paikallaan.
www.raspberrypi.org/learning/software-guid…
Vaihtoehtoisesti Raspberry Pi: lle voit käyttää toista olemassa olevaa tietokonetta joko käynnistämään Linux -käyttöjärjestelmän kahdesti nykyisen käyttöjärjestelmän kanssa (eräänlainen kipu, koska sinun on käynnistettävä uudelleen vaihtaaksesi näiden kahden välillä) tai suorita Linux -käyttöjärjestelmän esiintymä VirtualBox. Saadakseni tämän projektin aluksi toimimaan, asensin Debian Stretchin Raspberry Pi Desktopin kanssa virtuaalilaatikkoon käyttämällä tätä opasta:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(Huomautus: Minulla oli aikaa saada Guest Addons asennettu oikein yllä olevien ohjeiden mukaisesti. En koskaan saanut leikkausta ja liittämistä isännän ja asiakkaan välillä toimimaan, mikä olisi ollut mukavaa, mutta onnistuin päivittämään resoluution hyödyntämään koko näytön koko. Tämä oli sarja Googlen rabit -reikiä, joita en dokumentoi täällä.)
Vaihe 2: Asenna Python 3
Python3 on jo asennettava Raspian Stretchin kanssa.
Vaihe 3: Asenna sauvamoduuli
Noudata tätä GammaGamesin luomaa opasta
Minun piti ensin vaihtaa toiseen hakemistoon ennen kano_wand repon kloonaamista, muuten python -skriptini ei löytänyt sitä. Luultavasti olisi voinut päivittää joitain polkuviittauksia johonkin tiedostoon jossain, mutta en kaivannut sitä.
cd /usr/local/lib/python3.5/dist-packages
git -klooni
sudo pip3 asenna bluepy moosegesture
Näiden piti käyttää sudoa saadakseen oikeat käyttöoikeudet. Piti myös käyttää seuraavia komentoja asentaakseen numpy, jostain syystä, ei voinut saada pipia toimimaan. Saattoi olla toinen polkuongelma, mutta tämä toimi minulle, joten menin sen kanssa:
sudo apt-get install python3-numpy
Lopuksi löysin tämän komennon saadakseni oikeat käyttöoikeudet bluepyn suorittamiseen python -komentosarjasta.
sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Tämä on kaikki mitä tarvitaan käsikirjoituksemme käynnistämiseen. Loput GammaGames -oppaasta käyvät läpi python -skriptissä vaaditut vaihe vaiheet. On hienoa ymmärtää, miten käsikirjoitus on rakennettu ja mitä kukin objekti tekee. Suuri kiitos GammaGamesille tämän dokumentaation toimittamisesta. Voisi myös olla hyödyllinen skriptin osan vianmäärityksessä. Esimerkiksi ensimmäinen näytetty objekti suorittaa sauvojen etsinnän ja palauttaa löydettyjen sauvojen luettelon. Hyvä vahvistus siitä, että Bluetooth -asetukset toimivat kaikissa sylintereissä. Voit tehdä tämän kopioimalla koodin test1_BLE_wand_detect.py seuraavasta reposta:
github.com/maspieljr/SmartWand
Vaihe 4: Määritä SmartThings CLI
Alla on kopio smartthings_cli -repon ohjeista githubissa (https://github.com/rllynch/smartthings_cli).
Olen sisällyttänyt tänne pieniä säätöjä, jotka minun piti tehdä asetuksissani, jotta kaikki toimisi. Kiitos vielä rllynchille tämän tarjoamisesta.
1) Kirjaudu My SmartAppsiin ja luo se, luo uusi SmartApp, jonka koodi on groovy/app.groovy.
*Huomaa, että ensimmäisessä vaiheessa on viittaus SmartThings -verkkosivustoon. Kiinnitä erityistä huomiota smartthings -tilisi sijaintiin. Tämä herätti minut hetkeksi, kun toinen sivusto salli minun kirjautua sisään, mutta en löytänyt mitään. Minun täytyi käyttää seuraavaa linkkiä päästäkseni SmartThings-tililleni.
(Olet tervetullut niiden kahden tunnin ajan, jotka vietin sen selvittämiseen:) tämä on tärkeää myös myöhemmässä vaiheessa.)
2) Napsauta Sovellusasetukset ja OAuth -kohdasta Ota OAuth käyttöön Smart Appissa. Kirjoita muistiin OAuth -asiakastunnus ja OAuth -asiakassalaisuus. Päivitä OAuth -asiakasnäyttö SmartThings CLI -ohjaimeksi. Napsauta Päivitä.
3) Palaa My SmartApps -sivulle ja napsauta SmartThings CLI Control. Napsauta Julkaise => Minulle.
4) Kloonaa smartthings_cli -arkisto, luo halutessasi virtualenv (en tehnyt tätä) ja suorita sitten seuraavat komennot korvaamalla CLIENTID ja CLIENTSECRET tunnuksella ja salaisuudella vaiheesta 2.
Voit kloonata smartthings -repon käyttämällä seuraavaa komentoa. Varmista, että linux -komentokehote on Wand -moduulin asennuksen aikana luodussa projektihakemistossa.
git klooni >
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…
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen