الاتصال في شبكة إنترنت الأشياء - إنترنت الأشياء - ثاني ثانوي

المقطع البرمجي النهائي proxy - py
عين 2023
04:10
(0) 0 التقييم التعليقات المشاركة

الدرس الثاني الاتصال في شبكة إنترنت الأشياء 3 www.en.edu.sa الاتصال بين الأجهزة Communication between Devices تكون شبكة إنترنت الأشياء من العديد من الأجهزة التي ترسل وتستقبل البيانات بين بعضها. التماير هذه الأجهزة في إمكانياتها المختلفة مثل النطاق. وعرض النطاق الترددي للبيانات واستهلاكها للطاقة. وبالتالي تقوم بتشغيل مجموعات مختلفة من الأوامر التوفير العديد من الوظائف تنشئ في المشروع الآتي شبكة مثل هذه. وتتكشف اللبنات البرمجية الأساسية المكونة لها. مراقبة الحريق والتحذيرات Fire Surveillance and Notification ستنشن في هذا الدرس مشروعاً يحاكي نظام مراقبة الحرائق في المصانع. سيتم في هذه المحاكاة إنشاء حرائق عشوائية في مصنع، وسيبلغ النظام وحدة التحكم الرئيسة بالمصنع عن القطاع الذي يوجد فيه الحريق سينقذ ذلك باستخدام مجموعة متنوعة من العقد ذات الوظائف المختلفة التي ستتواصل مع بعضها لتمرير الرسالة بدءًا من العقد الطرفية (Edges) مروراً بالعقد الوسطى (Proxies) لتصل أخيرا إلى العقدة الداخلية المتحكم الرئيس .(main controller) العقد ووظائفها The Nodes and their Functions ستستخدم ثلاثة أنواع من العقد في مشروعك التمثيل قطاعات المصنع المختلفة . قد يحدث حريق في الأطراف (Edges). وسيتم تحديده بواسطة مولد أرقام عشوائي في مثل هذه الحالات، ستطيع العقدة رسالة ذاتية وترسل رسالة مختلفة تحتوي على رقم القطاع إلى عقدة الوسطى (Proxy) المحاورة لها، ثم ستسكن المدة زمنية محددة. . سيقرأ الوكلاء أي رسائل قد تلقوها ويعيدونها إلى وحدة المتحكم الرئيسة (main controller). كما قد يقومون بطباعة رسالة ذاتية لإبلاغ المستخدم بما يقومون به. . تقوم وحدة التحكم الرئيسة أيضا قرابة أي رسائل قد تكون تلقتها. وتطيع الرسائل التي أنشئت بواسطة العقد الطرفية التي تخبر المستخدم بالحريق. الطفية المطر البسطي الطرفية الرقة الطرحة ورارة التعليم C

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

مراقبة الحريق والتحذيرات

شرح مراقبة الحريق والتحذيرات

العقد ووظائفها

شرح العقد ووظائفها

تعليم 1 CupCarton let 50 لتبدأ بإنشاء مشروع جديد لإنشاء مشروع جديد أضغط على New Project ( مشروع جديد ) من شريط الأدوات ) اختر الموقع الذي تريد تعرين المشروع فيه. ثم اكتب Fire Surveillance and Notification" في حقل File name الملف واستغط على Save ( حفظ ) 0 2 8.13 استاء مشروع ده 3 324

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

إنشاء مشروع جديد

شرح إنشاء مشروع جديد

ابدأ بإنشاء شبكة العقدة بإصافة وحدة التحكم الرئيسة والوسطى بدا لم يتم وضع العقد داخل نصف قطر وحلية المتحكم، فلن تتمكن من الاتصال والتقلب على ذلك اسحبها وأفلتها بالقرب من وحدة لادراج وحدة المتحكم وعقد الوسطى اضغط على IOT Node ( عقدة انترنت أشياء ) من شريط Toolbar ( الأدوات) اضغط على الخريطة لإضافة العقدة. اضغط على All (الكل) من شريط State ( الحالة ) . > مع عقدني حربي على يسار ويعين العقدة الأولى وداخل دائرتها الخارجية ) المتحكم حتى يغير سيم ثنائي الاتحاد يربط بين المحسين اضغط على Es. 1 3 4 2 العقبة الأولى التي ستصاب هي الوحدة التحكم الرئيسة والأخرى في الوسطى. شكل 15 8: اصابة وجد التحكم على الوسطى

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

