فهرست مطالب:

SmartWand: 6 مرحله
SmartWand: 6 مرحله

تصویری: SmartWand: 6 مرحله

تصویری: SmartWand: 6 مرحله
تصویری: Fitbit Luxe - в 4 раза лучше чем Xiaomi Mi Band 6 💥модный аксессуар из нержавеющей стали 👏 2024, جولای
Anonim
SmartWand
SmartWand

این پروژه بدست آوردن یک اسکریپت پایتون برای کنترل Smartthings با چوب کدگذاری Kano به عنوان ورودی است.

دختران من (8 و 12 ساله) طرفداران بزرگ هری پاتر هستند و برای کریسمس عصای کد نویسی کانو را دریافت کردند. برنامه کدگذاری Kano بسیار جالب است و آنها با آن سرگرم می شوند. ابزاری عالی برای معرفی مفاهیم برنامه نویسی.

ما همچنین کمی اتوماسیون خانگی داریم که در سراسر خانه با SmartThings ، Phillips Hue ، Logitech Harmony hub و غیره پاشیده شده است … آنها ناگزیر به حدی رسیدند که می خواستند چراغ های درخت کریسمس را با عصا روشن کنند و شروع به پرتاب اصطلاحاتی مانند Lumos و نوکس به من به نظر می رسید یک چالش سرگرم کننده است بنابراین من آن را پذیرفتم.

باید از سیستم عامل لینوکس استفاده می کرد زیرا یک عنصر مهم (کتابخانه Bluepy python برای اتصال به بلوتوث) فقط در سیستم عامل های لینوکس موجود است. به هر حال راحت است از نقطه نظر اینکه در نهایت می خواهید این را روی Raspberry Pi اجرا کنید.

در اینجا دو مرجع اصلی وجود دارد که بدون آنها هرگز نمی توانستم این کار را انجام دهم.

از GammaGames برای ایجاد و اشتراک گذاری یک اسکریپت پایتون برای خواندن چوب کدگذاری کانو تشکر می کنم.

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

و

با تشکر از rllynch برای ایجاد و اشتراک گذاری اسکریپت پایتون برای رابط خط فرمان SmartThings.

github.com/rllynch/smartthings_cli

به منظور حفظ دست نخورده ، من می خواهم اکثر مراحل را در این دستورالعمل کپی کنم تا هرگونه تغییراتی را که برای راه اندازی آن لازم است ، ثبت کنم.

