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

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

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

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

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

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

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

📝 ملخص الصفحة

📚 إنشاء حل ذكي لإدارة النفايات

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

تحليل البيانات: العملية التي يتم فيها جمع البيانات من نظام ذكي (مثل حاوية النفايات) ثم وضع الخطط بناءً عليها.

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

```markmap

7. الرسائل في إنترنت الأشياء

تصميم وبرمجة جهاز ذكي (صفحة 273)

مشروع: إدارة النفايات الذكية

#### المشكلة: اكتظاظ سكاني يؤدي لتراكم النفايات

#### الحل: استخدام حاويات نفايات ذكية

##### ترسل تنبيه عند الامتلاء

##### تحلل البيانات لتحسين العملية

#### التنفيذ: نموذج أولي لحاوية ذكية

##### يحسب متوسط مرات الاستخدام للوصول للسعة الكاملة

##### يرسل رسالة إلى وسيط (MQTT) عند كل استخدام

##### يرسل رسالة عند الامتلاء إلى متحكم النظام

#### التقنيات المستخدمة

##### متحكم أردوينو (Arduino)

##### برمجة باستخدام بروتوكول Firmata ولغة بايثون

##### منصة MQTT (مثل EMQX) لتوزيع الرسائل

مكونات وأدوات المشروع (صفحة 274)

الترانزستور الضوئي (Phototransistor)

#### الوظيفة: كشف الضوء وتحويله لإشارات كهربائية

#### الرمز التخطيطي: رمز ترانزستور مع سهمين باتجاه القاعدة

#### المظهر الفعلي: جسم بلاستيكي صغير بثلاثة أطراف ونافذة شفافة

مستشعر الإمالة (Tilt Sensor)

#### الوظيفة: قياس درجة الميل بالنسبة للجاذبية

#### الرمز التخطيطي: دائرة تحتوي على دوائر صغيرة تمثل آلية الكرة أو الزئبق

#### المظهر الفعلي: مكون مستطيل أسود بثلاثة أطراف

النموذج الأولي باستخدام الأردوينو (صفحة 275)

آلية عمل النموذج

#### مستشعر الإمالة: يسجل حدث الفتح/الإمالة في كل مرة.

#### الترانزستور الضوئي: يعمل كمستشعر عند الوصول إلى حد معين (يعني أن الحاوية مليئة).

المكونات المطلوبة

#### لوحة أردوينو أونو R3

#### لوحة توصيل الدوائر الصغيرة (Breadboard)

#### ترانزستور ضوئي

#### مستشعر إمالة

#### مقاومتان (1 كيلو أوم)

الاتصال ببسيط EMXQ العام (صفحة 276)

خطوات التثبيت والاتصال

#### 1. تثبيت تطبيق MQTTX

##### زيارة موقع: https://mqttx.app/

##### تنزيل أحدث إصدار وتشغيل المثبت

#### 2. تكوين الاتصال بالوسيط (EMQX)

##### فتح تطبيق MQTTX وإنشاء اتصال جديد

##### إدخال بيانات الاتصال:

###### الاسم (Name): مثال: desktop_connection

###### المضيف (Host): mqtt://broker.emqx.io

###### المنفذ (Port): 1883

دائرة الأردوينو (صفحة 277)

تثبيت المكونات

#### 1. لوحة أردوينو أونو R3

#### 2. لوحة توصيل الدوائر الصغيرة (Breadboard)

#### 3. مستشعر الضوء (Phototransistor)

#### 4. مستشعر الإمالة بأربعة أطراف (4-pin Tilt Sensor)

#### 5. مقاومتان (Resistor)

توصيل المكونات (صفحة 278)

توصيل الترانزستور الضوئي

#### 1. الباعث (Emitter) → الطرف التناظري A0 (سلك أصفر)

#### 2. المقاومة: طرف مع الباعث، والطرف الآخر → العمود السالب للوحة

#### 3. 5V من الأردوينو → المقاومة الموجبة للوحة (سلك أحمر)

#### 4. GND من الأردوينو → العمود السالب للوحة (سلك أسود)

#### 5. المجمع (Collector) → العمود الموجب للوحة

توصيل مستشعر الإمالة

#### 1. المقاومة الثانية → الطرف الثاني للمستشعر

#### 2. الطرف الثاني للمستشعر → الطرف الرقمي 3 للأردوينو (سلك أحمر)

#### 3. الطرف الرابع للمستشعر → العمود الموجب للوحة (سلك أحمر)

#### 4. المقاومة: طرف → العمود السالب للوحة (سلك أسود)

الدائرة بشكلها النهائي (صفحة 279)

الشكل النهائي للدائرة

#### شكل 7.16: مخطط تخطيطي للدائرة الكاملة

##### يوضح لوحة أردوينو أونو متصلة بلوحة توصيل

##### يظهر المكونات: مقاومة، LED، ترانزستور

##### يظهر أسلاك التوصيل (أحمر، أصفر، أخضر، أسود، برتقالي)

#### شكل 7.17: صورة فعلية للدائرة

##### تمثل الشكل الحقيقي للدائرة عند بنائها

##### تظهر المكونات نفسها في الواقع

#### شكل 7.18: توصيل الأطراف بالمكونات

##### يوضح كيفية توصيل مكونات محددة بأطراف الأردوينو

##### يظهر مكونًا مربعًا أسود

##### يظهر مكونًا دائريًا موصولًا بالطرف D3

##### يظهر مكونًا دائريًا موصولًا بالطرف A0

برمجة الأردوينو (صفحة 280)

إعداد بيئة البرمجة

#### 1. تشغيل بروتوكول StandardFirmata على الأردوينو

#### 2. تثبيت حزمة paho-mqtt في بايثون

##### الأمر: pip install paho-mqtt

#### 3. إنشاء ملف بايثون جديد (mqtt_arduino.py)

#### 4. استيراد المكتبات المطلوبة

##### datetime: لإنشاء طوابع زمنية

##### time: للتحكم في سير البرنامج

##### json: للعمل مع كائنات JSON

##### pyfirmata: للتواصل مع الأردوينو

##### paho.mqtt.client: لإنشاء عميل MQTT

#### 5. تعريف متغيرات عميل MQTT

##### CLIENT_ID: معرف العميل (مثال: "PUBLISHER_01")

##### MQTT_BROKER: عنوان الوسيط (مثال: "broker.emqx.io")

##### TOPIC: اسم الموضوع (مثال: "waste/drops")

##### PORT: منفذ الخادم الافتراضي (1883)

##### FLAG_CONNECTED: متغير إشارة للاتصال

تهيئة الاتصال وبرمجة المتغيرات (صفحة 281)

تهيئة الاتصال بالأردوينو

#### استخدام مكتبة pyfirmata للاتصال عبر منفذ معين (مثل COM4)

#### تحديد أطراف المستشعرات:

##### مستشعر الإضاءة: الطرف التناظري A0

##### مستشعر الإمالة: الطرف الرقمي 3

إنشاء متغيرات المشروع

#### can_full: متغير منطقي (True/False) يحدد ما إذا كانت الحاوية ممتلئة.

#### garbage_drops: عداد لتتبع عدد مرات الاستخدام (الإمالة).

إنشاء دالة لإعادة التعيين

#### reset_can(): تعيد تعيين متغيري can_full و garbage_drops إلى القيم الافتراضية عند امتلاء الحاوية.

إنشاء رسالة JSON (صفحة 282)

خطوات إنشاء الدالة publish_message()

#### 1. إنشاء متغير timestamp بتنسيق الوقت (مثال: "%H:%M:%S")

#### 2. إنشاء كائن قاموس (Dictionary) يحتوي على:

##### timestamp

##### garbage_drops

##### can_full

#### 3. تحويل القاموس إلى كائن JSON باستخدام json.dumps()

#### 4. نشر الرسالة إلى الموضوع المشترك (مثال: "waste/drops") عبر client.publish()

#### 5. التعامل مع الأخطاء المحتملة أثناء النشر

الاتصال بـ MQTT (صفحة 282)

إنشاء دالة معالج الأحداث on_connect()

#### الوظيفة: إرسال رسالة تأكيد إلى الواجهة الطرفية (Terminal) حول نجاح الاتصال أو فشله.

#### الوسيط rc: يرسل من خلال مكتبة paho ليعرض حالة الاتصال.

##### إذا كان rc == 0: الاتصال ناجح.

##### إذا كان rc != 0: الاتصال فاشل.

البرنامج الرئيسي (صفحة 283)

تهيئة عميل MQTT والاشتراك

#### تهيئة عميل MQTT باستخدام معرف العميل (CLIENT_ID).

#### ربط معالج الأحداث on_connect.

#### الاتصال بالوسيط (MQTT_BROKER) على المنفذ المحدد (PORT).

#### الاشتراك في الموضوع المحدد (TOPIC).

التكرار الرئيسي للبرنامج

#### قراءة قيم المستشعرات (light_value, tilt_value) بشكل مستمر.

#### طباعة القيم المقروءة وعداد القمامة (garbage_drops).

#### زيادة العداد (garbage_drops) عند حدوث إمالة (tilt_value == True).

#### إذا حدثت إمالة وكانت الحاوية ممتلئة (light_value <= 0.200):

##### تعيين can_full = True.

##### نشر رسالة عبر publish_message().

##### إعادة تعيين الحاوية عبر reset_can().

##### نشر رسالة أخرى.

#### الانتظار لمدة ثانية (time.sleep(1)) قبل التكرار التالي.

البرنامج بشكله النهائي (صفحة 284)

الكود الكامل

#### استيراد المكتبات:

##### datetime, time, json, pyfirmata, paho.mqtt.client

#### تعريف متغيرات عميل MQTT:

##### CLIENT_ID, MQTT_BROKER, TOPIC, PORT, FLAG_CONNECTED

#### تهيئة الاتصال بالأردوينو:

##### تحديد منفذ الاتصال (مثل 'COM4')

##### بدء مكرر (Iterator) للوحة

#### تحديد أطراف المستشعرات:

##### light_sensor_pin: الطرف التناظري A0

##### tilt_sensor_pin: الطرف الرقمي 3

#### تعريف متغيرات المشروع:

##### can_full: حالة امتلاء الحاوية

##### garbage_drops: عداد مرات الاستخدام

#### تعريف دالة reset_can():

##### إعادة تعيين garbage_drops = 0

##### إعادة تعيين can_full = False

الكود البرمجي (صفحة 285)

دالة publish_message()

#### الوظيفة: إنشاء ونشر رسالة JSON إلى وسيط MQTT.

#### الخطوات:

##### إنشاء طابع زمني (timestamp) بتنسيق "YYYY-MM-DD HH:MM:SS".

##### إنشاء قاموس يحتوي على: timestamp, garbage_drops, can_full.

##### تحويل القاموس إلى سلسلة JSON.

##### محاولة نشر الرسالة إلى الموضوع (TOPIC) باستخدام client.publish().

##### التعامل مع الأخطاء أثناء النشر.

##### الانتظار لمدة ثانيتين (time.sleep(2)) وطباعة تأكيد الإرسال.

دالة on_connect()

#### الوظيفة: معالج حدث الاتصال بوسيط MQTT.

#### آلية العمل:

##### تستقبل معامل rc الذي يمثل رمز النتيجة.

##### إذا كان rc == 0: الاتصال ناجح، يتم تعيين FLAG_CONNECTED = True.

##### إذا كان rc != 0: الاتصال فاشل.

البرنامج الرئيسي (صفحة 286)

الحلقة الرئيسية (Main Loop)

#### تهيئة عميل MQTT والاشتراك

##### client = mq.Client(CLIENT_ID)

##### client.on_connect = on_connect

##### client.connect(MQTT_BROKER, PORT)

##### client.subscribe(TOPIC, 0)

#### التكرار المستمر (while True)

##### قراءة قيم المستشعرات:

###### light_value = light_sensor_pin.read()

###### tilt_value = tilt_sensor_pin.read()

##### طباعة القيم إذا كانت موجودة.

##### زيادة عداد القمامة (garbage_drops) عند حدوث إمالة (tilt_value == True).

##### التحقق من امتلاء الحاوية (light_value <= 0.200):

###### إذا كانت ممتلئة:

####### تعيين can_full = True.

####### نشر رسالة.

####### إعادة تعيين الحاوية (reset_can()).

##### نشر رسالة في كل تكرار.

##### الانتظار ثانية واحدة (time.sleep(1)).

اختبار الوسيط (صفحة 287)

الغرض من الاختبار

#### التحقق من نشر الرسائل بشكل صحيح قبل تنفيذ كود بايثون.

#### استخدام عميل MQTTX للاشتراك في موضوع واستقبال الرسائل.

خطوات استخدام MQTTX للاشتراك

#### 1. في تبويبة desktop_connection، اضغط على زر New Subscription.

#### 2. في مربع نص Topic، اكتب "waste/drops".

#### 3. اضغط على زر Confirm.

عرض الرسائل من خلال عميل MQTTX (صفحة 288)

نتيجة تنفيذ البرنامج

#### بعد تنفيذ مقاطع بايثون وبدء نشر الرسائل، يتم استقبالها في عميل MQTTX.

شكل واجهة عميل MQTTX

#### تحتوي على:

##### لوحة Connections مع اتصال desktop_connection.

##### زر New Subscription للاشتراك في مواضيع جديدة.

##### سجل الرسائل المستلمة.

مثال على الرسالة المستلمة

#### Topic: waste/drops

#### QoS: 0

#### Payload (JSON):

##### {"timestamp":"2022-10-03 11:14:54", "garbage_drops":9, "can_filled":false}

تمارين (صفحة 289)

تمرين 1: رسم مخطط

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

#### أداة المساعدة: شبكة تفصيلية (Grid) مرفقة للرسم.

تمرين 2: الوصف والمكونات

#### المطلوب: تقديم وصف للترانزستور الضوئي ومكونات مستشعر الإمالة وحالات استخدامها.

تمارين تطبيقية (صفحة 290)

تمرين 3: تحليل وسيط EMQX العام

#### المطلوب: تحليل ماهية وسيط EMQX العام ومدى مساهمته في تطوير تطبيقات النماذج الأولية لإنترنت الأشياء.

تمرين 4: تحديث معالج الحدث on_connect

#### المطلوب: تحديث معالج الحدث on_connect ليطبع معلومات التكوين إلى وحدة التحكم المقدمة إلى عميل MQTT.

تمرين 5: تحديث دالة publish_message

#### المطلوب: تحديث دالة publish_message لنشر رسالة زمنية تعرض التاريخ والوقت بأكملهما، وخاصية جديدة تحتوي على معرف العميل.

تمارين تطبيقية (صفحة 291)

تمرين 6: إنشاء برنامج نشر مخصص

#### المطلوب: إنشاء مقطع برمجي بلغة بايثون يتيح للمستخدم كتابة:

##### الموضوع الذي يريد الاشتراك به.

##### الرسالة التي يريد إرسالها.

#### الاختبار: استخدام العميل المكتبي MQTT X لاختبار البرنامج.

إدارة النفايات الذكية وتحليل البيانات (صفحة 292)

تحليل البيانات

#### جمع البيانات من النموذج الأولي

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

##### الهدف: وضع الخطط بناءً على البيانات المجمعة.

إنشاء برامج تحليل البيانات

#### ملف mqtt_receiver.py

##### الوظيفة: الاشتراك في موضوع MQTT وجمع الرسائل.

##### المخرجات: حفظ البيانات في ملف JSON.

#### ملف data_analysis.ipynb

##### الوظيفة: قراءة البيانات من ملف JSON وتحليلها.

##### العملية: يقرأ البيانات، يكتب النتائج، يجمع المعلومات.

تدفق البيانات في النظام

#### وسيط MQTT: نقطة تمرير الرسائل بين الحاوية وبرامج التحليل.

#### ملف JSON: وسيط تخزين للبيانات المجمعة قبل تحليلها.

```

