img

برنامه نویسی اینترنت اشیاء با استفاده از Contiki و Cooja

/
/
/
Contiki یک سیستم عامل است که تمرکز آن بر روی وسیله های اینترنت اشیاء می باشد. Cooja شبیه ساز شبکه Contiki می باشد. Cooja اجازه می دهد که شبکه های خرد و کلان mote های Contiki شبیه سازی گردند. این مقاله سعی دارد راهنمایی باشد برای توضیح اینترنت اشیاء به وسیله Contiki و Cooja.

همه ی ما توسط چندین ابزارک(gadget)، وسیله های قابل حمل، گوشی های هوشمند، گره های (Nodes) بی سیم و سایر چیزهایی که بی درنگ به صورت دیجیتالی به یکدیگر متصل هستند محاصره شده ایم. اینترنت اشیاء وسایل دنیای واقعی را قادر می سازد که با یکدیگر تعامل کنند. این اشیاء می توانند اطلاعات را با هم به اشتراک قرار دهند و برای بهره وری بهتر بی درنگ با هم در تبادل باشند و در عین حال از امنیت نیز برخوردار هستند. اینترنت اشیاء با توسعه و یک پارچه سازی اشیای هوشمندی که آنها را می توان از طریق زیر ساخت های شبکه ای از دور کنترل کرد، فعالیت می کند.
این اصطلاح، اینترنت اشیاء، توسط Kevin Ashton در ۱۹۹۹ ابداع گردید. پیاده سازی اینترنت چیزها اکنون بسیار معمول است که به مدد کیفیت خوب فن آوری های بی سیم میسر گشته است. برچسب های سامانه بازشناسی با امواج رادیویی(RFID) و حسگرها از مهمتری اجزای اینترنت اشیا محسوب می شوند. برچسب های RFID می توانند وسایل و دستگاه های دنیای واقعی جای گذارده شوند، که می توان آنها را از دور توسط برنامه های نرم افزار محور تحت نظر قرار داد. از خوانش گرهای RFID، می توان برای جا نمایی، خواندن و حس کردن چیزهای مجهز به RFID سود جست. تراشه های بسیار کوچک و میکروسکوپی ارسال و دریافت کننده با RFID ادغام شده اند تا به ارتباط بین دستگاه های دور از یکدیگر کمک کنند.
نظر به گزارش های Forbes.com، تا سال ۲۰۲۰ انتظار می رود که بازار بتوان به کششی در حدود ۲۶۷ میلیارد دلار برسد. تحلیل های انجام شده توسط Gartner بیان می دارد که در حدود ۸٫۴ میلیارد چیز، با سرمایه گذاری بالغ بر ۲۷۳ میلیارد دلار، در سال جاری(۲۰۱۷-۲۰۱۸) به یکدیگر پیوسته خواهند بود. این رقم رشدی ۳۱ درصدی را در مقایسه با سال ۱۷-۲۰۱۶ نشان می دهد.
از کاربرد های اینترنت اشیا می توان نام برد:
* شهرهای هوشمند، نقطات خرده فروشی، شبکه های توزیع هوشمند، کشاورزی و پرورش محصول، خانه ها و دفاتر
* اینترنت وسایط نقلیه
* خودرو های متصل به یکدیگر
* زیرساخت راه آهن به هم پیوسته
* وسایل پوشیدنی
* شبکه سازی نرم افزار محور
* اینترنت صنعتی
* مدیریت انرژی
دامنه تحقیقات در اینترنت چیزها
به دلیل گسترش روز افزون استفاده از اینترنت چیزها در حکومت و بخش های خصوصی، به تحلیل عوامل متنوعی که عملکرد و بهره وری را تحت تاثیر قرار می دهد، نیاز است.
لیست زیر تعدادی از مسایل کلیدی اینترنت اشیا را شامل می شود:
* معماری های امنیتی، حریم شخصی و اعتماد
* تحلیل داده های کلان و مقیاس پذیری
* توافق و هم کنش پذیری وسایل
* تحمل و پذیریش خطا در هنگام اجرای نرم افزار
* شبکه سازی شناختی
* شیوه های آگاه از انرژی
* مجازی سازی
* مدل های پایگاه شناختی

ابزارهایی رایگان و متن باز برای برنامه نویسی اینترنت چیزها
در ادامه تعدادی از ابزارهای متن باز معروفی که در اینترنت چیزها مورد استفاده قرار می گیرند نوشته شده است.

