صفحة 342 - كتاب إنترنت الأشياء - الصف 11 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

📚 معلومات الصفحة

الكتاب: كتاب إنترنت الأشياء - الصف 11 - الفصل 1 | المادة: إنترنت الأشياء | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

📝 ملخص الصفحة

📚 إنشاء المقاطع البرمجية

المفاهيم الأساسية

المقاطع البرمجية (Scripts): كود برمجي يُنفذ مهام محددة في محاكاة نظام تخزين مصنع آلي باستخدام إنترنت الأشياء.

خريطة المفاهيم

```markmap

أدوات محاكاة إنترنت الأشياء

برنامج كاب كاربون (CupCarbon)

مشروع محاكاة: نظام تخزين مصنع آلي (تابع)

#### إنشاء المقاطع البرمجية

##### المكتبات والتهيئة

  • استيراد مكتبة `time`.
  • طباعة نص فارغ `node.print("")` لمسح النصوص السابقة.
##### برمجة حاويات المواد القابلة للتلف

  • بث رسالة تحتوي على:
- المحتويات: "CONSUMABLES".

- معرف الحاوية (ID) بعد تحويله إلى نص.

- فصل المعلومات بمسافة.

  • استخدام دالة `node.send()` للإرسال.
##### استقبال الأوامر والاستجابة

  • قراءة الرسالة الواردة `node.read()`.
  • إذا كانت الرسالة "1": طباعة "PICK" (الالتقاط).
  • إذا كانت الرسالة "2": طباعة "DO NOT PICK" (لا تلتقط).
  • السكون لمدة ثانية `time.sleep(1)`.
```

نقاط مهمة

  • برمجة النوعين المختلفين من الحاويات (في هذا المشروع) متطابقة.
  • يجب تحويل المعرف (ID) من عدد صحيح إلى نص قبل إرساله.
  • ترسل الحاوية رسالة واحدة فقط في كل مرة، تتضمن جزئيتين من المعلومات مفصولتين بمسافة.
  • تستجيب الحاوية للأوامر ("1" أو "2") بطباعة النص المناسب ثم الانتظار.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

نوع: محتوى تعليمي

إنشاء المقاطع البرمجية Creating the Scripts

نوع: محتوى تعليمي

ستلقي الآن نظرة على كافة المقاطع البرمجية التي ستستخدمها بدءاً من برمجة الحاويات. مع العلم بأن برمجة النوعين المختلفين من الحاويات ستكون متطابقة.

نوع: محتوى تعليمي

ابدأ بإضافة المكتبة اللازمة، وطباعة نص فارغ على العقدة لإزالة أي نصوص مطبوعة من عمليات التنفيذ السابقة.

نوع: محتوى تعليمي

import time node.print("")

نوع: محتوى تعليمي

ستقوم حاويات المواد القابلة للتلف ببث رسالة تتضمن محتوياتها ومعرفها ليتم استخدامها من قبل مركبة التفتيش لتصنيف كل حاوية. المعرف (ID) عدد صحيح، ويجب تحويل نوعه إلى متغير نصي قبل ربطه بالنص. توضع مسافة بين معلومات المحتويات والمعرف بحيث يمكن إرسال نص واحد فقط في آن واحد باستخدام دالة (send) للإرسال، ثم يتعين عليك إرسال جزئيتين من المعلومات يفصل بينهما بواسطة المسافة.

نوع: محتوى تعليمي

while node.loop(): node.send("CONSUMABLES " + str(node.id()))

نوع: محتوى تعليمي

ستُرسل إما "1" والتي تعني أنه يجب اختيارها، أو ستُرسل "2" والتي تعني أنه يجب ألا يتم ذلك. بدورها، ستطيع الحاوية النص الذاتي "PICK" (الالتقاط) أو "DO NOT PICK" (لا تلتقط)، ثم ستسكن لمدة ثانية واحدة.

نوع: محتوى تعليمي

message = node.read() if message == "1": node.print("PICK") elif message == "2": node.print("DO NOT PICK") time.sleep(1)