نقاط مهمة

  • هذا الدرس هو استكمال للدرس السابق، حيث يتم الانتقال من مرحلة جمع البيانات إلى مرحلة تحليلها.
  • يتم إنشاء برنامجين: `mqtt_receiver.py` لجمع الرسائل وحفظها، و `data_analysis.ipynb` لقراءة البيانات المحفوظة وتحليلها.
  • تدفق البيانات: حاوية النفايات الذكية → وسيط MQTT → `mqtt_receiver.py` → ملف JSON → `data_analysis.ipynb`.

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

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

نوع: METADATA

الدرس الثالث

نوع: METADATA

إنشاء حل ذكي لإدارة النفايات

نوع: METADATA

إدارة النفايات الذكية وتحليل البيانات

نوع: METADATA

Smart Waste Management and Data Analysis

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

لقد قمت في الدرس السابق بإنشاء نموذج أولي ذكي لإدارة حاوية نفايات باستخدام جهاز تحكم أردوينو دقيق يراقب بيئته المحيطة، وينشرها كرسائل تحتوي على موضوع في MQTT. يجب أن يتم جمع البيانات ثم الخطط بناءً على هذه البيانات.

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

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

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

سيسمى هذان الملفان باسم data_analysis.ipynb و mqtt_receiver.py. سيتم كتابة البرنامج الأول للبيانات المحفوظة في ملف JSON، وسيقرأ البرنامج الثاني البيانات من ملف JSON ويقوم بتحليلها.

