מבוא ל – AWS IoT Core

AWS IoT Core

אחת הטכנולוגיות החביבות עלי בשנים האחרונות היא Internet of Things או בקציר IoT. איך מחברים חפצים (דברים – Things) לאינטרנט. ״החפצים״ יכולים להיות מאד מגוונים, ממנורה, מזגן, תריס חשמלי, מקרר או מכונת קפה, דרך רובוטים, מכונות וציוד מכני בתעשייה ועד ערים חכמות שמנהלות את החשמל, תנועה, פינוי אשפה ועוד באמצעות אותם ״חפצים״.

אני לא הולך לדבר על IoT ברמה הכללית ואם אתם מחפשים מבוא כללי, הנה הרצאה שלי משנה שעברה (בעברית) על מה זה IoT, מה עושים איתו ואיך AWS תורמת לפיתוח מוצרי IoT עם כלים כמו AWS IoT Core, הנמצאים בבסיס של הרבה פתרונות IoT שאתם (אולי) משתמשים בהם.

ענן + IoT – החיבור המושלם

מכיוון שרוב החומרה שמפעילה רכיבי IoT היא מאד בסיסית ורזה, הן בכח עיבוד והן במקום לשמירת נתונים, חלק גדול מהדברים שנרצה לעשות עם IoT, מעבר לקבלת החלטה מקומית או תגובה למצב מוגדר מראש (עליה בטמפרטורה לדוגמה), נידרש לחבר את ״הדבר״ שלנו למערכת מרכזית, חזקה וגדולה יותר.

אז כמובן שאפשר לחבר לסוג של Hub מקומי, שרץ אצלכם ברשת אבל גם אז, מחיר העיבוד והאחסון יהיה יחסית גבוה. הענן בא לפתור בדיוק את הבעיה הזאת. מחשוב ענן הוא היום אחת החלופות הזולות, הזמינות והאמינות למשאבי מחשוב וזה רק מתבקש להשתמש בשרותי ענן בתור Backend לפתרונות IoT.

יש לא מעט ארכיטקטורות לחיבור IoT וענן. ברמה הכללית הענן ישמש פתרונות IoT לכמה פונקציות מרכזיות:

  • ניהול ואבטחה של רכיבים
  • שמירת נתונים
  • ניתוח ועיבוד נתונים
  • קבלת החלטות על בסיס מידע ממספר גדול של התקנים שלא מחוברים אחד לשני
  • קישור בין אפליקציות (שליטה, בקרה וכו׳) ורכיבי ה – IoT
  • עדכוני תוכנה Over the Air (OTA)
  • כל מה ששכחתי…

AWS IoT Core

השרות הבסיסי ביותר במגוון השרותים של AWS עבור פתרונות IoT הוא AWS IoT Core.

ברוב המקרים, זה יהיה השרות הראשון שתפגשו במהלך פיתוח פתרון IoT ואליו יצטרפו בהמשך שרותי IoT נוספים כגון AWS IoT Device Management לניהול התקנים בכמויות גדולות, AWS IoT Device Defender לכל מה שקשרו לאבטחה של רכיבים, AWS IoT Analytics לניתוח נתונים ועוד.

השימוש הראשוני ב – AWS IoT Core יאפשר לכם לחבר את ההתקנים שלכם לענן, לקבל ולשלוח אליהם מידע ולהפעיל שרותים ופעולות מסויימות בהתבסס על המידע הזה.

חיבור IoT Device ראשון לענן

מבלי להתייחס לסוג חומרת ה- IoT שברצונכם לחבר לענן, תהליך החיבור הראשוני של התקנים אלו ל – AWS הוא דומה, בין אם מדובר על התקנים ״חזקים״ כמו Raspberry Pi, הכוללים מעבד חזק יחסית או התקנים רזים (וזולים), המבוססים על MicroControllers (MCU), עם מעבדים חלשים ומעט מאד זיכרון, כגון רכיבי ESP שונים (ESP32, ESP8266).

MCU IoT Devices
אוסף פרטי של צעצועי IoT

על מנת לחבר את ה – Device שלכם ל – AWS IoT, השלב הראשון הוא לרשום אותו במערכת. הרישום (בנוסף למעקב אחרי המכשיר) יפיק עבורו את מפתחות האבטחה שידרשו על מנת לחבר את ההתקן לענן.

ניגשים ל – Console של AWS, בשורת החיפוש למעלה מקלידים IoT Core ומגיעים למסך הבא:

 AWS IoT Core

