ዝርዝር ሁኔታ:

SmartWand: 6 ደረጃዎች
SmartWand: 6 ደረጃዎች

ቪዲዮ: SmartWand: 6 ደረጃዎች

ቪዲዮ: SmartWand: 6 ደረጃዎች
ቪዲዮ: Mi Smart Band 6: One Step Ahead! 2024, ህዳር
Anonim
SmartWand
SmartWand

ይህ ፕሮጀክት እንደ ግብዓት በካኖው ኮድ ዋንድ ስማርትስትን ለመቆጣጠር የ Python ስክሪፕት ለማግኘት ነው።

ሴት ልጆቼ (8 እና 12) ትልልቅ የሃሪ ፖተር አድናቂዎች ናቸው እና የገናን የካኖ ኮድ ዋንድ አግኝተዋል። የካኖ ኮድ መስጫ መተግበሪያ አሪፍ ነው እና እነሱ እየተዝናኑበት ነው። የኮድ ጽንሰ -ሀሳቦችን ለማስተዋወቅ በጣም ጥሩ መሣሪያ።

እንዲሁም በ SmartThings ፣ በፊሊፕስ ሁዌ ፣ በሎግቴክ ሃርመኒ ማዕከል ፣ ወዘተ በቤት ውስጥ ትንሽ የቤት አውቶማቲክ አለን። እነሱ የገና ዛፍን መብራቶች በበትር ማብራት እስከፈለጉበት ደረጃ ደርሰው እንደ ሉሞስ እና ቃላትን መወርወር ጀመሩ። በእኔ ላይ ኖክስ። እንደ አዝናኝ ፈታኝ ስለተሰማኝ ወሰድኩት።

ወሳኝ አካል (የብሉቱዝ ፓይዘን ቤተመፃህፍት ከዋንድ ብሉቱዝ ጋር ለመገናኘት) በሊኑክስ መድረኮች ላይ ብቻ ስለሚገኝ ከሊኑክስ ስርዓተ ክወና ጋር መሄድ ነበረበት። ለማንኛውም በ Raspberry Pi ላይ ለማሄድ ከመፈለግ አንፃር ለማንኛውም ምቹ።

እዚህ ሁለት ዋና ማጣቀሻዎች አሉ ፣ ያለዚህ ፣ እኔ ይህንን ማድረግ አልቻልኩም።

የጋኖ ጌሞች የካኖን የኮድ ዋንድ ለማንበብ የፓይዘን ስክሪፕት በመፍጠር እና በማጋራት እናመሰግናለን።

github.com/GammaGames/kano-wand-demos/blob…

እና

ለ SmartThings የትእዛዝ መስመር በይነገጽ የፓይዘን ስክሪፕት በመፍጠር እና በማጋራት rllynch እናመሰግናለን።

github.com/rllynch/smartthings_cli

ይህንን እንደተጠበቀ ለማቆየት ፣ በማዋቀሬ ላይ እንዲሠራ የሚያስፈልገኝን ማንኛውንም ማሻሻያዎችን ለመያዝ አብዛኞቹን ደረጃዎች ወደዚህ አስተማሪ እገለብጣለሁ።

