در آموزش قبلی مقدمهای بر اینترنت اشیاء را ارائه دادیم. اهمیت، چالشها، کاربردها و روندهای اینترنت اشیاء بررسی شد.
حال که درکی اولیه از اینترنت اشیاء داریم، وقت آن فرا رسیده است که مولفههای سازنده اینترنت اشیاء را بررسی کنیم. اینترنت اشیاء به صورت یک سبته با تجمیع فناوریهای مختلف توسعه یافته است. هر تکنولوژی نقش اصلی خود را در سیستم اینترنت اشیاء ایفا میکند.
در این آموزش مولفههای سازنده اینترنت اشیاء و موقعیت آنها در زیرساخت اینترنت اشیاء را بررسی میکنیم.
IoT به اشیاء موجود در دنیای فیزیکی (دستگاهها یا اشیاء اینترنت اشیاء) اجازه میدهد از طریق یک شبکه ارتباطی با دنیای مجازی (شامل سرویسها، پلتفرمها و کاربردهای ابر) در تعامل باشند.
این شبکه ارتباطی امکان تبادل و اشتراکگذاری اطلاعات را به صورت آگاه فراهم میسازد. لذا هر سیستم اینترنت اشیا متشکل از سه مورد مولفهی اصلی دنیای فیزیکی، دنیای مجازی و شبکه ارتباطی است.

برای داشتن یک دید کلی از زیرساخت اکوسیستم اینترنت اشیاء، لازم است درکی از واژگان زیر داشته باشید:
- اشیاء: در زمینه اینترنت اشیاء: هر شیئی در دنیای فیزیکی یا دنیای اطلاعات که دارای یک شناسه منحصربفرد است و میتواند در شبکه ارتباطی تجمیع شود، «شیء» نامیده میشود. اشیاء میتوانند فیزیکی یا مجازی باشند.
اشیاء فیزیکی را معمولاً «دستگاههای اینترنت اشیاء» میگویند. مفهوم اشیاء در اینترنت اشیاء کمی با مفهوم دستگاهها نیز متفاوت است. اگرچه اشیاء میتوانند فیزیکی یا مجازی باشند، اما وقتی اصطلاح دستگاه به کار میرود درواقع به تجهیزات فیزیکی اشاره دارد که میتوانند در یک شبکه ارتباط برقرار کنند و ممکن است به سنسور، محرک، پردازنده، حافظه و/ یا کنترلر مجهز باشند.
اشیاء ممکن است مجازی هم باشند؛ مانند راهکارهای سرویس ابر. اشیاء مجازی برنامههای نرمافزاری، APIها یا راهکارهای کاربردی هستند که دادهها را تبادل و پردازش میکنند. از آنجایی که این برنامهها نیز شناسه منحصربفرد یا کلید شناسایی دارند، به عنوان شیء تلقی میشوند.
اشیاء مجازی میتوانند نمایش اطلاعاتی اشیاء فیزیکی نیز باشند، مانند تصویر اشیاء در سرویس وب آمازون. سنسور حرارتی یک نمونه ساده از اشیاء فیزیکی است. سنسور حرارتی میتواند از طریق یک کنترلر به شبکه ارتباطی وصل شود و یا اطلاعات پویا در مورد دمای محیط را به صورت بلادرنگ گردآوری نموده و به اشتراک بگذارد.
- دنیای فیزیکی: در سیستم اینترنت اشیاء ممکن است اشیاء فیزیکی یا مجازی باشند. دنیای فیزیکی در سیستم اینترنت اشیاء به مجموعه اشیاء فیزیکی یا دستگاهها گفته میشود. اشیاء فیزیکی یا دستگاهها براساس کنترلرها یا پردازندههایی ساخته میشوند که شامل بردهای اینترنت اشیاء هستند.
- بردهای اینترنت اشیاء دارای یک میکروکنترلر یا میکروپردازنده در کنار منبع حافظه محدود و یک یا چند رابط ارتباطی هستند. آنها پینهای ورودی/ خروجی چندمنظوره دارند که به وسیله آنها با یک یا چند سنسور، محرک یا کانال ارتباطی تعامل میکنند.
لذا این اشیاء فیزیکی قادر به شنود، گرداوری، ذخیره، اشتراکگذاری و پردازش اطلاعات هستند و میتوانند یک یا چند محرک را قادر سازند بر روی دنیای واقعی تاثیر بگذارند.
- دنیای مجازی: در سیستمهای اینترنت اشیاء، منظور از دنیای مجازی مجموعه اشیاء مجازی است. این اشیاء مجازی عبارتند از وب، ابر یا کاربردهای موبایل، 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.
معماری سیستم اینترنت اشیاء
سازمانها و سرویسدهندگان مختلف معماری اینترنت اشیاء را به شیوههای مختلفی، تعریف، پیادهسازی و تشخیص دادهاند. اما معماری اصلی اینترنت اشیاء در تمامی پیادهسازیها و مدلهای تجاری ثابت باقی مانده است. معماری اصلی سیستم اینترنت اشیاء را میتوان از روی یک مدل چهارلایهای درک کرد:
- دستگاهها و دروازههای اینترنت اشیاء
- شبکه ارتباطی
- ابر یا سرور
- برنامه اینترنت اشیاء
دادهها توسط یک سیستم اینترنت اشیاء تولید، انتقال، پردازش و به ادراکات مفید تبدیل میشوند. معماری اصلی سیستم اینترنت اشیاء را میتوان توسط دیاگرام بلاک زیر نمایش داد.

