עבור אנשים רבים, הזינוק הנוכחי בחיבור של מכשירי חשמל ביתיים לאינטרנט מעלה זיכרונות מהימים בהם המחשבים האישיים התחברו יותר ויותר לרשת בשנות ה-90. באותה תקופה ניטש ויכוח דומה על השאלה האם הטכנולוגיה הזו היא סתם גימיק או שתהיה לה השפעה מתמשכת על החברה. מחשבים אישיים וטלפונים סלולריים מקוונים נחשבים כיום למוצר בסיסי, ורבים צופים שאותו הדבר קורה כעת, כאשר העולם מאמץ מכשירי חשמל ביתיים מקוונים.
היכולת להפעיל מכונת קפה מכל מקום בעולם אולי לא נראית כמו טכנולוגיה שמשנה את החיים, אך מכונות קפה הן רק ההתחלה של מהפכת ה-IoT הביתית. ה-IoT ישמש כבסיס להתפתחות של חדשנות והזדמנויות עסקיות בתחום המכשירים. ההתקדמות המתמשכת בלימוד מכונה ובטכנולוגיית ובינה מלאכותית רק תאיץ את ההתפתחות הזו. היכולת לאסוף נתונים גולמיים ממכשירים וחיישנים פותחת עולם חדש לגמרי של מקרי שימוש והזדמנויות.
חלק מהמעצבים אינם בטוחים שהם מעוניינים להצטרף למהפכת ה-IoT מכיוון שהם חוששים שבניית עיצוב עם קישוריות IoT היא משימה מסובכת מדי. המציאות היא שהדרישות הן די פשוטות לביצוע. מוצר שמותאם ל-IoT מורכב בדרך כלל משלושה אלמנטים בלבד: מעבד או מיקרו-בקר (האלמנט “החכם”), בקר רשת (האלמנט “המחובר”) ואמצעי לאבטחת התקשורת עם הענן (האלמנט “המאובטח” ).
מכיוון שרוב המעצבים כבר השקיעו זמן ומאמץ רב בייצור של מוצר נהדר, ישנו יתרון לשימוש חוזר ברוב עבודות העיצוב הקיימות. לעתים קרובות, יש להוסיף רק את רכיבי הקישוריות והאבטחה לעיצוב קיים כדי לאפשר קישוריות ל-IoT. במקום הצורך לעצב פיתרון מהיסוד, ניתן להמיר במהירות עיצובים קיימים כדי שיוכלו להתחבר ל-IoT. ניתן לעשות זאת בצורה יעילה ביותר באמצעות טכניקות מוכחות מעולם התכנות על מנת לפשט את הפיתוח ולהאיץ אותו.
פירוק האתגר
ישנם כמה טריקים שמעצבים יכולים ללמוד ממתכנתים כשהם מתחילים לאפשר למוצר קיים לפעול ב-IoT. ישנה מסורת ארוכה אצל מתכנתים שעומדים בפני אתגר תכנות מורכב, לפנות לגישה עיצובית מלמעלה למטה, או לתכנות מודולרי. שיטה זו כוללת פירוק של הבעיה הגדולה לבעיות משנה קטנות יותר שניתנות לניהול, שאותן ניתן לחלק למשימות קטנות יותר לטיפול. זוהי גישה עוצמתית ומוכחת לפתרון בעיות מאתגרות שאותן יהיה קשה לפתור באמצעות קוד מונוליטי. אז איך הדבר מתורגם להטמעת מערכות חומרה?
מתברר שמהנדסי הטמעת מערכות יכולים להשיג את אותם היתרונות באמצעות מודולריזציה של פיתוח המערכת שלהם. בנוסף להצבת אתגרי תכנות טהורים, מערכות מוטמעות צריכות לרוב לעמוד בתקנים ולעבור תהליכי אישור קפדניים. ביצוע שינויים בתוכנה או באישורי החומרה עשוי לעורר את הצורך להתאים מחדש את המוצר. מסיבה זו בלבד, יש יתרון עצום בהפרדה של החלקים שזקוקים לאישור לתתי-מערכות. בדרך זו, באגים בתת-מערכת אחת לא ישפיעו על ביצועי תת-מערכות אחרות.
לדוגמא, מעצבים רבים מעוניינים להוסיף חיבור אינטרנט מאובטח בדור הבא של מוצר קיים כדי לשפר את חוויית המשתמש ולהקל על הוספת יכולות, כולל אבחון מרחוק, ניטור פונקציונליות, שירותי ביצוע אוטומטיים ואיסוף נתונים סטטיסטיים כדי לתכנן שיפורים במוצרים עתידיים. מוצר שתומך ב-IoT יזדקק לשלוש פונקציות עיקריות: 1) היישום המקורי; 2) קישוריות לאינטרנט; ו-3) אמצעי לאבטחת היישום. כפי שמודגם באיור 1, סוג זה של יישום שתומך ב-IoT הוא בעצם היישום המקורי עם תוספת אבטחה וקישוריות.

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