نوع: NON_EDUCATIONAL

رابط الدرس الرقمي www.ien.edu.sa

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

يقرأ

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

يكتب

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

يجمع

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

وسيط

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

MQTT

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

{json}

نوع: METADATA

شكل 7.21: تحليل بيانات مشروع النفايات الذكية

نوع: METADATA

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

نوع: METADATA

292

🔍 عناصر مرئية

شكل 7.21: تحليل بيانات مشروع النفايات الذكية

A diagram showing the flow of data in a smart waste management system. It depicts a laptop labeled 'data_analysis.ipynb' on the left, a central element labeled '{json}' with 'يقرأ', 'يكتب', 'يجمع' and 'وسيط MQTT' connected to it, and another laptop labeled 'mqtt_receiver.py' on the right. Arrows indicate data flow from the central element to the right laptop. A trash can filled with crumpled paper is shown on the right side of the page.

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

الدرس الثالث إنشاء حل ذكي لإدارة النفايات إدارة النفايات الذكية وتحليل البيانات Smart Waste Management and Data Analysis لقد قمت في الدرس السابق بإنشاء نموذج أولي ذكي لإدارة حاوية نفايات باستخدام جهاز تحكم أردوينو دقيق يراقب بيئته المحيطة، وينشرها كرسائل تحتوي على موضوع في MQTT. يجب أن يتم جمع البيانات ثم الخطط بناءً على هذه البيانات. ستقوم في هذا الدرس بإنشاء مقطع برمجي في البايثون يشترك في نفس الموضوع الخاص بمشروع إنشاء حل ذكي لإدارة النفايات. ستجمع هذه الرسائل في نفس الوقت، وفي كل مرة تمثل فيها سلسلة النفايات، سيتم نشرها كرسائل. سيتم جمع البيانات ثم الخطط بناءً على هذه البيانات. سيسمى هذان الملفان باسم data_analysis.ipynb و mqtt_receiver.py. سيتم كتابة البرنامج الأول للبيانات المحفوظة في ملف JSON، وسيقرأ البرنامج الثاني البيانات من ملف JSON ويقوم بتحليلها. رابط الدرس الرقمي www.ien.edu.sa يقرأ يكتب يجمع وسيط MQTT {json} شكل 7.21: تحليل بيانات مشروع النفايات الذكية وزارة التعليم 2025 - 1447 292 --- VISUAL CONTEXT --- **DIAGRAM**: شكل 7.21: تحليل بيانات مشروع النفايات الذكية Description: A diagram showing the flow of data in a smart waste management system. It depicts a laptop labeled 'data_analysis.ipynb' on the left, a central element labeled '{json}' with 'يقرأ', 'يكتب', 'يجمع' and 'وسيط MQTT' connected to it, and another laptop labeled 'mqtt_receiver.py' on the right. Arrows indicate data flow from the central element to the right laptop. A trash can filled with crumpled paper is shown on the right side of the page. Data: Illustrates the process of reading, writing, collecting, and processing data via MQTT, likely for waste management analysis. Context: Explains the workflow of a smart waste management system, showing how data is collected, processed, and analyzed using MQTT and Python scripts.

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

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

