
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Šī projekta mērķis ir iegūt Python skriptu, lai kontrolētu Smartthings ar Kano kodēšanas zizli kā ievadi.
Manas meitas (8 un 12) ir lielas Harija Potera fani un Ziemassvētkos ieguva Kano kodēšanas nūju. Kano kodēšanas lietotne ir forša, un viņi ar to izklaidējas. Lielisks rīks kodēšanas jēdzienu ieviešanai.
Mums ir arī neliela mājas automatizācija, kas pārkaisīta visā mājā ar SmartThings, Phillips Hue, Logitech Harmony centrmezglu utt. … Viņi neizbēgami nonāca līdz vietai, kur vēlējās ar zizli iedegt Ziemassvētku egles gaismas un sāka mest tādus terminus kā Lumos un Nox pie manis. Izklausījās kā jautrs izaicinājums, tāpēc es to uzņēmos.
Bija jāizmanto Linux operētājsistēma, jo kritisks elements (Bluepy python bibliotēka savienošanai ar zizli Bluetooth) ir pieejams tikai Linux platformās. Ērti vienalga no viedokļa, ka galu galā gribas to palaist ar Raspberry Pi.
Šeit ir divas galvenās atsauces, bez kurām es nekad nebūtu varējis to izdarīt.
Paldies GammaGames par pitona skripta izveidi un kopīgošanu Kano kodēšanas zižļa lasīšanai.
github.com/GammaGames/kano-wand-demos/blob…
un
Paldies rllynch par python skripta izveidi un koplietošanu SmartThings komandrindas interfeisam.
github.com/rllynch/smartthings_cli
Lai to saglabātu neskartu, es kopēšu lielāko daļu darbību uz šo pamācību, lai uzņemtu visus pielāgojumus, kas man bija nepieciešami, lai tas darbotos ar manu iestatīšanu.
Lūk, kas jums būs nepieciešams:
- Harija Potera Kano kodēšanas komplekts (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
- Linux balstīta operētājsistēma (es to izveidoju un darbojos ar VirtualBox, pēc tam instalēju Raspberry Pi)
- Bluetooth USB adapteris (es izmantoju Kensington Bluetooth 4.0 USB adapteri)
- Interneta savienojums (RPi es izmantoju Edimax USB WiFi adapteri, kas man bija no iepriekšējā projekta)
1. darbība: instalējiet Linux Raspberry Pi
Izpildiet tālāk norādītās saites, lai Raspberry Pi instalētu Linux OS. Es izmantoju Raspbian Stretch ar darbvirsmu un ieteicamo programmatūru un mirgo ar Etcher.
www.raspberrypi.org/learning/software-guid…
Kad esat pabeidzis instalēšanu un jums ir Linux komandu uzvedne, laba prakse ir izpildīt šādas divas komandas, lai pārliecinātos, ka viss ir atjaunināts.
sudo apt-get update
sudo apt-get jauninājums
Lai palaistu darbvirsmas lietotāja saskarni, komandrindas saskarnē ierakstiet šo.
sudo startx
Nākamā lieta, kas jāiestata, ir interneta savienojums, lai jūs varētu nokļūt repos un citos, lai instalētu papildu programmatūru. Lai izveidotu savienojumu ar SmartThings API, būs nepieciešams arī interneta savienojums. Izpildiet šo rokasgrāmatu, lai izveidotu savienojumu. Diezgan taisni uz priekšu no darbvirsmas. Es izmantoju USB wifi adapteri, kas man bija apkārt.
www.raspberrypi.org/learning/software-guid…
Alternatīvi Raspberry Pi varat izmantot citu esošu datoru, lai dubultā sāknētu Linux OS kopā ar esošo OS (sava veida sāpes, jo jums ir jāpārstartē, lai pārslēgtos starp abām) vai palaist Linux OS gadījumu uz VirtualBox. Lai šis projekts vispirms darbotos, es virtuālajā kastē instalēju Debian Stretch ar Raspberry Pi Desktop, izmantojot šo rokasgrāmatu:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(piezīme. Man bija reāls laiks, kad viesu papildinājumi tika pareizi instalēti saskaņā ar iepriekš sniegtajiem norādījumiem. Nekad neesmu saņēmis saikni un ielīmēšanu starp resursdatoru un klientu, kas būtu bijis jauki, bet man izdevās atjaunināt izšķirtspēju, lai to izmantotu mans pilnais monitora izmērs. Šī bija virkne Google rabit caurumu, kurus es šeit nedokumentēšu.)
2. darbība: instalējiet Python 3
Python3 jau vajadzētu instalēt ar Raspian Stretch.
3. darbība. Uzstādiet zizli
Izpildiet šo GammaGames izveidoto rokasgrāmatu
Pirms kano_wand repo klonēšanas man vispirms bija jāpāriet uz citu direktoriju, pretējā gadījumā mans python skripts to nevarēja atrast. Iespējams, varēja kaut kur atjaunināt dažas ceļu atsauces kādā failā, bet es tajā neiedziļinājos.
cd /usr/local/lib/python3.5/dist-packages
git klons
sudo pip3 instalējiet bluepy moosegesture
Lai iegūtu atbilstošas atļaujas, tiem bija jāizmanto sudo. Tā vietā, lai instalētu numpy, kāda iemesla dēļ arī bija jāizmanto šādas komandas, lai pip nevarētu strādāt. Iespējams, tā bija cita ceļa problēma, bet man tas izdevās, tāpēc es devos pie tā:
sudo apt-get install python3-numpy
Visbeidzot, lai no python skripta iegūtu atbilstošas atļaujas palaist bluepy, es atradu šo komandu.
sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
Tas ir viss, kas nepieciešams, lai mūsu skripts sāktu darboties. Pārējā GammaGames rokasgrāmata sniedz soli pa solim detaļas, kas nepieciešamas python skriptā. Tas ir lielisks sadalījums, lai tālāk izprastu skripta struktūru un katra objekta darbību. Liels paldies GammaGames par šīs dokumentācijas nodrošināšanu. Tas varētu būt noderīgs arī skripta sadaļas problēmu novēršanai. Piemēram, pirmais parādītais objekts veic uzdevumu skenēt nūjiņas un atgriezt atklāto nūjiņu sarakstu. Laba pārbaude, vai jūsu Bluetooth iestatījumi tiek aktivizēti visos cilindros. Lai to izdarītu, varat nokopēt kodu no test1_BLE_wand_detect.py, kas atrodams šādā repo:
github.com/maspieljr/SmartWand
4. darbība. Iestatiet SmartThings CLI
Tālāk ir sniegta instrukciju kopija, kas iekļauta smartthings_cli repo vietnē github (https://github.com/rllynch/smartthings_cli).
Šeit esmu iekļāvis nelielus pielāgojumus, kas man bija jāveic iestatīšanas laikā, lai viss darbotos. Vēlreiz paldies rllynch par to.
1) Piesakieties sadaļā My SmartApps un zem tā, izveidojiet jaunu SmartApp ar kodu groovy/app.groovy.
*Ņemiet vērā, ka pirmajā solī ir norāde uz SmartThings vietni. Pievērsiet uzmanību tam, kur atrodas jūsu smartthings konts. Tas mani uz brīdi paklupināja, jo otrā vietne ļāva man pieteikties, bet nevarēju atrast nevienu no manām lietām. Lai piekļūtu savam SmartThings kontam, man bija jāizmanto šī saite.
(Jūs esat laipni gaidīti 2 stundas, ko pavadīju, to sakārtojot:) tas būs svarīgi arī vēlāk.)
2) Noklikšķiniet uz Lietotnes iestatījumi un sadaļā OAuth noklikšķiniet uz Iespējot OAuth viedajā lietotnē. Pierakstiet OAuth klienta ID un OAuth klienta noslēpumu. Atjauniniet OAuth klienta displeju uz SmartThings CLI Control. Noklikšķiniet uz Atjaunināt.
3) Atgriezieties sadaļā Manas SmartApps un pēc tam noklikšķiniet uz SmartThings CLI Control. Noklikšķiniet uz Publicēt => Man.
4) Klonējiet repozitoriju smartthings_cli, pēc vēlēšanās izveidojiet virtualenv (es to nedarīju), pēc tam palaidiet šādas komandas, aizstājot CLIENTID un CLIENTSECRET ar ID un noslēpumu no 2. darbības.
Lai klonētu smartthings repo, varat izmantot šādu komandu. Pārliecinieties, vai komandrindas linux atrodas jūsu projekta direktorijā, kas izveidots, izmantojot Wand Module Setup.
git klons >
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…
Ieteicams:
Arduino brīdinājuma sistēma par automašīnas novietošanu atpakaļgaitā Soli pa solim: 4 soļi

