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

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

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

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

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

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

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

📝 ملخص الصفحة

📚 اختبار الوسيط (Testing the Broker)

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

EMQX: وسيط MQTT عام لاختبار وتطوير تطبيقات MQTT.

MQTTX: عميل مكتبي لاختبار نشر واشتراك الرسائل.

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

```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.

```

نقاط مهمة

  • يتم استخدام EMQX كوسيط عام لاختبار تطبيقات MQTT دون الحاجة لبنية تحتية خاصة.
  • يتم استخدام عميل MQTTX للتحقق من نشر الرسائل قبل تنفيذ كود بايثون.
  • يتم الاشتراك في موضوع "waste/drops" لاستقبال الرسائل المنشورة من برنامج بايثون عبر الوسيط.
  • الهدف من الاختبار هو التأكد من أن الرسائل تُنشر وتُوزع بشكل صحيح عبر الوسيط.

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

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

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

اختبار الوسيط Testing the Broker

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

تُعد EMQX وسيط MQTT عام لاختبار وتطوير تطبيقات MQTT. تساعد EMQX في تطوير النماذج الأولية لتطبيقات إنترنت الأشياء دون الحاجة إلى وضع البنى التحتية وتطوير الوسيط. ستستخدم عميل MQTTX client للتحقق من نشر الرسائل، ثم ستنشئ مقطعًا برمجيًا آخر في البايثون يستقبل الرسائل المنشورة، ويُنشئ تقارير عن الحاوية، ويحلل البيانات الموجودة في تلك التقارير. بعد تحميل مخطط StandardFirmata إلى الأردوينو، نفذ تعليمات البايثون وحرك لوحة التجارب لتفعيل مستشعر الإمالة. في كل مرة يُمكن بها المستشعر، ستزداد النفايات والذي يشير إلى عدد المرات التي تم بها فتح الحاوية افتراضيًا لوضع القمامة. وعند تفعيل مستشعر الإمالة مع تغطية مستشعر الإضاءة، سينشر البرنامج رسالة مفادها أن الحاوية ممتلئة، ويعيد ضبط عداد النفايات. ستقوم في الدرس التالي بتحليل البيانات بناءً على الرسائل المنشورة. لاختبار نشر رسائلك بصورة صحيحة، ستستخدم العميل المكتبي MQTTX Agent قبل تنفيذ مقاطع البايثون البرمجية. ستستخدم عميل MQTTX للاشتراك في موضوع "waste/drops"، سينتظر العميل الآن استلام الرسائل التي تنشر من خلال برنامج البايثون وتوزع من خلال وسيط EMQX العام.

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

للاستخدام MQTTX للاشتراك في موضوع محدد

نوع: QUESTION_ACTIVITY

للاستخدام MQTTX للاشتراك في موضوع محدد

نوع: FIGURE_REFERENCE

شكل 7.19: استخدام MQTTX للاشتراك في موضوع محدد

نوع: METADATA

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

🔍 عناصر مرئية

MQTTX Connections Tab

A screenshot of the MQTTX application interface, showing the 'Connections' tab. A green dot indicates an active connection named 'desktop_connection'. To the right, a 'New Collection' tab and a 'desktop_connection' tab are visible. Below the 'desktop_connection' tab, a 'New Subscription' button is highlighted with a blue circle labeled '1', indicating the first step of the process.

New Subscription Dialog

A screenshot of the 'New Subscription' dialog box within the MQTTX application. The dialog has a required 'Topic' input field where 'waste/drops' is typed, highlighted by a blue circle labeled '2'. Below this, there are fields for 'QoS', 'Color', 'Alias', 'Subscription Identifier', 'No Local flag' (with true/false radio buttons), 'Retain as Published flag' (with true/false radio buttons), and 'Retain Handling' (with a 'Select' dropdown). At the bottom right, a 'Confirm' button is visible, highlighted by a blue circle labeled '3', indicating the final step of confirming the subscription. A 'Cancel' button is also present next to 'Confirm'.

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

