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

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

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

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

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

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

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

📝 ملخص الصفحة

📚 تمارين تطبيقية (تابع)

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

تمرين تطبيقي: نشاط برمجي يهدف إلى اختبار فهم الطالب وتطبيق مهاراته العملية في سياق مشروع إنترنت الأشياء باستخدام بروتوكول MQTT.

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

```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 لاختبار البرنامج.

```

نقاط مهمة

  • تحتوي الصفحة على تمرين تطبيقي برمجي واحد فقط (تمرين 6).
  • الهدف من التمرين هو تطبيق عملي لإنشاء برنامج نشر (Publisher) مخصص باستخدام لغة بايثون وبروتوكول MQTT.
  • يجب أن يسمح البرنامج للمستخدم بإدخال موضوع الرسالة ومحتواها يدويًا.
  • يتم اختبار وظيفة البرنامج باستخدام عميل MQTT المكتبي (MQTT X).

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

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

6

نوع: QUESTION_ACTIVITY

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

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

--- SECTION: 6 --- أنشئ مقطعًا برمجيًا بلغة البايثون يتيح للمستخدم كتابة الموضوع الذي يريد الاشتراك به، والرسالة التي يريد إرسالها من خلال وسيط EMQX العام. اختبر برنامجك باستخدام العميل المكتبي MQTT X.

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

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

سؤال 6: أنشئ مقطعًا برمجيًا بلغة البايثون يتيح للمستخدم كتابة الموضوع الذي يريد الاشتراك به، والرسالة التي يريد إرسالها ثم نشرها من خلال وسيط EMQX العام. اختبر برنامجك باستخدام العميل المكتبي MQTT X.

الإجابة: س6: برنامج بايثون يكون عمله كالتالي: - يستخدم مكتبة paho-mqtt للتعامل مع بروتوكول MQTT. - يحدد بيانات وسيط EMQX العام: Host = broker.emqx.io و Port = 1883 - يطلب من المستخدم إدخال: الموضوع (Topic) والرسالة (Message). - ينشئ عميل MQTT وعند نجاح الاتصال يشترك في الـ Topic. - عند وصول رسالة يعرضها، ثم يقوم بنشر رسالة المستخدم. طريقة الاختبار باستخدام MQTTX: 1) افتح MQTTX وأنشئ اتصالاً (Host: broker.emqx.io, Port: 1883). 2) نفّذ Subscribe على نفس الـ Topic المستخدم في البرنامج. 3) شغّل برنامج بايثون وأرسل الرسالة لتظهر في MQTTX. 4) انشر من MQTTX للتأكد من استقبال البرنامج للرسالة.

خطوات الحل:

  1. **الشرح:** لنفهم هذا السؤال. المطلوب هو كتابة برنامج بلغة بايثون يتعامل مع بروتوكول MQTT للتواصل مع وسيط عام. الفكرة هنا هي أن البرنامج سيكون له وظيفتان رئيسيتان: الأولى هي الاشتراك في موضوع معين لاستقبال الرسائل، والثانية هي نشر رسالة إلى نفس الموضوع. لتنفيذ هذا، نحتاج إلى مكتبة في بايثون تدعم بروتوكول MQTT. المكتبة الشائعة لهذا الغرض هي `paho-mqtt`. سيقوم البرنامج أولاً بتوصيل العميل بالوسيط العام المحدد (مثل broker.emqx.io على المنفذ 1883). ثم يطلب من المستخدم إدخال اسم الموضوع الذي يريد الاشتراك فيه والرسالة التي يريد إرسالها. بعد إنشاء الاتصال، سيشترك البرنامج في الموضوع المحدد. هذا يعني أنه سيستمع لأي رسائل تُنشر على هذا الموضوع. عند استقبال رسالة، سيعرضها البرنامج للمستخدم. بعد ذلك، سينشر البرنامج الرسالة التي أدخلها المستخدم على نفس الموضوع، مما يسمح لأي عميل آخر مشترك (مثل تطبيق MQTT X) برؤيتها. لاختبار البرنامج، يمكن استخدام تطبيق MQTT X كعميل منفصل. نقوم أولاً بتشغيل البرنامج واختيار موضوع معين. ثم في MQTT X، ننشئ اتصالاً بنفس الوسيط ونشترك في نفس الموضوع. عندما ننشر رسالة من البرنامج، ستظهر في MQTT X، والعكس صحيح عند النشر من MQTT X ستظهر الرسالة في نافذة البرنامج. هذا يؤكد أن البرنامج يعمل بشكل صحيح في استقبال وإرسال الرسائل. إذن، الإجابة هي: **كتابة برنامج بايثون باستخدام مكتبة paho-mqtt للاتصال بوسيط EMQX العام، والاشتراك في موضوع، ونشر رسالة، مع اختباره عبر MQTT X للتأكد من الوظيفة.**

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

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

ما الوظيفة الأساسية لمكتبة `paho-mqtt` في برنامج بايثون يتعامل مع بروتوكول MQTT؟

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

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

