إنترنت الأشياء والأجهزة المحمولة المؤتمتة | الوحدة الثامنة | الدرس الثالث

إنترنت الأشياء والأجهزة المحمولة المؤتمتة هو عنوان الدرس الثالث من الوحدة الثامنة التي تحمل اسم “محاكاة شبكة مستشعرات إنترنت الأشياء اللاسلكية” من مقرر “إنترنت الأشياء 2-1” الفصل الدراسي الثالث.
ستتعرف في هذا الموضوع على كيفية تصميم نظام محاكي لفحص منطقة تخزين المصنع للحاويات التي تحتوي على مواد قابلة للتلف. وذلك باستخدام برنامج كاب كاربون لإنشاء النظام المحاكي، وإنشاء المسارات وإضافة العُقد للمشروع، بالإضافة لإنشاء المقاطع البرمجية وتنفيذها.
لذا قم بقراءة نواتج التعلُّم بعناية، ثم أعد قراءتها وتأكَّد من تحصيل كافة محتوياتها بعد انتهائك من دراسة الموضوع.
أهداف التعلّم
- تصميم نظام محاكي لفحص منطقة تخزين المصنع للحاويات التي تحتوي على مواد قابلة للتلف.
- استخدام برنامج كاب كاربون لإنشاء النظام المحاكي.
- إنشاء المسارات وإضافة العُقد للمشروع.
- إنشاء المقاطع البرمجية وتنفيذها.
هيا لنبدأ!
الصناعة الذكية والأتمتة (Smart Industry and Automation)
تُعد الأتمتة ميزة مهمة للتقنيات الحديثة. وكذلك فهي عامل مساهم بشكل رئيس في الثورة الصناعية الرابعة.
يتم تعزيز الصناعة الذكية من خلال تقنيات الأتمتة التي تزيد من الانتاجية مما يتيح تحقيق المزيد من الأرباح.
ستُنشئ في المشروع التالي نظام محاكاة لنظام يفحص منطقة تخزين المصنع للحاويات التي تحتوي على مواد قابلة للتلف إذا تُرِكَت دون تبريد طوال الليل، وذلك باستخدام مركبة تفتيش آلية.
- ستتخذ مركبة التفتيش الآلية مسارًا محددًا سابقًا في منطقة تخزين المصنع.
- سيتم وضع علامات على الحاويات وفقًا لمحتوياتها من مواد قابلة للتلف، ومواد طويلة الأمد لا تحتاج إلى التبريد.
- تحتوي كل حاوية على رقاقة إنترنت الأشياء (IOT Tag) ترسل رسالة باستخدام موجهاتها اللاسلكية لتُبلغ المركبة الآلية بمحتوياتها.
- توجد أيضًا بعض محطات الشحن في كافة أنحاء منطقة التخزين.
- لشحن بطاريات المركبة التي ستنخفض أثناء حركة المركبة.
لمعرفة المزيد من المعلومات عن الأتمتة، قم بالاطّلاع على الرابط التالي:
لنبدأ بإنشاء مشروع جديد:
لإنشاء مشروع جديد:
- اضغط على New Project (مشروع جديد) من Toolbar (شريط الأدوات).
- اختر الموقع الذي تريده لحفظ المشروع، اكتب “Storage Product Marking” في حقل File name (اسم الملف).
- اضغط على Save (حفظ).
إنشاء مسار مُحدَّد سابقًا (Creating a Predetermined Route)
في البداية ستُنشئ المسار الذي ستسير عليه مركبة التفتيش.
أولاً: ستضع بعض العلامات على الخريطة لتحديد طبيعة المسار، ثم ستقوم بإضافة بعض العلامات الأخرى لتحديد المسار بشكل دقيق.
لإنشاء المسار:
- اضغط زر Maker (علامة) من Toolbar (شريط الأدوات).
- اضغط على الخريطة 5 مرات كما يظهر في الصورة أدناه، مما يُنشئ خطوطًا على طول المسارات.
- اضغط على Esc في لوحة المفاتيح.
- اضغط على علامة تبويب Maker Parameters (مُعامِلات العلامات) في قائمة Parameters (المُعامِلات).
- أضف المزيد من العلامات إلى المسار بالضغط على كل علامة من العلامات الأربعة المضافة، والضغط على Insert Markers (إدراج العلامات) 4 مرات.
- اضغط على Save (حفظ).
إضافة عُقدة مركبة التفتيش (Adding the Inspector Vehicle Node)
ستتم محاكاة مركبة التفتيش بواسطة عقدة تتحرك على طول المسار الذي أنشأته سابقًا.
ستقوم أيضًا بزيادة نطاق الاستشعار للعقد الداخلية (الدائرية) بحيث يمكنها الوصول إلى نطاق محطة الشحن.
لإضافة عُقدة مركبة التفتيش:
- اضغط على IoT Node (عُقدة إنترنت الأشياء) من شريط الأدوات.
- اضغط على الخريطة لإضافة العُقدة.
- اضغط على All (الكل) من State bar (شريط الحالة).
- اضغط على Esc في لوحة المفاتيح.
- اضغط على العُقدة واضغط على الزرين “Shift + 0” معًا 4 مرات لزيادة نطاق الاستشعار.
- اضغط على علامة التبويب Device Parameters (مُعامِلات الجهاز) في قائمة Parameter (المُعامِلات).
- اضغط على الصندوق الموجود على يمين ملف GPS.
- من القائمة المنسدلة، حدِّد برنامج gps واضغط على الزر الموجود على اليمين لإدراج المسار في العُقدة.
إضافة عُقد الحاوية (Adding Container Nodes)
حان الوقت الآن لإضافة العُقد التي تمثل الحاويات.
لإضافة عُقد الحاوية:
- اضغط على IoT Node (عُقدة إنترنت الأشياء) من شريط الأدوات.
- اضغط على الخريطة وأضف 7 عُقد بالقرب من المسار، بحيث يتضمَّن نصف قطر كل منها علامة واحدة من المسار على الأقل.
- اضغط على All (الكل) من شريط الحالة.
اضغط على زر Esc في لوحة المفاتيح.
إضافة محطات الشحن (Adding Charging Stations)
تستهلك مركبة التفتيش الطاقة خلال حركتها في المخزن، مما يتطلب إعادة شحنها.
ستقوم بإضافة بعض محطات الشحن على المسار لشحن المركبة أثناء مرورها بقربها.
ولهذا الغرض سيتم استخدام نطاق الاستشعار الداخلي.
لإضافة نقاط لمحطات الشَحن:
- اضغط على Mobile (الهاتف المحمول) من Toolbar (شريط الأدوات).
- اضغط على map (الخريطة) وأضف عُقدتين على طول المسار بحيث يُمكِنهما استشعار المركبة.
اضغط على زر Esc في لوحة المفاتيح.
بإمكانك مراجعة محتوى موضوع “إنترنت الأشياء والأجهزة المحمولة المؤتمتة” من بدايته وحتى نهاية هذا القسم، من خلال الرابط التالي:
إنشاء المقاطع البرمجية (Creating the Scripts)
ستلقي نظرة الآن على كافة المقاطع البرمجية التي ستستخدمها بدءًا من برمجة حاويات.
مع العلم بأن برمجة النوعين المختلفين من الحاويات ستكون متطابقة.
ستبدأ بإضافة المكتبة اللازمة، وطباعة نص فارغ على العُقدة لإزالة أي نصوص مطبوعة من عمليات التنفيذ السابقة.
ستقوم حاويات المواد القابلة للتلف ببث رسالة تتضمن محتوياتها ومُعرِّفها ليمكن استخدامها من قبل مركبة التفتيش لتصنيف كل حاوية.
المعرف ID عدد صحيح، ويجب تحويل نوعه إلى متغير نصي قبل ربطه بالنص.
يتم وضع مسافة بين معلومات المحتويات والمُعرف بحيث يُمكن إرسال نصٍ واحدٍ فقط في آنٍ واحد باستخدام دالة send() للإرسال.
ثم يتعين عليك إرسال جزئيتين من المعلومات يتم الفصل بينهما بواسطة المسافة.
بعد تحليل الحاوية للنص المستقبل،
- سترسل إما “1” والتي تعني أنه يجب اختيارها.
- أو سترسل “2” والتي تعني أنه لا يجب أن يتم ذلك.
بدورها ستطبع الحاوية النص الذاتي “PICK” أو “DO NOT PICK”، ثم ستسكن لمدة ثانية واحدة.