ما هو الهدف الرئيسي من المكون 'mqtt_receiver.py' في مشروع إدارة النفايات الذكية كما ورد في النص؟

  • أ) تحليل البيانات المحفوظة في ملف JSON وعرض الرسوم البيانية.
  • ب) التحكم المباشر في محرك حاوية النفايات وفتحها وإغلاقها.
  • ج) الاشتراك في موضوع MQTT وجمع الرسائل التي تمثل بيانات النفايات.
  • د) تخزين البيانات الأولية مباشرة في قاعدة بيانات علائقية (SQL).

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

الإجابة: الاشتراك في موضوع MQTT وجمع الرسائل التي تمثل بيانات النفايات.

الشرح: 1. يصف النص سير العمل في المشروع. 2. الملف 'mqtt_receiver.py' هو جزء من النظام. 3. وظيفته هي الاتصال بوسيط MQTT والاشتراك في الموضوع (Topic) المحدد. 4. يقوم بجمع الرسائل الواردة عبر هذا الوسيط، والتي تحتوي على بيانات مرسلة من حاوية النفايات الذكية.

تلميح: فكر في دور الملف الذي يتعامل مع وسيط الاتصال (MQTT) في سلسلة البيانات.

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

ما هو دور الملف 'data_analysis.ipynb' في سير العمل الموضح للبيانات؟

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

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