نوع: METADATA

وزارة التعليم Ministry of Education 2025 - 1447

نوع: METADATA

342

📄 النص الكامل للصفحة

إنشاء المقاطع البرمجية Creating the Scripts ستلقي الآن نظرة على كافة المقاطع البرمجية التي ستستخدمها بدءاً من برمجة الحاويات. مع العلم بأن برمجة النوعين المختلفين من الحاويات ستكون متطابقة. ابدأ بإضافة المكتبة اللازمة، وطباعة نص فارغ على العقدة لإزالة أي نصوص مطبوعة من عمليات التنفيذ السابقة. import time node.print("") ستقوم حاويات المواد القابلة للتلف ببث رسالة تتضمن محتوياتها ومعرفها ليتم استخدامها من قبل مركبة التفتيش لتصنيف كل حاوية. المعرف (ID) عدد صحيح، ويجب تحويل نوعه إلى متغير نصي قبل ربطه بالنص. توضع مسافة بين معلومات المحتويات والمعرف بحيث يمكن إرسال نص واحد فقط في آن واحد باستخدام دالة (send) للإرسال، ثم يتعين عليك إرسال جزئيتين من المعلومات يفصل بينهما بواسطة المسافة. while node.loop(): node.send("CONSUMABLES " + str(node.id())) ستُرسل إما "1" والتي تعني أنه يجب اختيارها، أو ستُرسل "2" والتي تعني أنه يجب ألا يتم ذلك. بدورها، ستطيع الحاوية النص الذاتي "PICK" (الالتقاط) أو "DO NOT PICK" (لا تلتقط)، ثم ستسكن لمدة ثانية واحدة. message = node.read() if message == "1": node.print("PICK") elif message == "2": node.print("DO NOT PICK") time.sleep(1) وزارة التعليم Ministry of Education 2025 - 1447 342

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 4 بطاقة لهذه الصفحة

في سياق برمجة حاويات إنترنت الأشياء، ما الغرض من استخدام دالة `node.send()` كما ورد في المثال البرمجي؟

  • أ) طباعة رسالة على شاشة الحاوية نفسها لعرض حالة التشغيل.
  • ب) استقبال الأوامر من مركبة التفتيش لتحديد الإجراء التالي.
  • ج) إرسال رسالة تتضمن محتويات الحاوية ومعرفها (ID) إلى عقدة أخرى (مثل مركبة التفتيش) لتصنيفها.
  • د) تشغيل محرك الحاوية لتحريكها نحو نقطة الالتقاط.

الإجابة الصحيحة: c

الإجابة: إرسال رسالة تتضمن محتويات الحاوية ومعرفها (ID) إلى عقدة أخرى (مثل مركبة التفتيش) لتصنيفها.

الشرح: 1. دالة `node.send()` تستخدم للتواصل بين العقد في شبكة إنترنت الأشياء. 2. في المثال، ترسل الحاوية نصاً يجمع بين نوع محتوياتها (CONSUMABLES) ومعرفها الرقمي بعد تحويله إلى نص. 3. هذا يسمح للجهة المستقبلة (مركبة التفتيش) بمعرفة هوية ومحتوى كل حاوية لاتخاذ قرار الالتقاط أو عدمه.

تلميح: تذكر أن الحاوية تحتاج إلى إبلاغ جهة أخرى بمعلوماتها لاتخاذ قرار.

التصنيف: مفهوم جوهري | المستوى: سهل

في الكود البرمجي المقدم، ما الشرط الذي يؤدي إلى طباعة الأمر "PICK" على عقدة الحاوية؟

  • أ) إذا كانت الرسالة المستقبلة عبر `node.read()` تساوي القيمة الرقمية 1.
  • ب) إذا كانت الرسالة المستقبلة عبر `node.read()` تساوي القيمة النصية "PICK".
  • ج) إذا كانت الرسالة المستقبلة عبر `node.read()` تساوي القيمة النصية "1".
  • د) بعد إرسال الحاوية لمعرفها مباشرة وقبل استقبال أي رد.

