תוכן עניינים:
- שלב 1: התקן את Linux ב- Raspberry Pi
- שלב 2: התקן את פייתון 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-01-30 09:14
פרויקט זה נועד לקבל סקריפט Python לשליטה ב- Smartthings עם שרביט הקידוד של קאנו כקלט.
הבנות שלי (8 ו -12) הן מעריצות גדולות של הארי פוטר וקיבלו את שרביט הקידוד של קאנו לחג המולד. אפליקציית קידוד קאנו מגניבה והם נהנים איתה. כלי נהדר להצגת מושגי קידוד.
יש לנו גם קצת אוטומציה ביתית מפוזרת בכל הבית עם SmartThings, פיליפס גוון, רכזת Logitech Harmony וכו '… הם בהכרח הגיעו לנקודה שבה הם רצו להדליק את אורות עץ חג המולד עם השרביט והתחילו לזרוק מונחים כמו לומוס ו נוקס אלי. נשמע כמו אתגר מהנה אז לקחתי על עצמי.
היה צריך ללכת עם מערכת הפעלה לינוקס מאחר ואלמנט קריטי (ספריית פייתון Bluepy לחיבור לרשת Bluetooth) זמין רק בפלטפורמות לינוקס. נוח בכל מקרה מבחינה של בסופו של דבר לרצות להריץ את זה על פטל פטל.
יש כאן שתי הפניות עיקריות, שבלעדיהן, לעולם לא הייתי מצליח לעשות זאת.
תודה ל- 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 של Bluetooth (השתמשתי במתאם USB 4.0 של Kensington Bluetooth)
- חיבור לאינטרנט (עבור ה- RPi השתמשתי במתאם USB של Edimax USB שהיה לי מפרויקט קודם)
שלב 1: התקן את Linux ב- Raspberry Pi
עקוב אחר הקישורים שלהלן כדי להתקין מערכת הפעלה Linux על ה- Raspberry Pi. השתמשתי ב- Raspbian Stretch עם תוכנת שולחן עבודה ומומלצת והבהבתי עם Etcher.
www.raspberrypi.org/learning/software-guid…
לאחר שתשלים את ההתקנה ויש לך שורת פקודות Linux, מומלץ להריץ את שתי הפקודות הבאות כדי לוודא שהכל מעודכן.
עדכון sudo apt-get
sudo apt-get upgrade
הקלד את הממשק הבא בממשק שורת הפקודה כדי להפעיל את ממשק המשתמש השולחני.
sudo startx
הדבר הבא להתקנה הוא חיבור לאינטרנט, כך שתוכל להגיע למאגרים וכאלה להתקנת תוכנות נוספות. חיבור לאינטרנט יידרש גם כדי לפגוע ב- API של SmartThings. עקוב אחר מדריך זה כדי להתחבר. די ישר קדימה משולחן העבודה. השתמשתי במתאם wifi wifi שהייתי מונח.
www.raspberrypi.org/learning/software-guid…
לחלופין ל- Raspberry Pi, תוכל להשתמש במחשב קיים אחר לאתחול כפול של מערכת הפעלה Linux יחד עם מערכת ההפעלה הקיימת שלך (סוג של כאב מכיוון שאתה צריך לאתחל מחדש כדי לעבור בין השניים) או להפעיל מופע של מערכת ההפעלה Linux על VirtualBox. כדי שהפרויקט הזה יתחיל לעבוד בהתחלה, התקנתי את Debian Stretch עם Raspberry Pi Desktop בתיבה וירטואלית באמצעות מדריך זה:
thepi.io/how-to-run-raspberry-pi-desktop-o…
(הערה: היה לי הרבה זמן להתקין תוספות אורחים כראוי לפי ההוראות שלמעלה. מעולם לא הצלחתי לחתוך ולהדביק בין המארח ללקוח, וזה היה נחמד, אבל הצלחתי לעדכן את הרזולוציה כדי לנצל אותה. גודל הצג המלא שלי. זו הייתה סדרה של חורי כלבת בגוגל שלא אתעד כאן).
שלב 2: התקן את פייתון 3
Python3 כבר צריך להיות מותקן עם Raspian Stretch.
שלב 3: הגדרת מודול שרביט
עקוב אחר מדריך זה שנוצר על ידי GammaGames
קודם כל הייתי צריך לעבור לספרייה אחרת לפני ששובטתי את repo kano_wand, אחרת סקריפט הפייתון שלי לא הצליח למצוא אותו. כנראה יכול היה לעדכן כמה הפניות לנתיב בקובץ כלשהו איפשהו, אבל לא חפרתי על זה.
cd /usr/local/lib/python3.5/dist-packages
שיבוט git
sudo pip3 התקן דג עכבר כחול
היה צריך להשתמש ב- 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 עובר בחלקים שלב אחר שלב הנדרשים בתסריט הפיתון. זוהי התמוטטות גדולה להבין עוד כיצד התסריט בנוי ומה כל אובייקט עושה. תודה גדולה ל- GammaGames על מסירת התיעוד הזה. כמו כן יכול להיות שימושי לפתרון בעיות בחלק מהתסריט. לדוגמה, האובייקט הראשון המוצג מבצע את המשימה לסרוק אחר שרביטים ולהחזיר רשימה של שרביטים שהתגלו. אימות טוב שהתקנת ה- Bluetooth שלך פועלת על כל הצילינדרים. לשם כך, באפשרותך להעתיק את הקוד מ- test1_BLE_wand_detect.py שנמצא במאגר הבא:
github.com/maspieljr/SmartWand
שלב 4: הגדר את SmartThings CLI
להלן עותק של ההוראות הכלולות במאגר smartthings_cli ב- github (https://github.com/rllynch/smartthings_cli).
כללתי כאן את השינויים הקטנים שהייתי צריך לבצע בהתקנה שלי כדי שהכל יעבוד. שוב תודה ל rllynch שסיפקת זאת.
1) היכנס ותחת My SmartApps שלי, צור SmartApp חדש עם הקוד ב- groovy/app.groovy.
*שימו לב בשלב הראשון יש התייחסות לאתר SmartThings. שימו לב היטב למיקום החשבון שלכם. זה הכשיל אותי לזמן מה מכיוון שהאתר השני איפשר לי להיכנס, אך לא מצאתי את הדברים שלי. הייתי צריך להשתמש בקישור הבא כדי להגיע לחשבון SmartThings שלי.
(אתה מוזמן במשך שעתיים שביליתי במיון זה:) זה יהיה חשוב גם בשלב מאוחר יותר.)
2) לחץ על הגדרות אפליקציה ותחת OAuth, לחץ על הפעל OAuth באפליקציה חכמה. רשום את מזהה לקוח OAuth ואת סוד לקוח OAuth. עדכן את תצוגת לקוח OAuth לבקרת CLI של SmartThings. לחץ על עדכן.
3) חזור לאפליקציות החכמות שלי ולאחר מכן לחץ על בקרת CLI של SmartThings. לחץ על פרסם => בשבילי.
4) שיבוט את המאגר של smartthings_cli, צור וירטואלי אם תרצה (לא עשיתי זאת), ולאחר מכן הפעל את הפקודות הבאות, החלף את CLIENTID ו- CLIENTSECRET במזהה ובסוד משלב 2.
כדי לשכפל את repo smartthings אתה יכול להשתמש בפקודה הבאה. ודא ששורת הפקודה linux נמצאת בספריית הפרויקטים שלך שנוצרה במהלך התקנת מודול Wand.
שיבוט git >
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…
מוּמלָץ:
כיצד לבצע אנטנת BiQuade כפולה 4G LTE שלבים פשוטים: 3 שלבים
כיצד להפוך אנטנת 4G LTE BiQuade כפולה לשלבים קלים: לרוב לא עמדתי בפני, אין לי עוצמת אות טובה לעבודות היום-יומיות שלי. לכן. אני מחפש ומנסה סוגים שונים של אנטנות אבל לא עובד. לאחר בזבוז זמן מצאתי אנטנה שאני מקווה לייצר ולבדוק, כי זה עקרון הבנייה לא
עיצוב משחק בקפיצה ב -5 שלבים: 5 שלבים
עיצוב משחק בקפיצה ב -5 שלבים: פליק הוא דרך פשוטה מאוד ליצור משחק, במיוחד משהו כמו פאזל, רומן חזותי או משחק הרפתקאות
זיהוי פנים ב- Raspberry Pi 4B בשלושה שלבים: 3 שלבים
זיהוי פנים ב- Raspberry Pi 4B בשלושה שלבים: במדריך זה אנו הולכים לבצע זיהוי פנים ב- Raspberry Pi 4 עם Shunya O/S באמצעות ספריית Shunyaface. Shunyaface היא ספריית זיהוי/זיהוי פנים. הפרויקט שואף להשיג את מהירות הזיהוי והזיהוי המהירה ביותר עם
מהדורת ליל כל הקדושים של Arduino - מסך קופץ זומבים (שלבים עם תמונות): 6 שלבים
מהדורת ליל כל הקדושים של Arduino - מסך פופ -אאוט של זומבים (צעדים עם תמונות): רוצה להפחיד את החברים שלך ולעשות רעש צורח בהלווין? או סתם רוצה לעשות מתיחה טובה? המסך הקופץ הזה של זומבים יכול לעשות זאת! במדריך זה אלמד אותך כיצד ליצור זומבים קופצים בקלות באמצעות Arduino. ה- HC-SR0
כיצד להתקין תוספים בוורדפרס בשלושה שלבים: 3 שלבים
כיצד להתקין תוספים בוורדפרס בשלושה שלבים: במדריך זה אראה לך את השלבים החיוניים להתקנת תוסף וורדפרס לאתר שלך. בעיקרון אתה יכול להתקין תוספים בשתי דרכים שונות. השיטה הראשונה היא באמצעות ftp או דרך cpanel. אבל אני לא אפרט את זה כיוון שזה באמת משלים