الإجابة: قراءة البيانات من ملف JSON وإجراء التحليل عليها.

الشرح: 1. يوضح النص والرسم التخطيطي (شكل 7.21) تدفق البيانات. 2. الملف 'data_analysis.ipynb' مذكور في الرسم. 3. الوظيفة المقابلة له في الرسم هي 'يقرأ'. 4. النص يذكر أن هذا البرنامج مكتوب للبيانات المحفوظة في ملف JSON ويقوم بقراءتها وتحليلها.

تلميح: انظر إلى اسم الملف والوظيفة المذكورة له في الرسم التخطيطي.

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

في سير العمل الموضح لتحليل بيانات النفايات الذكية، ما هي الوظيفة الأساسية للعنصر المركزي المسمى '{json}'؟

  • أ) تنفيذ خوارزميات التعلم الآلي للتنبؤ بامتلاء الحاويات.
  • ب) يكون وسيطاً لتخزين وتبادل البيانات بين مكونات النظام.
  • ج) عرض واجهة مستخدم رسومية لمراقبة حالة الحاويات.
  • د) ترجمة أوامر البرمجة من لغة Python إلى لغة C++ للأردوينو.

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

الإجابة: يكون وسيطاً لتخزين وتبادل البيانات بين مكونات النظام.

الشرح: 1. يظهر الرسم التخطيطي (شكل 7.21) عنصراً مركزياً مكتوباً عليه '{json}'. 2. مرتبطة بهذا العنصر الكلمات: 'يقرأ'، 'يكتب'، 'يجمع'، و'وسيط MQTT'. 3. هذا يشير إلى أن ملف JSON هذا يعمل كنقطة تجميع ووسيط (Middleware) للبيانات القادمة من MQTT قبل أن تتم قراءتها للتحليل.

تلميح: انظر إلى الكلمات المرتبطة بهذا العنصر في الرسم التخطيطي.

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