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

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

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

الدرس: إنشاء المقطع البرمجي

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

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

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

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

📝 ملخص الصفحة

📚 إنشاء المقطع البرمجي (لبرمجة مركبة التفتيش)

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

لا تحتوي هذه الصفحة على تعريفات جديدة للمصطلحات.

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

```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)`.
##### برمجة مركبة التفتيش

###### تهيئة وإدارة البطارية

  • `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()`.
  • الرد على الحاوية المرسلة:
- إذا كان المحتوى "CONSUMABLES": إرسال النص "1".

- إذا كان المحتوى "NONCONSUMABLES": إرسال النص "2".

  • `time.sleep(0.2)`: السكون لمدة 200 مللي ثانية لتحقيق استجابة أفضل.
###### المقطع البرمجي النهائي

  • يدمج المقطع الكود الخاص بإدارة البطارية واكتشاف الشحن ومعالجة الرسائل في حلقة `while` رئيسية.
  • يتم وضع كود الرد على الرسائل (`if/elif`) داخل الحلقة الرئيسية بعد قراءة كل رسالة.
###### خطوات حفظ المقطع البرمجي

  • فتح محرر بايثون (Python Editor).
  • كتابة التعليمات البرمجية في الحقل النصي.
  • حفظ الملف باسم `inspector.py`.
  • إغلاق نافذة المحرر.
```

نقاط مهمة

  • هذه الصفحة تركز على الخطوات العملية لحفظ المقطع البرمجي الذي تم إنشاؤه لمركبة التفتيش.
  • اسم الملف الذي يجب حفظه هو `inspector.py`.
  • المقطع البرمجي النهائي يدمج إدارة البطارية واكتشاف الشحن والرد على رسائل الحاويات في حلقة واحدة مستمرة (`while node.loop():`).

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

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

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

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

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

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

< اضغط على Python (بايثون) من شريط الأدوات. < اكتب التعليمات البرمجية في الحقل النصي. < في حقل File name (اسم الملف)، اكتب inspector.py < اضغط على Save (حفظ). < أغلق نافذة محرر بايثون النصي.

Python Editor

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

Python Editor

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

import time node.battery.setEMax (100.0) node.battery.init() while node.loop (): node.battery.consume (1.0) if node.isSensorDetecting (): node.battery.init () for n in range (node.bufferSize ()): recvMsg = node.read () splitMsg = recvMsg.split () if splitMsg [0] == "CONSUMABLES": node.send ("1", int (splitMsg [1])) elif splitMsg [0] == "NONCONSUMABLES": node.send ("2", int (splitMsg [1])) time.sleep (0.2)

نوع: FIGURE_REFERENCE

شكل 8.26: إنشاء المقطع البرمجي

نوع: METADATA

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

نوع: METADATA

346

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

--- SECTION: إنشاء المقطع البرمجي --- إنشاء المقطع البرمجي < اضغط على Python (بايثون) من شريط الأدوات. < اكتب التعليمات البرمجية في الحقل النصي. < في حقل File name (اسم الملف)، اكتب inspector.py < اضغط على Save (حفظ). < أغلق نافذة محرر بايثون النصي. --- SECTION: Python Editor --- Python Editor import time node.battery.setEMax (100.0) node.battery.init() while node.loop (): node.battery.consume (1.0) if node.isSensorDetecting (): node.battery.init () for n in range (node.bufferSize ()): recvMsg = node.read () splitMsg = recvMsg.split () if splitMsg [0] == "CONSUMABLES": node.send ("1", int (splitMsg [1])) elif splitMsg [0] == "NONCONSUMABLES": node.send ("2", int (splitMsg [1])) time.sleep (0.2) شكل 8.26: إنشاء المقطع البرمجي وزارة التعليم 2025 - 1447 346

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

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

في الكود البرمجي، ماذا يحدث عندما تستقبل العقدة رسالة تبدأ بكلمة 'CONSUMABLES'؟

  • أ) تستهلك العقدة 1.0 وحدة من طاقة البطارية.
  • ب) ترسل العقدة الرقم '1' إلى جميع العقد في الشبكة.
  • ج) ترسل العقدة الرقم '1' إلى المرسل الأصلي للرسالة.
  • د) تتجاهل العقدة الرسالة تماماً.

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

الإجابة: ترسل العقدة الرقم '1' إلى المرسل الأصلي للرسالة.

الشرح: يقوم الكود بفصل الرسالة الواردة إلى كلمات. إذا كانت الكلمة الأولى هي 'CONSUMABLES'، فإنه يستخرج الرقم الموجود في الكلمة الثانية (باستخدام `int(splitMsg[1])`) ويرسل الرقم '1' إلى عنوان ذلك الرقم (المُعرِّف).

تلميح: انظر إلى الأمر `node.send` داخل الشرط الذي يتحقق من الكلمة الأولى في الرسالة.

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

ما الخطوة الأولى في إنشاء مقطع برمجي جديد في بيئة المحاكاة باستخدام لغة بايثون؟

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

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

الإجابة: الضغط على Python (بايثون) من شريط الأدوات.

الشرح: يبدأ إنشاء المقطع البرمجي باختيار لغة البرمجة المناسبة، وهي بايثون في هذا السياق، من شريط الأدوات الرئيسي في بيئة التطوير.

تلميح: تتعلق الخطوة باختيار لغة البرمجة من الأدوات المتاحة.

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

ما اسم الملف الذي يجب حفظ المقطع البرمجي به وفقاً للخطوات المذكورة؟

  • أ) main.py
  • ب) sensor.py
  • ج) program.py
  • د) inspector.py

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

الإجابة: inspector.py

الشرح: يجب تحديد اسم للملف البرمجي عند حفظه. وفقاً للتعليمات، يجب كتابة 'inspector.py' في حقل اسم الملف، حيث يشير '.py' إلى أن الملف مكتوب بلغة بايثون.

تلميح: يجب أن ينتهي اسم الملف بامتداد يدل على لغة البرمجة.

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

ما الغرض من الأمر `node.battery.init()` في الكود البرمجي المقدم؟

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

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

الإجابة: تهيئة أو إعادة شحن بطارية العقدة (Node).

الشرح: يستخدم الأمر `node.battery.init()` لتهيئة حالة بطارية العقدة أو إعادة تعيينها إلى حالتها الأولية (شحن كامل)، وهو ما يحدث عند بدء التشغيل وعند اكتشاف المستشعر.

تلميح: يرتبط الأمر `init` بالبدء أو الإعداد الأولي.

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