إدراج وحدة المتحكم وعقد الوسطى

شرح إدراج وحدة المتحكم وعقد الوسطى

1 تابع بإضافة العقد الطرفية لإدراج العقد الطرفية > اضغط على IoT Node عضة انترنت أشياء) من شريط Toolbar ( الأدوات) | مع عند تين على كل proxy node (عقدة الوسطى)، وذلك داخل دائرتها الخارجية، ولكن خارج نطاق في عقده أخرى > اضغط على All (الكل) من شريط الحالة أضغط على Ext في لوحة المفاتيح 3 2 شکر 815 الساعة العقد الطرقية 326

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

إدراج العقد الطرفية

شرح إدراج العقد الطرفية

import time: import random إنشاء المقاطع البرمجية Creating the Scripts ستتعرف الآن على المقاطع البرمجية التي ستقوم بتشغيل العقد. لنبدأ ببرمجة العقد الطرفية. في البداية. أضف المكتبات اللازمة. تأخذ دالة توليد الأرقام العشرية ( )randint عددين صحيح بن كوسيطين. وتعيد عددا صحيحًا عشوائيا داخل نطاق هدين العددين، على سبيل المثال، وفي الحالة السابقة ستنى (16)randint عددًا صحيحا بشكل عشوائي بقيمة بين 1 إلى 6. سيستخدم الرقم ليمثل القطاع الذي قد يندلع فيه الحريق في كل فترة زمنية وسيتم تخزين العدد الصحيح في منغير fire while node. Loop(): fire = random.randint(1, 6) إذا افترضنا أن دالة ( )randint ترجع الرقم 1 فستكون النيران قد اندلعت افتراضيا في هذا القطاع، سيتحقق البرنامج مما إذا كانت قيمة المتغير fire تاوي .1 . وإذا كان الأمر كذلك. سيتم تشغيل سلسلة من الأوامر بما فيها طباعة الرسالة "FIREY" ( حريق) على العقدة نقها وإرسال رسالة تحتوي على معرف القطاع الخاص بها إلى العقد الوسطى (proxy nade) المجاورة لها. إن معرف القطاع هو نفسه رقم معرف العقدة، وهو عدد صحيح فريد. إذا كان معرف القطاع 5، فستكون الرسالة المرسلة FIRE IN SECTOR S" (حريق في قطاع (5). يمكن إرجاع معرف العقدة وبالتالي القطاع بواسطة الدالة ( )id، يتم إرجاع المعرف كرقم، لذلك يجب تحويلة" إلى نوع نص قبل أن يربط بالرسالة المتبقية. if fire == 1: node.print("FIRE!") message: "FIRE IN SECTOR + str(node.id()) يمكن للعقد إرسال البيانات لبعضها باستخدام دالة ( ) send تستخدم الدالة وسيطا واحدا فقط، وهو نص الرسالة الذي تقوم ببته إلى جميع العضد داخل نطاقها. .node.seh message) حرارة التعليم

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

إنشاء المقاطع البرمجية

شرح إنشاء المقاطع البرمجية

