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

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

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

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

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

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

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

📝 ملخص الصفحة

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

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

وحدة المتحكم (Controller): العقدة المسؤولة عن استقبال ومعالجة الرسائل في شبكة المحاكاة.

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

```markmap

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

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

مشروع محاكاة: مراقبة الحريق والتحذيرات

#### إنشاء شبكة العقدة بوحدة التحكم الرئيسية والوسطي

#### تابع إضافة العقد الطرفية

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

##### منطق المحاكاة (العقد الطرفية)

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

##### المقطع البرمجي للعقد الوسطى

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

##### منطق وحدة التحكم (Controller)

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

  • while node.loop():
- if node.bufferSize() > 0:

- message = node.read()

- node.print(message)

- time.sleep(2)

- node.print("")

- time.sleep(0.01)

###### خطوات إنشاء المقطع البرمجي

  • اضغط على "بايثون" في شريط الأدوات.
  • اكتب الأوامر البرمجية في الحقل الفارغ.
  • اكتب "controller" في حقل اسم الملف.
  • اضغط على "حفظ".
  • أغلق نافذة محرر بايثون.
```

نقاط مهمة

  • يتم إنشاء برنامج وحدة التحكم باستخدام محرر بايثون المدمج في برنامج CupCarbon.
  • المقطع البرمجي النهائي يستخدم حلقة `while` للتحقق المستمر من وجود رسائل في المخزن المؤقت (`buffer`).
  • عند استقبال رسالة، يطبعها البرنامج ثم ينتظر ثانيتين قبل طباعة سطر فارغ.
  • يجب حفظ الملف باسم `controller` ليكون صالحًا للاستخدام.

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

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

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

الآن وبعد أن تعرفت على وظيفة المقاطع البرمجية، تابع عملك وقم بإنشائها.

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

الإنشاء البرنامج وتطبيقه على عقدة المتحكم:

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

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

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

< اضغط على بايثون في شريط الأدوات. 1 < اكتب أوامر بايثون البرمجية في الحقل الفارغ. 2 < اكتب controller (وحدة المتحكم) في حقل File name (اسم الملف). 3 < اضغط على Save (حفظ). 4 < أغلق نافذة محرر بايثون. 5

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

import time while node.loop(): if node.bufferSize() > 0: message = node.read() node.print(message) time.sleep(2) node.print("\"\"") time.sleep(0.01)

🔍 عناصر مرئية

CupCarbon IoT 5.0 [C:\CupCarbon Projects\Fire Surv

A software interface showing project details and network information.

Python Editor

A window for writing and editing Python code.

A block of Python code that imports the time module and defines a loop for processing messages.

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

الآن وبعد أن تعرفت على وظيفة المقاطع البرمجية، تابع عملك وقم بإنشائها. الإنشاء البرنامج وتطبيقه على عقدة المتحكم: لإنشاء المقطع البرمجي: < اضغط على بايثون في شريط الأدوات. 1 < اكتب أوامر بايثون البرمجية في الحقل الفارغ. 2 < اكتب controller (وحدة المتحكم) في حقل File name (اسم الملف). 3 < اضغط على Save (حفظ). 4 < أغلق نافذة محرر بايثون. 5 import time while node.loop(): if node.bufferSize() > 0: message = node.read() node.print(message) time.sleep(2) node.print("\"\"") time.sleep(0.01) --- VISUAL CONTEXT --- **DIAGRAM**: CupCarbon IoT 5.0 [C:\CupCarbon Projects\Fire Surv Description: A software interface showing project details and network information. Table Structure: Headers: Network information | Devices & Objects | Device Parameters | Radio Parameters | Marker Parameters Rows: Row 1: 1 Context: Shows the interface for managing IoT projects, including network and device parameters. **DIAGRAM**: Python Editor Description: A window for writing and editing Python code. Table Structure: Headers: File name | Script List Rows: Row 1: controller | loop | send | delay | Transmitter | Receiver | Publisher | Subscriber Context: Represents the Python code editor where the program for the controller is written. **CODE_SNIPPET**: Untitled Description: A block of Python code that imports the time module and defines a loop for processing messages. Data: The code initializes a loop that checks for buffer size, reads messages, prints them, and includes time delays. Context: This is the core Python script for the controller, demonstrating basic message handling and timing.

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

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

في الكود البرمجي للمتحكم، ما الشرط الذي يجب تحققه لقراءة رسالة من العقدة؟

  • أ) أن يكون اسم العقدة هو 'controller'.
  • ب) أن يكون حجم المخزن المؤقت (buffer) أكبر من الصفر (`node.bufferSize() > 0`).
  • ج) أن تمر فترة زمنية قدرها ثانيتين منذ آخر قراءة.
  • د) أن تكون العقدة في وضع الإرسال وليس الاستقبال.

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