إنترنت الأشياء والأجهزة المحمولة المؤتمتة
هنا المقطع البرمجي الخاص بنقطة التفتيش.
ستتم في البداية تهيئة البطارية بضبط أقصى طاقة لها لتعادل 100 وحدة طاقة باستخدام الدالة battery.setEMax().
ثم ضبط مستواها الحالي إلى الحد الأقصى مع دالة battery.init().
ستسهلك المركبة بمرور الزمن قدرًا معينًا من الطاقة، ولمحاكاة ذلك:
استخدم الدالة battery.consume(1.0) لتنفيذ استهلاك وحدة طاقة لكل فترة زمنية محددة.
لاكتشاف ما اذا كانت أي محطة شحن موجودة في نطاق المركبة، استخدم الدالة
isSensoreDetecting().
وعند اكتشاف محطة، استخدم battery.init() لشحنها إلى الحد الأقصى.
يتعين على المركبة التحقق الآن من جميع الرسائل التي استقبلتها، ثم الرد على مرسليها(الحاويات).
سيتم في البداية تخزين متغير القراءة المحلي في recvMsg ثم باستخدام دالة split() سيتم فصل النص إلى جزئين وفقًا للمساحة المستخدمة سابقًا على شكل مصفوفة باسم .splitMsg
وهذا يعني أنه في الخلية الأولى من المصفوفة splitMsg[0] سيتم الاحتفاظ بمحتويات الحاوية بينما تحتفظ الخلية الثانية splitMsg[1] بمُعرِّف الحاوية.
إذا كان نص المحتوى “CONSUMABLES” فستُرسِل النص “1” بواسطة دالة send() إلى حاوية المرسل باستخدام مُعرِّفها.
بينما إذا كان نص المحتوى “NONCONSUMABLES” فسيتم إرسال النص “2”.
وفي الختام ستسكن لمدة 200 مللي ثانية، لأنها تحتاج إلى تحقيق استجابة أكثر من عقد الحاوية بصفتها تتواصل مع المزيد من العُقد.
المقطع البرمجي النهائي (inspector.py)
Complete Code (inspector.py)
لإنشاء المقطع البرمجي:
- اضغط على Python (بايثون) من شريط الأدوات.
- اكتب التعليمات البرمجية في الحقل النصي.
- في حقل File name (اسم الملف)، اكتب inspector.
- اضغط على Save (حفظ).
- أغلق نافذة محرر بايثون النصي.
لإدراج المقطع البرمجي:
- اضغط على عُقدة مركبة التفتيش.
- اضغط على علامة تبويب Device Parameters (مُعامِلات الجهاز) في قائمة Parameters (المُعامِلات).
- اضغط صندوق Script file (ملف المقطع البرمجي).
- من القائمة المنسدلة، اختر py واضغط على الزر الموجود على اليمين لإدراج المقطع البرمجي في العُقدة.
- اضغط على Display > Display \ Hide Battery \ Buffer levels (عرض < عرض / إخفاء مستويات البطارية / المخزن المؤقت)، من شريط Menu (القوائم).
- اضغط على Save Project (حفظ المشروع) من Toolbar (شريط الأدوات).
- أنشئ المقاطع البرمجية Py ، NONCOMSUMABLES.Py.
- طبِّق المقطع البرمجي الأول على بعض عُقد الحاويات، والثاني على بقيتها، بحيث تحتوي جميع عقد الحاوية على أحد هذين المقطعين.
- عند الانتهاء، يمكنك الضغط على زر Run IOT Simulations (تشغيل محاكاة إنترنت الأشياء) من شريط الأدوات لبدء المحاكاة.
بإمكانك مراجعة محتوى موضوع “إنترنت الأشياء والأجهزة المحمولة المؤتمتة” بدايةً من عنوان “إنشاء المقاطع البرمجية” وحتى نهاية الموضوع، من خلال الرابط التالي:
اختبر تحصيلك لمحتوى الموضوع من خلال الرابط التالي:
الواجب الإلكتروني
إلى هنا يكون قد انتهى موضوع “الاتصال في شبكة إنترنت الأشياء”، لا تنسوا مراجعة نواتج التعلُّم أعلى المقال، وانتظرونا في الموضوع القادم!