اختبار الوسيط Testing the Broker تُعد EMQX وسيط MQTT عام لاختبار وتطوير تطبيقات MQTT. تساعد EMQX في تطوير النماذج الأولية لتطبيقات إنترنت الأشياء دون الحاجة إلى وضع البنى التحتية وتطوير الوسيط. ستستخدم عميل MQTTX client للتحقق من نشر الرسائل، ثم ستنشئ مقطعًا برمجيًا آخر في البايثون يستقبل الرسائل المنشورة، ويُنشئ تقارير عن الحاوية، ويحلل البيانات الموجودة في تلك التقارير. بعد تحميل مخطط StandardFirmata إلى الأردوينو، نفذ تعليمات البايثون وحرك لوحة التجارب لتفعيل مستشعر الإمالة. في كل مرة يُمكن بها المستشعر، ستزداد النفايات والذي يشير إلى عدد المرات التي تم بها فتح الحاوية افتراضيًا لوضع القمامة. وعند تفعيل مستشعر الإمالة مع تغطية مستشعر الإضاءة، سينشر البرنامج رسالة مفادها أن الحاوية ممتلئة، ويعيد ضبط عداد النفايات. ستقوم في الدرس التالي بتحليل البيانات بناءً على الرسائل المنشورة. لاختبار نشر رسائلك بصورة صحيحة، ستستخدم العميل المكتبي MQTTX Agent قبل تنفيذ مقاطع البايثون البرمجية. ستستخدم عميل MQTTX للاشتراك في موضوع "waste/drops"، سينتظر العميل الآن استلام الرسائل التي تنشر من خلال برنامج البايثون وتوزع من خلال وسيط EMQX العام. للاستخدام MQTTX للاشتراك في موضوع محدد للاستخدام MQTTX للاشتراك في موضوع محدد 1. في قائمة Connections (اتصالات) في تبويبة desktop_connection (سطح المكتب)، اضغط على زر New Subscription (اشتراك جديد). 2. في مربع نص Topic (الموضوع)، اكتب "waste/drops". 3. اضغط على زر Confirm (تأكيد). شكل 7.19: استخدام MQTTX للاشتراك في موضوع محدد وزارة التعليم 287 Ministry of Education 2025 - 1447 --- VISUAL CONTEXT --- **FIGURE**: MQTTX Connections Tab Description: A screenshot of the MQTTX application interface, showing the 'Connections' tab. A green dot indicates an active connection named 'desktop_connection'. To the right, a 'New Collection' tab and a 'desktop_connection' tab are visible. Below the 'desktop_connection' tab, a 'New Subscription' button is highlighted with a blue circle labeled '1', indicating the first step of the process. Context: Illustrates the initial step of creating a new subscription in the MQTTX client by clicking the 'New Subscription' button. **FIGURE**: New Subscription Dialog Description: A screenshot of the 'New Subscription' dialog box within the MQTTX application. The dialog has a required 'Topic' input field where 'waste/drops' is typed, highlighted by a blue circle labeled '2'. Below this, there are fields for 'QoS', 'Color', 'Alias', 'Subscription Identifier', 'No Local flag' (with true/false radio buttons), 'Retain as Published flag' (with true/false radio buttons), and 'Retain Handling' (with a 'Select' dropdown). At the bottom right, a 'Confirm' button is visible, highlighted by a blue circle labeled '3', indicating the final step of confirming the subscription. A 'Cancel' button is also present next to 'Confirm'. Context: Shows the process of entering a topic ('waste/drops') for a new subscription and confirming it in the MQTTX client.

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

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

ما هو الموضوع (Topic) الذي يجب الاشتراك فيه لمراقبة رسائل 'إسقاط النفايات' في مشروع الحاوية الذكية كما ورد في النص؟

  • أ) "waste/full"
  • ب) "container/tilt"
  • ج) "waste/drops"
  • د) "sensor/light"

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

الإجابة: "waste/drops"

