آموزش رایگان شبیه ساز Cooja
اینترنت اشیا چیست؟
در زندگی امروزی، اطراف ما پر شده از گجت ها ، دستگاه های موبایل ، گوشی هوشمند ، نودهای بی سیم ، و اشیای دیگری که به صورت دیجیتال به هم متصل هستند. اینترنت اشیا یا IoT – internet of things قابلیت تعامل اشیا در دنیای واقعی را فراهم می آورد. این اشیا می توانند اطلاعات را با هم به اشتراک گذاشته و به صورت بلادرنگ با هم در ارتباط باشند تا نهایتا بتوانند کارآیی و امنیت بیشتری را فراهم بیاورند.
اینترنت اشیا با توسعه و تجمیع اشیای هوشمند با قابلیت کنترل از راه دور توسط یک زیرساخت شبکه، کار می کند. عبارت اینترنت اشیا یا internet of things توسط Kevin Ashton در سال ۱۹۹۹ ابداع شد. امروزه به دلیل حضور تکنولوژی های بی سیم با کارآیی بالا ، پیاده سازی IoT به شدت در حال رشد است. برچسب های RFID و حسگرها مهمترین مولفه های اینترنت اشیا هستند. برچسب های RFID در وسیله های فیزیکی جاسازی می شوند و بدین طریق قابلیت مانیتورینگ از راه دور با استفاده از برنامه های کاربردی را میسر می سازند. برای مکانیابی ، پیدا کردن و خواندن اشیای حاوی RFID از RFID Reader ها استفاده می شود. همراه با برچسب های RFID چیپ های ارسال و دریافت بسیار ریزی تعبیه شده است که به RFID کمک میکند تا با اشیای در فواصل دور ارتباط برقرار کنند.
طبق گزارش Forbes.com پیش بینی شده که بازار Internet of Things تا سال ۲۰۲۰ به US$ 267 billion خواهد رسید. تحقیقات حاکی از این است که تا کنون (سال ۲۰۱۷) حدود ۸.۴ بیلیون شیء با صرف هزینه ای بالغ بر US$ 273 به هم متصل شده اند. این آمار نسبت به سال گذشته ، ۳۱ درصد رشد داشته است.
کاربردهای اینترنت اشیا
از کاربردهای IoT می توان به موارد زیر اشاره نمود:
- شهر هوشمند (گرید هوشمند ، کشاورزی و زراعت هوشمند ، منازل و دفاتر کار هوشمند)
- اینترنت وسایل نقلیه (IoV)
- خودروهای متصل
- زیرساخت های خطوط راه آهن متصل
- مراقبت از سلامت افراد (IoP)
- دستگاه های پوشیدنی (Wearable Devices)
- شبکه های مبتنی بر نرم افزار یا SDN – Software defined networking
- اینترنت صنعتی
- مدیریت انرژی
برای آشنایی بیشتر با اینترنت اشیا ، مقاله آموزش اینترنت اشیا را مطالعه نمایید.
کوجا چیست؟
در این آموزش رایگان، شما با امولاتور Cooja که در سیستم عامل Contiki نصب است آشنا شده و نحوه استفاده از کوجا برای شبیه سازی نودهای اینترنت اشیا را فرا خواهید گرفت. همچنین شما را با شبیه سازی پروتکل های اینترنت اشیا به کمک شبیه ساز / امولاتور کوجا (Cooja) آشنا خواهیم کرد. امولاتور کوجا (Cooja) یک شبیه ساز یا امولاتور برای شبیه سازی اینترنت اشیاء است که در سیستم عامل Contiki قرار دارد.
Contiki یک سیستم عامل محبوب و متن باز (Open Source) برای سیستم های تحت شبکه با حافظه محدود است. تمرکز این سیستم عامل روی وسیله های IoT بی سیم با انرژی محدود و Simulation و Emulation اپلیکیشن های IoT می باشد. Contiki تحت لایسنس BSD بوده و کد آن به زبان C نوشته شده است. از Contiki می توان برای ایجاد ارتباط بین چیپ های RFID در شبکه های بی سیم استفاده نمود.
برنامه نویسی روی Contiki با استفاده از امولاتور شبکه Cooja صورت می گیرد که حاوی کتابخانه های پایه مربوط به چیپ ها و سنسورهای RFID در زبان C می باشد. برای پروگرام کردن ، کنترل و مانیتور کردن وسیله های IoT از راه دور ، می بایست برنامه های C و فایل های هدر مربوطه در back-end ویرایش و مجددا کامپایل شوند تا نتایج دلخواه بدست بیاید.
عمده کاربرد سیستم عامل Contiki در سیستم های روشنایی خیابان ها، مانیتورینگ صدا در شهرهای هوشمند، مانیتورینگ تشعشع و آلارم ها می باشد. این سیستم عامل روی توزیع های لینوکس (ترجیحاً اوبونتو) قابل نصب است.
بخش ۱: آشنایی با اینترنت اشیاء
در این بخش به آموزش موارد زیر خواهیم پرداخت:
- ضرورت بررسی اینترنت اشیا
- پیشینه اینترنت اشیا
- مفهوم اینترنت اشیا
- تعریف شیء و ویژگی های آن
- چالش های توسعه اینترنت اشیا
- کاربردهای اینترنت اشیا
اینترنت اشیا چیست؟ (۱۵:۰۶ دقیقه)
بخش ۲: آشنایی با پروتکل های اینترنت اشیاء
در این بخش به آموزش موارد زیر خواهیم پرداخت:
- شبکه های LLN
- پروتکل اینترنت (IP)
- پروتکل ۶LoWPAN
- پروتکل RPL
- Sensor Mote ها
آشنایی با پروتکل های اینترنت اشیاء (۲۳:۳۲ دقیقه)
بخش ۳: آشنایی با سیستم عامل ها و شبیه سازی اینترنت اشیاء
در این بخش به آموزش موارد زیر خواهیم پرداخت:
- ویژگی های سخت افزاری دستگاه ها در اینترنت اشیا
- ویژگی های مطلوب سیستم عامل اینترنت اشیا
- سیستم عامل های موجود برای اینترنت اشیا
- شبیه سازهای اینترنت اشیا
آشنایی با سیستم عامل ها و شبیه سازی اینترنت اشیاء (۱۷:۴۰ دقیقه)
کوجا می تواند شبکه ای از mote های Contiki را شبیه سازی کند. mote ها را می توان در سطح سخت افزار شبیه سازی نمود که در این صورت روال شبیه سازی کندتر ولی وارسی دقیق تر رفتار سیستم امکانپذیر خواهد بود. یا اینکه می توان این کار را در سطح بالاتر و با دقت کمتر انجام داد و در عوض شبیه سازی شبکه های بزرگ را با سرعت انجام داد.
بخش ۴: نصب و راه اندازی شبیه ساز Cooja در Contiki OS
شما میتوانید Instant contiki را به صورت رایگان دانلود و استفاده کنید.
برای اجرای Cooja در سیستم عامل Contiki کافی است ترمینال لینوکس را باز کنید و دستورات زیر را وارد کنید:
cd contiki/tools/cooja
ant run
بخش ۵: اجرای اولین مثال شبیه سازی اینترنت اشیا در Cooja
مرحله ۱: ایجاد یک پروژه جدید
روی منوی File کلیک کنید و New Simulation را انتخاب کنید.
در پنجره ظاهر شده یک نام برای پروژه خود انتخاب کنید (مثلاً Hello-World). روی دکمه Create کلیک نمایید تا کوجا یک شبیه سازی جدید برای شما ایجاد کند.
پنجره ای که در سمت چپ بالا قرار دارد، تمام Mote های موجود در شبیه سازی شما را نشان می دهد که اکنون خالی است چون شما هنوز mote ای را به شبیه سازی تان اضافه نکرده اید.
نوار زمانی پایین صفحه ، وقوع رویدادهای ارتباطی را با گذر زمان شبیه سازی نشان می دهد تا مشخص شود در هر لحظه از شبیه سازی چه اتفاقی افتاده است.
پنجره خروجی Mote واقع در سمت راست صفحه، تمامی خروجی های پورت سریال Mote ها را نشان می دهد.
در پنجره Note هم که سمت راست و بالای شبیه سازی قرار دارد، می توانید یادداشت های مورد نیاز برای شبیه سازی را بنویسید.
پنجره کنترل شبیه سازی به شما این امکان را می دهد که شبیه سازی را اجرا، متوقف یا مجددا بارگذاری نمایید.
مرحله ۲ : انتخاب نوع گره ها (Mote ها)
قبل از اینکه شما بتوانید شبکه مورد نظر خود را شبیه سازی نمایید، ابتدا باید یک یا چند Mote را از منوی Mote به شبیه سازی خود اضافه کنید.
ابتدا باید یک Mote Type تعریف کنید. روی گزینه Create new mote type کلیک کنید و یکی از Mote type های موجود را انتخاب کنید.
می توانید روی Sky Mote کلیک کنید تا mote type ای با نام Tmote Sky ایجاد شود.
در این مرحله، کوجا یک دیالوگ Create Mote Type باز می کند که باید در آن یک نام برای mote type خود تعیین کنید و همچنین اپلیکیشن Contiki که mote type شما قرار است در آن اجرا شود را مشخص کنید.
مرحله ۳ : انتخاب اپلیکیشن Contiki
پس از اینکه یک نام برای mote type خود تعیین کردید حال روی دکمه Browse کلیک کنید و اپلیکیشن Contiki مد نظرتان را انتخاب کنید. به دایرکتوری /home/user/contiki/examples/hello-world بروید و فایل سورس hello-world.c را انتخاب کنید.
مرحله ۴ : کامپایل پروژه
حال کوجا از شما میخواهد تا کامپایل اپلیکیشن Contiki انتخاب شده بر روی پلتفرم انتخاب شده را تأیید نمایید.
روی دکمه Compile کلیک کنید. نتیجه کامپایل در پنجره سفید رنگ پایین صفحه نمایش داده می شود.
مرحله ۵ : Create پروژه و انتخاب تعداد Mote ها
وقتی کامپایل به درستی انجام شد و به پایان رسید، روی دکمه Create کلیک کنید و در پنجره باز شده تعداد Mote های مورد نیاز را تعیین کنید.
مرحله ۶ : اجرای پروژه
اکنون می توانید در پنجره کنترل شبیه سازی، روی دکمه Start کلیک کنید تا شبیه سازی آغاز شود.
مطالعه بیشتر
۱: اینترنت اشیاء چیست؟
- ضرورت بررسی اینترنت اشیا
- پیشینه اینترنت اشیا
- مفهوم اینترنت اشیا
- تعریف شیء و ویژگی های آن
- چالش های توسعه اینترنت اشیا
- کاربردهای اینترنت اشیا
۲: شبکه های LLN و پروتکل های اینترنت اشیاء
- شبکه های LLN
- پروتکل اینترنت (IP)
- پروتکل ۶LoWPAN
- پروتکل RPL
- Sensor Mote ها
۳: سیستم عامل ها و شبیه سازهای اینترنت اشیا
- ویژگی های سخت افزاری دستگاه ها در اینترنت اشیا
- ویژگی های مطلوب سیستم عامل اینترنت اشیا
- سیستم عامل های موجود برای اینترنت اشیا
- شبیه سازهای اینترنت اشیا
4: معرفی سیستم عامل Contiki
- معرفی و ساختار سیستم عامل Contiki
- نصب و راه اندازی Instant Contiki
- کتابخانه ها و سرویس های Contiki
- چندنخی در Contiki
- پایگاه داده در Contiki
- سیستم مدیریت فایل در Contiki
5: برنامه های کاربردی در Contiki
- ساختار برنامه های کاربردی Contiki
- پشته شبکه در Contiki
- تایمرها در Contiki
- پیاده سازی یک برنامه ی کاربردی Contiki
- آماده سازی برنامه ی کاربردی برای اجرا روی سخت افزار واقعی
6: معرفی امولاتور Cooja
- معرفی امولاتور و ساختار Cooja
- انجام اولین شبیه سازی اینترنت اشیا با Cooja
- معرفی کلی محیط گرافیکی Cooja
- تنظیمات و پیکربندی اولیه
- افزودن Mote ها به شبکه
7: امکانات موجود در شبیه ساز Cooja
- ویرایشگر اسکریپت
- معرفی پلاگین های Cooja
- پلاگین Collect view
- تحرک گره ها در Cooja
- Capture کردن ترافیک شبکه
- تعریف سوکت برای گره ها و Ping کردن شبکه
8: نمایش آماره ها و نتایج شبیه سازی در Cooja
- تشریح بخش Mote Output و چاپ Log های مورد نیاز در آن
- نمایش اطلاعات اضافی با راست کلیک
- تحلیل مصرف انرژی با پلاگین PowerTrace
- روش های محاسبه و رسم نمودارهای Packet Loss Ratio و Packet Delivery Ratio
- روش های محاسبه و رسم نمودار تأخیر در شبکه
9: مباحث تکمیلی
- پروتکل های LIBP, MQTT و RPL در Cooja
- استفاده از ID گره ها در برنامه های کاربردی
- پیاده سازی GPS در Cooja
- Capture کردن ترافیک شبکه با Wireshark
- مد بی قاعده کارت شبکه در Cooja
- اجرای Cooja برای شبکه های بزرگ
منابع و مراجع
مقالات شبیه سازی شده با Cooja
- Algorithms for Big Data Delivery over the IoT
- An Adaptive Timer for RPL to handle Mobility in WSN
ابزارهای مورد نیاز دوره
درباره مجید شبیری
کارشناس ارشد فناوری اطلاعات از دانشگاه صنعتی امیرکبیر. مدیر و مؤسس "علوم نوین امیرکبیر"، متخصص برنامه نویسی، شبکه، لینوکس و امنیت. از سال 84 همزمان با شروع تحصیلات دانشگاهی، وارد حوزه تخصصی مهندسی نرم افزار شدم و اکنون مشغول تحقیق، توسعه و آموزش در حوزه بلاک چین هستم و معتقدم بلاکچین به زودی فضای کسب و کارها را منقلب خواهد کرد.
نوشته های بیشتر از مجید شبیریمطالب زیر را حتما مطالعه کنید
دوره های آموزشی مرتبط
دوره آموزش برد رزبری پای – ۳ Raspberry Pi
دوره آموزش اینترنت اشیا با Packet Tracer
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام وقت بخیر سفارش پروژه شبیه سازی با کوجا هم قبول میکنید؟
سلام
وقت بخیر
خیر. هیچ گونه فعالیتی مبنی بر انجام پروژه نداریم.
فعالیت ما صرفاً در زمینه ارائه محتوای آموزش و پکیج های کمکی است تا بتوانید خودتان پروژه را انجام دهید.
پس از ثبت نام در دوره می توانید ویدئوهای دوره رو مشاهده کنید و سوالات خودتون رو از مدرس محترم بپرسید تا ایشون راهنمایی کنند.
موفق باشید.