יום רביעי, 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 של חברת סיסטמטיקס, לחצו כאן.

5 תגובות:

  1. מעניין. האם ניתן להזרים מידע ל ThingsSpeak גם מחיישן שרץ על קוד שלא פותח בעזרת Matlab? לדוגמה אות וידאו מטלפון חכם או Tablet.

    השבמחק
    תשובות
    1. אפשר גם אפשר. לא רק שאפשר, ישנו גם ממשק פתוח המפורסם בקישור הבא:
      https://www.mathworks.com/help/thingspeak/examples.html
      המראה דוגמאות של למעלה מ-20 סביבות פיתוח שונות, דרכן אפשר להתממשק ל-ThingSpeak.

      יש אפילו אפליקציה או שתיים ב-Google Store שאתה יכול לפשט את התהליך...

      מחק
  2. היי,
    אני יודע שלthingspeak ישהגבלה של עדכון פעם ב15 שניות. יש דרך לשות דברי מהסוג הזה עם עדכון מיידי?

    השבמחק
    תשובות
    1. היי מתן,

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

      רוני.

      מחק
    2. היי, עדכון!
      לפני כחודש נפתחה האפשרות לרכוש שימוש בטכנולוגיה הזו בעלות ממש נמוכה, עם קצת עדכון של כל שניה אחת.
      למידע נוסף: https://www.mathworks.com/products/thingspeak.html

      מחק