فهرست مطالب:
- مرحله 1: لینوکس را روی Raspberry Pi نصب کنید
- مرحله 2: Python 3 را نصب کنید
- مرحله 3: ماژول Wand را راه اندازی کنید
- مرحله 4: SmartThings CLI را راه اندازی کنید
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
تصویری: SmartWand: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
این پروژه بدست آوردن یک اسکریپت پایتون برای کنترل 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…
توصیه شده:
مرحله به مرحله ساخت کامپیوتر: 9 مرحله
گام به گام ساخت کامپیوتر: لوازم: سخت افزار: مادربرد CPU & amp؛ CPU coolerPSU (منبع تغذیه) ذخیره سازی (HDD/SSD) RAMGPU (لازم نیست) مورد ابزار: پیچ گوشتی دستبند ESD/خمیر ماتریسمی با اپلیکاتور
سه مدار بلندگو -- آموزش مرحله به مرحله: 3 مرحله
سه مدار بلندگو || آموزش گام به گام: مدار بلندگو سیگنال های صوتی دریافت شده از محیط را بر روی MIC تقویت می کند و از محل تولید صدای تقویت شده به بلندگو ارسال می کند. در اینجا ، من سه روش مختلف برای ساخت این مدار بلندگو با استفاده از موارد زیر را به شما نشان خواهم داد
مرحله به مرحله اتوماسیون خانگی با استفاده از Wemos D1 Mini با طراحی PCB: 4 مرحله
گام به گام اتوماسیون خانگی با استفاده از Wemos D1 Mini با طراحی PCB: اتوماسیون خانگی گام به گام با استفاده از Wemos D1 Mini با طراحی PCB چند هفته قبل ما آموزش "اتوماسیون خانگی با استفاده از تمشک پای" را در rootaid.com منتشر کردیم که مورد استقبال علاقه مندان و علاقه مندان قرار گرفت. دانشجو. سپس یکی از اعضای ما آمد
نصب Smapler V0002 مرحله به مرحله: 5 مرحله
نصب Smapler V0002 گام به گام: Smapler یک مدار است که به تولید صدای مولد توسط David Cuartielles و Ino Schlaucher از BlushingBoy.org اختصاص داده شده است. Smapler v0002 - نسخه آاکا سنگاپور - چیزی نیست جز سپر آردوینو که برای بازی استری بد بو استفاده می شود
نصب Smapler V0001r2 مرحله به مرحله: 3 مرحله
نصب Smapler V0001r2 مرحله به مرحله: این یک راهنمای عکاسی برای نصب Smapler v0001r2 است. این یک مدار مستقل سازگار با آردوینو با اتصال کارت SD داخلی ، اتصال PS2 برای ماوس/صفحه کلید ، تقویت کننده صدا و تعدادی پین I/O برای سنسورها است. با آن شما