לפני שמתחילים, חשוב לזכור שב – AWS אנחנו עובדים ב – Regions, המפוזרים ברחבי העולם, ולפני שמתחילים, חייבים לבחור את ה – Region שבו נשתמש (פינה ימנית למעלה – בתמונה שלי מוגדר ל – Ireland).

להוספת Device חדש, נבחר בתפריט השמאלי את האפשרות של Onboard –> Get started ובחלון החדש שיפתח נבחר באפשרות Onboard a device –> Get started.

המסך הבא למעשה מסביר את התהליך. השלב הראשון רישום ה – Device, ואז הורדת התוכנה והמפתחות ולבסוף בדיקת החיבור לאחר סיום התהליך.

בשלב הבא עלינו לבחור את מערכת ההפעלה ושפת הפיתוח בה אנחנו הולכים להשתמש ב – Device שלנו. חשוב לציין בשלב הזה שגם אם אנחנו הולכים להוסיף רכיבי MCU, שלא מריצים מערכת הפעלה סטנדרטית, יש לעבור את התהליך הזה, על מנת להפיק את מפתחות האבטחה. אני בוחר Linux/Python במקרים כאלו, אבל זה ממש לא משנה. נקודה נוספת שחשוב לזכור של – AWS יש SDKs להרבה מאד שפות, גם אם הן לא מופיעות בתהליך הוספת ה – Device ל – AWS IoT Core. אם אתם מפתחים בשפה אחרת, ממליץ לבדקות את יכולות ה – IoT של ה – SDK שלה בעמוד הדוקומנטציה הרלוונטי.

במעבר לשלב הבא תידרשו לתת שם ל – Device שלכם. זה לגמרי נתון לשיקולכם אבל ממליץ מראש להגדיר Name Convention, שישמש אתכם בעתיד, בעיקר אם תידרשו לנהל מספר רב של Devices.

ברכות! בשלב הזה ה – Device שלכם רשום במערכת וכל מה שנותר לכם הוא ללחוץ על כפתור – Download connection kit שיוריד למחשב שלכם קובץ zip הכולל תעודת אבטחה, מפתחות (פרטי וציבורי) וקובץ (Shell Script במקרה של Linux) שמוריד את ה – SDK ל – Device שלכם ומריץ קוד בסיסי שמחבר את ה – Device שלכם ל – AWS IoT Core.

לאחר ההורדה ידלק הכפתור של Next step ובו הוראות מפורטות איך לבדוק את הקישוריות של ה – Device ל – AWS IoT Core.

ניהול Devices

בשלב הזה ה – Device שלכם הוא חלק מהמערכת ואתם יכולים לנהל אותו דרך AWS IoT. לדוגמא, בתפריט השמאלי תוכלו לגשת ל – Manage –> Things, על מנת לנהל את ה – Devices שלכם או לתפריט Secure, על מנת לנהל את תעודות האבטחה ו – Policies שמגדירים לאיזה Resources כל אחד מהם יכול לגשת.

ממשק שימושי נוסף, בעיקר בשלבי פיתוח ראשונים הוא Test, המאפשר להתחבר ל – IoT Topic, אליו וממנו Devices יכולים לקרוא ולכתוב נתונים ולבצע פעולות בדיקה וניטור לנתונים שעוברים בין הענן וה – Device.

לסיכום

כאמור זה השלב הראשון, מכאן והלאה יש אין סוף אפשרויות למה אפשר לעשות עם IoT ואני הולך לכתוב כאן על כמה מהפרויקטים שלי. מוזמנים לעקוב אחרי הקטגוריה של IoT בבלוג והסרטים שאני מוציא לערוץ ה – YouTube שלי, לשאול שאלות וליצור קשר במדיות השונות.

בהצלחה!

אודות הכותב

בועז זינימן
Principal Developer Advocate ב – AWS. לפי שהצטרף ל – AWS שימש כדירקטור בכיר לאסטרטגיית Cloud בחברת התוכנה Rogue Wave Software אשר רכשה את Zend Technologies ב – 2015. בעשור האחרון ניהל את הצוותים הטכנולוגיים ב – Zend, כולל תיכנון ופיתוח כל מערכות ה – Web, פתרונות Hosting, אסטרטגיית IT ותשתיות. לפני שהצטרף ל – Zend, במהלך 15 השנים האחרונות, ניהל צוותי פיתוח Web במספר חברות טכנולוגיה בישראל. מתמחה בעיקר במחשוב ענן ובמערכות LAMP - Linux Apache MySQL PHP ובעל הסמכת ZCE - Zend Certified Engineer משנת 2005.