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

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

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

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

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

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

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

📝 ملخص الصفحة

📚 عرض الرسائل من خلال عميل MQTTX

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

MQTTX: عميل برمجي يستخدم لاختبار واستقبال الرسائل المنشورة عبر بروتوكول 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}

```

نقاط مهمة

  • بعد تنفيذ كود بايثون ونشر الرسائل، تظهر الرسائل المستلمة في واجهة عميل MQTTX.
  • كل رسالة تحتوي على:
- الموضوع (Topic): `waste/drops`

- مستوى جودة الخدمة (QoS): `0`

- الحمولة (Payload): بيانات بتنسيق JSON تشمل الطابع الزمني، عدد مرات إسقاط القمامة، وحالة امتلاء الحاوية.

  • مثال على البيانات في الحمولة: `{"timestamp":"2022-10-03 11:14:54", "garbage_drops":9, "can_filled":false}`

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

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

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

عرض الرسائل من خلال عميل MQTTX

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

Viewing Messages through the MQTTX Client

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

بعد تنفيذ المقاطع البرمجية في البايثون، وبدء نشر الرسائل، سيتم استقبالها كما يظهر أدناه.

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

Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:14:54", "garbage_drops":9, "can_filled":false} 2022-10-31 16:14:07:018

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

MQTTX File Edit View Window Help Connections New Collection desktop_connection Plaintext + New Subscription waste/drops QoS: 0 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:13:34", "garbage_drops":8, "can_filled":false} 2022-10-31 16:13:58:659 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:14:54", "garbage_drops":9, "can_filled":false} 2022-10-31 16:14:07:018 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:15:13", "garbage_drops":10, "can_filled":false} 2022-10-31 16:14:15:614 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:16:54", "garbage_drops":11, "can_filled":false} 2022-10-31 16:14:23:512 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:17:23", "garbage_drops":12, "can_filled":true} 2022-10-31 16:14:30:715 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:17:42", "garbage_drops":1, "can_filled":false} 2022-10-31 16:14:53:909 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:19:29", "garbage_drops":2, "can_filled":false} 2022-10-31 16:15:04:544 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:21:51", "garbage_drops":3, "can_filled":false} 2022-10-31 16:15:11:919 Payload: JSON QoS: 0 Retain Meta Topic

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

شكل 7.20: عرض الرسائل من خلال عميل MQTTX

نوع: METADATA

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

نوع: METADATA

288

🔍 عناصر مرئية

MQTTX Client Interface

Screenshot of the MQTTX client application showing connections, subscriptions, and message payloads. Includes a left-hand navigation panel with icons and a main content area displaying message logs.

A specific MQTT message payload highlighted with a yellow background, showing the topic, QoS, and the JSON content.

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

عرض الرسائل من خلال عميل MQTTX Viewing Messages through the MQTTX Client بعد تنفيذ المقاطع البرمجية في البايثون، وبدء نشر الرسائل، سيتم استقبالها كما يظهر أدناه. Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:14:54", "garbage_drops":9, "can_filled":false} 2022-10-31 16:14:07:018 MQTTX File Edit View Window Help Connections New Collection desktop_connection Plaintext + New Subscription waste/drops QoS: 0 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:13:34", "garbage_drops":8, "can_filled":false} 2022-10-31 16:13:58:659 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:14:54", "garbage_drops":9, "can_filled":false} 2022-10-31 16:14:07:018 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:15:13", "garbage_drops":10, "can_filled":false} 2022-10-31 16:14:15:614 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:16:54", "garbage_drops":11, "can_filled":false} 2022-10-31 16:14:23:512 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:17:23", "garbage_drops":12, "can_filled":true} 2022-10-31 16:14:30:715 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:17:42", "garbage_drops":1, "can_filled":false} 2022-10-31 16:14:53:909 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:19:29", "garbage_drops":2, "can_filled":false} 2022-10-31 16:15:04:544 Topic: waste/drops QoS: 0 {"timestamp":"2022-10-03 11:21:51", "garbage_drops":3, "can_filled":false} 2022-10-31 16:15:11:919 Payload: JSON QoS: 0 Retain Meta Topic شكل 7.20: عرض الرسائل من خلال عميل MQTTX وزارة التعليم Ministry of Education 2025 - 1447 288 --- VISUAL CONTEXT --- **DIAGRAM**: MQTTX Client Interface Description: Screenshot of the MQTTX client application showing connections, subscriptions, and message payloads. Includes a left-hand navigation panel with icons and a main content area displaying message logs. Data: The interface displays a list of received MQTT messages. Each message includes a topic, QoS level, timestamp, and a JSON payload containing data like 'garbage_drops' and 'can_filled' status. Key Values: Timestamp format: YYYY-MM-DD HH:MM:SS, garbage_drops values range from 1 to 12, can_filled status is mostly false, with one instance of true Context: Illustrates how messages are received and displayed in an MQTT client, showing the structure of published data. **DIAGRAM**: Untitled Description: A specific MQTT message payload highlighted with a yellow background, showing the topic, QoS, and the JSON content. Data: Detailed view of a single MQTT message payload. Key Values: Timestamp: 2022-10-03 11:14:54, garbage_drops: 9, can_filled: false Context: Provides a close-up example of the data structure being transmitted via MQTT.

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

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

ما هو البروتوكول الذي يستخدمه عميل MQTTX لعرض الرسائل في مثال نظام مراقبة النفايات؟

  • أ) بروتوكول HTTP
  • ب) بروتوكول MQTT
  • ج) بروتوكول CoAP
  • د) بروتوكول WebSocket

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

الإجابة: بروتوكول MQTT

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

تلميح: يبدأ اسم البروتوكول والعميل بنفس الاختصار.

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

في سياق رسائل MQTT في مثال مراقبة النفايات، ماذا يشير حقل 'can_filled' عندما تكون قيمته 'true'؟

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

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

الإجابة: يشير إلى أن حاوية النفايات قد امتلأت

الشرح: 1. حقل 'can_filled' هو جزء من البيانات المرسلة من جهاز استشعار. 2. قيمته المنطقية إما true (صحيح) أو false (خطأ). 3. في سياق مراقبة النفايات، 'can' تشير عادة إلى حاوية القمامة. 4. عندما تكون القيمة true، فهذا يعني أن الحالة 'ممتلئ' قد تحققت، أي أن الحاوية امتلأت.

تلميح: الكلمة 'filled' تعني 'ممتلئ'، و 'can' قد تشير إلى حاوية.

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

ما هي جودة الخدمة (QoS) المستخدمة لجميع الرسائل في مثال MQTTX المعروض لمراقبة النفايات؟

  • أ) مستوى QoS 0
  • ب) مستوى QoS 1
  • ج) مستوى QoS 2
  • د) مستوى QoS 3

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

الإجابة: مستوى QoS 0

الشرح: 1. جودة الخدمة (QoS) في بروتوكول MQTT تحدد ضمانات التسليم. 2. في لقطة واجهة عميل MQTTX، بجانب كل رسالة مكتوب 'QoS: 0'. 3. هذا يعني أن جميع الرسائل المرسلة في هذا المثال تستخدم مستوى QoS 0 (أقصى مرة واحدة). 4. لذلك، الإجابة هي مستوى QoS 0.

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

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

في مثال نظام مراقبة النفايات عبر MQTT، ماذا تشير القيمة 'true' لحقل 'can_filled' في إحدى الرسائل؟

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

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

الإجابة: تشير إلى أن حاوية النفايات قد امتلأت.

الشرح: 1. حقل 'can_filled' هو جزء من البيانات المرسلة (Payload) بصيغة JSON. 2. قيمته المنطقية هي إما 'true' (صحيح) أو 'false' (خطأ). 3. في سياق مراقبة مستوى النفايات، تشير 'true' إلى أن حالة الحاوية هي 'ممتلئة'. 4. هذا يسمح للنظام باتخاذ إجراء، مثل إرسال تنبيه للتفريغ.

تلميح: الحقل 'can_filled' هو قيمة منطقية (Boolean).

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

في سياق مراقبة نظام إدارة النفايات عبر عميل MQTTX، أي حقل في رسالة JSON المستلمة يمثل الحالة المنطقية (Boolean) التي تشير إلى امتلاء الحاوية من عدمه؟

  • أ) garbage_drops
  • ب) timestamp
  • ج) can_filled
  • د) QoS

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

الإجابة: can_filled

الشرح: 1. يتم استقبال البيانات في عميل MQTTX بتنسيق JSON. 2. تحتوي الرسالة على مفاتيح تمثل مستشعرات مختلفة. 3. الحقل 'can_filled' هو المسؤول عن تحديد حالة الامتلاء، حيث تظهر قيمته 'false' عندما لا تكون ممتلئة و 'true' عندما تمتلئ كما في السجلات المعروضة.

تلميح: ابحث عن الحقل الذي يحمل قيمًا منطقية مثل true أو false في نص الرسالة.

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

عند استقبال الرسائل في عميل MQTTX، ما العناصر الأساسية الثلاثة التي تُحدد هوية وطبيعة ومحتوى الرسالة المستلمة؟

  • أ) عنوان IP المرسل، ورقم المنفذ (Port)، ونوع المتصفح المستخدم.
  • ب) اسم المستخدم، وكلمة المرور المشفرة، وطريقة الاتصال (Connection).
  • ج) الموضوع (Topic)، ومستوى جودة الخدمة (QoS)، والحمولة (Payload).
  • د) سرعة النقل، وحجم البيانات بالبايت، وتاريخ انتهاء صلاحية الرسالة.

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

الإجابة: الموضوع (Topic)، ومستوى جودة الخدمة (QoS)، والحمولة (Payload).

الشرح: بناءً على واجهة عميل MQTTX، تشتمل كل رسالة مستلمة على: 1. الموضوع (Topic): مثل waste/drops، وهو المسار الذي نُشرت عليه الرسالة. 2. مستوى جودة الخدمة (QoS): مثل QoS: 0، ويحدد موثوقية النقل. 3. الحمولة (Payload): وهي البيانات الفعلية المرسلة، وغالباً ما تكون بتنسيق JSON.

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

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

في سياق تبادل البيانات عبر بروتوكول MQTT، ما هو التنسيق البرمجي (Format) المستخدم في "حمولة الرسالة" (Payload) لتمثيل البيانات المعقدة مثل القيم الرقمية والحالات المنطقية في عميل MQTTX؟

  • أ) تنسيق XML
  • ب) تنسيق HTML
  • ج) تنسيق JSON
  • د) تنسيق CSV

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

الإجابة: تنسيق JSON

الشرح: 1. تُعرف البيانات الفعلية المرسلة عبر بروتوكول MQTT باسم "الحمولة" (Payload). 2. يُعد تنسيق JSON المعيار الأكثر شيوعاً في إنترنت الأشياء لتبادل البيانات؛ لأنه خفيف الوزن وسهل القراءة برمجياً. 3. تظهر البيانات في عميل MQTTX منظمة في مفاتيح وقيم (مثل garbage_drops: 9) داخل أقواس متعرجة، وهو الهيكل المميز لـ JSON. 4. يدعم عميل MQTTX عرض هذه البيانات بوضوح عند اختيار نوع الحمولة JSON.

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

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