የሚያስፈልግዎት እዚህ አለ

  • የሃሪ ፖተር ካኖ ኮድ ኮድ (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
  • በሊኑክስ ላይ የተመሠረተ ስርዓተ ክወና (ከቨርቹቦክስ ጋር አንድ ተነሳሁ ፣ ከዚያ በ Raspberry Pi ላይ ተጭኗል)
  • የብሉቱዝ ዩኤስቢ አስማሚ (እኔ የኬንሲንግተን ብሉቱዝ 4.0 የዩኤስቢ አስማሚን እጠቀም ነበር)
  • የበይነመረብ ግንኙነት (ለ RPi ፣ ካለፈው ፕሮጀክት የነበረኝ የኤዲማክስ ዩኤስቢ WiFi አስማሚን ተጠቅሜ ነበር)

ደረጃ 1: Raspberry Pi ላይ ሊኑክስን ይጫኑ

በ Raspberry Pi ላይ የሊኑክስ ስርዓተ ክወና ለመጫን ከዚህ በታች ያሉትን አገናኞች ይከተሉ። እኔ Raspbian Stretch ን በዴስክቶፕ እና በሚመከረው ሶፍትዌር ተጠቀምኩ እና ከኤቸር ጋር ብልጭ ብሏል።

www.raspberrypi.org/learning/software-guid…

አንዴ ጭነቱን ካጠናቀቁ እና የሊኑክስ የትእዛዝ መስመር ካለዎት ፣ ሁሉም ነገር ወቅታዊ መሆኑን ለማረጋገጥ የሚከተሉትን ሁለት ትዕዛዞችን ማካሄድ ጥሩ ልምምድ ነው።

sudo apt-get ዝማኔ

sudo apt-get ማሻሻል

የዴስክቶፕ በይነገጽን ለማስጀመር በትእዛዝ መስመር በይነገጽ ላይ የሚከተለውን ይተይቡ።

sudo startx

ቀጣዩ ነገር ለማዋቀር እና ተጨማሪ ሶፍትዌሮችን ለመጫን እንዲችሉ የበይነመረብ ግንኙነት ነው። እንዲሁም SmartThings API ን ለመምታት የበይነመረብ ግንኙነት ያስፈልጋል። ለመገናኘት ይህንን መመሪያ ይከተሉ። ከዴስክቶፕ በቀጥታ ወደ ፊት። እኔ በዙሪያዬ ያኖርኩትን የዩኤስቢ wifi አስማሚን ተጠቀምኩ።

www.raspberrypi.org/learning/software-guid…

በአማራጭ ወደ Raspberry Pi ፣ አሁን ካለው ስርዓተ ክወናዎ ጋር የሊኑክስ OS ን ሁለቴ ለማስነሳት ሌላ ነባር ኮምፒተርን መጠቀም ይችላሉ (ምክንያቱም በሁለቱ መካከል ለመቀያየር ዳግም ማስነሳት አለብዎት) ወይም የሊኑክስ ስርዓተ ክወና ምሳሌን በ VirtualBox። ይህንን ፕሮጀክት መጀመሪያ እንዲሠራ ፣ ይህንን መመሪያ በመጠቀም ዴቢያን ስትሬክን ከ Raspberry Pi ዴስክቶፕ ጋር በምናባዊ ሣጥን ውስጥ ጫንኩ።

thepi.io/how-to-run-raspberry-pi-desktop-o…

(ማስታወሻ - ከላይ በተዘረዘሩት መመሪያዎች መሠረት የእንግዳ አዶዎችን በትክክል እንዲጭኑ ብዙ ጊዜ ነበረኝ። በአስተናጋጅ እና በደንበኛ መካከል ወደ ሥራው የመቁረጥ እና የመለጠፍ ሥራ በጭራሽ አላገኘም ፣ ይህ ጥሩ ነበር ፣ ግን ለመጠቀም ውሳኔው እንዲዘምን ለማድረግ ችያለሁ። የእኔ ሙሉ ተቆጣጣሪ መጠን። ይህ እኔ እዚህ የማልመዘግብባቸው ተከታታይ የጉግል ጥንቸሎች ቀዳዳዎች ነበሩ።)

ደረጃ 2 Python 3 ን ይጫኑ

Python3 ቀድሞውኑ ከ Raspian Stretch ጋር መጫን አለበት።

ደረጃ 3 የማዋቀር ሞዱል ሞዱል

በ GammaGames የተፈጠረውን ይህንን መመሪያ ይከተሉ

ካኖ_ዋንድ ሪፖን ከመዘጋቱ በፊት መጀመሪያ ወደ ሌላ ማውጫ መለወጥ ነበረብኝ ፣ አለበለዚያ የእኔ የፓይዘን ስክሪፕት ሊያገኘው አልቻለም። ምናልባት በሆነ ፋይል ውስጥ አንዳንድ የመንገድ ማጣቀሻዎችን በሆነ ቦታ ላይ ማዘመን ይችል ይሆናል ፣ ግን በዚያ ውስጥ አልገባሁም።

cd /usr/local/lib/python3.5/dist-packages

git clone

sudo pip3 bluepy moosegesture ን ይጫኑ

ተገቢውን ፈቃዶች ለማግኘት ለእነዚህ ሱዶን መጠቀም ነበረበት። እንዲሁም ድንዛዜን ለመጫን በምትኩ የሚከተሉትን ትዕዛዞች መጠቀም ነበረበት ፣ በማንኛውም ምክንያት ፣ ቧንቧ ወደ ሥራ መሄድ አልቻለም። ሌላ የመንገድ ጉዳይ ሊሆን ይችላል ፣ ግን ይህ ለእኔ ሠርቷል ስለዚህ አብሬው ሄድኩ

sudo apt-get install python3-numpy ን ይጫኑ

በመጨረሻ ፣ ከፓይዘን ስክሪፕት ብሉፕን ለማሄድ ተገቢውን ፈቃዶች ለማግኘት ይህንን ትእዛዝ አገኘሁ።

sudo setcap 'cap_net_raw, cap_net_admin+eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper

የእኛን ስክሪፕት ከፍ ለማድረግ እና ለማስኬድ የሚያስፈልገው ይህ ብቻ ነው። ቀሪዎቹ የ GammaGames መመሪያ በፒቶን ስክሪፕት ውስጥ በሚያስፈልጉት የደረጃ ቁርጥራጮች በደረጃ ይራመዳል። ስክሪፕቱ እንዴት እንደተዋቀረ እና እያንዳንዱ ነገር ምን እያደረገ እንደሆነ የበለጠ ለመረዳት ታላቅ ውድቀት ነው። ለጋማ ጌሞች ይህንን ሰነድ ስለሰጡት ትልቅ ምስጋና። እንዲሁም የስክሪፕቱን ክፍል መላ ለመፈለግ ጠቃሚ ሊሆን ይችላል። ለምሳሌ ፣ የሚታየው የመጀመሪያው ነገር የመንገዶችን መቃኘት እና የተገኙትን የዋልድዎች ዝርዝር የመመለስ ተግባር ያከናውናል። የብሉቱዝ ቅንብርዎ በሁሉም ሲሊንደሮች ላይ እየነደደ መሆኑን ጥሩ ማረጋገጫ። ይህንን ለማድረግ በሚከተለው ሪፖ ውስጥ ከተገኘው test1_BLE_wand_detect.py ኮዱን መቅዳት ይችላሉ

github.com/maspieljr/SmartWand

ደረጃ 4: SmartThings CLI ን ያዋቅሩ

በ github (https://github.com/rllynch/smartthings_cli) ላይ በ smartthings_cli repo ውስጥ የተካተቱት መመሪያዎች ቅጂ ከዚህ በታች ናቸው።

ሁሉም ነገር እንዲሠራ በማዋቀሪያዬ ላይ ማድረግ ያለብኝን ትናንሽ ማስተካከያዎችን እዚህ አካትቻለሁ። ይህንን ስላቀረቡ እንደገና rllynch እናመሰግናለን።

1) ወደ የእኔ SmartApps ይግቡ እና ስር ይግቡ ፣ በ groovy/app.groovy ውስጥ ካለው ኮድ ጋር አዲስ SmartApp ን ይፍጠሩ።

*ልብ ይበሉ በመጀመሪያው ደረጃ ላይ ለ SmartThings ድርጣቢያ ማጣቀሻ አለ። የእርስዎ ዘመናዊ ነገሮች ሂሳብ ባለበት ቦታ ላይ በትኩረት ይከታተሉ። ሌላ ጣቢያ እንድገባ ስለፈቀደልኝ ይህ ለእኔ ለተወሰነ ጊዜ ተንከባለለኝ ፣ ግን የእኔን ማንኛውንም ነገር ማግኘት አልቻለም። ወደ የእኔ SmartThings መለያ ለመግባት የሚከተለውን አገናኝ መጠቀም ነበረብኝ።

(ያንን ለመደርደር ላሳለፍኳቸው 2 ሰዓታት እንኳን ደህና መጣችሁ:) ይህ በኋላ ላይም እንዲሁ አስፈላጊ ይሆናል።)