الإجابة الصحيحة: c

الإجابة: إذا كانت الرسالة المستقبلة عبر `node.read()` تساوي القيمة النصية "1".

الشرح: 1. تستخدم الحاوية دالة `node.read()` لقراءة الرسالة الواردة. 2. يتم تخزين هذه الرسالة في متغير اسمه `message`. 3. إذا كانت قيمة `message` مساوية تماماً للنص "1"، فإن الشرط `if message == "1":` يصبح صحيحاً. 4. عند تحقق الشرط، يتم تنفيذ الأمر `node.print("PICK")` لطباعة كلمة "PICK".

تلميح: انظر إلى بنية الشرط `if` في الكود. ما هي القيمة التي تتم مقارنتها؟

التصنيف: صيغة/خطوات | المستوى: سهل

ما الوظيفة الأساسية للتعليمة `time.sleep(1)` في نهاية المقطع البرمجي للحاوية؟

  • أ) تسريع معالجة الحاوية لجعلها تستجيب بشكل أسرع للأوامر.
  • ب) إيقاف تشغيل عقدة الحاوية تماماً لمدة ثانية لتوفير الطاقة.
  • ج) إيقاف تنفيذ برنامج الحاوية مؤقتاً لمدة ثانية واحدة قبل بدء الدورة التالية.
  • د) تحديث الوقت الحقيقي المخزن في ذاكرة الحاوية كل ثانية.

الإجابة الصحيحة: c

الإجابة: إيقاف تنفيذ برنامج الحاوية مؤقتاً لمدة ثانية واحدة قبل بدء الدورة التالية.

الشرح: 1. دالة `sleep()` من مكتبة `time` تستخدم لإيقاف التنفيذ مؤقتاً. 2. الرقم `1` الممرر لها يمثل مدة التوقف بالثواني. 3. في هذا السياق، بعد أن تطبع الحاوية "PICK" أو "DO NOT PICK"، تتوقف لمدة ثانية. 4. هذا يساعد في تنظيم توقيت العمليات ومنع ازدحام المعالجة أو الاتصال في الشبكة.

تلميح: كلمة `sleep` تعني نوم أو توقف. الرقم بين القوسين يمثل الزمن.

التصنيف: مفهوم جوهري | المستوى: متوسط

لماذا يتم تحويل معرف الحاوية (ID) من عدد صحيح إلى متغير نصي (`str`) قبل إرساله في المثال البرمجي؟

  • أ) لأن أجهزة الاستقبال لا تفهم سوى البيانات النصية.
  • ب) لأن دالة `node.send()` تتوقع إرسال بيانات من نوع نصي (String)، ولا يمكن ربط النص (`CONSUMABLES `) بالرقم مباشرة دون تحويله أولاً.
  • ج) لجعل معرف الحاوية أكثر أماناً ومنع اختراقه.
  • د) لأن القيم النصية تشغل مساحة ذاكرة أقل من القيم الرقمية.

الإجابة الصحيحة: b

الإجابة: لأن دالة `node.send()` تتوقع إرسال بيانات من نوع نصي (String)، ولا يمكن ربط النص (`CONSUMABLES `) بالرقم مباشرة دون تحويله أولاً.

الشرح: 1. معرف الحاوية `node.id()` يُرجع قيمة رقمية (عدد صحيح). 2. النص الثابت هو `"CONSUMABLES "`. 3. عملية الربط (`+`) بين نص ورقم مباشرة ستتسبب في خطأ لأن أنواع البيانات غير متوافقة. 4. دالة `str()` تحول العدد الصحيح إلى تمثيله النصي (مثل تحويل 5 إلى "5"). 5. بعد التحويل، يمكن ربط النصين (`"CONSUMABLES " + "5"`) للحصول على نص واحد لإرساله.

تلميح: فكر في أنواع البيانات (Data Types) وعملية الربط (`+`).

التصنيف: مفهوم جوهري | المستوى: متوسط