الإجابة: أن يكون حجم المخزن المؤقت (buffer) أكبر من الصفر (`node.bufferSize() > 0`).

الشرح: يتم التحقق من وجود رسائل واردة للعقدة عن طريق الدالة `node.bufferSize()` التي تُرجع حجم البيانات في المخزن المؤقت. إذا كان الحجم أكبر من الصفر، فهذا يعني وجود رسالة واحدة على الأقل يمكن قراءتها ومعالجتها.

تلميح: يتعلق الشرط بوجود بيانات في منطقة تخزين مؤقتة.

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

ما الوظيفة التي يؤديها سطر `time.sleep(2)` في الكود البرمجي المعطى؟

  • أ) يُسرع من عملية معالجة الرسائل بمقدار الضعف.
  • ب) يؤدي إلى إيقاف تنفيذ البرنامج (تجميد العقدة) لمدة ثانيتين.
  • ج) يُعيد ضبط ساعة النظام الداخلية للعقدة.
  • د) يُحذف الرسائل القديمة من المخزن المؤقت بعد ثانيتين.

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

الإجابة: يؤدي إلى إيقاف تنفيذ البرنامج (تجميد العقدة) لمدة ثانيتين.

الشرح: الدالة `time.sleep(عدد_الثواني)` هي دالة في مكتبة time في بايثون. عندما تُستدعى بالقيمة 2، فإنها توقف تنفيذ البرنامج (الخيط الحالي) بالكامل لمدة ثانيتين قبل متابعة تنفيذ السطر التالي.

تلميح: تتعلق الوظيفة بإدارة التوقيت وإدخال فترات انتظار.

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

ما هي الخطوات الأساسية لإنشاء مقطع برمجي في بيئة CupCarbon IoT 5.0؟

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

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

الإجابة: الضغط على بايثون في شريط الأدوات، ثم كتابة الأوامر البرمجية، ثم كتابة اسم الملف (مثل controller)، ثم حفظ الملف، ثم إغلاق نافذة المحرر.

الشرح: 1. الضغط على خيار Python في شريط الأدوات لفتح المحرر. 2. كتابة كود البرنامج في الحقل المخصص. 3. إدخال اسم للملف (مثل controller) في حقل File name. 4. الضغط على زر Save لحفظ الملف. 5. إغلاق نافذة محرر بايثون.

تلميح: تتضمن العملية استخدام محرر النصوص البرمجية وتحديد اسم للملف قبل حفظه.

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

ما هو الغرض الأساسي من استخدام حلقة `while node.loop():` في كود المتحكم في إنترنت الأشياء؟

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

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

الإجابة: لتنفيذ مجموعة من الأوامر بشكل متكرر ومستمر طالما أن العقدة (node) في حالة تشغيل.

الشرح: تستخدم حلقة while مع الشرط node.loop() لإنشاء برنامج يعمل بشكل مستمر. طالما تُرجع الدالة loop() القيمة True، ستستمر الحلقة في تنفيذ الأوامر داخلها، مما يسمح للعقدة بمعالجة الرسائل الواردة باستمرار.

تلميح: هذه البنية البرمجية تسمح بالاستمرارية والتكرار في معالجة البيانات.

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