جدول المحتويات:
- الخطوة 1: قم بتثبيت Linux على Raspberry Pi
- الخطوة الثانية: تثبيت Python 3
- الخطوة 3: إعداد وحدة العصا
- الخطوة 4: إعداد SmartThings CLI
- step 5: improve response
- step 6: make smartwand execute on raspberry pi bootup
فيديو: SmartWand: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-02-02 14:32
هذا المشروع هو الحصول على برنامج نصي من Python للتحكم في Smartthings باستخدام عصا تشفير Kano كمدخل.
ابنتاي (8 و 12) من المعجبين الكبار بهاري بوتر وحصلا على عصا الترميز Kano Coding Wand لعيد الميلاد. تطبيق الترميز Kano رائع ويستمتعون به. أداة رائعة لتقديم مفاهيم الترميز.
لدينا أيضًا القليل من أتمتة المنزل في جميع أنحاء المنزل باستخدام SmartThings و Phillips Hue و Logitech Harmony hub وما إلى ذلك … لقد وصلوا حتمًا إلى النقطة التي أرادوا فيها تشغيل أضواء شجرة الكريسماس باستخدام العصا وبدأوا في إلقاء مصطلحات مثل Lumos و Nox في وجهي. بدا الأمر وكأنه تحدٍ ممتع ، لذا خضته.
كان من الضروري استخدام نظام تشغيل Linux نظرًا لأن عنصرًا حاسمًا (مكتبة Bluepy python للاتصال ببلوتوث العصا) متاح فقط على أنظمة Linux الأساسية. مناسب على أي حال من وجهة نظر الرغبة في تشغيل هذا على Raspberry Pi في النهاية.
هناك مرجعتان رئيسيتان هنا ، اللذان بدونهما ، لم أكن لأتمكن من القيام بذلك.
بفضل GammaGames لإنشاء ومشاركة نص Python لقراءة عصا الترميز Kano.
github.com/GammaGames/kano-wand-demos/blob…
و
بفضل rllynch لإنشاء ومشاركة نص بيثون لواجهة سطر أوامر SmartThings.
github.com/rllynch/smartthings_cli
من أجل الحفاظ على هذا كما هو ، سأقوم بنسخ معظم الخطوات إلى Instructable هذا لالتقاط أي تعديلات أحتاجها لجعلها تعمل على الإعداد الخاص بي.
إليك ما ستحتاجه:
- مجموعة ترميز هاري بوتر كانو (https://www.amazon.com/Kano-Harry-Potter-Coding-Ki …
- نظام تشغيل Linux (قمت بتشغيله مع VirtualBox ، ثم تم تثبيته على Raspberry Pi)
- محول Bluetooth USB (استخدمت محول Kensington Bluetooth 4.0 USB)
- اتصال الإنترنت (بالنسبة إلى RPi ، استخدمت محول Edimax USB WiFi من مشروع سابق)
الخطوة 1: قم بتثبيت Linux على Raspberry Pi
اتبع الروابط أدناه لتثبيت نظام تشغيل Linux على Raspberry Pi. لقد استخدمت Raspbian Stretch مع سطح المكتب والبرامج الموصى بها ووميض باستخدام Etcher.
www.raspberrypi.org/learning/software-guid…
بمجرد إكمال التثبيت والحصول على موجه أوامر Linux ، من الجيد تشغيل الأمرين التاليين للتأكد من تحديث كل شيء.
sudo apt-get update
sudo apt-get ترقية
اكتب ما يلي في واجهة سطر الأوامر لتشغيل واجهة مستخدم سطح المكتب.
sudo ستارتكس
الشيء التالي الذي يجب إعداده هو اتصال بالإنترنت بحيث يمكنك الوصول إلى المستودعات وتثبيت المزيد من البرامج. سيكون الاتصال بالإنترنت مطلوبًا أيضًا للوصول إلى واجهة برمجة تطبيقات SmartThings. اتبع هذا الدليل للاتصال. بشكل مستقيم للأمام من سطح المكتب. لقد استخدمت محول USB wifi كنت أضعه.
www.raspberrypi.org/learning/software-guid…
بدلاً من Raspberry Pi ، يمكنك استخدام كمبيوتر آخر موجود إما للتمهيد المزدوج لنظام التشغيل Linux مع نظام التشغيل الحالي (نوع من الألم لأنه يتعين عليك إعادة التشغيل للتبديل بين الاثنين) أو تشغيل مثيل لنظام التشغيل Linux على فيرتثلبوإكس. لبدء هذا المشروع في البداية ، قمت بتثبيت Debian Stretch مع Raspberry Pi Desktop في Virtual Box باستخدام هذا الدليل:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(ملاحظة: لقد أمضيت وقتًا طويلاً في تثبيت إضافات الضيف بشكل صحيح وفقًا للتعليمات أعلاه. لم يتم عمل القص واللصق بين المضيف والعميل ، وكان ذلك سيكون رائعًا ، لكنني تمكنت من تحديث الدقة للاستفادة منها حجم الشاشة الكامل. كانت هذه سلسلة من ثقوب google rabit التي لن أوثقها هنا.)
الخطوة الثانية: تثبيت Python 3
يجب تثبيت Python3 بالفعل مع Raspian Stretch.
الخطوة 3: إعداد وحدة العصا
اتبع هذا الدليل الذي أنشأته GammaGames
اضطررت أولاً إلى التغيير إلى دليل مختلف قبل استنساخ kano_wand repo ، وإلا فلن يتمكن برنامج python النصي من العثور عليه. ربما كان من الممكن تحديث بعض مراجع المسار في ملف ما في مكان ما ، لكنني لم أتعمق في ذلك.
cd /usr/local/lib/python3.5/dist-packages
استنساخ بوابة
sudo pip3 تثبيت moosegesture مخطط
كان لا بد من استخدام sudo لهؤلاء للحصول على الأذونات المناسبة. كان لا بد أيضًا من استخدام الأوامر التالية بدلاً من ذلك لتثبيت numpy ، لأي سبب من الأسباب ، لا يمكن تشغيل pip. ربما كانت مشكلة مسار أخرى ، لكن هذا نجح معي ، لذلك ذهبت معه:
sudo apt-get install python3-numpy
أخيرًا ، من أجل الحصول على الأذونات المناسبة لتشغيل bluepy من نص Python النصي ، وجدت هذا الأمر.
sudo setcap 'cap_net_raw ، cap_net_admin + eip' /usr/local/lib/python3.5/dist-packages/bluepy/bluepy-helper
هذا كل ما هو مطلوب للحصول على البرنامج النصي الخاص بنا وتشغيله. يسير باقي دليل GammaGames عبر الأجزاء خطوة بخطوة المطلوبة في نص Python. إنه تفصيل رائع لفهم كيفية هيكلة النص بشكل أكبر وما يفعله كل كائن. شكراً جزيلاً لـ GammaGames لتقديم هذه الوثائق. قد يكون مفيدًا أيضًا في استكشاف الأخطاء وإصلاحها لأحد أقسام البرنامج النصي. على سبيل المثال ، يقوم الكائن الأول المعروض بمهمة المسح بحثًا عن الصولجانات وإرجاع قائمة بالعصي التي تم اكتشافها. تحقق جيد من أن إعداد البلوتوث الخاص بك يعمل على جميع الأسطوانات. للقيام بذلك ، يمكنك نسخ الكود من test1_BLE_wand_detect.py الموجود في الريبو التالي:
github.com/maspieljr/SmartWand
الخطوة 4: إعداد SmartThings CLI
فيما يلي نسخة من التعليمات المضمنة في smartthings_cli repo على جيثب (https://github.com/rllynch/smartthings_cli).
لقد أدرجت هنا التعديلات الصغيرة التي كان عليّ إجراؤها في الإعداد الخاص بي لتشغيل كل شيء. شكرا مرة أخرى ل rllynch لتوفير هذا.
1) قم بتسجيل الدخول وتحت My SmartApps ، قم بإنشاء تطبيق SmartApp جديد مع الكود في groovy / app.groovy.
* لاحظ في الخطوة الأولى أن هناك إشارة إلى موقع SmartThings على الويب. انتبه جيدًا إلى مكان وجود حساب smartthings الخاص بك. لقد أوقفني هذا لفترة من الوقت حيث سمح لي الموقع الآخر بتسجيل الدخول ، لكن لم أستطع العثور على أي من أشيائي. اضطررت إلى استخدام الرابط التالي للوصول إلى حساب SmartThings الخاص بي.
(مرحبًا بك في الساعتين اللتين قضيتهما في فرز ذلك:) سيكون هذا مهمًا أيضًا في خطوة لاحقة.)
2) انقر فوق إعدادات التطبيق وضمن OAuth ، انقر فوق تمكين OAuth في التطبيق الذكي. دوّن معرّف عميل OAuth وسر عميل OAuth. قم بتحديث عرض عميل OAuth إلى عنصر تحكم CLI في SmartThings. انقر فوق تحديث.
3) ارجع إلى My SmartApps ثم انقر فوق SmartThings CLI Control. انقر فوق نشر => بالنسبة لي.
4) قم بنسخ مستودع smartthings_cli ، وإنشاء virtualenv إذا رغبت في ذلك (لم أفعل ذلك) ، ثم قم بتشغيل الأوامر التالية ، واستبدل CLIENTID و CLIENTSECRET بالمعرف والسري من الخطوة 2.
لاستنساخ smartthings repo ، يمكنك استخدام الأمر التالي. تأكد من وجود موجه أوامر linux في دليل المشروع الذي تم إنشاؤه أثناء إعداد وحدة Wand.
استنساخ بوابة >
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…
موصى به:
تصميم اللعبة في فليك في 5 خطوات: 5 خطوات
تصميم اللعبة في Flick in 5 Steps: Flick هي طريقة بسيطة حقًا لصنع لعبة ، لا سيما شيء مثل الألغاز أو الرواية المرئية أو لعبة المغامرة
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف - خطوات خطوة: 4 خطوات
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف | خطوات بخطوة: في هذا المشروع ، سأصمم دائرة مستشعر لعكس مواقف السيارات من Arduino باستخدام مستشعر الموجات فوق الصوتية Arduino UNO و HC-SR04. يمكن استخدام نظام التنبيه العكسي للسيارة المستند إلى Arduino للتنقل الذاتي ومجموعة الروبوتات وغيرها من النطاقات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: 3 خطوات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: في هذا Instructable سنقوم باكتشاف الوجه على Raspberry Pi 4 باستخدام Shunya O / S باستخدام مكتبة Shunyaface. Shunyaface هي مكتبة للتعرف على الوجوه / الكشف عنها. يهدف المشروع إلى تحقيق أسرع سرعة في الكشف والتعرف مع
كيف تصنع عداد خطوات؟: 3 خطوات (بالصور)
How to Make Step Counter؟: اعتدت أن أؤدي أداءً جيدًا في العديد من الرياضات: المشي والجري وركوب الدراجة ولعب كرة الريشة وما إلى ذلك ، أحب ركوب الخيل للسفر في وقت قريب. حسنًا ، انظر إلى بطني المنتفخ … حسنًا ، على أي حال ، قررت إعادة التمرين. ما هي المعدات التي يجب أن أحضرها؟
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): 6 خطوات
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): هل تريد تخويف أصدقائك وإحداث بعض ضوضاء الصراخ في عيد الهالوين؟ أو تريد فقط عمل مزحة جيدة؟ يمكن لشاشة الزومبي المنبثقة القيام بذلك! في هذا Instructable ، سوف أعلمك كيفية جعل زومبي القفز للخارج بسهولة باستخدام Arduino. HC-SR0