איור 2: בפתרון משולב זה, כל הקוד והפונקציונליות משולבים במכשיר יחיד, דבר שמגדיל את מורכבות הקוד ואת זמן פיתוח הקוד
נקיטת גישה מודולרית תאפשר למעצבים לשמור על בסיס הקוד וה-IP הקיימים שלהם שלמים ופשוט להוסיף קישוריות ופונקציונליות אבטחה לפי הצורך.
באמצעות גישה זו, ניתן ליישם את פונקציונליות האבטחה והקישוריות כמשימות תוכנה וחומרה נפרדות, דבר שחוסך זמן עצום ומצמצם את מספר המהנדסים שנדרשים עבור מוצר נתון. הגישה מספקת בנוסף שימוש קל יותר בקודים ובמערכות, דבר שמציע גמישות רבה יותר. לדוגמה, מעצב אולי ירצה להציע גם גרסת Wi-Fi וגם גרסת Bluetooth באנרגיה נמוכה (BLE) באותו מוצר. הגישה המודולרית מאפשרת חדשנות מהירה וקלה בתכנון ה-IoT בתרחיש זה.

איור 3: בעזרת פיתרון מודולרי, מעצבים יכולים לעשות שימוש חוזר ביישום קיים ולבודד את האבטחה והקישוריות למשימות קטנות יותר וניתנות לניהול שפועלות ללא תלות ביישום הראשי.
היתרון של הגישה המודולרית הוא שכל העבודה שמתמקדת באופטימיזציה ובעיבוד המערכת הקיימת לא הולכת לאיבוד כשמוסיפים קישוריות IoT למוצר. המעצב יכול להוסיף בקלות את הפונקציונליות הנדרשת מבלי להשפיע על חלקים אחרים של המערכת.
כדי לפשט את התהליך, ניתן לבחור מודולים מאושרים הן עבור אבטחה והן עבור תקשורת אלחוטית. הדבר יקטין משמעותית את זמן ההסמכה ואת משך הזמן הדרוש להוצאת המוצר החדש לשוק. דוגמה לאלמנט מאובטח שכזה הוא מכשיר ה-ATECC608A של Microchip. מכשיר זה מטפל בכל המשימות הקשורות לאימות ואחסון מאובטח של מפתחות ואישורים, ומספק פתרון מאובטח מבלי לדרוש כתיבה של קוד. באופן דומה, מודולים אלחוטיים מאושרים מבצעים את כל הדרוש עבור חיבור מאובטח לרשת אלחוטית.
שימוש במודולים מאושרים לאבטחה ופונקציונליות אלחוטית מבטל בנוסף את הצורך של מעצב להיות מומחה בתחום האבטחה או התקשורת. המודולים כוללים את כל חלקי הקוד הדרושים, ובדרך כלל נשלטים באמצעות פקודות פשוטות שנשלחות על גבי ממשק טורי כגון UART, SPI או I2C.
כדי לפשט עוד יותר את התכנון ולהאיץ את זמן ההוצאה לשוק, לוחות פיתוח כגון לוח הפיתוח AVR-IoT WG של Microchip מכילים את המודולים הללו עבור קישוריות IoT מאובטחות וקלות לפריסה. באמצעות כלים מסוג זה, מהנדס יכול לחבר מוצר קיים ל-Google Cloud IoT Core תוך 30 שניות ובכמה לחיצות בודדות, ולהתחיל להעביר נתונים.

איור 4. לוח הפיתוח של AVR-IoT WG משלב מיקרו-בקר AVR®, אלמנט מאובטח IC ובקר רשת Wi-Fi מאושר, שמאפשר למעצבים ליצור אב טיפוס של התקנים מקוונים תוך מספר דקות.
היכולת לחבר מכשירי חשמל ומוצרי צריכה לענן יוצרת עבורם פוטנציאל לספק ערך רב יותר משמעותית באמצעות אספקת ביג דאטה לבינה מלאכותית ויישומי למידת מכונה, או פשוט להציע דרך קלה יותר לבצע עדכוני קושחה מאובטחים מרחוק. פירוק האתגר ושימוש במודולים מאושרים לפונקציונליות אבטחה ותקשורת מעניק למעצבים קיצור דרך להתאמת העיצובים הנוכחיים שלהם ולניצול של ההזדמנויות הללו.