المقطع البرمجي النهائي (consumples.py) - كتاب إنترنت الأشياء - الصف 11 - الفصل 1 - المملكة العربية السعودية

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

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

الدرس: المقطع البرمجي النهائي (consumples.py)

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

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

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

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

📝 ملخص الصفحة

📚 البرمجة في نظام تخزين المصنع الآلي

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

المواد القابلة للتلف (CONSUMABLES): مواد تُستهلك أو تُستخدم خلال عملية التصنيع.

المواد طويلة الأمد (NONCONSUMABLES): مواد تدوم ولا تُستهلك خلال عملية التصنيع.

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

```markmap

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نقاط مهمة

  • الاختلاف الوحيد بين برمجة المواد القابلة للتلف والمواد طويلة الأمد هو النص المرسل في الرسالة: `"CONSUMABLES"` مقابل `"NONCONSUMABLES"`.
  • يظل باقي المنطق البرمجي (استقبال الأوامر والاستجابة) متطابقاً تماماً في كلا النوعين.

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

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

المقطع البرمجي النهائي (consumples.py)

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

Complete Code (consumables.py)

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

import time node.print("*") while node.loop(): node.send("CONSUMABLES " + str(node.id())) message = node.read() if message == "1": node.print("PICK") elif message == "2": node.print("DO NOT PICK") time.sleep(1)

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

وجه الاختلاف بين البرمجة الخاصة بالمواد القابلة للتلف والمواد طويلة الأمد هو النص المرسل، ففي المقطع البرمجي الخاص بالمواد القابلة للتلف إلى النص من "CONSUMABLES" (قابلة للتلف) إلى "NONCONSUMABLES" (طويلة الأمد).

المقطع البرمجي النهائي (nonconsumables.py)

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

Complete Code (nonconsumables.py)

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

import time node.print("*") while node.loop(): node.send("NONCONSUMABLES " + str(node.id())) message = node.read() if message == "1": node.print("PICK") elif message == "2": node.print("DO NOT PICK") time.sleep(1)

نوع: NON_EDUCATIONAL

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

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

--- SECTION: المقطع البرمجي النهائي (consumples.py) --- Complete Code (consumables.py) import time node.print("*") while node.loop(): node.send("CONSUMABLES " + str(node.id())) message = node.read() if message == "1": node.print("PICK") elif message == "2": node.print("DO NOT PICK") time.sleep(1) وجه الاختلاف بين البرمجة الخاصة بالمواد القابلة للتلف والمواد طويلة الأمد هو النص المرسل، ففي المقطع البرمجي الخاص بالمواد القابلة للتلف إلى النص من "CONSUMABLES" (قابلة للتلف) إلى "NONCONSUMABLES" (طويلة الأمد). --- SECTION: المقطع البرمجي النهائي (nonconsumables.py) --- Complete Code (nonconsumables.py) import time node.print("*") while node.loop(): node.send("NONCONSUMABLES " + str(node.id())) message = node.read() if message == "1": node.print("PICK") elif message == "2": node.print("DO NOT PICK") time.sleep(1) 343 وزارة التعليم Ministry of Education 2025-1447

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

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

ما الفرق الرئيسي في المقطع البرمجي بين التعامل مع المواد القابلة للتلف (Consumables) والمواد طويلة الأمد (Non-consumables) في نظام إنترنت الأشياء؟

  • أ) اسم الملف البرمجي، حيث يكون consumables.py للمواد القابلة للتلف و nonconsumables.py للمواد طويلة الأمد.
  • ب) الرسالة المستلمة من node.read()، حيث تكون "1" للمواد القابلة للتلف و"2" للمواد طويلة الأمد.
  • ج) النص المرسل في الأمر node.send()، حيث يُرسل "CONSUMABLES" للمواد القابلة للتلف و"NONCONSUMABLES" للمواد طويلة الأمد.
  • د) الرسالة المطبوعة بواسطة node.print()، حيث تطبع "PICK" للمواد القابلة للتلف و"DO NOT PICK" للمواد طويلة الأمد.

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

الإجابة: النص المرسل في الأمر node.send()، حيث يُرسل "CONSUMABLES" للمواد القابلة للتلف و"NONCONSUMABLES" للمواد طويلة الأمد.

الشرح: 1. في مقطع المواد القابلة للتلف (consumables.py)، الأمر هو: node.send("CONSUMABLES " + str(node.id())). 2. في مقطع المواد طويلة الأمد (nonconsumables.py)، الأمر هو: node.send("NONCONSUMABLES " + str(node.id())). 3. الفرق الوحيد هو النص المفتاحي "CONSUMABLES" مقابل "NONCONSUMABLES"، مما يميز نوع المادة للمستشعر أو الخادم.

تلميح: انظر إلى سطر الأمر node.send() في كلا المقطعين البرمجيين.

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

في سياق برمجة عقدة إنترنت الأشياء الموضحة، ما هو الهدف من استخدام الأمر node.send("CONSUMABLES " + str(node.id()))؟

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

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

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

الشرح: 1. الأمر node.send() يستخدم لإرسال بيانات من العقدة. 2. النص "CONSUMABLES" يحدد فئة أو نوع المادة التي تراقبها العقدة (مواد قابلة للتلف). 3. str(node.id()) يُرجع معرف العقدة الفريد ويضيفه إلى الرسالة. 4. الهدف هو تمكين النظام من التعرف على مصدر البيانات ونوعها لاتخاذ القرار المناسب (مثل PICK أو DO NOT PICK).

تلميح: يفصل الأمر بين نوع المادة ومعرف العقدة.

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

ما هي بنية التحكم الشرطية المستخدمة في المقطع البرمجي للاستجابة للرسالة المستلمة من node.read()؟

  • أ) بنية try-except للتعامل مع الأخطاء أثناء قراءة الرسالة.
  • ب) بنية for loop لتكرار عملية القراءة لعدد محدد من المرات.
  • ج) بنية if-elif للتحقق مما إذا كانت الرسالة تساوي "1" أو "2" واتخاذ إجراء طباعة بناءً عليها.
  • د) بنية while loop للاستمرار في القراءة حتى يتم استلام رسالة محددة.

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

الإجابة: بنية if-elif للتحقق مما إذا كانت الرسالة تساوي "1" أو "2" واتخاذ إجراء طباعة بناءً عليها.

الشرح: 1. يتم تخزين الرسالة المستلمة في المتغير message باستخدام message = node.read(). 2. تُستخدم جملة if للتحقق من الشرط الأول: if message == "1": فتُنفذ node.print("PICK"). 3. تُستخدم جملة elif للتحقق من الشرط البديل: elif message == "2": فتُنفذ node.print("DO NOT PICK"). 4. هذه البنية تسمح باتخاذ قرارين مختلفين بناءً على محتوى الرسالة.

تلميح: يتم فحص محتوى المتغير message.

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