לסמלץ Azure IoT עם VSCode
סדרה מאמרים שמתמקדמת במעבדות ודרכים לביצוע פעולות שונות על גבי Azure IoT, המאמר הנוכחי מתמקד בהגדרת סימולטור על גבי VSCode.
Azure IoT הוא שירות ענן (Managed) המורכב מתפקידים ורכיבים שונים במטרה לנהל, לנטר ולאפשר חיבור של אינספור התקני IoT/IoE ממקום אחד עם כלים שונים.
בשירות של Azure IoT ישנם המון מושגים, בין היתר:
התקני IoT המבוססים על חומרה כלשהיא ומכילים סנסורים המחוברים לאינטרנט בדרכים שונות ועם צ’יפים שמאפשרים חיבור באמצעות LAN, WiFi, GPRS וכן הלאה. המטרה של התקן הקצה הוא לתת דיווחים לגבי תרחישים שונים, למשל, מעקב אחר טמפרטורת החדר והתראה במקרים מסוימים או פתרון לחדרים חכמים ומעקב אחר כמות הנוכחים בחדר וכן הלאה.
התקנים לדוגמה, התקן מבוסס MX Chip או התקן מבוסס Raspberry PI. התקן מסוימים מגיעים עם ערכה שלמה לחיבור מול Azure על מנת לפשט את החיבור הראשוני וכלי השליטה שיש בהתקן.
תקשורת המחוברת אל הענן (שירות back-end) לפי תנאים של חיבור בכל רגע נתון או שליחת נתונים כל פרק זמן מסוים, התקשורת יכולה להיות דו-כיוונית. דוגמאות נפוצות, הם, שליחת טלמטריה מתוך התקן IoT אל הענן או שליחת התראות על סמך תנאים מסוימים (שהוגדרו מראש).
בחירת תקשורת היא חלק מהותי בגלל החיבור של התקן אל הענן דורש תקשורת מאובטחת ורציפה במטרה לאפשר את כל אותן פעולות, ולכן תקשורת נעשית על סמך דגשים מסוימים, בין היתר:
- ביצוע פעולות ללא מגע פיזי בהתקן
- הטמעה מרוחקת של התקן ללא אפשרות גישה פיסית
- מצבים בהם ישנה תקשורת איטית או לא יציבה
חיבור לשירות Azure IoT HUB הוא למעשה חיבור אל שירות backend שיאפשר ניהול וביצוע פעולות על כל אותם התקנים. שירות Backend יכול לבצע פעולות כדוגמת:
- קבלת נתונים מתוך התקן וביצוע פעולות חישוב ותהליכים על גבי אותם נתונים
- ביצוע אנליטיקות בזמן אמת על הנתונים אשר נשלחים
- שליחת פקודות אל התקני IoT
ישנם רכיבים רבים בשירות הענן Azure IoT המפאשרים לבצע אינספור פעולות מול תשתית IoT, בין היתר הרכיבים הבאים:
- IoT Central
- IoT solution accelerators
- IoT Hub
- IoT Hub Device Provisioning Service
- IoT Edge
- Azure Digital Twins
- Time Series Insights
- Azure Maps
לצד זה ישנם כלים רבים שאיתם ניתן לעבוד כמו VSCode, כלי הניהול של IoT HuB ונוספים.
איך לסמלץ IoT עם VSCode
כאשר מבצעים פיתוח מול Azure IoT צריך לבדוק ולסמלץ את כל אותן שורות קוד, וישנם מקרים בהם אין התקן חומרה או שרוצים לסמלץ משהו מהיר ללא חיבור מול חומרה כלשהיא, ובדיוק לטובת זה ישנם אפשרויות לבצע סימולציה.
ישנם כלים בודדים שאיתם ניתן לבצע סימולציה ואחד מהם הוא כלי VSCode, שאיתו ניתן לבצע סימולציה של D2C מול Azure IoT Hub תוך דקות בודדות.
דרישות
בכדי לסמלץ Device simulator עם VSCode ישנם מספר דרישות:
- שירות Azure עם Subscription בסיסי
- כלי VSCode עם הרחבת Azure IoT Toolkit
הגדרה והפעלת Azure IoT
בכדי לעבוד עם הסימולטור ישנם מספר הגדרות ברמת ממשק VSCode מול Azure.
טיפ: כלל הפעולות אשר מתבצעות על הסימולטור נרשמות במלואן ברמת Resource Group.
מכאן אנו ממשיכים ליצירת IoT ע”י בחירה באפשרות של Create IoT Hub בכדי ליצור Hub חדש
הערה: צריך לבצע התחברות עם חשבון בעל הרשאות לשירות Azure.
לאחר מכן נבחר Subscription
לאחר מכן ניצור Resource Group עם שם ספציפי
נבחר את המיקום של אותו RG
נבחר Pricing Tier, ובמידה והאפשרות של F1:Free Tier זמינה אז כדאי לבחור בו
לאחר מכן נגדיר שם ליצירת IoT Hub
בסיום נמתין מספר דקות בודדות בכדי שהמשאבים יוגדרו בשירות Azure
בסיום אנו צריכים להגיע למצב הבא של Resource Group מוכן עם אפשרות להגדיר Device, כמו בצילום המצורף מטה
הגדרת מכשירים
הגדרה ורישום מכשירים נעשית מתוך ממשק VSCode, ומתוך Azure IoT HUB נבחר באפשרות של Create Device
לאחר מכן נבחר שם להתקן הנדרש
ולאחר מספר דקות יוגדר Device ובסיום נקבל את הפלט הבא עם התקן מוגדר
לאחר שסיימנו לבצע הגדרת סימולטור נוכל לבצע פעולות מסוימות, כגון, שליחת הודעות (C2D) מתוך הענן אל ההתקן.
בדיקת רכיבי IoT בממשק Azure מאפשרת לבצע את אותן פעולות בהשוואה לממשק VSCode, ותמיד נוכל לראות את הרכיבים שהוגדרו ולבצע בדיקה גם מתוך הענן.
כמו ניתן לראות אפשר לבצע פעולות שונות מול אותו התקן ואף להריץ קוד ספציפי לטובת סימלוץ של אפליקציה ייעודית.
לסיכום
ישנם תרחישים שונים שאיתן ניתן לבצע בדיקות מול Azure IoT, בין אם מדובר על חומרה פיזית או התקנים וירטואלים וזאת בכדי לבצע פעולות שונות כדוגמת, שליפת נתונים, הרצת אפליקציות ושליחת פקודות אל התקני IoT.
ישנם סימולטורים שונים שאיתם ניתן לעבוד, הממשק של VSCode מאפשר לעבוד עם הרחבה ייעודית אשר מפשטת את ביצוע הפעולות והתממשקות מול IoT.