Arduino brīdinājuma sistēma par automašīnas novietošanu atpakaļgaitā Soli pa solim: Šajā projektā es izveidošu vienkāršu Arduino automašīnas atpakaļgaitas stāvvietas sensora shēmu, izmantojot Arduino UNO un ultraskaņas sensoru HC-SR04. Šo uz Arduino bāzēto automašīnas reverso brīdinājuma sistēmu var izmantot autonomai navigācijai, robotu diapazonam un citiem diapazoniem
Soli pa solim datora veidošana: 9 soļi

Soli pa solim datora veidošana: Piegādes: Aparatūra: mātesplateCPU & CPU dzesētājs PSU (barošanas bloks) Krātuve (HDD/SSD) RAMGPU (nav nepieciešams) Korpuss Instrumenti: skrūvgriezis ESD rokassprādze/matermālā pasta ar aplikatoru
Trīs skaļruņu shēmas -- Soli pa solim apmācība: 3 soļi

Trīs skaļruņu shēmas || Soli pa solim apmācība: Skaļruņu ķēde pastiprina no vides saņemtos audio signālus uz MIC un nosūta to skaļrunim, no kura tiek radīts pastiprināts audio. Šeit es parādīšu trīs dažādus veidus, kā izveidot šo skaļruņu shēmu, izmantojot:
Arduino Halloween Edition - zombiju uznirstošais ekrāns (soļi ar attēliem): 6 soļi

Arduino Helovīna izdevums - zombiju uznirstošais ekrāns (soļi ar attēliem): Vai vēlaties Helovīnā nobiedēt savus draugus un radīt kliedzošu troksni? Vai arī vienkārši gribi uztaisīt labu palaidnību? Šis zombiju uznirstošais ekrāns to var izdarīt! Šajā pamācībā es iemācīšu jums, kā viegli izveidot izlecošus zombijus, izmantojot Arduino. HC-SR0
Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): 8 soļi

Akustiskā levitācija ar Arduino Uno soli pa solim (8 soļi): ultraskaņas skaņas pārveidotāji L298N līdzstrāvas adaptera strāvas padeve ar vīriešu līdzstrāvas tapu Arduino UNOBreadboard un analogie porti koda konvertēšanai (C ++)