OpenIoT(http://www.openiot.eu/):
این یک بستر متن باز و رایگان برای مدیریت و برنامه نویسی حس گرهای اینترنت و cloud(ابری) محور و محیط هایی بر پایه این زیر ساخت ها. مفهوم حس کردن به عنوان خدمات(Sensing-as-a-Service) در OpenIoT مورد توجه و توسعه قرار گرفته است.

Zetta(http://www.openiot.eu):
این یک بستر متن باز و رایگان بر پایه Node.js می باشد. برای ایجاد سرورهای IoT(اینترت چیزها) که می توانند سامانه های گسترده جهانی، حس گرها و رایانه ها -حتی نمونه هایی که ابری(cloud)- را کنترل و اجرا کنند از Zetta استفاده می شود.

DSA(http://www.iot-dsa.org/):
معماری خدمات گسترده(Distributed Services Architecture) یک کتابخانه IoT متن باز و قدرتمند می باشد که به طور رایگان در دسترس می باشد.
این عملکرد تبادل و ارتباط میان اشیاء را ارتقاء می بخشد و آن را بسیار موثر می سازد. DSA جعبه ابزاری مناسب برای برنامه ها، خدمات و اشیاء مبتنی بر IoT را فراهم می آورد.

Node-RED (http:/+/nodered.org/):
این رابط برنامه نویسی و API مورد نیاز برای اینترنت اشیاء را فراهم می آورد.
با استفاده از Node-RED، ایجاد «جریان محور» اشیا IoT دور از دسترس، به سادگی با مرورگر مجهز به ادیتور «جریان محور» انجام پذیر است.در «ادیتور جریان» (flow editor) Node-RED، کد جاوا اسکریپت می تواند اجرا شود و اشیای دور از دسترس می با قابلیت هایی قدرتمند برنامه ریزی شوند.

IoTivity(http://www.iotivity.org/):
این یک کتابخانه قدرتمند متن باز می باشد که ارتباط میان شیئی را با سرعتی خیره کننده و عملکردی عالی فراهم می آورد. این کتابخانه با زبان های C و C++ نوشته شده است.بیشتر پروتکل هایی که مختص عملکرد هستند(مثل ANT+، بلوتوث کم مصرف، وای فای مستقیم، Zigbee و Z-Wave) به راحتی می توانند با IoTivity یکپارچه سازی شوند.
کاربردهای متنوع دیگری برای اینترنت اشیاء وجود دارد که ادامه ذکر خواهد شد.

جعبه ابزارهای توسعه و کتابخانه ها
* Arduino
* Eclipse IoT Project
* Kinoma
* M2MLabs Mainspring
* Node-RED
* ThingBox

اتوماسیون برای ادارات و خانه
* Eclipse SmartHome
* Home Gateway Initiative
* Ninja Blocks
* openHAB
* PrivateEyePi
* RaZberry
* The Thing System

میان افزارها
* IoTSyS
* Kaa
* OpenIoT
* OpenRemote

سیستم عامل‌ها
* AllJoyn
* Brillo
* Contiki
* FreeRTOS
* Raspbian
* RIOT
* Spark
* TinyOS

ابزار های یکپارچه سازی IoT و بسترهای افقی
* Canopy
* Chimera IoT
* DeviceHive
* IoT Toolkit
* M2MLabs Mainspring
* Mango
* Nimbits
* Open Source Internet of Things(OSIoT)
* OpenRemote
* Pico Labs
* Prpl Foundation
* RabbitMQ
* SiteWhere
* ThingSpeak
* Webinos
* Yaler

پروتکل ها
* پروتکل برصف کننده ی پیشرفته پیام ها(AMQP)
* پروتکل برنامه محدود (CoAP)
* پیام نگاری بسط پذیر و پروتکل حضور(XMPP)
* OASISانتقال دهنده دورسنج بر صف کننده پیام(MQTT)
* پروتکل کنترل بسیار ساده(VSCP)

محصولات مناسب برای مهندسی
* Open Garden
* Open Source Robotics Foundation
* OpenWSN

استفاده از سیستم عامل Contiki به همراه شبیه سازی به نام Cooja برای برنامه نویسی اینترنت اشیاء
Contiki(http://www.contiki-os.org/) یک سیستم عامل محبوب، رایگان و متن باز برای برنامه نویسی اینترنت چیزها می باشد که لایسنس BSD به همراه کدهای پایه ای ایجاد شده توسط زبان برنامه نویسی C قابل دسترسی است. Contiki می تواند برای تبادل و ارتباط میان تراشه های RFID کم مصرف در شبکه های بیسیم با درجه ای بالا از عملکرد و امنیت استفاده شود.
برنامه نویسی بر روی Contiki تو شبیه سازی به Cooja انجام می شود، که در آن کتابخانه های پایه ای تراشه های RFID و حسگرها به زبان C در دسترس می باشند. برای برنامه نویسی، کنترل و تحت نظر داشت وسایل چیزنتی که دور هستند، برنامه های نوشته شده به زبان C پشت صحنه(Back-end) و فایل های سر صفحه ای(header) مربوطه می توانند دستکاری و دوباره کامپایل شوند تا نتایج مطلوب را به دست آورند. Contiki بر روی IPv4 و همین طور بر روی IPv6 توسط پروتکل های یکپارچه ساز سبک کار می کند، تا تراشه های کم مصرف و تراشه های فراکنس رادیویی بتوانند بدون مشکلات عملکردی بتوانند متصل گردند.

لینک دانلود Contiki فوری
http://sourceforge.net/projects/contiki/files/Instant%20Contiki/
می باشد.
هنگامی Contiki فوری فشرده دانلود گردد، می تواند بر روی هر سیستم عامل میزبانی نصب گردد. Contiki فوری بر روی source.net به صورت یک فایل فشرده در دسترس می باشد که می تواند استخراج گردد. نمونه غیرفشرده یا استخراج شده Contiki می تواند توسط VMware player اجرا گردد، که ابزاری مجازی سازی می باشد و می توان آن را به صورت رایگان از

http://www.vmware.com/go/downloadplayer/

دانلود نمود. در فولدر استخراج شده نمونه Contiki، فایل قابل اجرای

Instant_Contiki_Ubuntu_12.04_32-bit.vmx

وجود دارد. این فایل، در هنگام اجرا، بصورت خودکار در VMware Player باز می شود، و ما آماده کار با Contiki توسط نرم افزار مجازی ساز خواهیم بود در موازات هر سیستم عاملی که فکرش را کنید. رمز عبور پیش فرض برای Contiki کلمه ‘user’ می باشد.
بعد از بارگذاری سیستم عامل Contiki، فرمان هایی در شکل ۳ در ترمینال اجرا شده اند که شبیه ساز(Cooja) را برای پیاده سازی چیزنت بارگذاری می کند.

ایجاد یک شبکه جدید در شبیه ساز(Cooja simulator)
در منوی File، همانگونه که در شکل ۴ مشاهده می کنید New Simulation را انتخاب کنید.
در جعبه سخن(dialogue box)، پارامترهای مقدماتی شبکه تعیین گشته اند که شامل اسم شبیه سازی، متوسط رادیو، تاخیر در بالا آمدن و نطفه تصادف (random seed) می شوند.
زمانی که طرح بندی مقدماتی و فضای کار آماده شد، شما بایستی برچسب های RFID، گره های حسگر یا هر وسیله ی بیسیم دیگری که قرار است به اینترنت اشیاء متصل باشد و به تبادل بپردازد. در شبکه های بیسیم و اینترنت اشیاء، اینها به mote معروف هستند. انواع بسیاری از mote ها در Cooja وجود دارد که قابل برنامه ریزی هستند.
Mote های فیزیکی نیز بتوانند به وسیله درگاه ها(port) به یکدیگر متصل شوند و تبادل بی درنگ بین آنها برقرار باشد.(real-time interfacing)
هر mote، با مشخصه های پایه ای و API برنامه نویسی، با منبع کد نوشته شده با C در پشت صحنه(back-end) Cooja تعریف شده است. این منبع های کد به زبان C می توانند مورد دستکاری واقع شوند و باز کامپایل گردند تا بتواند خروجی مطلوب را از mote ها دریافت کرد.
بعد از کامپایل کردن کدهای به زبان C، تعدادی mote مجازی ممکن است
در محیط شبیه سازی وارد شده تا که انتقال سیگنال های رادیویی قابل رویت و تحلیل گردند.
در این شبیه سازی شبکه ی اینترنت اشیاء(چیزنت)، موضوع تبادل کلید پویا میان mote ها انجام شده است. اینجا، کلید امنیتی پویا برای ارتباط ها تولید و تایید می گردد.
در اینترنت اشیاء، به دلیل مسائل امنیتی، ضروری است که پیاده سازی و توجه به پروتکل ها و الگوریتم های مربوط به امنیت ارتباطی در دستور کار قرار گیرد تا از هرگونه رخنه و شکاف امنیتی جلوگیری شود.
از آنجایی که اینترنت اشیاء می تواند برای منظور های نظامی نیز استفاده گردد، اکیدا ضروری است که از به کارگیری الگوریتم های تبادل کلید به شدت امن به همراه رمزنگاری پویای کلید های امنیتی غافل نبود.
هنگامی که شبیه سازی کامل شود، فایل های داده برداری شبکه (networks log files)، که شامل منبع و mote های مقصد، زمان، و فعالیت های کلی که در طی شبیه سازی انجام گرفته اند می شود، تحلیل و بررسی می شوند.
در پنجره خروجی mote، اطلاعات log می توانند کپی و عمیق تر تحلیل شوند، که این امر توسط ابزارهای اتسخراج داده و یادگیری ماشین به منظور تحلیل پیشگویانه صورت می پذیرد.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

It is main inner container footer text