فهرست مطالب
در آموزش قبلی مقدمهای بر اینترنت اشیا را ارائه دادیم. اهمیت، چالشها، کاربردها و روندهای اینترنت اشیا بررسی شد.
حال که درکی اولیه از اینترنت اشیا یا iot داریم، وقت آن فرا رسیده است که مولفههای سازنده اینترنت اشیا را بررسی کنیم. IOT به صورت یک سبته با تجمیع فناوریهای مختلف توسعه یافته است. هر تکنولوژی نقش اصلی خود را در سیستم اینترنت اشیا ایفا میکند.
در این آموزش مولفههای سازنده اینترنت اشیا و موقعیت آنها در زیرساخت اینترنت اشیا را بررسی میکنیم.
IoT به اشیای موجود در دنیای فیزیکی (دستگاهها یا اشیای اینترنت اشیا) اجازه میدهد از طریق یک شبکه ارتباطی با دنیای مجازی (شامل سرویسها، پلتفرمها و کاربردهای ابر) در تعامل باشند.
این شبکه ارتباطی امکان تبادل و اشتراکگذاری اطلاعات را به صورت آگاه فراهم میسازد. لذا هر سیستم اینترنت اشیا متشکل از سه مورد مولفهی اصلی دنیای فیزیکی، دنیای مجازی و شبکه ارتباطی است.
برای داشتن یک دید کلی از زیرساخت اکوسیستم اینترنت اشیا، لازم است درکی از واژگان زیر داشته باشید:
اشیا در زمینه IoT :
هر شیءای در دنیای فیزیکی یا دنیای اطلاعات که دارای یک شناسه منحصربفرد است و میتواند در شبکه ارتباطی تجمیع شود، «شیء» نامیده میشود. اشیا میتوانند فیزیکی یا مجازی باشند.
اشیاء فیزیکی را معمولاً «دیوایسهای اینترنت اشیا» میگویند. مفهوم اشیا در اینترنت اشیاء کمی با مفهوم دستگاهها نیز متفاوت است. اگرچه اشیا میتوانند فیزیکی یا مجازی باشند، اما وقتی اصطلاح دستگاه به کار میرود درواقع به تجهیزات فیزیکی اشاره دارد که میتوانند در یک شبکه ارتباط برقرار کنند و ممکن است به سنسور، محرک، پردازنده، حافظه و/ یا کنترلر مجهز باشند.
اشیا ممکن است مجازی هم باشند؛ مانند راهکارهای سرویس ابر. اشیاء مجازی برنامههای نرمافزاری، APIها یا راهکارهای کاربردی هستند که دادهها را تبادل و پردازش میکنند. از آنجایی که این برنامهها نیز شناسه منحصربفرد یا کلید شناسایی دارند، به عنوان شیء تلقی میشوند.
اشیای مجازی میتوانند نمایش اطلاعاتی اشیای فیزیکی نیز باشند، مانند تصویر اشیا در سرویس وب آمازون. سنسور حرارتی یک نمونه ساده از اشیای فیزیکی است. سنسور حرارتی میتواند از طریق یک کنترلر به شبکه ارتباطی وصل شود و یا اطلاعات پویا در مورد دمای محیط را به صورت بلادرنگ گردآوری نموده و به اشتراک بگذارد.
دنیای فیزیکی:
در سیستم IOT ممکن است اشیا فیزیکی یا مجازی باشند. دنیای فیزیکی در سیستم اینترنت اشیاء به مجموعه اشیاء فیزیکی یا دستگاهها گفته میشود. اشیاء فیزیکی یا دستگاهها براساس کنترلرها یا پردازندههایی ساخته میشوند که شامل بردهای اینترنت اشیاء هستند. لذا این اشیای فیزیکی قادر به شنود، گرداوری، ذخیره، اشتراکگذاری و پردازش اطلاعات هستند و میتوانند یک یا چند محرک را قادر سازند بر روی دنیای واقعی تاثیر بگذارند.
بردهای اینترنت اشیا:
دارای یک میکروکنترلر یا میکروپردازنده در کنار منبع حافظه محدود و یک یا چند رابط ارتباطی هستند. آنها پینهای ورودی/ خروجی چندمنظوره دارند که به وسیله آنها با یک یا چند سنسور، محرک یا کانال ارتباطی تعامل میکنند.
دنیای مجازی:
در سیستمهای اینترنت اشیا، منظور از دنیای مجازی مجموعه اشیاء مجازی است. این اشیاء مجازی عبارتند از وب، ابر یا کاربردهای موبایل، APIها یا پلتفرمهای کاربردی. دنیای مجازی یا مجموعه اشیاء مجازی نقش مهمی در ثبت دادهها، دادهکاوی و تحلیل در سیستمهای اینترنت اشیاء ایفا میکنند.
دادههای اشیاء فیزیکی با برنامههای نرمافزاری به اشتراک گذاشته میشوند. این دادهها جهت استنتاج ادراکات مفید یا بدست آودن اطلاعات مورد نیاز برای فعالیت عملکردها ذخیره، تحلیل و پردازش میشوند.
شبکه ارتباطی:
در اینترنت اشیاء، شبکه ارتباطی لینک یا پیوندی است که امکان تعامل بین دنیای فیزیکی و دنیای مجازی را فراهم میسازد. در عمل یک شبکه گسترده یا یک شبکه اینترنت است که به بردهای اینترنت اشیاء مجهز به سنسور و محرک اجازه میدهد با سرورهای وب یا ابر ارتباط برقرار کنند و یا با هم تعامل داشته باشند.
درواقع تفاوتی با یک شبکه اینترنت که از طریق چند لایه پیادهسازی شدهاست ندارد (فیزیکی، پیوند، شبکه، انتقال و کاربرد). در هر لایه پروتکلهای ارتباطی مختلفی وجود دارد که تبادل داده امن و کارآمد را امکانپذیر میسازند.
دادههای انتقالی از طریق لایههای مختلف بین دنیای فیزیکی (بردهای اینترنت اشیاء مجهز به سنسور و محرک) و دنیای مجازی (سرویسها یا برنامههای ابر و وب) تبادل میشوند و انتقال یا تبادل هر داده به منظور خاصی انجام میشود.
برخی پروتکلهای ارتباطی مشهور در لایه فیزیکی یا پیوند عبارتند از LR-WPAN، 6LoWPAN، Bluetooth/LE، 802.15.4، LTE، GPRS، CDMA، NFC، Zigbee، 802.11، WiFi، WIRELESSHART، Zwave، Sigfox، DASH7، LoRaWAN، Thread، INSTEON و غیره.
رایجترین پروتکلهای لایه شبکه عبارتند از IPv4 و IPv6
برخی از رایجترین پروتکلهای لایه انتقال عبارتند از TCP، UDP، DTLS و TLS. برخی از رایجترین پروتکلهای لایه کاربرد عبارتند از DDS، MQTT، REST، CoAP، LLAP، XMPP، SSL، AMQP، XMPP-IOT و MQTT-SN.
معماری سیستم اینترنت اشیا
سازمانها و سرویسدهندگان مختلف معماری IOT را به شیوههای مختلفی، تعریف، پیادهسازی و تشخیص دادهاند. اما معماری اصلی اینترنت اشیا در تمامی پیادهسازیها و مدلهای تجاری ثابت باقی مانده است. معماری اصلی سیستم اینترنت اشیا را میتوان از روی یک مدل چهارلایهای درک کرد:
دستگاهها و دروازههای اینترنت اشیا
شبکه ارتباطی
ابر یا سرور
برنامه اینترنت اشیا
دادهها توسط یک سیستم اینترنت اشیاء تولید، انتقال، پردازش و به ادراکات مفید تبدیل میشوند. معماری اصلی سیستم اینترنت اشیاء را میتوان توسط دیاگرام بلاک زیر نمایش داد.
دستگاههای اینترنت اشیا
هر دستگاه یا تجهیزاتی که نیازمندیهای زیر را برآورده کند به عنوان دستگاه اینترنت اشیا شناخته میشود:
بتواند توسط یک شبکه اینترنت با دستگاههای دیگر ارتباط برقرار کند. باید رابط سختافزاری و میانافزار یا یک سیستمعامل داشته باشد که بتواند ارتباط با دستگاههای دیگر را برقرار سازد و یا به یک شبکه اینترنتی وصل شود.
باید مجهز به سنسور و یا محرک باشد. سنسورها باید بتوانند اطلاعات ایستا یا پویا از دنیای فیزیکی دریافت کنند. اطلاعات یا دادههای گرداوری شده توسط سنسور توسط ابر یا سرور تبادل یا اشتراکگذاری میشوند. دستگاه محرکهایی دارد که طبق دادههای پردازششده یا ادراکات ارسالی توسط ابر یا سرور اقدام میکنند.
دستگاه باید یک کنترلر یا پردازنده جهت ضبط دادهها، یک حافظه جهت ذخیره آن و یک میانافزار یا سیستمعامل برای پردازش دادههای بدست آمده یا دادههای دریافتی از سرور یا ابر داشته باشد.
اکثر دستگاههای اینترنت اشیا با استفاده از بردهای استاندارد اینترنت اشیا ساخته میشوند. این بردها ممکن است بردهای میکروکنترلر یا بردهای دختر (کامپیوترهای تک برد) باشند. برخی از بردهای رایج iot عبارتند از Arduino، Raspberry Pi، Beagle Bone، CubieBoard، Pinnocio، Banana Pi و غیره. بردها دارای یک پردازنده یا میکروکنترلر هستند که با یک حافظه تعبیه شده، پینهای (ورودی خروجی چندمنظوره) GPIO دیجیتال یا آنالوگ و انواع کانالهای ارتباطی (نظیر USB، I2C، SPI، TWI ، اترنت) ستجمیع شدهاند. این بردها ممکن است با بردها یا سنسورها و محرکهای دیگر روی هم پشته شده باشند و یک دستگاه اینترنت اشیا (دستگاه فیزیکی) را تشکیل دهند.
دستگاههای اینترنت اشیا ممکن است با تقویت رابطهای شبکه، RF یا فرستنده گیرندههای سلولی با میکروکنترلر یا پردازنده ساخته شده باشند. این دستگاههای اینترنت اشیاء به صورت سفارشی برای کاربردهای بحرانی ساخته میشوند. برخی از کارخانههای برتر در زمینه ساخت میکروکنترلر عبارتند از Texas Instruments، ARM، Freescale، Intel، Microchip Technology، Atmel and Broadcom.
طبق طراحی و قابلیتهای سختافزاری، دستگاههای اینترنت اشیا را میتوان به دستههای زیر تقسیم کرد.
دستگاههای عمومی
دستگاههای شنود و ادراک
دستگاه عمومی دستگاهی است که دارای قابلیتهای پردازشی و ارتباطی است. دستگاه عمومی میتواند برخی اطلاعات را پردازش کند و قادر است از طریق رابطهای سیمی یا بیسیم به یک شبکه ارتباطی وصل شود. اساساً این دستگاهها تنها دادهها و ادراکات یک ابر یا سرور را گرداوری میکنند و پردازش دادهها را براساس آن انجام میدهند. به عنوان مثال دستگاههای صنعتی یا وسایل منزل کنترلشده توسط وب را میتوان در دستۀ دستگاههای اینترنت اشیاء عمومی قرار داد.
این دستگاهها مجهز به سنسور و محرک هستند و میتوانند با دنیای واقعی تعامل کنند و بر آن تاثیر داشته باشند. سنسورها اطلاعاتی مربوط به کمیتهای فیزیکی نظیر دما، رطوبت، شدت نور، نیرو، تراکم و غیره گرداوری میکنند و آن را به پردازنده یا کنترلر تعبیه شده ارسال میکنند. کنترلر یا پردازنده اطلاعات را (بصورت موقت) ذخیره میکند و آن را در شبکه ارتباطی ارسال میکند. در لایههای مختلف شبکه ارتباطی این اطلاعات به دست ابر یا سرور میرسد. ابر اطلاعات را پردازش کرده و ادراکات مفید را جهت اقدام محرکها ارسال میکند.
نقش دروازهها
دستگاه اینترنت اشیا میتواند ارتباط با دستگاههای دیگر را با یا بدون دروازه برقرار کند. دروازهها اساساً برای تبدیل پروتکل مورد نیاز هستند. فرض کنید یک دستگاه اینترنت اشیاء بتواند دادهها را از طریق رابط ZigBee ارسال و دریافت کند و لذا از طریق پروتکل زیگبی ارتباط برقرار کند.
شبکه ارتباطی میتواند از طریق پروتکل TCP-IP دادهها را دریافت و ارسال کند. در چنین شرایطی یک دروازه نیاز است که دادههای دریافتی از دستگاه با استفاده از پروتکل ZigBee را به انتقال داده از طریق پروتکل TCP-IP تبدیل کند، و دادههای دریافتی از ابر یا سرور از طریق پروتکل TCP-IP را جهت دریافت توسط دستگاه اینترنت اشیاء، به پروتکل زیگبی تبدیل کند.
از آنجایی که شبکه ارتباطی و شبکه تعبیه شدۀ در دستگاه اینترنت اشیا متفاوت هستند، دروازه نقش یک پل دوطرفه بین این دو شبکه را ایفا میکند.
دروازه دادهها را طبق پروتکل دستگاه گردآوری و استخراج میکند، و آن را براساس پروتکلی که شبکه ارتباطی با آن کار میکند بستهبندی و فرمت میکند و جهت انتقال به ابر یا سرور به شبکه ارتباطی میفرستد.
به طور مشابه، دادهها یا اطلاعات را از ابر یا سرور دریافت و استخراج میکند، آن را براساس پروتکل شبکه مورد استفاده توسط شبکه دستگاه بستهبندی و فرمت میکند و دادههای پردازش شده توسط ابر را به دستگاه اینترنت اشیاء میفرستد. لذا دروازه باید در یکی از این دو سناریو باشد.
1) وقتی دستگاه اینترنت اشیا و شبکه ارتباطی طبق پروتکلهای مختلفی عمل کنند. معمولا این پروتکلها در لایههای شبکه متفاوتی هستند. مشابه مثال بالا، ZigBee یک پروتکل لایه فیزیکی و TCP-IP یک پروتکل لایه انتقال است. شبکه سنسور بی سیم مثال دیگری از ارتباط دستگاه با شبکه از طریق دروازه است.
2) یک دستگاه اینترنت اشیا ممکن است بخواهد با دستگاه دیگری ارتباط برقرار کند که تحت پروتکل متفاوتی عمل میکند. به عنوان مثال یک دستگاه بلوتوث ممکن است بخواهد با استفاده از یک دروازه با دستگاههای BLE دیگر در هوا ارتباط برقرار کند.
لذا دروازهها یک مسیر ارتباطی غیرمستقیم بین دستگاه یا یک دستگاه با دستگاه دیگر ارائه میدهند. در ارتباط دستگاه با دستگاه، نقاط انتهایی اینترنت اشیاء (دستگاههای اینترنت اشیاء) ممکن است نزدیک هم باشند و با پروتکلهای لایه فیزیکی یا لایه پیوند داده متفاوتی از طریق دروازه ارتباط برقرار کنند (پروتکلهای RF نظیر بلوتوث، وایفای، ZigBee، Bluetooth-LE). این دروازهها را دروازههای پل مینامند
ارتباط بدون دروازه
دستگاه IoT میتواند مستقیما به ابر یا دستگاه دیگر وصل شود. در چنین حالتی دستگاه و شبکه ارتباطی یا دستگاهی که با دستگاه دیگر ارتباط برقرار میکند باید دادهها را با استفاده از پروتکل یکسانی تبادل و اشتراکگذاری کند.
لذا نیازی به تبادل پروتکل و یا دروازه نیست. معمولا ارتباط دستگاه با دستگاه یا دستگاه با شبکه از طریق پروتکلهای لایه کاربرد نظیر MQTT، CoAP، سرویس توزیع داده (DDS)، پروتکل صف پیام پیشرفته (AMQP) و پروتکل XMPP امکانپذیر میشود. به عنوان مثال یک برد اینترنت اشیاء ESP8266 میتواند مستقیما و از طریق پروتکل MQTT با برد دیگری ارتباط برقرار کند. MQTT یک پروتکل لایه کاربرد است.
دستگاههای اینترنت اشیا میتوانند میانافزار، سیستمعامل یا سیستمعامل بلادرنگ جهت پردازش دادهها، انجام پیامرسانی و ارتباط، مدیریت ذخیره داده و مدیریت عملیات محرک داشته باشند. برخی از رایجترین سیستمعاملهای اینترنت اشیاء عبارتند از لینوکس تعبیهشده، TinyOS، Snappy Ubuntu Core، Contiki، FreeRTOS، Mantis، ARM’s mbedOS، RIOT OS، ویندوز 10، Nucleus RTOS، eCOS، SAFE ROTS، Android Things، Green Hills Integrity، WindRiver VxWorks و BrilloOS.
شبکه ارتباطی: شبکه ارتباطی درواقع شبکه اینترنت معمولی است که لایههای متفاوتی دارد (لایه فیزیکی، پیوند، انتقال و کاربرد) و پروتکلهای ارتباطی آن در لایههای مختلفی عمل میکنند.
ابر یا سرور: ابر یا سرور درواقع نقش پل را در سیستم اینترنت اشیاء ایفا میکند. ابر دادههای گرداوری شده از دستگاههای اینترنت اشیاء را ذخیره میکند و کاوش و تحلیل دادهها را جهت استنتاج ادراکات مفید از آنها انجام میدهد. مسئولیت مدیریت دستگاهها و شبکهها، مدیریت ارتباطات دستگاه با دستگاه و پیادهسازی برنامههای اینترنت اشیاء از طریق همگامسازی دستگاههای اینترنت اشیاء و ارتباط بین آنها، فراهم میسازد. ابر ممکن است با سرویسهای ابر عمومی و خصوصی دیگر ارتباط برقرار کند تا یک برنامه اینترنت اشیاء را فعال کند.
برنامه اینترنت اشیا: پردازش، کاوش و تحلیل دادهها در ابر از طریق برنامه اینترنت اشیاء انجام میشود. برنامه اینترنت اشیاء یک تکه نرمافزاری در سمت سرور ابر است که دادهها را استخراج میکند، آنها را جهت استنتاج ادراکات مفید دستکاری میکند و این ادراکات را به دستگاههای مد نظر ارسال میکند. به عنوان مثال، برنامه اینترنت اشیائی که برای اتوماسیون خانه طراحی شده است میتواند دادههای سنسورها را پردازش کند و دستوراتی از جانب ابر جهت عملکرد وسایل خانه صادر کند.
در آموزش بعدی پروتکلهای ارتباط IOT را شرح میدهیم، که در لایههای مختلف شبکه استفاده میشوند.