الإجابة: تسهيل الاتصال بوسيط MQTT وإدارة عمليات الاشتراك والنشر للرسائل.

الشرح: 1. مكتبة `paho-mqtt` هي مكتبة بايثون مخصصة للعمل مع بروتوكول MQTT. 2. وظيفتها الأساسية هي تبسيط عملية إنشاء عميل MQTT والاتصال بوسيط (Broker). 3. تدير المكتبة عمليات الاشتراك (Subscribe) في مواضيع محددة لاستقبال الرسائل. 4. كما تدير عملية نشر (Publish) الرسائل إلى مواضيع معينة على الوسيط.

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

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

ما الخطوة الأولى التي يجب أن يقوم بها برنامج بايثون للتواصل عبر بروتوكول MQTT باستخدام وسيط عام مثل EMQX؟

  • أ) طلب اسم المستخدم وكلمة المرور من المستخدم للمصادقة.
  • ب) إنشاء عميل MQTT والاتصال بالوسيط باستخدام عنوان المضيف والمنفذ (مثل broker.emqx.io على المنفذ 1883).
  • ج) نشر رسالة اختبارية مباشرة على الوسيط.
  • د) فتح اتصال مباشر مع جميع الأجهزة الأخرى على الشبكة.

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

الإجابة: إنشاء عميل MQTT والاتصال بالوسيط باستخدام عنوان المضيف والمنفذ (مثل broker.emqx.io على المنفذ 1883).

الشرح: 1. لبدء التواصل عبر MQTT، يجب أولاً تحديد وسيط الرسائل (Broker). 2. في حالة الوسيط العام EMQX، تكون بيانات الاتصال: Host = broker.emqx.io و Port = 1883. 3. يقوم البرنامج بإنشاء كائن عميل (Client) باستخدام مكتبة مثل paho-mqtt. 4. ثم يستخدم هذا العميل لإجراء الاتصال بالوسيط باستخدام البيانات المحددة.

تلميح: فكر في الأساسيات: أي اتصال يحتاج إلى تحديد الطرف الآخر (الخادم) أولاً.

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

في اختبار برنامج MQTT باستخدام عميل مثل MQTT X، ما الإجراء الذي يؤكد أن برنامجك يستقبل الرسائل بشكل صحيح؟

  • أ) إغلاق برنامج بايثون ورؤية إذا ما توقف اتصال MQTT X.
  • ب) تغيير موضوع الاشتراك في برنامج بايثون أثناء التشغيل.
  • ج) نشر رسالة من عميل MQTT X على نفس الموضوع (Topic) الذي اشترك فيه برنامجك، وظهور هذه الرسالة في نافذة برنامجك.
  • د) قياس سرعة الاتصال بين برنامج بايثون ووسيط EMQX.

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

الإجابة: نشر رسالة من عميل MQTT X على نفس الموضوع (Topic) الذي اشترك فيه برنامجك، وظهور هذه الرسالة في نافذة برنامجك.

الشرح: 1. بعد تشغيل برنامج بايثون واشتراكه في موضوع معين. 2. افتح عميل MQTT X واتصل بنفس الوسيط (broker.emqx.io). 3. في MQTT X، انشر (Publish) رسالة على نفس الموضوع الذي اشترك فيه برنامج بايثون. 4. إذا كان برنامجك يعمل بشكل صحيح، ستظهر الرسالة المنشورة من MQTT X في نافذة استقبال برنامج بايثون.

تلميح: الاختبار يتضمن طرفين: المرسل والمستقبل. تأكد من أن المستقبل يرى ما يرسله المرسل.

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

ما الدور الذي يلعبه الوسيط (Broker) في نظام اتصال يعتمد على بروتوكول MQTT؟

  • أ) تخزين جميع الرسائل بشكل دائم في قاعدة بيانات.
  • ب) تشفير جميع الرسائل قبل إعادة إرسالها.
  • ج) يتلقى الرسائل من الناشرين (Publishers) ويوزعها على المشتركين (Subscribers) المهتمين بموضوع الرسالة.
  • د) تحويل بروتوكول MQTT إلى بروتوكول HTTP للتواصل مع المتصفحات.

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

الإجابة: يتلقى الرسائل من الناشرين (Publishers) ويوزعها على المشتركين (Subscribers) المهتمين بموضوع الرسالة.

الشرح: 1. في نموذج اتصال MQTT، لا تتصل الأجهزة (العملاء) ببعضها مباشرة. 2. بدلاً من ذلك، يتصل كل عميل بوسيط مركزي (Broker). 3. يقوم العميل الراغب في الإرسال (الناشر) بإرسال رسالة إلى الوسيط على موضوع معين (Topic). 4. يقوم الوسيط بتلقي هذه الرسالة وإعادة توجيهها إلى جميع العملاء المشتركين (المشتركين) في نفس الموضوع.

تلميح: فكر في الوسيط كمركز توزيع أو محطة وسيطة.

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