إذا أنتجت دالة توليد الأرقام العشوائية أي عدد صحيح آخر (في حالتنا أي رقم من 2 إلى 6 ، فلا يوجد حريق في القطاع. ويتعين على العقدة ببساطة طباعة نص ذاتي فارغ المسح أي نص مطبوع سابقا. else: node.print("") في الختام، ستسكن العقدة لفترة زمنية عشوائية. وذلك لمحاكاة عشوائية الأحداث في الحياة الواقعية. سيتحقق ذلك باستخدام الدالة ( ) uniform التي تعمل مثل دالة ( )randint. ولكنها تنتج أعدادا حقيقية ولبس فقط أعدادا صحيحة. ستتراوح فترة السكون في مشروعك بين 1-4 ثوان. time. sleep(random.uniform(1, 4)) import time import random while node.loop(): fire =random, randint(1, 6) + str(node. id()) af Fire == 1: node.print("FIRE!") message = "FIRE IN SECTOR node.send (inessage) else: node print("") time.sleep(random.uniform(1, 4)) مرارة التعليم المقطع البرمجي النهائي (edge.py) Complete Code (edge.py) 328

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

دالة توليد

شرح دالة توليد

المقطع البرمجي النهائي

شرح المقطع البرمجي النهائي

التالي هو المقطع البرمجي الخاص بالعقد الوسطى. عند استقبال العقدة للبيانات تخزن في المخزن المؤقت (buffer) الخاص بها حتى قراءتها، ولذلك يجب التحقق من حجم المخزن المؤقت في البداية حيث يجب أن تكون قيمته أكبر من صمر ( غير (فارغ يمكن إرجاع حجم المخزن المؤقت بواسطة الدالة ( )bufferSize import time while node. Loop(): if node.bufferSize() > 0: يمكنك بعد ذلك قراءة البيانات المستقبلة باستخدام الدالة .(read. بعد قراءة الرسالة تخزن في رسالة المتغير. تقوم العقدة أيضا بطباعة رسالة " ...FORWARDING" لتوضح أنها تعيد توجيه الرسالة إلى وحدة التحكم الرئيسة. message=node.read() node.print("FORWARDING...") كما هو الحال في البرنامج السابق. سترسل الرسالة المخزنة في المتغير إلى وحدة التحكم الرئيسة باستخدام الدالة ( )send. وفي هذه المرة وبصرف النظر عن الرسالة، سيستلزم الأمر وسيطة إضافية وهي معرف العقدة المستقبلة (Node (D). نظرا لكون الرسالة خاصة بعقدة واحدة ويمعرف محدد هلا يلزم بث الرسالة، بل يمكن بدلا من ذلك أن تكون أحادية الإرسال ( أي ترسل إلى عقدة واحدة فقط). في الحالة السابقة، أضيفت وحدة المتحكم الرئيسة أولا، وبالتالي يكون لها معرف مساويا 1. node.send(message, 1) بعد ذلك. سوف تسكن العقدة المدة ثانية واحدة لمنح المستخدم وقتا كافيا لقراءة الرسالة التوضيحية المطبوعة على العقدة. ثم ستقوم العقدة بمسح الرسالة وذلك بطباعة بصى فارغ. time.sleep(1) node.print("") ينتهي المقطع اليرمجي بسكون العقدة لفترة زمنية صغيرة جدا ( جزء من مائة من الثانية)، مما يمنحها القدرة على الاستجابة في حالة تلقيها الكثير من البيانات. time.sleep(0.01) درارة التعليم 329

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

المقطع البرمجي الخاص بالعقد الوسطى

شرح المقطع البرمجي الخاص بالعقد الوسطى

import time while node.loop(): if node.bufferSize() > 0: message= node.read() node.print("FORWARDING...") node.send(message, 1)+ time.sleep(1) node.print("") time.sleep(0.01) المقطع البرمجي النهائي (proxy.py) معامل الرقم في عدالة | |send هو رفع معرف عقدة وحدة المتحكم Complete code (proxy.py) يتشابه المقطع البرمجي لوحدة المتحكم نوعا ما مع برامج العقد الوسطى. فهو يفحص المحزن المؤقت، ويقرأ الرسالة المستلمة، ولكن الرسالة الذاتية المطبوعة هي نفس الرسالة التي أنشئت في الأصل بواسطة عقدة الطرفية ( edge node ) . import time while node.loop(): if node.bufferSize() > 0: message = node.read() node.print(message): بعد ذلك وكما حدث في عقد الوسطى، ستسكن وحدة المتحكم ولكن لمدة لاتبتين هذه المرة لم تطبع نصا فارغا وفي الخيام ستكن لفترة قصيرة بنفس الطريقة التي حدثت مع العقد الوسطى. time sleep(2) mode print("") time.sleep(0.01) 330

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

المقطع البرمجي النهائي proxy - py

شرح المقطع البرمجي النهائي proxy - py

import time while node. Loop(): if node.bufferSize() > 0: message node.read() node.print(message) time.sleep(2) node.print(") time.sleep(0.01) المقطع البرمجي النهائي (controller.py ) شكل 8.16 الشبكة شكلية الهالي درارة التعليم 331 Complete code (controller.py) الطرفية

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

المقطع البرمجي النهائي

شرح المقطع البرمجي النهائي

3 الآن وبعد أن تعرفت على وظيفة المقاطع البرمجية، تابع عملك وقم بإنشائها. لإنشاء البرنامج وتطبيقه على عقدة وحدة المتحكم لانشاء المقطع البرمجي اضغط على نايتون في شريط الأدرات 0 أكتب أوامر بايتون البرمجية في الحقل الشارع 2 أكت controller (وحدة المتحكم | 2 حفل File name ( اسم الملف ). اضغط على Save | حفظ ... أغلق نافذة محرر بايتون النسي. 1 gedee 2 شكل 17 8 أساء المقطع البرمجي وزارة التعليم 4 x5 332

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

إنشاء عقدة وحدة المتحكم

شرح إنشاء عقدة وحدة المتحكم

لادراج البرنامج . > اضغط على العقدة. < اضغط على علامة تبويب Device parameters ) معاملات الجهار ) : قائمة Parameters ( المعاملات) 2 اضغط على صندوق Soript file ملف المقطع البرمجي) . القالمة المنسدلة، اختر ملف controller, py واضغط على الزر الموجود على اليمين الأدراج المقطع البرمجي في مي العشرة 0 > اضغط على Save Project ( حفظ المشروع من Toolbar (شريط الأدوات ) . 5 Z 3 4 مرارة التعليم شن 8:18 إضافة المقطع الرمحي 333 1

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

لإدراج البرنامج

شرح لإدراج البرنامج

انشئ المقاطع البرمجية الأخرى بنفس الطريقة، وانسخ أوامرها وطبقها على العقد المقابلة لها. بحيث تحتوي جميع العقد على المقطع البرمجي عند الانتهاء اضغط على Run lot Simulation استخدم أسماء نصية معبرة ( تشغيل محاكاة إنترنت الأشياء) من شريط الأدوات. الواضحة للمقاطع البرمجية مثل proxy py edge.py الاحظ أنه نظرا لاستخدامك مولدات أرقام عشوائية، فقد تشتعل حرائق في بعض القطاعات الموجودة على الأطراف أكثر من غيرها والتي قد لا تشتعل فيها حرائق على الإطلاق. 334 حرارة التعليم شم 19 18 حالات المحاكاة

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

استخدام أسماء نصية معبرة

شرح استخدام أسماء نصية معبرة

تمرينات 1 وسع مشروعك الدعم عقدة طرقية (Edge) نصاف لكل عقدة وسطى (Proxy)، بحيث يكون لكل عقدة وسطى ثلاثة عقد طرفية، لا تنس إضافة المقاطع البرمجية داخل العقد الحديدة. 2 وسع مترو عند الدعم عقدة وسطى اضافية. وأضف عقدتين طرفيتين جديدتين الى الوسطي بحيث يكون لدى وحدة المتحكم الرئيسة ثلاث عقد وسطى. ولكل عقدة وسطى عقدتين طرفيتين. لا تنس اضافة المقاطع البرمجية داخل العقد الجديدة. 2 جنداي قسم من التعليمات البرمجية يقرر تكرار حدوث الحرائق عدل مشروعك في برنامج كاب كاربون ( CupCarbon) لزيادة احتمال حدوث الحرائق أكثر من المسابق. 4 قد يؤدي أي تأخير إمتى (latency) في شبكة المصنع إلى تأخير الاتصال بين العقد قم بتعديل برنامجك الخاص يعقد الوسطى لجعل العقد في وضع السكون الفترة أطول هل لاحظت وجود أي تأخير او فقدان لأي رسائل دور ملاحظاتك أبتاه 5 وسع مشروعك ليدعم احتمال حدوث تسرب المياه و حدوت الفيضان عدل برنامجك للقطاعات المعرضة للحي التي بحيث يعلى إرجاع القيمة من دالة توليد الارقام العشوائية () andint القيمة 2 حدوت تشري المياه أو فيجار ي هذا القطاع على العقدة القيام بطباعة الرسالة المناسبة وإرسالها صرارة التصلي

الدرس الثاني: الاتصال في شبكة إنترنت الأشياء

وسع مشروعك لدعم عقدة طرفية

حل وسع مشروعك لدعم عقدة طرفية

وسع مشروعك لدعم عقة وسطى إضافية

حل وسع مشروعك لدعم عقة وسطى إضافية

حدد أس قسم من التعليمات البرمجية يقرر تكرار حدوث الحرائق

حل حدد أس قسم من التعليمات البرمجية يقرر تكرار حدوث الحرائق

قم بتعديل برنامجك الخاص بعقد الوصطى

حل قم بتعديل برنامجك الخاص بعقد الوصطى

وسع مشروعك ليدعم احتمال حدوث تسرب المياه وحدوث الفيضان

حل وسع مشروعك ليدعم احتمال حدوث تسرب المياه وحدوث الفيضان
التعليقات
لم يتم إضافة أي تعليقات حتى الآن.

الرجاء تسجيل الدخول لكتابة تعليق