دستگاههای اینترنت اشیاء: هر دستگاه یا تجهیزاتی که نیازمندیهای زیر را براورده کند به عنوان دستگاه اینترنت اشیاء شناخته میشود.
الف) بتواند توسط یک شبکه اینترنت با دستگاههای دیگر ارتباط برقرار کند. باید رابط سختافزاری و میانافزار یا یک سیستمعامل داشته باشد که بتواند ارتباط با دستگاههای دیگر را برقرار سازد و یا به یک شبکه اینترنتی وصل شود.
ب) باید مجهز به سنسور و/ یا محرک باشد. سنسورها باید بتوانند اطلاعات ایستا یا پویا از دنیای فیزیکی دریافت کنند. اطلاعات یا دادههای گرداوری شده توسط سنسور توسط ابر یا سرور تبادل یا اشتراکگذاری میشوند. دستگاه محرکهایی دارد که طبق دادههای پردازششده یا ادراکات ارسالی توسط ابر یا سرور اقدام میکنند.
ج) دستگاه باید یک کنترلر یا پردازنده جهت ضبط دادهها، یک حافظه جهت ذخیره آن و یک میانافزار یا سیستمعامل برای پردازش دادههای بدست آمده یا دادههای دریافتی از سرور یا ابر داشته باشد.
اکثر دستگاههای اینترنت اشیاء با استفاده از بردهای استاندارد اینترنت اشیاء ساخته میشوند. این بردها ممکن است بردهای میکروکنترلر یا بردهای دختر (کامپیوترهای تک برد) باشند. برخی از بردهای رایج اینترنت اشیاء عبارتند از 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.
طبق طراحی و قابلیتهای سختافزاری، دستگاههای اینترنت اشیاء را میتوان به دستههای زیر تقسیم کرد.
1) دستگاههای عمومی
2) دستگاههای شنود و تحریک
دستگاههای عمومی: دستگاه عمومی دستگاهی است که دارای قابلیتهای پردازشی و ارتباطی است. دستگاه عمومی میتواند برخی اطلاعات را پردازش کند و قادر است از طریق رابطهای سیمی یا بیسیم به یک شبکه ارتباطی وصل شود. اساساً این دستگاهها تنها دادهها و ادراکات یک ابر یا سرور را گرداوری میکنند و پردازش دادهها را براساس آن انجام میدهند. به عنوان مثال دستگاههای صنعتی یا وسایل منزل کنترلشده توسط وب را میتوان در دستۀ دستگاههای اینترنت اشیاء عمومی قرار داد.
دستگاههای شنود و تحریک: این دستگاهها مجهز به سنسور و محرک هستند و میتوانند با دنیای واقعی تعامل کنند و بر آن تاثیر داشته باشند. سنسورها اطلاعاتی مربوط به کمیتهای فیزیکی نظیر دما، رطوبت، شدت نور، نیرو، تراکم و غیره گرداوری میکنند و آن را به پردازنده یا کنترلر تعبیه شده ارسال میکنند. کنترلر یا پردازنده اطلاعات را (بصورت موقت) ذخیره میکند و آن را در شبکه ارتباطی ارسال میکند. در لایههای مختلف شبکه ارتباطی این اطلاعات به دست ابر یا سرور میرسد. ابر اطلاعات را پردازش کرده و ادراکات مفید را جهت اقدام محرکها ارسال میکند.
نقش دروازهها
دستگاه اینترنت اشیاء میتواند ارتباط با دستگاههای دیگر را با یا بدون دروازه برقرار کند. دروازهها اساساً برای تبدیل پروتکل مورد نیاز هستند. فرض کنید یک دستگاه اینترنت اشیاء بتواند دادهها را از طریق رابط ZigBee ارسال و دریافت کند و لذا از طریق پروتکل ZigBee ارتباط برقرار کند.
شبکه ارتباطی میتواند از طریق پروتکل TCP-IP دادهها را دریافت و ارسال کند. در چنین شرایطی یک دروازه نیاز است که دادههای دریافتی از دستگاه با استفاده از پروتکل ZigBee را به انتقال داده از طریق پروتکل TCP-IP تبدیل کند، و دادههای دریافتی از ابر یا سرور از طریق پروتکل TCP-IP را جهت دریافت توسط دستگاه اینترنت اشیاء، به پروتکل ZigBee تبدیل کند.
از آنجایی که شبکه ارتباطی و شبکه تعبیه شدۀ در دستگاه اینترنت اشیاء متفاوت هستند، دروازه نقش یک پل دوطرفه بین این دو شبکه را ایفا میکند.
دروازه دادهها را طبق پروتکل دستگاه گرداوری و استخراج میکند، و آن را براساس پروتکلی که شبکه ارتباطی با آن کار میکند بستهبندی و فرمت میکند و جهت انتقال به ابر یا سرور به شبکه ارتباطی میفرستد.
به طور مشابه، دادهها یا اطلاعات را از ابر یا سرور دریافت و استخراج میکند، آن را براساس پروتکل شبکه مورد استفاده توسط شبکه دستگاه بستهبندی و فرمت میکند و دادههای پردازش شده توسط ابر را به دستگاه اینترنت اشیاء میفرستد. لذا دروازه باید در یکی از این دو سناریو باشد.
1) وقتی دستگاه اینترنت اشیاء و شبکه ارتباطی طبق پروتکلهای مختلفی عمل کنند. معمولا این پروتکلها در لایههای شبکه متفاوتی هستند. مشابه مثال بالا، ZigBee یک پروتکل لایه فیزیکی و TCP-IP یک پروتکل لایه انتقال است. شبکه سنسور بی سیم مثال دیگری از ارتباط دستگاه با شبکه از طریق دروازه است.
2) یک دستگاه اینترنت اشیاء ممکن است بخواهد با دستگاه دیگری ارتباط برقرار کند که تحت پروتکل متفاوتی عمل میکند. به عنوان مثال یک دستگاه بلوتوث ممکن است بخواهد با استفاده از یک دروازه با دستگاههای BLE دیگر در هوا ارتباط برقرار کند.
لذا دروازهها یک مسیر ارتباطی غیرمستقیم بین دستگاه یا یک دستگاه با دستگاه دیگر ارائه میدهند. در ارتباط دستگاه با دستگاه، نقاط انتهایی اینترنت اشیاء (دستگاههای اینترنت اشیاء) ممکن است نزدیک هم باشند و با پروتکلهای لایه فیزیکی یا لایه پیوند داده متفاوتی از طریق دروازه ارتباط برقرار کنند (پروتکلهای RF نظیر بلوتوث، وایفای، ZigBee، Bluetooth-LE). این دروازهها را دروازههای پل مینامند

