الدرس الأول المدن الذكية وبروتوكول MQTT
انظر إلى بداية الدرس عن المدن الذكية. لو زاد عدد السكان في أي مدينة دون تخطيط مسبق، فإن شبكات الطرق والماء والصرف الصحي ستتجاوز طاقتها الاستيعابية القصوى. تسبب المدن حاليا ما يتراوح بين 60 إلى 80 بالمئة من استهلاك الطاقة العالمي وغازات الاحتباس الحراري، إضافة إلى هدر 20 بالمئة من المياه بسبب التسربات. لهذا السبب، أصبح استخدام تقنيات إنترنت الأشياء أولوية قصوى. انظر إلى مخطط هيكلية المدينة الذكية في الشكل 7.1، فهو مقسم إلى أربع طبقات أساسية تبدأ من طبقة الشارع، ثم طبقة المدينة، ثم طبقة مركز البيانات، وتنتهي بطبقة الخدمات التي تقدم التطبيقات للمستفيدين، حيث تنتقل البيانات متصاعدة من الأدنى للأعلى للمعالجة والتخزين.
تقوم فكرة المدن الذكية على ربط البنية التحتية والمرافق بتقنيات إنترنت الأشياء لمعالجة مشكلات التلوث واستهلاك الطاقة والازدحام المروري، من خلال هيكلة تتكون من أربع طبقات: طبقة الشارع، طبقة المدينة، طبقة مركز البيانات، وطبقة الخدمات. ولربط هذه الأجهزة بكفاءة في بيئة تتسم بانقطاع الاتصالات، يُستخدم بروتوكول MQTT الذي يعتمد على وسيط رسائل ونظام ناشر ومشترك يفصل الطرفين عن بعضهما زمنياً ومكانياً. فعلى سبيل المثال، يرسل مستشعر الحرارة والرطوبة قراءاته إلى وسيط الرسائل ليقوم الوسيط بتوصيلها لاحقاً للمشتركين مثل شاشات العرض المركزية دون الحاجة لابقاء الطرفين متصلين بالإنترنت في نفس اللحظة.
الفكرة الأساسية
تعتمد المدن الذكية على إعادة تصميم إدارة الموارد والطاقة والنفايات في التجمعات الحضرية الكبيرة باستخدام تقنيات إنترنت الأشياء لتخفيف الانبعاثات الكربونية وحل مشكلات الازدحام واستهلاك المياه والكهرباء. ولإدارة هذه الضخامة الهائلة من البيانات الصادرة عن المستشعرات، يُستخدم بروتوكول MQTT الذي ينظم نقل الرسائل بكفاءة عالية بين الأجهزة عبر وسيط رسائل يفصل بين المرسل والمستقبل.
الشرح
تنقسم هيكلية المدينة الذكية إلى أربع طبقات أساسية. تبدأ بـ طبقة الشارع التي تضم الأجهزة والمستشعرات الميدانية مثل المستشعرات المغناطيسية لركن المركبات، ومستشعرات الإضاءة، وكاميرات المراقبة، ومستشعرات جودة الهواء، والعدادات التي تسجل عدد المركبات. تنتقل هذه البيانات إلى طبقة المدينة التي تمثل طبقة النقل المباشر عبر موجهات الشبكة ومحولات الإنترنت، ويجب أن تتسم هذه الطبقة بالمرونة لضمان وصول الحزم رغم أي فقدان في البيانات أو تأخر زمني.
بعد ذلك تذهب البيانات إلى طبقة مركز البيانات حيث تتم معالجة الأرقام وتخزينها واستخراج الأنماط ودعم القرار، مثل إضافة مركبات نقل جماعي أو مزامنة إشارات المرور آلياً. وأخيراً تصل البيانات إلى طبقة الخدمات التي تعرض النتائج للمواطنين والسلطات، مثل توجيه الحافلات لتجنب الازدحام أو اختيار النقل العام بدلاً من السيارات الخاصة.
أما بروتوكول MQTT فهو يختصر عبارة بروتوكول نقل القياس عن بعد في قائمة انتظار الرسائل، وقد طُوِّر لربط الأعداد الكبيرة من المستشعرات من موقع مركزي منخفض التكلفة. يتكون نظام MQTT من ثلاثة عناصر: الناشر الذي يرسل البيانات، وخادم يسمى وسيط الرسائل يتلقى الاتصال ويدير الاشتراكات، والمشترك الذي يتلقى البيانات. يتيح هذا التصميم إمكانية تأخير المعلومات وتخزينها في حال فشل الشبكة، فلا يُطلب من الناشرين والمشتركين الاتصال بالإنترنت في آن واحد. ولضمان وصول البيانات، يوفر البروتوكول ثلاث درجات لجودة الخدمة QoS: المستوى صفر وهو توصيل غير مؤكد مرة واحدة على الأكثر دون إعادة محاولة، والمستوى واحد وهو إرسال الرسائل مرة واحدة على الأقل مع إمكانية التكرار، والمستوى اثنان وهو إرسال الرسالة مرة واحدة بالضبط دون فقدان أو تكرار على حساب تكلفة إضافية.
مثال محلول خطوة بخطوة
تخيل أن لديك مستشعراً لجودة الهواء في أحد الشوارع يسجل كمية الغازات. نريد إرسال هذه القراءة عبر بروتوكول MQTT:
- يقوم المستشعر بدور الناشر بنشر رسالة تحتوي على قيمة التلوث الحالية عبر الاتصال بوسيط الرسائل.
- يتلقى وسيط الرسائل (المخادم) رسالة المستشعر ويتحقق من قائمة المشتركين المسجلين مسبقاً لهذه البيانات.
- يوجه الوسيط الرسالة إلى المشتركين المهتمين، مثل نظام مراقبة البيئة في مركز البيانات الشاشة المركزية.
- إذا انقطع اتصال الإنترنت عن المستشعر أثناء الإرسال، يقوم وسيط الرسائل بتخزين المعلومات مؤقتاً لحين عودة الاتصال، مستفيداً من ميزة الفصل الزمني لبروتوكول MQTT، مما يمنع ضياع البيانات.
أخطاء شائعة
- الاعتقاد بأن طبقة الشارع تقوم بمعالجة البيانات وتحليلها؛ والصواب أن دورها يقتصر على جمع البيانات واختزالها وإرسالها فقط بينما تقع المعالجة في طبقة مركز البيانات.
- الظن بأن الناشر والمشترك في بروتوكول MQTT يجب أن يكونا متصلين بالشبكة في نفس اللحظة؛ والصواب أن وسيط الرسائل يسمح بفصل الطرفين وتخزين البيانات مؤقتاً.
- الخلط بين مستويات جودة الخدمة، واعتقاد أن المستوى صفر يضمن وصول البيانات؛ والصواب أنه مستوى غير مؤكد لا يضمن وصول الرسالة ولا يعيد إرسالها.
سؤالان للتدريب مع الإجابة
السؤال الأول: ما الوظيفة الأساسية لوسيط الرسائل في بروتوكول MQTT؟ الإجابة: تلقي الاتصال من شبكة الناشرين ووسائل التطبيق، وإدارة عمليات الاشتراك وإلغاء الاشتراك، وتقديم بيانات التطبيق للعملاء المشتركين.
السؤال الثاني: ما الفرق الجوهري بين مستوى جودة الخدمة 1 ومستوى جودة الخدمة 2 في بروتوكول MQTT؟ الإجابة: مستوى جودة الخدمة 1 يضمن إرسال الرسائل مرة واحدة على الأقل ولكن قد يسمح بتكرار وصولها، بينما مستوى جودة الخدمة 2 يضمن إرسال الرسالة مرة واحدة بالضبط دون السماح بفقدانها أو تكرارها.