📚 معلومات الصفحة
الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1
الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم
نوع المحتوى: درس تعليمي
📝 ملخص الصفحة
📚 تشغيل محاكاة إنترنت الأشياء
المفاهيم الأساسية
تشغيل المحاكاة: الضغط على زر "Run IoT Simulation" من شريط الأدوات لبدء محاكاة سيناريو إنترنت الأشياء بعد إعداد المقاطع البرمجية.
خريطة المفاهيم
```markmap
أدوات محاكاة إنترنت الأشياء
برنامج كاب كاربون (CupCarbon)
مشروع محاكاة: نظام تخزين مصنع آلي (تابع)
#### إنشاء المقاطع البرمجية
##### المكتبات والتهيئة
- استيراد مكتبة `time`.
- طباعة نص فارغ `node.print("")` لمسح النصوص السابقة.
- بث رسالة تحتوي على:
- معرف الحاوية (ID) بعد تحويله إلى نص.
- فصل المعلومات بمسافة.
- استخدام دالة `node.send()` للإرسال.
- قراءة الرسالة الواردة `node.read()`.
- إذا كانت الرسالة "1": طباعة "PICK" (الالتقاط).
- إذا كانت الرسالة "2": طباعة "DO NOT PICK" (لا تلتقط).
- السكون لمدة ثانية `time.sleep(1)`.
- بث رسالة تحتوي على:
- معرف الحاوية (ID) بعد تحويله إلى نص.
- فصل المعلومات بمسافة.
- استخدام دالة `node.send()` للإرسال.
- قراءة الرسالة الواردة `node.read()`.
- إذا كانت الرسالة "1": طباعة "PICK" (الالتقاط).
- إذا كانت الرسالة "2": طباعة "DO NOT PICK" (لا تلتقط).
- السكون لمدة ثانية `time.sleep(1)`.
###### تهيئة وإدارة البطارية
- `node.battery.setEMax(100.0)`: ضبط أقصى طاقة.
- `node.battery.init()`: شحن البطارية إلى الحد الأقصى.
- `node.battery.consume(1.0)`: محاكاة استهلاك الطاقة.
- `node.isSensorDetecting()`: التحقق من وجود محطة شحن في النطاق.
- عند الاكتشاف: استخدام `node.battery.init()` لإعادة الشحن.
- قراءة جميع الرسائل في المخزن المؤقت: `for n in range(node.bufferSize())`.
- فصل نص الرسالة: `recvMsg.split()`.
- الرد على الحاوية المرسلة:
- إذا كان المحتوى "NONCONSUMABLES": إرسال النص "2".
- `time.sleep(0.2)`: السكون لمدة 200 مللي ثانية لتحقيق استجابة أفضل.
- يدمج المقطع الكود الخاص بإدارة البطارية واكتشاف الشحن ومعالجة الرسائل في حلقة `while` رئيسية.
- يتم وضع كود الرد على الرسائل (`if/elif`) داخل الحلقة الرئيسية بعد قراءة كل رسالة.
- فتح محرر بايثون (Python Editor).
- كتابة التعليمات البرمجية في الحقل النصي.
- حفظ الملف باسم `inspector.py`.
- إغلاق نافذة المحرر.
##### الوصول إلى معاملات الجهاز
- الضغط على علامة تبويب Device Parameters (معاملات الجهاز) في قائمة Parameters (المعاملات).
- الضغط على صندوق Script file (ملف المقطع البرمجي).
- من القائمة المنسدلة، اختيار Inspector.py.
- الضغط على الزر الموجود على اليمين لإدراج المقطع البرمجي في العقدة.
- الضغط على Display > Display/Hide Battery/Buffer levels (عرض / إخفاء مستويات البطارية / المخزن المؤقت).
- الضغط على Save Project (حفظ المشروع) من Toolbar (شريط الأدوات).
- إنشاء المقاطع البرمجية بنفس الطريقة.
- تطبيق المقطع البرمجي الأول على بعض العقود الحاوية.
- تطبيق المقطع البرمجي الثاني على بقية العقود الحاوية.
- التأكد من احتواء جميع عقود الحاوية على أحد هذين المقطعين البرمجيين.
- عند الانتهاء من إعداد المقاطع البرمجية، الضغط على زر Run IoT Simulation (تشغيل محاكاة إنترنت الأشياء) من شريط الأدوات لبدء المحاكاة.
- رسم تخطيطي لمحاكاة الشبكة يوضح:
- عقد متعددة تمثل مواد قابلة للتلف (consumables) ومواد طويلة الأمد (nonconsumables) تحمل أرقام IOT2 إلى IOT9.
- نطاقات دائرية تشير إلى مناطق التغطية أو الاتصال.
- خطوط منقطة تصل بين العقد، تمثل مسارات أو اتصالات.
- عرضان متميزان للمحاكاة (واحد فوق الآخر) يوضحان حركة أو حالة العناصر.
```
نقاط مهمة
- الخطوة النهائية بعد برمجة جميع العقود الحاوية هي تشغيل المحاكاة بالضغط على الزر المخصص.
- يوضح الشكل المرافق (8.28) حالة المحاكاة، حيث تظهر العقد (أجهزة الاستشعار/الحاويات) واتصالاتها وحالة البطارية والمخزن المؤقت للمفتش (IOT1).
📋 المحتوى المنظم
📖 محتوى تعليمي مفصّل
نوع: محتوى تعليمي
نوع: محتوى تعليمي
نوع: محتوى تعليمي
🔍 عناصر مرئية
شكل 8.28 : تشغيل المحاكاة
A network simulation diagram showing interconnected nodes representing devices and consumables. Two distinct simulation states are depicted, one above the other, illustrating the movement or status of these elements. Roads are indicated by dotted lines with nodes at intervals. Circular shaded areas represent communication or detection ranges. Labels include device types (e.g., 'inspector', 'nonconsumables', 'consumables'), device IDs (e.g., 'IOT1', 'IOT5'), and status indicators (e.g., '[0]', 'DO NOT PICK', 'PICK', 'Battery: 100', 'Buffer: 0102400').