در اینجا چیزی است که شما نیاز دارید:

  • کیت کدگذاری هری پاتر کانو (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki…
  • سیستم عامل مبتنی بر لینوکس (من یکی را با VirtualBox راه اندازی کردم و سپس روی Raspberry Pi نصب کردم)
  • آداپتور USB بلوتوث (من از آداپتور USB Kensington Bluetooth 4.0 USB استفاده کردم)
  • اتصال به اینترنت (برای RPi ، من از آداپتور USB Edimax USB WiFi که از پروژه قبلی داشتم استفاده کردم)

مرحله 1: لینوکس را روی Raspberry Pi نصب کنید

برای نصب سیستم عامل لینوکس بر روی رزبری پای ، پیوندهای زیر را دنبال کنید. من از Raspbian Stretch با دسکتاپ و نرم افزار توصیه شده استفاده کردم و با Etcher فلش کردم.

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

پس از اتمام نصب و داشتن خط فرمان لینوکس ، تمرین خوب این است که دو دستور زیر را اجرا کنید تا مطمئن شوید همه چیز به روز است.

sudo apt-get update

sudo apt-get upgrade

برای راه اندازی رابط کاربری دسکتاپ موارد زیر را در رابط خط فرمان تایپ کنید.

sudo startx

مورد بعدی که باید راه اندازی شود اتصال به اینترنت است تا بتوانید به repos و سایر نرم افزارها دسترسی پیدا کنید. اتصال به اینترنت همچنین برای فعال کردن API SmartThings مورد نیاز است. برای برقراری ارتباط این راهنما را دنبال کنید. تقریباً مستقیم از رومیزی. من از یک آداپتور وای فای USB که در اطراف آن قرار داشتم استفاده کردم.

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

متناوبا با Raspberry Pi ، می توانید از رایانه موجود دیگری استفاده کنید تا سیستم عامل لینوکس را به همراه سیستم عامل موجود خود دوبار راه اندازی کنید (نوعی درد به دلیل اینکه برای جابجایی بین این دو باید راه اندازی مجدد کنید) یا نمونه ای از سیستم عامل لینوکس را در سیستم عامل اجرا کنید. VirtualBox. برای اینکه این پروژه در ابتدا کار کند ، من Debian Stretch را با Despberry Pi Desktop در یک جعبه مجازی با استفاده از این راهنما نصب کردم:

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

(توجه داشته باشید که من زمان زیادی نصب Guest Addons را طبق دستورالعمل های بالا نصب کردم. هرگز برش و چسباندن بین میزبان و مشتری را به کار نپرداختم ، که خوب بود ، اما من موفق به دریافت رزولوشن برای استفاده شدم اندازه مانیتور کامل من. این یک سری سوراخ های google google بود که من در اینجا آنها را مستند نمی کنم.)

مرحله 2: Python 3 را نصب کنید

Python3 باید قبلاً با Raspian Stretch نصب شود.

مرحله 3: ماژول Wand را راه اندازی کنید

این راهنمای ایجاد شده توسط GammaGames را دنبال کنید

من ابتدا مجبور شدم قبل از کلون کردن repo kano_wand به دایرکتوری دیگری تغییر کنم ، در غیر این صورت اسکریپت پایتون من آن را پیدا نکرد. احتمالاً می توانم برخی از مراجع مسیر را در برخی از فایلها در جایی به روز کنم ، اما من در این مورد تحقیق نکردم.

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

git clone

sudo pip3 نصب bluepy moosegesture

برای دریافت مجوزهای مناسب باید از sudo برای این موارد استفاده کنید. همچنین برای نصب numpy ، به هر دلیلی ، نتوانستید پیپ را کار کنید ، باید از دستورات زیر استفاده کنید. ممکن است مسئله دیگری باشد ، اما این برای من کار کرد ، بنابراین من با آن کار کردم:

sudo apt-get install python3-numpy

در نهایت ، برای دریافت مجوزهای مناسب برای اجرای bluepy از طریق اسکریپت پایتون ، این دستور را پیدا کردم.

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

این تنها چیزی است که برای راه اندازی اسکریپت ما لازم است. بقیه راهنمای GammaGames قطعات مرحله به مرحله مورد نیاز در اسکریپت پایتون را طی می کند. درک بیشتر نحوه ساختار اسکریپت و کارهایی که هر شیء انجام می دهد ، یک شکست بزرگ است. با تشکر فراوان از GammaGames برای ارائه این مستندات. همچنین می تواند برای عیب یابی بخشی از اسکریپت مفید باشد. به عنوان مثال ، اولین شیء نشان داده شده وظیفه اسکن گره ها و بازگشت لیستی از چوب های کشف شده را انجام می دهد. تأیید خوب این است که تنظیمات بلوتوث شما بر روی همه سیلندرها شلیک می شود. برای انجام این کار ، می توانید کد را از test1_BLE_wand_detect.py موجود در repo زیر کپی کنید:

github.com/maspieljr/SmartWand

مرحله 4: SmartThings CLI را راه اندازی کنید

در زیر یک نسخه از دستورالعمل های موجود در repo smartthings_cli در github (https://github.com/rllynch/smartthings_cli) آمده است.

من در اینجا تنظیمات کوچکی را که باید در تنظیمات خود انجام می دادم به کار می گیرم تا همه چیز کار کند. بازم از rllynch بخاطر تهیه این مطلب تشکر می کنم.

1) وارد شوید و در زیر SmartApps من ، یک SmartApp جدید با کد موجود در groovy/app.groovy ایجاد کنید.

*توجه داشته باشید که در اولین قدم به وب سایت SmartThings اشاره شده است. به دقت توجه کنید که حساب smartthings شما کجاست. این موضوع برای مدتی من را تحت تأثیر قرار داد زیرا سایت دیگر به من اجازه ورود به سیستم را داد ، اما هیچ چیز را پیدا نکردم. مجبور شدم از لینک زیر برای دسترسی به حساب SmartThings خود استفاده کنم.

(خوش آمدید به مدت 2 ساعت که من آن را مرتب کردم:) این در مرحله بعدی نیز مهم خواهد بود.)

2) روی تنظیمات برنامه و در OAuth ، روی فعال کردن OAuth در Smart App کلیک کنید. OAuth Client ID و OAuth Client Secret را یادداشت کنید. OAuth Client Display را به SmartThings CLI Control به روز کنید. روی Update کلیک کنید.

3) به My SmartApps بازگردید و بر روی SmartThings CLI Control کلیک کنید. روی انتشار => برای من کلیک کنید.

4) مخزن smartthings_cli را کلون کنید ، در صورت تمایل یک virtualenv ایجاد کنید (من این کار را نکردم) ، سپس دستورات زیر را اجرا کنید ، و شناسه CLIENTID و CLIENTSECRET را با مرحله 2 جایگزین کنید.

برای کلون کردن repo smartthings می توانید از دستور زیر استفاده کنید. مطمئن شوید که خط فرمان لینوکس در فهرست پروژه شماست که در هنگام راه اندازی ماژول 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…

توصیه شده: