در فناوری اطلاعات یا IT :پلتفرم،هر نرم افزار یا سخت افزاری را میگویند که برای میزبانی یک اپلیکیشن یا سرویس مورد استفاده قرار میگیرد.
برای مثال یک پلتفرم اپلیکیشن،شامل سخت افزار ، یک سیستم عامل و برنامه های هماهنگی است که از مجموعه دستور العمل هایی برای یک پردازنده یا ریز پردازنده خاص مورد استفاده قرار میگیرد.
در واقع پلتفرم ها بستری هستند که برنامه های نرم افزاری نوشته شده برای یک وسیله ،در آن قابل اجرا و استفاده است که این بستر شامل ملزومات سخت افزاری و هم نرم افزاری میباشد.به عبارت دیگر یک پلتفرم در واقع معرف ملزومات سخت افزاری و هم نرم افزاری مانند سرور و همچنین ملزومات نرم افزاری مانند سیستم عامل مورد نیاز برای اجرای یک برنامه کاربردی میباشد.
یک پلتفرم اینترنت اشیا IOT را میتوان به عنوان یک لایه ی هوشمند که اشیا را به شبکه متصل می کند و اطلاعات دریافتی را جهت توسعه خدمات خلاصه می کند، تعریف کرد.
به عبارت ساده ، هدف هر دستگاه اینترنت اشیا اتصال به دستگاه های دیگر و برنامه های کاربردی از طریق پروتکل های اینترنتی می باشد.
برای پر کردن شکاف بین حسگر ها و دستگاه های اینترنت اشیا از پلتفرم های ایترنت اشیا استفاده می کنیم. این پلتفرم ها حسگرها را به شبکه متصل کرده و سپس با به کار گیری برنامه های کاربردی از اطلاعات جمع آوری شده توسط حسگرها استفاده می نمایند.
در واقع پلتفرم های اینترنت اشیا ، برنامه های موجود که وظیفه نظارت ، مدیریت و کنترل دستگاه ها را دارند ، گسترش می دهند. گاهی اوقات در هنگام ارتباط بین دستگاه ها و استخراج اطلاعات در حوزه اینترنت اشیا ، مشکلاتی وجود دارد ، که پلتفرم های اینترنت اشیا به بررسی و حل این مشکلات می پردازند.
در یک تعریف کلی ،پلتفرم ها که مجموعه ای از اجزا میباشند ،باید دارای توانایی انجام کار هایی باشند. که عبارتند از: یکپارچه ساز ی با سایر سیستم ها ، مدیریت تک تک سنسور ها ، برقراری یک ارتباط پایدار و امن در بین دستگاه هایی که به پلتفرم متصل می شوند، جمع آوری داده هایی برای دستگاه های متصل به پلتفرم از راه دور ، کنترل ، مدیریت و نظارت بر دستگاه های پلتفرم و…
پلتفرم اینترنت اشیا IoT platforms نقش بسیار مهمی در معماری اینترنت اشیا دارد. یک سناریوی اجرا شده از اینترنت اشیا را در نظر بگیرید ، دستگاه های متصل شده به هم دیگر ، اطلاعاتشان را روی پلتفرم در فضایی ابری ارسال می کنند. پلتفرم IOT اطلاعات را معمولا در فضای ابری ذخیره کرده و از آنها جهت ایجاد نمودار استفاده می کند.
پلتفرم اینترنت اشیا بربستر سرویس ابری آمازون میباشد. سرویس AWS یک سرویس ابری بسیار کاربردی از سمت آمازون میباشد. هسته پلتفرم اینترنت اشیا آمازون به این بستر پایبند میباشد.
مهمترین نقطه قوت این پلتفرم اینترنت اشیا IoT Platform تضمین امنیت پروژههای IoT میباشد. علت آن هم مشخص است، سرویس ابری AWS کاملا براین حوزه تسلط دارد.
این پلتفرم قابلیت پشتیبانی از میلیارد ها دستگاه و تریلیون ها پیام دارد و میتواند پیام ها را تا رسیدن به نقاط پایانی پلتفرم، به صورت امن و قابل اعتماد هدایت و پردازش کند.
امکان دریافت اطلاعات از انواع سخت افزارهای متصل شده به این سرویس و اعمال فعالیتهای Real-time روی آنها، یکی دیگر از نقاط قوت این سرویس میباشد. سرویسهای ارایه شده از پلتفرم AWS IoT Core به شرح زیر میباشد.
واستون یلک پلتفرم اینترنت اشیا است که توسط شرکت IMB ارایه میشود. پلتفرم واستون یک پلتفرم کاملا مدیریت شده است که با ارایه خدمات میزبانی ابر موجب میگردد که به اسانی از دستگاه های اینترنت اشیا ارزش های اطلاعاتی بیاید.
با استفاده از دستور العمل های این پلتفرم مشتریان میتوانند به این سرویس اتصال پیدا کرده و اقدام به ارسال امن داده ها، با استفاده از پروتکل پیام رسانی باز و سبک MQTT کنند.با استفاده از این پلتفرم میتوان دستگاه ها را با استفاده از داشبورد انلاین یا API های امنیتی تنظیم کرده تا برنامه های شما بتوانند به صورت بی شمار به اطلاعات دسترسی پیدا کند.
پلتفرم اینترنت اشیای اینتل یک مدل انتها به انتهای مرجع است که بر پایه ی اتصالات یکپارچه و ایمن دستگاهها، ارائه دادههای قابل اعتماد به ابر و ارائه تحلیلهای با ارزش عمل مینماید.
این موضوع تعهد اینتل به افزایش موجودیت اینترنت اشیا را نشان میدهد. با پلتفرم اینترنت اشیای اینتل طیف وسیعی از راهحلهای اینترنت اشیا را در زمینه سازگاری تولید و بهینهسازی مینماید.
در این پلتفرم مزیت هایی در خصوص رایانش مقیاسپذیر، امنیت انتقال داده از دستگاه به ابر و مدیریت داده و پشتیبانی از تحلیل در نظر گرفته شده است.
پلتفرم اینترنت اشیای اوراکل یک راهکار انتها به انتها برای معماری اینترنت اشیا بهصورت جامع، مقیاسپذیر و مقرون به صرفه است که به سازمان امکان میدهد تا:
این پلتفرم یکی از جذابترین و پرکاربردترین پلتفرم IoT میباشد. گوگل یکی از بزرگترین شرکتها در دنیای دیجیتال میباشد. بدون شک تمامی سرویسهای گوگل کاربردی بوده و سرعت به روزرسانی بسیار زیادی دارند.
ابزارهای گسترده زیادی در این پلتفرم برای مدیریت سمت سخت افزار و سمت سرور ارایه میشوند. دستگاههای متصل شده به این پلتفرم از سرویس Pub/Sub جهت انتشار اطلاعات میتوانند استفاده کنند.
نقطه قوت در پلتفرم Google IoT Cloud امکان استفاده از دیگر سرویسها قدرتمند گوگل در این پلتفرم میباشد. از جمله سرویس BigQuery که منحصرا برای تحلیل دیتاهای حجیم طراحی شده است.
حتی امکان افزودن یادگیری ماشینی به این اطلاعات هم وجود دارد. همانند دیگر سرویسهای گوگل هم این سرویس دارای مخازن اطلاعاتی کاربردی از جمله فیلم و متن میباشد.
دلایل زیادی برای استفاده از یک سرویس کامل و حرفهای وجود دارند. ولی متاسفانه این سرویس کاربردی هم همانند سرویسهای کاربردی دیگری از جمله Google Business هم در ایران کارایی نخواهند داشت.
پلتفرم اینترنت اشیا Artik Cloud توسط سامسونگ ایجاد شده است. نکته جالب در خصوص روال کار این پلتفرم، امکان ارتباط بین سخت افزارها و ارتباط آنها با سرویس ابری میباشد. نقطه قوت آن هم در سرعت تنظیم کردن و تبادل اطلاعات بین سخت افزارهای مختلف و پلتفرم ابری میباشد.
همچین دارای بخشی جهت ایجاد ارتباط با پلتفرمهای دیگر را دارد. همانطور که در دوره اسپارکرینار هم توضیح دادم، یکی از نکاتی که باعث پیشرفت پلتفرمها میشود. امکان سازگار سازی با یکدیگر میباشد.
به این چند روش امکان دریافت اطلاعات از سنسورهای مختلف و تجمیع سازی آنها در پلتفرم اینترنت اشیا سامسونگ Artik Cloud فراهم میشود. در آخر هم این پلتفرم با ارایه SDK امکان ساده سازی فرایند توسعه را در اختیار کاربران قرار میدهد.
پیرو ادعای مایکروسافت این پلتفرم یکی از قویترین پلتفرمهای اینترنت اشیا میباشد. مایکروسافت اعلام کرده که این پلتفرم امکان برقراری ارتباط دو طرفه بین سخت افزارها و پلتفرم Azure وجود دارد! کار بسیار مهم پلتفرم همین موضوع میباشد. البته اعلام کرده که این فرایند با پروتکلهای استاندارد صورت میگیرد.
ولی نکته مثبت این پلتفرم پشتیبانی از تصدیق سخت افزاری است. این مورد به امنیت پلتفرم Microsoft Azure IoT مایکروسافت کمک میکند. مانند دیگر پلتفرمهای اینترنت اشیا، Azure هم فرایندها را ساده میکند.
در اینجا ما به بررسی برخی از بهترین و شناخته ترین پلتفرم های متن باز میپردازیم. اکثر این پلتفرم ها اینترفیسی برای پشتیبانی دستگاه های لینوکسی معروف از قبیل رزبری پای، آردوینو و BeagleBone و … دارند.
یکی از پلتفرم های ابری اینترنت اشیا می باشد که دارای ویژگی های غنی متن باز و کارا، برخوردار است. هر فردی یا کمپانی یا یک سیستم یکپارچه ساز اینترنت اشیا، یک روش رایگان برای تحقیق مفاهیم محصولات هوشمند خود دارد.
kaa برای اشیا متصل به شبکه IOT و یزر ساخت backend با فراهم نمودن سرور و کامپوننت های توسعه برای endpoint ها ما را قادر به مدیریت داده می کند.
یکی دیگر از پلتفرم های متن باز اینترنت اشیا است که فضای ذخیره سازی، پردازش، و یکپارچه سازی از داده دستگاه ها را فراهم می سازد. این پلتفرم (siteWhere) به روی هسته اپلیکیشن سرور Apache Tomcat اجرا می شود.
آن از دیتابیس بسیار تنظیم شده MongoDB و پیاده سازی از HBase را ارائه می دهد. آن به آسانی می تواند با انواع هکر برد ها ارتباط برقرار بکند.
ThingSpeak یک پلتفرم اینترنت اشیا است که به شما دسترسی آنالیز و ویژوال سازی داده ها در متلب بدون خریدن هیچ لایسنسی از Mathworks را میدهد. آن در توسعه اپلیکیشن های IOT شما و جمع آوری و ذخیره داده های سنسور ها به فضای ابری دسترسی خواهند داد.
ThingSpeak با انواع برد ها مانند Arduino, Particle Photon , Electeron , ESP8266 wifi Module , BeageleBone Black , Rasperry Pi و موبایل و وب اپلیکیشین و توییتر و Twilio و متلب کار می کند.
ThingSpeak بیشتر بر روی sensor logging و ردیابی موقعیت مکانی و triggers و هشدار ها و آنالیز متمرکز شده است.
DeviceHive یکی دیگر از پلتفرم های متن باز اینترنت اشیا با ویژگی های غنی توزیع شده تحت لایسنس Apache2.0 می باشد. DeviceHive برای استفاده و تغییرات می باشد.
آن گزینه های پیاده سازی و استقرار Docker and Kubernetes را فراهم کرده و شما می توانید دانلود و آن را هم بصورت عمومی و هم اختصاصی استفاده کنید و همچنین می توانید از یک ماشین مجازی به یک کلاستر enterprise گسترش دهید. آن قادر به اتصال به هر دستگاه و هکر بوردی با رابط های REST و وب سوکت و MQTT می باشد.
شما حتی میتوانید با دستگاه های وای فای کم مصرف همچون ESP8266 اتصال بر قرار نمایید.
Zetta یک پلتفرم اینترنت اشیا متن باز می باشد که به روی Node.js به صورت سرویس دهنده ساخته شده است. Zetta رابط های REST APIs و WebSockets و reactive programming را ترکیب کرده و همچنین می تواند به روی یک برد کوچک یا کامپیوتر یا فضای ابری اجرا بشود.
آن قادر به ارتباط برقرار کردن با انواع سیستم ها نظیر لینوکس و BeagleBones و Raspberry Pis و Arduino hacker boards و کامپیوتر ها با هم و پلتفرم های ابری نظیر Heroku برای ایجاد شبکه های توزیع شده جغرافیایی دارد. شما همچنین می توانید داده ها را به سیستم های آنالیز ماشین نظیر Splunk جاری نمایید.
استفاده از پروتکل های استاندارد، در IOT بسیار اهمیت دارد. همین موضوع نسبت مستقیم با امنیت و تامین امنیت در پروژه های اینترنت اشیا دارد.
پیرو همین موضوع،پلتفرم ThingsBoard تا امروز سه پروتکل مهم (COPA,MQTT,HTTP) را پشتیبانی میکند.
یک سوال که در اینجا ممکن است پیش بیاید این است که کدام سخت افزار برای استفاده از پلتفرم ThingsBoard مناسب میباشد؟ یا کدام سخت افزار را پشتیبانی میکند.
در دیتاشیت و مخزن اطلاعاتی این پلتفرم، هیچ اشاره ای به محدودیت در خصوص ارتباط با سخت افزارها اشاره نشده است. بلکه هر سخت افزاراز جمله انواع برد های آردوینو Arduino یا رزبری پای Raspberry Pi یا ویموس Wemos امکان ارتباط با این پلتفرم را دارد.در شرایط بسیار خاص هم امکان استفاده از سرویس ThingsBoard IoT Gateway نیز وجود دارد.
با این روش حتی امکان ارتباط با سیستمهای third-party از جمله سیگفاکس SigFox را هم دارا خواهد بود. پلتفرم تینگزبرد ThingsBoard یک پلتفرم متن باز میباشد که امکان توسعه سریع، مدیریت و مقیاس پذیری پروژههای اینترنت اشیا را بر عهده دارد.
بنابراین کافیست براساس پروژه مورد نظر، سخت افزار مناسبی انتخاب کنیم. سپس اطلاعات را از سنسورها و محیط دریافت کرده و با API این پلتفرم به سمت سرور ارسال کنیم. دغدغه و نگرانی بسیاری از کاربران این است که آیا بردهای Arduino ، یا Nodemcu برای این منظور مناسب است؟ در حقیقت به این سوال نمیتوان پاسخ قطعی ارائه داد. چرا که این بردهای سخت افزاری اکثرا متن باز هستند و امکان وجود بردهایی با کیفیت پایین در این بین هم وجود دارد.
آردوینو بر روی هر یک از این بوردها یک میکروکنترلر به عنوان هسته مرکزی قرار گرفته است و در کنار آن دیگر المان های مورد نیاز برای راه اندازی و استفاده ایده آل از میکروکنترلر مورد نظر قرار دارد. به همراه این بورد ها یک نرم افزار ساده و کارآمد نیز ارائه شده است که توسط کامپیوتر میتوان این بردها را برنامه ریزی نمود. آردوینو در سال ۲۰۰۵ به منظور ایجاد راهی ارزان و ساده برای برنامهنویسی شی گرا میکروکنترلرها توسط Massimo Banzi بوجود آمد.
آردوینو ابزاری است برای تولید کامپیوترهایی که نسبت به کامپیوتر شخصی شما، مقدار بیشتری از دنیای فیزیکی را احساس و کنترل می کنند. این ابزار، یک پلت فرم محاسباتی فیزیکی متن باز است که بر اساس یک بورد میکروکنترلر ساده تهیه شده، و نیز یک محیط توسعه برای نوشتن نرم افزار جهت کار با بورد می باشد.
آردوینو می تواند جهت ایجاد اشیای تعاملی، گرفتن ورودی از تعداد زیادی سوییچ و حسگر، و کنترل تنوعی از لامپ ها، موتورها، و سایر خروجی های فیزیکی به کار گرفته شود. پروژه های آردوینو می توانند مستقل باشند، و یا با نرم افزاری که روی کامپیوتر در حال اجراست ارتباط برقرار می کند.
طراحی سخت افزار هر یک از این بوردها بر اساس یک میکروکنترلر به خصوص صورت گرفته است. میکروکنترلرهای به کار رفته اغلب میکروکنترلرهای ۸ بیتی AVR نظیر Atmega128 ، Atmega323، Atmega2560 ، Atmega8 می باشند. البته میکروکنترلرهای ۳۲ بیتی ARM نظیر ATSAMD21G18 و AT91SAM3X8E از شرکت Atmel و میکروکنترلر ۳۲ بیتی Curie شرکت اینتل نیز در برخی از آنها دیده می شود. در کنار میکروکنترلر تمامی المان های مورد نیاز ، پورت های مختلف ورودی خروجی تعبیه شده است.
⦁ بدون نیاز به پروگرامر جداگانه ( پروگرامر روی بورد تعبیه شده است )
⦁ دارای تمامی قطعات مورد نیاز برای استفاده ایده آل
⦁ قابلیت استفاده از USB به عنوان منبع تغذیه
⦁ دسترسی به تمامی پایه ها ( پورت ها )
آردوینو به همراه یک محیط نرم افزاری یکپارچه (Arduino IDE) متن باز ارائه میشود که در رایانه های عادی قابل اجرا است. همان کامپایلری است که کد های نوشته شده را مانند نرم افزارهایی مثل کدویژن، بسکام و … کامپایل و به فایل هگز تبدیل می کند، این نرم افزار اجازه برنامهنویسی به کمک C یاC++ را برای همه بردهای آردوینو فراهم می کند. بدیهی است این نرم افزار فقط از بردهای آردوینو پشتیبانی می کند.
⦁ ساده بودن محیط کاربری نرم افزار
⦁ پشتیبانی از کلیه سیستم عامل ها
⦁ برنامه نویسی بسیار آسان توسط کتابخانه های طراحی شده
⦁ کتابخانه های آماده برای کار با ماژول GSM ، Ethernet ، WiFi و انواع موتورها
⦁ قابلیت ارتباط آنلاین با پورت سریال و مشاهده عملکرد برنامه
⦁ دارای مثال های فراوان و پشتیبانی قوی
NODE-RED یک ابزار برنامه نویسی جهت اتصال دیوایس های سخت افزاری، API و سرویس های آنلاین با متد و شیوه جدید میباشد. Node-RED یک مرورگر با قابلیت ادیتور را فراهم میکند و توسط آن میتوانید پروژه های مختلفی را در بستر نودهای تعریف شده در آن پیاده سازی کنید.
در این حالت از توابع جاوا اسکریپت جهت ساخت محیط گرافیکی استفاده میشود.
Node-RED یک محیط گرافیکی ساده و حرفه ای با رابط کاربری قوی را در اختیار کاربر قرار میدهد. Node-RED از Node.js توسعه یافته و بیس زبان برنامه نویسی آن Javascript میباشد. برنامه نویسی در سیک Node-RED به اصطلاح Even-Driven نیز گفته میشود. در برنامه نویسی even-driven به برنامه نویسی گفته میشود که جریان برنامه توسط رفتار کاربر، خروجی سنسورها و یا دریافت پیام از دیگر برنامه ها تعیین میگردد.
به عنوان مثال تعریف یک Event در طول برنامه جهت اجرای یک یا چند خط کد، میتواند تعریف عامیانه و ساده ای از این سبک برنامه نویسی باشد. زبان برنامه نویسی Javascript از سبک برنامه نویسی شی گرا Event-driven پشتیبانی میکند.
این امر این امکان را قرار میدهد تا بتوان Node-RED را در لبه شبکه با سخت افزارهای کم مصرف مانند رزبری پای Raspberry Pi و یا سرویس های Cloud اجرا کرد. در حال حاضر بیش از ۲۲۵۰۰۰ هزار ماژول در Node-RED قابل دسترسی است و امکان افزایش آن وجود دارد. در Node-RED امکان ساخت فلوهای محتلف وجود دارد که با Json ذخیره شده و قابلیت ارسال دیتا از طریق Json وجود دارد.
یک فلو آنلاین به شما این امکان را میدهد تا بتوانید فلو خود را با دنیای اطلاعات به اشتراک بگذراید.
با رشد و توسعه Node-RED در حال حاضر کمپانی های به نامی از این ابزار قدرتمند استفاده میکنند:
شما به احتمال زیاد تاکنون نام رزبری پای، این رایانه محبوب که در کف دست جای میگیرد را شنیدهاید. این رایانه کوچک آن قدر قدرتمند است که به عنوان سرور یا مدیا سنتر کامل به همراه اجرای بازیهای قدیمی استفاده شود. همچنین میتواند به سیستمهای امنیتی و پروژههای تفریحی مختلف وصل شود و به کمک ابزارهای نرمافزاری مختلف به یادگیری و درک برنامهنویسی کمک کند.
رزبری پای رایانه کوچکی است که از سال ۲۰۰۶ در حال توسعه است و قطعات آن روی یک مادربرد به اندازه کارت بانکی سوار شده و Raspbian را اجرا میکند که یک نسخه اختصاصی از سیستم عامل لینوکس است که اختصاصاً برای این رایانه طراحی شده است.
رزبری پای کاربردهای محاسباتی ابتدایی اداری، بازیهای سطح پایین، دسترسی به اینترنت و ایمیل، بازپخش ویدئو و بسیاری قابلیتهای دیگر دارد که به طور معمول از یک رایانه در قرن بیست و یکم انتظار میشود. رزبری پای همه این امکانات را با تعداد بسیار کمی از قطعات از جمله یک پردازنده ARM و قیمت بسیار پایین عرضه میکند.
این یک واقعیت است که مشخصات سختافزاری رزبری پای پایین است، اما این سختافزار چنان ضعیف نیست که هیچ کاربردی نداشته باشد. برعکس رزبری مجهز به یک پردازنده چهار هستهای و یک کش با قابلیت تغییر اندازه با مهندسی نبوغآمیز است که تجربه محاسباتی خوبی ارائه میکند.
هفت خانواده از رزبری پای وجود دارند:
بین مدلهای مختلف رزبری پای برخی تفاوتهای ظریف، اما مهم وجود دارند:
چندین جنبه از سختافزار رزبری پای استاندارد باقی ماندهاند. همه این مدلها یک کانکتور برق یا پورت HDMI دارند. یک پورت اترنت به باس USB وصل شده است و یک پورت microSD نیز وجود دارد. همچنین یک مینی جک ۳ و ۵ میلیمتری دومنظوره جهت خروجی صوتی و ویدئویی برای دستگاههای فاقد پشتیبانی از HDMI نیز تعبیه شده است. به علاوه پورتهای ریبون برای نمایشگرها و ماژول دوربین رزبری پای نیز عرضه شده است.