الشرح: ١. في أنظمة MQTT، يتم تنظيم الرسائل تحت مواضيع (Topics) هرمية. ٢. يحدد الموضوع نوع البيانات أو الحدث الذي تحمله الرسالة. ٣. في هذا المشروع، تم تخصيص الموضوع 'waste/drops' لنشر الرسائل المتعلقة بكل مرة يتم فيها إسقاط نفايات (فتح الحاوية).

تلميح: ابحث عن الكلمة المفتاحية المستخدمة لتمييز هذا النوع من الأحداث في نظام النشر والاشتراك.

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

ما هو الغرض الأساسي من استخدام وسيط MQTT مثل EMQX في تطوير تطبيقات إنترنت الأشياء؟

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

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

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

الشرح: ١. وسيط MQTT مثل EMQX يوفر بنية وسيطة جاهزة. ٢. يسمح للمطورين بالتركيز على منطق التطبيق واختباره. ٣. يلغي الحاجة إلى بناء وتطوير وسيط خاص من الصفر، مما يوفر الوقت والجهد.

تلميح: فكر في الميزة التي يوفرها الوسيط الجاهز للمطورين.

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

في مشروع مراقبة الحاوية الذكية، ماذا يحدث عندما يتم تفعيل مستشعر الإمالة مع تغطية مستشعر الإضاءة؟

  • أ) يزداد عداد النفايات فقط.
  • ب) ينشر البرنامج رسالة تفيد بأن الحاوية فارغة.
  • ج) ينشر البرنامج رسالة مفادها أن الحاوية ممتلئة، ويعيد ضبط عداد النفايات.
  • د) يتوقف البرنامج عن العمل تمامًا.

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

الإجابة: ينشر البرنامج رسالة مفادها أن الحاوية ممتلئة، ويعيد ضبط عداد النفايات.

الشرح: ١. الشرط المنطقي هو: (مستشعر الإمالة مفعل) AND (مستشعر الإضاءة مغطى). ٢. هذا الشرط يحاكي حالة الحاوية الممتلئة والمقلوبة للتخلص من محتوياتها. ٣. عند تحقق الشرط، ينفذ البرنامج إجراءين: نشر رسالة 'ممتلئة' وإعادة ضبط العداد.

تلميح: تذكر أن الشرط يجمع بين حدثين: إمالة الحاوية وغياب الضوء.

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

ما هي الخطوة الأولى لاستخدام عميل MQTTX للاشتراك في موضوع محدد مثل 'waste/drops'؟

  • أ) إعادة تشغيل تطبيق MQTTX بالكامل.
  • ب) كتابة كود بايثون لاستقبال الرسائل.
  • ج) في قائمة Connections (اتصالات) في تبويبة desktop_connection، الضغط على زر New Subscription (اشتراك جديد).
  • د) تغيير إعدادات خادم الوسيط EMQX.

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

الإجابة: في قائمة Connections (اتصالات) في تبويبة desktop_connection، الضغط على زر New Subscription (اشتراك جديد).

الشرح: ١. يجب أن يكون العميل متصلاً بخادم الوسيط (مثل EMQX) عبر اتصال محدد (مثل desktop_connection). ٢. داخل نافذة أو تبويب ذلك الاتصال، توجد قائمة أو زر لإنشاء اشتراك جديد. ٣. الضغط على 'New Subscription' يفتح نافذة لإدخال تفاصيل الاشتراك، بما في ذلك اسم الموضوع.

تلميح: ركز على الإجراء الأولي في واجهة العميل بعد فتح الاتصال المناسب.

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

ما الهدف الرئيسي من استخدام وسيط MQTT مثل EMQX في تطوير تطبيقات إنترنت الأشياء؟

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

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

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

الشرح: 1. وسيط MQTT مثل EMQX يوفر بنية وسيط جاهزة. 2. هذا يسمح للمطورين بالتركيز على تطوير التطبيق نفسه. 3. يوفر الوقت والجهد المبذول في بناء البنية التحتية من الصفر. 4. الهدف: تسريع تطوير النماذج الأولية.

تلميح: فكر في الميزة التي يوفرها الوسيط الجاهز للمطورين.

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

