16 KiB
מחשב לוח וירטואלי
במקום לרכוש מכשיר IoT יחד עם חיישנים ומפעילים, ניתן להשתמש במחשב שלך כדי לדמות חומרת IoT. פרויקט CounterFit מאפשר לך להפעיל אפליקציה מקומית המדמה חומרת IoT כמו חיישנים ומפעילים, ולגשת אליהם באמצעות קוד Python מקומי שנכתב באותו אופן שבו היית כותב קוד עבור Raspberry Pi עם חומרה פיזית.
הגדרות
כדי להשתמש ב-CounterFit, תצטרך להתקין תוכנה חינמית במחשב שלך.
משימה
התקן את התוכנה הנדרשת.
-
התקן את Python. עיין ב-דף ההורדות של Python להוראות כיצד להתקין את הגרסה העדכנית ביותר של Python.
-
התקן את Visual Studio Code (VS Code). זהו העורך שבו תשתמש לכתיבת קוד המכשיר הווירטואלי ב-Python. עיין ב-תיעוד של VS Code להוראות כיצד להתקין את VS Code.
💁 אתה חופשי להשתמש בכל IDE או עורך Python אחר לשיעורים אלו אם יש לך כלי מועדף, אך ההוראות בשיעורים יתבססו על שימוש ב-VS Code.
-
התקן את התוסף Pylance עבור VS Code. זהו תוסף המספק תמיכה לשפת Python ב-VS Code. עיין ב-תיעוד התוסף Pylance להוראות כיצד להתקין את התוסף ב-VS Code.
ההוראות להתקנה והגדרה של אפליקציית CounterFit יינתנו בזמן הרלוונטי בהוראות המשימה, מכיוון שהיא מותקנת על בסיס פרויקט.
שלום עולם
נהוג להתחיל עם שפה או טכנולוגיה חדשה על ידי יצירת אפליקציית 'שלום עולם' - אפליקציה קטנה שמדפיסה טקסט כמו "Hello World"
כדי לוודא שכל הכלים מוגדרים כראוי.
אפליקציית 'שלום עולם' עבור חומרת IoT וירטואלית תוודא ש-Python ו-Visual Studio Code מותקנים כראוי. היא גם תתחבר ל-CounterFit עבור חיישני ומפעילי IoT וירטואליים. היא לא תשתמש בחומרה, אלא רק תתחבר כדי להוכיח שהכול פועל.
אפליקציה זו תהיה בתיקייה בשם nightlight
, והיא תשמש שוב עם קוד שונה בחלקים מאוחרים יותר של המשימה לבניית אפליקציית תאורת לילה.
הגדרת סביבה וירטואלית של Python
אחת התכונות החזקות של Python היא היכולת להתקין חבילות Pip - אלו חבילות קוד שנכתבו על ידי אחרים ופורסמו באינטרנט. ניתן להתקין חבילת Pip במחשב שלך עם פקודה אחת, ואז להשתמש בה בקוד שלך. תשתמש ב-Pip כדי להתקין חבילה שתאפשר לך לתקשר עם CounterFit.
כברירת מחדל, כאשר אתה מתקין חבילה, היא זמינה בכל המחשב שלך, וזה עלול לגרום לבעיות עם גרסאות חבילות - כמו אפליקציה אחת שתלויה בגרסה מסוימת של חבילה שעלולה להישבר כאשר תתקין גרסה חדשה עבור אפליקציה אחרת. כדי להתמודד עם בעיה זו, ניתן להשתמש ב-סביבה וירטואלית של Python, שהיא למעשה עותק של Python בתיקייה ייעודית, וכאשר אתה מתקין חבילות Pip הן מותקנות רק בתיקייה זו.
💁 אם אתה משתמש ב-Raspberry Pi, לא הגדרת סביבה וירטואלית במכשיר זה לניהול חבילות Pip, אלא אתה משתמש בחבילות גלובליות, מכיוון שחבילות Grove מותקנות באופן גלובלי על ידי סקריפט ההתקנה.
משימה - הגדרת סביבה וירטואלית של Python
הגדר סביבה וירטואלית של Python והתקן את חבילות Pip עבור CounterFit.
-
מהטרמינל או שורת הפקודה שלך, הרץ את הפקודות הבאות במיקום לבחירתך כדי ליצור ולנווט לתיקייה חדשה:
mkdir nightlight cd nightlight
-
כעת הרץ את הפקודות הבאות כדי ליצור סביבה וירטואלית בתיקייה
.venv
:python3 -m venv .venv
💁 עליך לקרוא במפורש ל-
python3
כדי ליצור את הסביבה הווירטואלית, למקרה שיש לך Python 2 מותקן בנוסף ל-Python 3 (הגרסה העדכנית ביותר). אם יש לך Python 2 מותקן, קריאה ל-python
תשתמש ב-Python 2 במקום ב-Python 3. -
הפעל את הסביבה הווירטואלית:
-
ב-Windows:
-
אם אתה משתמש ב-Command Prompt, או ב-Command Prompt דרך Windows Terminal, הרץ:
.venv\Scripts\activate.bat
-
אם אתה משתמש ב-PowerShell, הרץ:
.\.venv\Scripts\Activate.ps1
אם אתה מקבל שגיאה על כך שהרצת סקריפטים מושבתת במערכת זו, תצטרך לאפשר הרצת סקריפטים על ידי הגדרת מדיניות ביצוע מתאימה. תוכל לעשות זאת על ידי פתיחת PowerShell כמנהל מערכת, ואז הרצת הפקודה הבאה:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
הקלד
Y
כאשר תתבקש לאשר. לאחר מכן הפעל מחדש את PowerShell ונסה שוב.תוכל לאפס מדיניות ביצוע זו במועד מאוחר יותר אם תצטרך. תוכל לקרוא עוד על כך ב-דף מדיניות ביצוע באתר Microsoft Docs.
-
-
ב-macOS או Linux, הרץ:
source ./.venv/bin/activate
💁 פקודות אלו צריכות להתבצע מהמיקום שבו יצרת את הסביבה הווירטואלית. לעולם לא תצטרך לנווט לתוך תיקיית
.venv
, עליך תמיד להריץ את פקודת ההפעלה וכל פקודות להתקנת חבילות או הרצת קוד מהמיקום שבו היית כשיצרת את הסביבה הווירטואלית. -
-
לאחר שהסביבה הווירטואלית הופעלה, פקודת
python
כברירת מחדל תריץ את גרסת Python שבה השתמשת ליצירת הסביבה הווירטואלית. הרץ את הפקודה הבאה כדי לבדוק את הגרסה:python --version
הפלט צריך לכלול את הדברים הבאים:
(.venv) ➜ nightlight python --version Python 3.9.1
💁 ייתכן שגרסת Python שלך תהיה שונה - כל עוד היא גרסה 3.6 או גבוהה יותר, אתה במצב טוב. אם לא, מחק את התיקייה הזו, התקן גרסה חדשה יותר של Python ונסה שוב.
-
הרץ את הפקודות הבאות כדי להתקין את חבילות Pip עבור CounterFit. חבילות אלו כוללות את אפליקציית CounterFit הראשית וכן שימסים עבור חומרת Grove. שימסים אלו מאפשרים לך לכתוב קוד כאילו אתה מתכנת עם חיישנים ומפעילים פיזיים ממערכת Grove אך מחוברים למכשירי IoT וירטואליים.
pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove
חבילות Pip אלו יותקנו רק בסביבה הווירטואלית, ולא יהיו זמינות מחוץ לה.
כתיבת הקוד
לאחר שהסביבה הווירטואלית של Python מוכנה, תוכל לכתוב את הקוד עבור אפליקציית 'שלום עולם'.
משימה - כתיבת הקוד
צור אפליקציית Python שתדפיס "Hello World"
לקונסול.
-
מהטרמינל או שורת הפקודה שלך, הרץ את הפקודות הבאות בתוך הסביבה הווירטואלית כדי ליצור קובץ Python בשם
app.py
:-
ב-Windows הרץ:
type nul > app.py
-
ב-macOS או Linux הרץ:
touch app.py
-
-
פתח את התיקייה הנוכחית ב-VS Code:
code .
💁 אם הטרמינל שלך מחזיר
command not found
ב-macOS, זה אומר ש-VS Code לא נוסף ל-PATH שלך. תוכל להוסיף את VS Code ל-PATH על ידי ביצוע ההוראות ב-החלק על הפעלה משורת הפקודה בתיעוד של VS Code ולאחר מכן להריץ את הפקודה שוב. ב-Windows ו-Linux, VS Code נוסף ל-PATH כברירת מחדל. -
כאשר VS Code יופעל, הוא יפעיל את הסביבה הווירטואלית של Python. הסביבה הווירטואלית שנבחרה תופיע בשורת המצב התחתונה:
-
אם הטרמינל של VS Code כבר פועל כאשר VS Code מופעל, הוא לא יפעיל את הסביבה הווירטואלית בתוכו. הדרך הקלה ביותר היא לסגור את הטרמינל באמצעות כפתור Kill the active terminal instance:
תוכל לדעת אם הטרמינל מפעיל את הסביבה הווירטואלית לפי שם הסביבה הווירטואלית שיופיע כקידומת בשורת הפקודה של הטרמינל. לדוגמה, זה עשוי להיות:
(.venv) ➜ nightlight
אם אין
.venv
כקידומת בשורת הפקודה, הסביבה הווירטואלית אינה פעילה בטרמינל. -
הפעל טרמינל חדש ב-VS Code על ידי בחירה ב-Terminal -> New Terminal, או על ידי לחיצה על
CTRL+`
. הטרמינל החדש יטען את הסביבה הווירטואלית, והקריאה להפעלתה תופיע בטרמינל. שורת הפקודה תכלול גם את שם הסביבה הווירטואלית (.venv
):➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight
-
פתח את הקובץ
app.py
מתוך סייר הקבצים של VS Code והוסף את הקוד הבא:print('Hello World!')
הפונקציה
print
מדפיסה לקונסול כל מה שמועבר אליה. -
מהטרמינל של VS Code, הרץ את הפקודה הבאה כדי להריץ את אפליקציית Python שלך:
python app.py
הפלט יהיה:
(.venv) ➜ nightlight python app.py Hello World!
😀 אפליקציית 'שלום עולם' שלך הצליחה!
חיבור ה'חומרה'
כשלב שני של 'שלום עולם', תפעיל את אפליקציית CounterFit ותחבר את הקוד שלך אליה. זהו המקבילה הווירטואלית לחיבור חומרת IoT ללוח פיתוח.
משימה - חיבור ה'חומרה'
-
מהטרמינל של VS Code, הפעל את אפליקציית CounterFit עם הפקודה הבאה:
counterfit
האפליקציה תתחיל לפעול ותיפתח בדפדפן האינטרנט שלך:
היא תסומן כ-Disconnected, עם הנורית בפינה הימנית העליונה כבויה.
-
הוסף את הקוד הבא לראש הקובץ
app.py
:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
קוד זה מייבא את המחלקה
CounterFitConnection
ממודולcounterfit_connection
, שמגיע מחבילת ה-pipcounterfit-connection
שהתקנת קודם. לאחר מכן הוא מאתחל חיבור לאפליקציית CounterFit שרצה על127.0.0.1
, שהוא כתובת IP שתמיד ניתן להשתמש בה כדי לגשת למחשב המקומי שלך (לעיתים קרובות נקרא localhost), על פורט 5000.💁 אם יש לך אפליקציות אחרות שרצות על פורט 5000, תוכל לשנות זאת על ידי עדכון הפורט בקוד, והרצת CounterFit באמצעות
CounterFit --port <port_number>
, כאשר<port_number>
הוא הפורט שברצונך להשתמש בו. -
תצטרך להפעיל טרמינל חדש ב-VS Code על ידי בחירה בכפתור Create a new integrated terminal. זאת מכיוון שאפליקציית CounterFit רצה בטרמינל הנוכחי.
-
בטרמינל החדש, הרץ את הקובץ
app.py
כפי שעשית קודם. הסטטוס של CounterFit ישתנה ל-Connected והנורית תידלק.
💁 תוכל למצוא את הקוד הזה בתיקייה code/virtual-device.
😀 החיבור שלך לחומרה הצליח!
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.