ارتباط بدون دروازه
دستگاه اینترنت اشیاء میتواند مستقیما به ابر یا دستگاه دیگر وصل شود. در چنین حالتی دستگاه و شبکه ارتباطی یا دستگاهی که با دستگاه دیگر ارتباط برقرار میکند باید دادهها را با استفاده از پروتکل یکسانی تبادل و اشتراکگذاری کند.
لذا نیازی به تبادل پروتکل و یا دروازه نیست. معمولا ارتباط دستگاه با دستگاه یا دستگاه با شبکه از طریق پروتکلهای لایه کاربرد نظیر 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.
شبکه ارتباطی: شبکه ارتباطی درواقع شبکه اینترنت معمولی است که لایههای متفاوتی دارد (لایه فیزیکی، پیوند، انتقال و کاربرد) و پروتکلهای ارتباطی آن در لایههای مختلفی عمل میکنند.
ابر/ سرور: ابر یا سرور درواقع نقش پل را در سیستم اینترنت اشیاء ایفا میکند. ابر دادههای گرداوری شده از دستگاههای اینترنت اشیاء را ذخیره میکند و کاوش و تحلیل دادهها را جهت استنتاج ادراکات مفید از آنها انجام میدهد. مسئولیت مدیریت دستگاهها و شبکهها، مدیریت ارتباطات دستگاه با دستگاه و پیادهسازی برنامههای اینترنت اشیاء از طریق همگامسازی دستگاههای اینترنت اشیاء و ارتباط بین آنها، فراهم میسازد. ابر ممکن است با سرویسهای ابر عمومی و خصوصی دیگر ارتباط برقرار کند تا یک برنامه اینترنت اشیاء را فعال کند.
برنامه اینترنت اشیاء: پردازش، کاوش و تحلیل دادهها در ابر از طریق برنامه اینترنت اشیاء انجام میشود. برنامه اینترنت اشیاء یک تکه نرمافزاری در سمت سرور ابر است که دادهها را استخراج میکند، آنها را جهت استنتاج ادراکات مفید دستکاری میکند و این ادراکات را به دستگاههای مد نظر ارسال میکند. به عنوان مثال، برنامه اینترنت اشیائی که برای اتوماسیون خانه طراحی شده است میتواند دادههای سنسورها را پردازش کند و دستوراتی از جانب ابر جهت عملکرد وسایل خانه صادر کند.
در آموزش بعدی پروتکلهای ارتباط اینترنت اشیاء را شرح میدهیم، که در لایههای مختلف شبکه استفاده میشوند.