ما الدور الذي يقوم به عميل MQTTX في سياق اختبار تطبيق حاوية النفايات الذكية؟

  • أ) برمجة لوحة الأردوينو وتحميل مخطط StandardFirmata عليها.
  • ب) تحليل البيانات الموجودة في تقارير الحاوية وإنشاء رسوم بيانية.
  • ج) الاشتراك في موضوع محدد (مثل 'waste/drops') لاستقبال ومراقبة الرسائل المنشورة من خلال برنامج البايثون.
  • د) تثبيت نظام التشغيل وتكوين الخوادم للوسيط EMQX.

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

الإجابة: الاشتراك في موضوع محدد (مثل 'waste/drops') لاستقبال ومراقبة الرسائل المنشورة من خلال برنامج البايثون.

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

تلميح: ما هي الخطوة التي تسبق تنفيذ مقاطع البايثون البرمجية لفحص الاتصال؟

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

ما الشرط الذي يؤدي إلى نشر رسالة مفادها أن 'الحاوية ممتلئة' في مشروع حاوية النفايات الذكية؟

  • أ) تفعيل مستشعر الإمالة فقط.
  • ب) تغطية مستشعر الإضاءة فقط.
  • ج) تفعيل مستشعر الإمالة مع تغطية مستشعر الإضاءة.
  • د) وصول عداد النفايات إلى قيمة صفر.

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

الإجابة: تفعيل مستشعر الإمالة مع تغطية مستشعر الإضاءة.

الشرح: 1. الشرط الأول: تفعيل مستشعر الإمالة (إمالة الحاوية). 2. الشرط الثاني: تغطية مستشعر الإضاءة (عدم وصول ضوء، مما يشير إلى أن الحاوية مغلقة أو ممتلئة). 3. عند تحقق الشرطين معاً، ينشر البرنامج رسالة 'الحاوية ممتلئة'. 4. يقوم البرنامج أيضاً بإعادة ضبط عداد النفايات.

تلميح: يجب أن يحدث شرطان معاً لإرسال هذه الرسالة المحددة.

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

ما الدور الذي يلعبه عميل MQTTX في سير العمل الموضح للتحقق من نشر الرسائل؟

  • أ) برمجة وحدة الأردوينو مباشرة.
  • ب) تحليل البيانات المخزنة في قواعد البيانات.
  • ج) يستخدم للاشتراك في موضوع معين والانتظار لاستلام الرسائل المنشورة من خلال برنامج البايثون والموزعة عبر الوسيط، للتحقق من صحة النشر.
  • د) استبدال وسيط EMQX في بيئة الإنتاج.

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

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

الشرح: ١. يعمل برنامج البايثون كناشر (Publisher) يرسل رسائل إلى الوسيط (Broker). ٢. وسيط EMQX يقوم بتوزيع هذه الرسائل على جميع المشتركين (Subscribers) في الموضوع ذاته. ٣. عميل MQTTX هنا يعمل كمشترك اختباري، يؤكد وصول الرسائل بشكل صحيح قبل الانتقال لمرحلة تحليل البيانات.

تلميح: فكر في أداة المراقبة والاختبار التي تتيح رؤية الرسائل أثناء انتقالها.

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

ما الخطوة الأولى لاستخدام MQTTX للاشتراك في موضوع محدد مثل 'waste/drops'؟

  • أ) إعادة تشغيل خادم وسيط EMQX.
  • ب) كتابة مقطع برمجي في البايثون لاستقبال الرسائل.
  • ج) في قائمة Connections (اتصالات) في تبويبة desktop_connection، الضغط على زر New Subscription (اشتراك جديد).
  • د) تغيير إعدادات جودة الخدمة (QoS) في إعدادات التطبيق العامة.

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

الإجابة: في قائمة Connections (اتصالات) في تبويبة desktop_connection، الضغط على زر New Subscription (اشتراك جديد).

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

تلميح: يبدأ الإجراء من واجهة العميل الرئيسية ضمن قسم الاتصالات.

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