إنترنت الأشياء والأجهزة المحمولة المؤتمتة - إنترنت الأشياء - ثاني ثانوي
الجزء الأول
1. أسس إنترنت الأشياء
2. إنترنت الأشياء في حياتنا
3. إنشاء تطبيقات إنترنت الأشياء باستخدام الأردوينو
4. إنشاء تطبيق سحابي لإنترنت الأشياء
الجزء الثاني
5 .تطبيقات إنترنت الأشياء المتقدمة
6 .برمجة إنترنت الأشياء باستخدام ++C
7 .الرسائل في إنترنت الأشياء
8. محاكاة شبكة مستشعرات إنترنت الأشياء اللاسلكية
336 الدرس الثالث إنترنت الأشياء والأجهزة المحمولة المؤتمتة رانتف الدرس الرقمي www.ien.adi. الصناعة الذكية والأتمتة Smart Industry and Automation تعد الأتمتة ميزة مهمة للتقنية الحديثة. وكذلك فهي عامل مساهم بشكل رئيس في الثورة الصناعية الرابعة. تعزز الصناعة الذكية من خلال تقنيات الأتمتة التي تزيد من الإنتاجية. مما يتيح تحقيق المزيد من الأرباح ستنشئ في المشروع الآتي محاكاة لنظام بفحص منطقة تخزين المصنع للحاويات التي تحتوي على مواد قابلة للتلف إذا تركت دون تبريد طوال الليل، وذلك باستخدام مركبة تفتيش آلية. سنتخذ مركية التفتيش الآلية مسارًا محددا سابقا في منطقة تحزين المصنع، وستوضع علامات على الحاويات وفقا لمحتوياتها من مواد قابلة للتلف، ومواد طويلة الأمد لا تحتاج إلى التبريد، تحتوي كل حاوية على رقاقة انترنت الأشياء (IoT Tag) ترسل رسالة باستخدام موجاتها اللاسلكية لتبلغ المركبة الألية بمحتوياتها. توجد أيضا بعض محطات الشحن في كافة أنحاء منطقة التخزين لشحن بطارية المركبة التي ستنخفض أثناء حركة المركبة. 30
الفيداً بإنشاء مشروع جديد لانشاء مشروع جديد. > اضغط على New Project مشروع جديد من Toolbar (شريط الأدوات). اختر الموقع الذي تريده لحفظ المشروع، أن " Storage Product Marking " في حفل File name (اسم الملف. واضغط على Save (حفظ) CupCarbon T 5.0 A Day 1 دارة التعليم 2 821 اسماء مشروع سيد 3
إنشاء مسار محدد سابقًا Creating a Predetermined Route في البداية، ستنشئ المسار الذي ستسبر عليه مركبة التقنيش أولا، سنضع بعض العلامات على الخريطة لتحديد طبيعة المسار ثم ستقوم بإضافة بعض العلامات الأخرى لتحديد المسار بشكل دقيق لإنشاء المسار اسط در Marker ( علامة بين Toolbar (شريط الأدوات) اصغط على الخريطة 5 مرات كما يظهر في الصورة أدناه مما ينشى حطوطا على طول المسارات أضغط على Est في لوحة المفاتيح اضغط على علامة تبويب Maker Parameters ( معاملات العلامات) في قائمة Parameters (المعاملات) . اصف المزيد من العلامات إلى المساء بالضغط على كل علامة من العلامات الأربعة المضافة، والصغط على insert Markers ادراج العلامات | 4 مرات. اضغط على Save ( حفظ ) . 2 3 4 1111 5 1 شكل 822 إضاء سار 2 338
339 إضافة عقدة مركبة التفتيش Adding the Inspector vehicle Node سنتم محاكاة مركبة التفتيش بواسطة عقدة تتحرك على طول المسار الذي أنشأته سابقا، ستقوم أيضا بزيادة نطاق الاستشعار للعقدة ( الدائرة الداخلية) بحيث يمكنها الوصول إلى نطاق محطة الشجن 4 لإضافة عندة مركبة التفليش أضغط على IOT Node (عقدة الشرب الأشياء) من شريط الأدوات ) اضغط على الخريطة لإضافة العقدة 3 أضغط على All ( ل ) من State bar (شريط الحالة). أضغط على ESC في لوحة المعانيح > اضغط على العصمة واسقط على الزرين ، من أربع مرات لريادة نطاق الاستشعار. أصلا على علامة التبويب Device Parameters | معاملات الجهاز في قائمة parameter (معاملات). اصلط على الصندوق الموجود على يمين ملف GPS 2 من القائمة المسالة حدد برنامج route.aps واضغط على الزر الموجود على اليمين الإدراج المسار في العقدة 1 5 6 3 2 لم 23 8: انشاء صار
إضافة عقد الحاوية Adding Container Nodes حان الوقت الآن لإضافة العقد التي تمثل الحاويات. لاضافة عقد الحاوية. أضغط على latNode) (عمدة انترنت الأشياء) من شريط الأبوات أضغط على الخريطة وأضف 7 عقد بالقرب من المار، بحيث يتضمن نصف قطر كل منها علامة واحدة من المسار على الأقل 2 > اضغط على All (الكل) من شريط الحالة 1 اضغط على در ESC في لوحة المفاتيح 1 2 3 بر 8,24 انشاء سعد الجارية 340
إضافة محطات الشحن Adding Charging Stations تستهلك مركية التفتيش الطاقة خلال حركتها في المحزن، مما يتطلب إعادة شحنها ستقوم بإضافة بعض محطات الشحن على المسار لشحن المركبة أثناء مرورها بضربها ، ولهذا الغرض سبتم استخدام نطاق الاستشعار الداخلي. لإضافة نقاط المحطات الشحن > اضغط علي Mobile ( الهاتف المحمول ام Toolbar الشريط الأدرات .. > اضغط على map ( الخريطة ) وأصف عُقدتين على طفيل المسار بحيث يمكنهما استشعار المركبة . اضغط على ور Es في لوحة المفاتيح. 2 شكل 8.25 انشاء عند محطة الشحن ليم 341
إنشاء المقاطع البرمجية Creating the Scripts ستلقي الآن نظرة على كافة المقاطع البرمجية التي ستستخدمها بدءًا من برمجة الحاويات مع العلم بأن برمجة النوعين المختلفين من الحاويات ستكون متطابقة. ابدأ بإضافة المكتبة اللازمة، وطباعة نص فارغ على العقدة لإزالة أي نصوص مطبوعة من عمليات التنفيذ السابقة import time node.print("") ستقوم حاويات المواد القابلة للتلف بيث رسالة تتضمن محتوياتها ومعرفها ليمكن استخدامها من قبل مركبة التفتيش لتصنيف كل حاوية المعرف (10) عدد صحيح. ويجب تحويل تنوعه إلى متغير نصي قبل ربطه بالقص. توضع مسافة بين معلومات المحتويات والمعرف بحيث يمكن إرسال نص واحد فقط في أن واحد باستخدام دالة () send للإرسال. ثم يتعين عليك إرسال جزئيتين من المعلومات يفصل بينهما بواسطة المسافة while node.loop(): node.send("CONSUMABLES str(node.id())) بعد تحليل الحاوية للنص المستقبل. سترسل إما "1" والتي تعني أنه يجب اختيارها . أو سترسل "2" والتي تعني أنه يجب ألا يتم ذلك بدورها ستطيع الحاوية النص الذاتي "PICK" ( التقط أو DO NOT PICK" لا تلتقط ) . الم ستسكن لمدة ثانية واحدة. مرارة التعليم inessage node.read() if message == "1" node.print("PICK" ) elif message == "2": node.print("DO NOT PICK") time.sleep(1) 342
343 المقطع البرمجي النهائي (consumples.py ) + str(node.id())) import time node.print("*) while node. loop(): node.send("CONSUMABLES message = node.read() message == "1": node.print("PICK") elif message = "2": node.print("DO NOT PICK") time.sleep(1) Complete Code (consumables.py) وجه الاختلاف بين البرمجة الخاصة بالمواد القابلة المتلف والمؤاز طويلة الأمد هو النص المرسل علي المقطع البرمجي الخاص بالواد طويلة الأمد . المنصر من CONSUMABLES قابلة للتلف NONCONSUMABLES" المقطع البرمجي النهائي (nonconsumables.py) Complete Code (nonconsumables.py) import time. node.print("") while node. Loop(): node.send("NONCONSUMABLES " + str(node.id())) message node.read() if message = "1": node.print("PICK") elif message == "2": node.print("DO NOT PICK"> time.sleep(1)
هنا المقطع البرمجي الخاص بمركبة التفتيش في البداية ستهبا البطارية يضبط أقصى طاقة لها لتعادل 100 وحدة طاقة باستخدام الدالة ( ) battery sex ، ثم ضبط مستواها الحالي إلى الحد الأقصى مع دالة import time node.battery.setEMax(1000) node.battery.init() .battery init() ستستهلك المركبة بمرور الزمن قدرا معينا من الطاقة. ولمحاكاة ذلك. استخدم الدالة (1.0 battery.consume لتشفيد استهلاك وحدة طاقة لكل فترة زمنية محددة. while node.loop(): node.battery.consume(1.0) لاكتشاف ما إذا كانت أي محطة شحن موجودة في نطاق المركبة استخدم الدالة ( ) isSensor Detecting. وعند اكتشاف محطة، استخدم ( )battery init لشحنها إلى الحد الأقصى. if node.isSensorDetecting(): node.battery.init() يتعين على المركبة التحقق الآن من جميع الرسائل التي استقبلتها ، ثم الرد على مُرسليها (الحاويات)، سيتم في البداية تخزين متغير القراءة المحلي في recvMsa . ثم باستخدام دالة ( ) split سيفصل النص إلى جزأين وفقا للمساحة المستخدمة سابقا، على شكل مصموفة باسم splitMs. وهذا يعني أنه في الخلية الأولى من المصفوفة [0] splitMsg سيحتفظ بمحتويات الحاوية، بينما تحتفظ الخلية الثانية (1) splitM بمعرف الحاوية. for n in range(node.bufferSize()): recvMsg = node.read( ) splitMsg = recyMsg.split() إذا كان نص المحتوى CONSUMABLES" ، فسترسل النص "1 بواسطة دالة ( )send إلى حاوية المرسل باستخدام معرفها ، أما إذا كان نص المحتوى "NONCONSUMABLES" فسير سل النص "2". وله الجنام ستسكن . لمدة 200 مللي ثانية لأنها تحتاج إلى تحقيق استجابة أكثر من عقد الحاوية بصفتها تتواصل مع المزيد من العقد. حرارة التعليم 344
of splitMsg[0] == "CONSUMABLES": node.send("1", int(splitMsg[1])) elif splitMsgl0] == "NONCONSUMABLES": node.send("2", int(splitMsg [1])) time.sleep(0.2) import time node.battery.setEMax(100.0) node.battery.init() while node. Loop(): node.battery.consume(1.0) if node. isSensorDetecting(): node.battery.init() for n in range(node.bufferSize()); recvMsg = node.read() splitMsg = recvMsg.split() if splitMsgfo] == "CONSUMABLES": node.send("1", Int(splitMsg[1])) elif splitMsg[0] == "NONCONSUMABLES": node.send("2", int(splitMsg[1])) time.slong.2) وزارة التعليم 345 المقطع البرمجي النهائي (inspector-py) Complete Code (inspector.py)
Python Editor 3 1 Leport ki moda battery III.) nds battery Inks() whims nede battery (30) node battery, in() لإنشاء القطع البرمجي > اضغط على Python ماشين ) من شريط الأدوات. اكتب التعليمات البرمحية في الحقل القصي في حقل File name ) اسم الملف اكتب Inspector اضغط على Save ( حفظ ) . أغلق نافذة محرر مابقون النصي. 8.20 إنشاء المقطع المبرمجي دارة التعليم 2 4 X5 346
ليم 3417 2 6 3 4 5 لادراج المقطع البرمجي اضغط على عضة مركبة التفتيش اضغط على علامة تبويب Device parameters ( معاملات الحمار في قائمة Parameters (المعاملات) 2 اضغط صندوق Script File ( ملف المقطع البرمجي) . من القائمة المنسدنة، اختر Inspecter py واضغط على الزر الموجود على اليمين الإدراج المقطع البرمجي في العقدة. . اضغط على Display > Display/ Hide Battery / Buffer levels عرض عرض / احصاء مستويات البطارية / الجرن الوقت من شريط Menu | القوائم ) 0 > أضغط على Save Project ( حفظ المشروع) من Toolbar (شريط الأدوات). 1 شكل 27 : ابراج المطلع السريحي
348 أنشئ المقاطع البرمجية Consumables.py و nonconsumables.py بنفسر الطريقة وطبق المقطع البرمجي الأول على بعض عقد الحاويات، والثاني على بقيتها، بحيث تحتوي جميع عقد الحاوية على أحد هذين المقطعين. عند الانتهاء، يمكنك الضغط على زر Run lot Simulation ( تشغيل محاكاة إنترنت الأشياء ) من شريط الأدوات لبدء المحاكاة. شكل 18.28 السراح المقطع البرت مرارة الكلية
تمرينات • وسع مشروعك بإضافة المزيد من العقد وإنشاء مسار بالمزيد من العلامات. لا تنس اضافة المقاطع البرمجية في العقد الجديدة. 2 حدد ما إذا كان مشروعك يستخدم أقل عدد ممكن من محطات الشحن. حاول إزالة محطة، ونقل الأخريات لاختبار فرضيتك. 3 عدل البرمجة الخاصة بمركية التفتيس لكي تستهلك المزيد من الطاقة. ولكي تستنزف بطاريتها بشكل أسرع. دون نتائجك أدناه وسع مشروعك عن طريق انشاء نوع تالك من عقد الحاوية وهو حاوية فارغة ترسل النصر Empty (فارعة). ولن تحدد بواسطة مركبة المتخليتي. 5 قد يكون البطء اتصال شبكة المصنع آثار خطيرة على وظائف النظام عدل البرمجة الخاصة بعقدة مركبة التفتيش لجعل العقدة تسكن لمدة أطول. هل حدث تأخير أو فقدان لأي رسائل ؟ دون ملا حظالك أدناه مرارة التعليم 349