2) የመተግበሪያ ቅንብሮችን ጠቅ ያድርጉ እና በ OAuth ስር ፣ በዘመናዊ መተግበሪያ ውስጥ OAuth ን አንቃ የሚለውን ጠቅ ያድርጉ። የ OAuth ደንበኛ መታወቂያ እና የ OAuth ደንበኛ ምስጢር ልብ ይበሉ። የ OAuth ደንበኛ ማሳያውን ወደ SmartThings CLI መቆጣጠሪያ ያዘምኑ። አዘምንን ጠቅ ያድርጉ።

3) ወደ የእኔ SmartApps ይመለሱ እና ከዚያ በ SmartThings CLI መቆጣጠሪያ ላይ ጠቅ ያድርጉ። አትም => ለእኔ ጠቅ ያድርጉ።

4) የ smartthings_cli ማከማቻን ይደብቁ ፣ ከተፈለገ virtualenv ይፍጠሩ (ይህንን አላደረግኩም) ፣ ከዚያ የሚከተሉትን ትዕዛዞች ያሂዱ ፣ CLIENTID ን እና CLIENTSECRET ን በመታወቂያ እና ከደረጃ 2 በሚስጥር ይተኩ።

የ smartthings repo ን ለመዝጋት የሚከተለውን ትዕዛዝ መጠቀም ይችላሉ። የሊኑክስ ትዕዛዝ መጠየቂያ በ Wand ሞዱል ማዋቀር ጊዜ በተፈጠረው የፕሮጀክት ማውጫዎ ውስጥ መሆኑን ያረጋግጡ።

git clone >

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…

የሚመከር: