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

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

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

الدرس: تمـرينـات

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

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

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

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

📝 ملخص الصفحة

📚 تمارين تطبيقية (بايثون و JSON)

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

ملف JSON: ملف يحتفظ بالبيانات (مذكور في التمرين 1).

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

```markmap

تمارين تطبيقية (بايثون و JSON) - صفحة 304

التمرين 1

المطلوب:

#### إنشاء مخطط يوضح العلاقة بين:

##### ملفات البايثون

##### ملف JSON المحتفظ بالبيانات

العنصر المرئي المساعد:

#### شبكة (Grid) فارغة لرسم المخطط المطلوب

التمرين 2

المطلوب:

#### إنشاء ملف بلغة البايثون يقوم بـ:

##### الاتصال بثلاثة موضوعات (Topics)

##### كتابة معالج حدث on_connect

###### لطباعة معلومات التكوين

###### لطباعة الموضوعات المشترك فيها العميل

###### إلى الواجهة الطرفية (Terminal)

```

نقاط مهمة

  • الصفحة تحتوي على قسمين رئيسيين: عنوان "تمـرينـات" وتمرينين تطبيقيين.
  • التمرين الأول يركز على التمثيل البصري للعلاقة بين ملفات بايثون وملف JSON.
  • التمرين الثاني يركز على البرمجة باستخدام بايثون للاتصال بموضوعات وطباعة معلومات التكوين.
  • يوجد عنصر مرئي (شبكة إحداثيات) مرتبط بالتمرين الأول لمساعدة الطالب على رسم المخطط المطلوب.

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

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

تمـرينـات

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

تمـرينـات

1

نوع: QUESTION_ACTIVITY

قم بإنشاء مخطط يوضح العلاقة بين ملفي البايثون وملف JSON المحتفظ بالبيانات.

2

نوع: QUESTION_ACTIVITY

قم بإنشاء ملف بلغة البايثون يتصل بثلاثة موضوعات ويكتب معالج أحداث on_connect لطباعة معلومات التكوين والموضوعات التي اشترك فيها العميل إلى الواجهة الطرفية.Terminal

نوع: METADATA

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

نوع: METADATA

304

🔍 عناصر مرئية

A blank grid with numerous fine horizontal and vertical lines, suggesting a coordinate plane for plotting data or relationships.

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

--- SECTION: تمـرينـات --- تمـرينـات --- SECTION: 1 --- قم بإنشاء مخطط يوضح العلاقة بين ملفي البايثون وملف JSON المحتفظ بالبيانات. --- SECTION: 2 --- قم بإنشاء ملف بلغة البايثون يتصل بثلاثة موضوعات ويكتب معالج أحداث on_connect لطباعة معلومات التكوين والموضوعات التي اشترك فيها العميل إلى الواجهة الطرفية.Terminal وزارة التعليم Ministry of Education 2025 - 1447 304 --- VISUAL CONTEXT --- **GRAPH**: Untitled Description: A blank grid with numerous fine horizontal and vertical lines, suggesting a coordinate plane for plotting data or relationships. X-axis: Unknown Y-axis: Unknown Data: Blank grid, no data points plotted. Context: This blank grid is provided for the user to create a diagram illustrating the relationship between Python files and a JSON data file, as requested in Question 1.

✅ حلول أسئلة الكتاب الرسمية

عدد الأسئلة: 2

سؤال 1: قم بإنشاء مخطط يوضح العلاقة بين ملفي البايثون وملف JSON المحتفظ بالبيانات.

الإجابة: س1: المخطط: ملف بايثون 1 (تجميع) ← ملف JSON (تخزين) ← ملف بايثون 2 (تحليل) Python_1.py → data.json → Python_2.py

خطوات الحل:

  1. **الشرح:** لنفهم هذا السؤال. الفكرة هنا هي توضيح كيف تتعامل ملفات بايثون مع ملفات JSON لتخزين البيانات واسترجاعها. في البرمجة، غالباً ما نستخدم ملفات JSON كوسيط لتخزين البيانات بشكل منظم يمكن قراءته بواسطة برامج مختلفة. في هذا السيناريو، لدينا ملف بايثون أول (مثل Python_1.py) يقوم بمهمة تجميع أو معالجة البيانات. بعد ذلك، يكتب هذه البيانات في ملف JSON (مثل data.json) لحفظها. أخيراً، ملف بايثون ثانٍ (مثل Python_2.py) يقوم بقراءة البيانات من ملف JSON هذا لتحليلها أو استخدامها في عمليات أخرى. إذن العلاقة هي تدفق للبيانات من ملف بايثون إلى ملف تخزين (JSON)، ثم إلى ملف بايثون آخر. لذلك الإجابة هي: **ملف بايثون 1 (تجميع) ← ملف JSON (تخزين) ← ملف بايثون 2 (تحليل)**

سؤال 2: قُم بإنشاء ملف بلغة البايثون يتصل بثلاثة موضوعات ويكتب معالج أحداث on_connect لطباعة معلومات التكوين والموضوعات التي اشترك فيها العميل إلى الواجهة الطرفية Terminal.

الإجابة: س2: ينبغي أن يحتوي الملف على: (1) معلومات التكوين (Broker, Port, ClientID). (2) قائمة الموضوعات (Topics). (3) دالة on_connect لطباعة التكوين والاشتراك. (4) الاتصال بالوسيط وتشغيل الحلقة (Loop).

خطوات الحل:

  1. **الخطوة 1 (المفهوم):** نتذكر أن في برمجة الاتصال بالوسائط (مثل MQTT)، نستخدم مكتبات مثل paho-mqtt في بايثون. دالة on_connect هي دالة تُستدعى تلقائياً عند نجاح الاتصال بالوسيط (البروكر).
  2. **الخطوة 2 (التطبيق):** بتطبيق هذا على السؤال، لإنشاء الملف، نبدأ باستيراد المكتبة اللازمة، ثم نحدد معلومات التكوين: عنوان البروكر (Broker)، المنفذ (Port)، ومعرف العميل (ClientID). بعد ذلك، نحدد قائمة الموضوعات (Topics) التي نريد الاشتراك فيها. نكتب دالة on_connect التي تقوم بطباعة رسالة تأكيد الاتصال وعرض معلومات التكوين والموضوعات المشترك فيها. أخيراً، ننشئ عميلاً، نضبط دالة on_connect، نتصل بالبروكر، ونبدأ حلقة الاتصال (Loop) للاستمرار في الاستماع للرسائل.
  3. **الخطوة 3 (النتيجة):** لذلك الإجابة هي: **ينبغي أن يحتوي الملف على: (1) معلومات التكوين (Broker, Port, ClientID)، (2) قائمة الموضوعات (Topics)، (3) دالة on_connect لطباعة التكوين والاشتراك، (4) الاتصال بالوسيط وتشغيل الحلقة (Loop).**

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

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

في سياق تخزين البيانات واسترجاعها بين تطبيقات بايثون، ما هو الدور الرئيسي لملف JSON؟

  • أ) ملف تنفيذي لتشغيل برامج بايثون.
  • ب) ملف وسيط لتخزين البيانات بشكل منظم يمكن قراءته من قبل برامج مختلفة.
  • ج) ملف لتخزين مكتبات بايثون الخارجية.
  • د) ملف لتوثيق كود المصدر (Documentation).

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

الإجابة: ملف وسيط لتخزين البيانات بشكل منظم يمكن قراءته من قبل برامج مختلفة.

الشرح: 1. ملفات JSON تُستخدم كوسيط في تدفق البيانات. 2. تسمح لملف بايثون واحد (مثل Python_1.py) بكتابة البيانات فيها بعد تجميعها. 3. تسمح لملف بايثون آخر (مثل Python_2.py) بقراءة هذه البيانات وتحليلها. 4. النتيجة: JSON يعمل كطبقة تخزين منظمة تربط بين عمليتي التجميع والتحليل.

تلميح: فكر في وظيفة الملف الذي يربط بين برنامجين.

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

ما هي المكونات الأساسية التي يجب أن يحتويها ملف بايثون للاتصال بوسيط MQTT وطباعة معلومات التكوين عند نجاح الاتصال؟

  • أ) معلومات التكوين (Broker, Port) ودالة on_message لمعالجة الرسائل الواردة فقط.
  • ب) قائمة الموضوعات (Topics) وأوامر الطباعة إلى ملف نصي بدلاً من Terminal.
  • ج) معلومات التكوين (Broker, Port, ClientID)، قائمة الموضوعات (Topics)، دالة on_connect للطباعة والاشتراك، وأوامر الاتصال وتشغيل الحلقة.
  • د) مكتبة الرسومات (Matplotlib) لرسم مخطط الاتصال والموضوعات.

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

الإجابة: معلومات التكوين (Broker, Port, ClientID)، قائمة الموضوعات (Topics)، دالة on_connect للطباعة والاشتراك، وأوامر الاتصال وتشغيل الحلقة.

الشرح: 1. استيراد مكتبة paho-mqtt. 2. تعريف معلومات التكوين: عنوان البروكر والمنفذ ومعرف العميل. 3. تعريف قائمة الموضوعات المراد الاشتراك فيها. 4. كتابة دالة on_connect التي تطبع رسالة تأكيد وتفاصيل التكوين والموضوعات. 5. إنشاء عميل MQTT، تعيين دالة on_connect، ثم الاتصال بالبروكر وبدء حلقة الاستماع.

تلميح: تذكر خطوات إنشاء عميل MQTT والاستجابة لحدث الاتصال الناجح.

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

في برمجة تطبيقات إنترنت الأشياء باستخدام MQTT، ما هي الوظيفة الأساسية لدالة `on_connect`؟

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

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

الإجابة: دالة تُستدعى تلقائياً عند نجاح الاتصال بالوسيط (البروكر) لتنفيذ إجراءات مثل طباعة تأكيد الاتصال والاشتراك في الموضوعات.

الشرح: 1. دالة on_connect هي دالة رد اتصال (Callback). 2. يتم تعريفها من قبل المبرمج. 3. تستدعيها مكتبة MQTT تلقائياً عند إتمام الاتصال الناجح بالبروكر. 4. تُستخدم عادةً لتنفيذ إجراءات أولية مثل: طباعة رسالة تأكيد، عرض تفاصيل التكوين، والاشتراك في قائمة من الموضوعات.

تلميح: فكر في الحدث (Event) الذي تستجيب له هذه الدالة.

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