יום רביעי, 27 בינואר 2016

MATLAB ו-ThingSpeak - הבסיס ל-Internet of Things

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

דמיינו לעצמכם נער בן 14 מדרום אמריקה שבונה חיישן סיסמי לחיזוי רעידת אדמה שעולה פחות ממאה דולר. החיישן הזה עולה לרשת, משוכפל ע"י מאות ואלפי אנשים, וכעת אנשים ביבשת שלמה זוכים להתרעה של כ-15 דקות לפני התרחשות רעידת אדמה. 15 דקות שבהן אנשים יכולים לצאת מבניינים, למצוא מחסה, ולהציל את חייהם !

עכשיו דמיינו חברה ישראלית שמפתחת חיישן לניטור נשימה, ובאמצעות הטלפון הנייד כל המידע הזה מועבר בזמן-אמת למערכת לניתוח מידע, אשר בוחנת את נתוני החיישן ויכולה להתריע מבעוד מועד על כשל נשימתי.

והאם אתם מסוגלים לדמיין חברה שמשתמשת בחיישנים הפזורים במבני ענק לצורך ניטור הטמפרטורה, הלחות ועומס האנשים בבניין, על מנת לייעל את נצילות האנרגיה של מערכות החימום ומיזוג האוויר של הבניין, וכך לחסוך קרוב ל-25% מצריכת החשמל ?

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

- רכישת המידע ע"י חיישני הקצה (או Edge Nodes),
- איסוף ואגירת המידע במערכת איסוף הנתונים (או Data Aggregator),
- ניתוח המידע ושימוש בו לצורך פיתוח אלגוריתמים, הצגתו ואף עדכון פעולת חיישני הקצה.

אלו מכם שעושים כיום שימוש ב-MATLAB או Simulink, בוודאי מכירים את היכולת לייצור קוד המותאם למערכות Embedded, כדוגמת אלו שמשמשות לחיישני הקצה. "דברים" רבים היום ממומשים על גבי חומרה זולה כמו Arduino, Raspberry Pi, ARM ובעזרת MATLAB ו-Simulink ניתן להגדיר אותם, לתכנן עבורם אלגוריתמיקה רצויה, לשלוט על אופן פעולתם, ואף לחברם למערכות נוספות. וכל זאת – בחינם. רק צריך להוריד את חבילת התמיכה המתאימה (Hardware Support Package) מהאתר של MathWorks או ישירות מתוך MATLAB באמצעות תפריט ה-Add-Ons שהתווסף לפני כשנתיים לתפריטים של התוכנה.

את כל המידע שאתם אוספים מהחיישנים, ניתן להזרים ל-ThingSpeak, מערכת Data Aggregator אשר שירותיה ניתנים חינם ע"י חברת MathWorks, גם לאלו מכם שאין להם רישיון. מערכת זו מוצעת כשירות בענן, וזמינה בכל העולם, וכדי להתחיל - פשוט צריך ללחוץ כאן ולפתוח חשבון חדש. בחשבון ניתן להגדיר ערוצי מידע עבור כל חיישן (הערוץ מאפשר מעבר מהיר של מידע ל-ThingSpeak, שם הוא נשמר ומנוהל) וה-API הפשוט מאפשר חיבור קל ומהיר. באתר ניתן גם למצוא מספר גדול של דוגמאות, לרבות חומרה וקטעי קוד אשר יסייעו לכם להתחיל בקלות.

לצורך הגישה למידע וניתוחו, מומלץ לעשות שימוש בשתי פקודות פשוטות – thinkSpeakWrite ו-thingSpeakRead, עם פרמטרים של מספר הערוץ והשדות הרלוונטים. למשל, קטע הקוד הבא מראה כיצד ניתן לקרוא נתוני טמפרטורה ולחות, לחשב את נקודת הטל, ולכתוב אותה חזרה לערוץ (לחצו להגדלה):


בצורה דומה ניתן לממש כל אלגוריתם, להציג את הנתונים בצורה ויזואלית, לעשות שימוש בטכניקות של לימוד מכונה, למצוא ערכים סטטיסטיים וכמובן לבחון את ביצועי המערכת החדשה. מרגע שהמידע נמצא בסביבת MATLAB, ניתן לעשות איתו כל דבר שאתם רגילים לעשות בה !

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

למידע נוסף מתוך מתחם ה-Data Analytics של חברת סיסטמטיקס, לחצו כאן.