الرسوم البيانية لحالة أجهزة الاستشعار المتصلة بإنترنت الأشياء IoT

الرسوم البيانية لحالة أجهزة الاستشعار المتصلة بإنترنت الأشياء IoT

الرسوم البيانية لحالة أجهزة الاستشعار المتصلة بإنترنت الأشياء IoT

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

جدول المحتويات

    تبدأ هذه المقالة سلسلة مكونة من أربعة أجزاء، تشرح اقتراحًا بسيطًا للتمثيل الرسومي للبيانات التي تم الحصول عليها بواسطة أجهزة الاستشعار المتصلة بإنترنت الأشياء. وبنفس الفلسفة كما في المقالات الأخرى، فإن الطريقة المقترحة فعالة تمامًا على الرغم من أن الهدف الرئيسي هو تعليمي. كالملف الفني للجمهور الذي مدونة Polaridad.es، وهذا النص يدور حول الإلكترونيات وليس تطوير الويب، وكل قسم من الأقسام بمثابة مقدمة للغات أو التكنولوجيا المستخدمة: HTML, CSS, SVG y جافا سكريبت.

    الرسوم البيانية للبيانات من أجهزة الاستشعار المتصلة بحاوية إنترنت الأشياء (IoT) بتنسيق HTMLالرسوم البيانية للبيانات من أجهزة الاستشعار المتصلة بإنترنت الأشياء (IoT) تعريف المظهر في CSSالرسوم البيانية للبيانات من أجهزة الاستشعار المتصلة بإنترنت الأشياء (IoT) والتي يتم رسمها باستخدام SVGالرسوم البيانية للبيانات من أجهزة الاستشعار المتصلة بإنترنت الأشياء (IoT) والتي يتم إنشاؤها وتعديلها باستخدام JavaScript

    المقالات في السلسلة السابقة حول كيفية تخزين البيانات التي تم الحصول عليها بواسطة الأجهزة المتصلة بإنترنت الأشياء (IoT) وانتهوا بشرح كيفية الوصول إلى المعلومات المخزنة في قواعد البيانات. في أمثلة السلسلة، لتسهيل العملية، تم استخدام خادم الويب كوسيط كان مسؤولاً عن تلقي البيانات من خلال طلبات POST لبروتوكول HTTP، وتخزينها في قاعدة بيانات وعرضها على صفحة ويب.

    خادم ويب إنترنت الأشياءHTTP POST خادم ويب إنترنت الأشياءقاعدة بيانات ماي إس كيو إل. خادم ويب إنترنت الأشياءخادم ويب لغة PHP وإنترنت الأشياء

    على الرغم من أن العيب الرئيسي لهذا النظام هو الأداء (والذي يمكن تخفيفه ببدائل مثل Node.js وMongoDB، والتي سيتم شرحها في المقالات المستقبلية)، إلا أنه في المقابل يوفر ميزتين عظيمتين: تنفيذه بسيط للغاية (بما في ذلك التوفر) الخدمات العامة) ويمكنه عرض البيانات في المتصفح، أي أنه لا يحتاج إلى تطبيقات محددة (مثل تطبيق لجهاز محمول) لتقديم المعلومات المخزنة التي من شأنها أن تمثل الحالة التاريخية للأجهزة المتصلة بالإنترنت أشياء.

    من خلال استغلال ميزة القدرة على عرض المعلومات التي تم تخزينها مع هذا النظام بسهولة على صفحة الويب حول حالة الأجهزة المتصلة بإنترنت الأشياء، يشرح هذا المقال كيفية عرض هذه المعلومات بيانيًا باستخدام التنسيق SVG من جافا سكريبت لإنشاء صفحة ويب بشكل ديناميكي في HTML.

    هناك العديد من المكتبات جافا سكريبت والتي يمكن من خلالها حل العرض الرسومي للبيانات. لا تنوي هذه المقالات تطوير مادة أخرى؛ الغرض من هذا النص هو فهم العملية والقدرة على تطوير تطبيقاتك الخاصة؛ هدف تعليمي وكذلك منتج. إذا كنت مهتمًا باستخدام منتج ما بدلاً من تطويره بنفسك، فإنني أوصيك بإلقاء نظرة على بعض المكتبات الممتازة لإنشاء الرسومات باستخدام جافا سكريبت مع تراخيص مجانية مثل Charts.js, Highcharts, أدوات مخطط جوجل, عصر, رافائيل, بياني (مرتكز على رافائيل), dc.js, Chartist.js, D3.js ( نصيحتي )، C3.js (مرتكز على D3.js), NVD3 (رسومات قابلة لإعادة الاستخدام لـ D3.js) ...

    بنية مستند HTML مع رسومات SVG

    في اقتراح هذه المقالة لتقديم بيانات المستشعر بيانيًا، تتكون صفحة الويب التي يتم عرضها عليها من:

    • تتم كتابة المستند الذي يعمل كحاوية HTML,
    • يتم تعريف مظهر الصفحة بالكود CSS,
    • يتم رسم الرسم البياني باستخدام اللغة SVG y
    • تتم برمجة قراءة البيانات من الخادم وعرض الرسوم البيانية جافا سكريبت

    مخطط عرض بيانات إنترنت الأشياء (IoT) باستخدام JavaScript على صفحة ويب HTML باستخدام JavaScript

    جميع العناصر، وخاصة التعليمات البرمجية HTML من الصفحة، يمكن إنشاؤها على الخادم باستخدام PHP كما هو موضح في المقالة الخاصة بـ لغة برمجة PHP من السلسلة حول تخزين البيانات من الأجهزة المتصلة بإنترنت الأشياء.

    الرمز CSS y جافا سكريبت يمكن تحميلها (استيرادها) في التعليمات البرمجية HTML بدلاً من كتابتها مباشرةً كجزء من المستند HTML. ويتميز هذا بالقدرة على إعادة استخدام نفس المستندات على عدة صفحات والقدرة على تحريرها بشكل أكثر راحة؛ ولكن ربما يكون الإزعاج هو استغراق وقت أطول قليلاً للتحميل اعتمادًا على ما إذا كان بإمكانك استخدام الكود الموجود في ذاكرة التخزين المؤقت (التي تم تحميلها في الاستخدام السابق) أو حتى CDN. في مرحلة الإنتاج، من السهل دمج كل التعليمات البرمجية من PHP، وإنشاء مستند واحد فيه HTML مع كافة المعلومات إذا اخترت هذا البديل. طوال هذه السلسلة من المقالات، من أجل الوضوح، يعتبر أننا نعمل مع وثائق منفصلة.

    للأغراض التي تهمنا، لاستخدامها كحاوية رسومات، وبشكل تقريبي جدًا، محتوى المستوى الأول من بنية المستند HTML سيكون:

    يعمل السطر الأول على الإشارة لمتصفح الويب إلى أن المستند الذي يقرأه مكتوب فيه HTMLوتحديداً في الإصدار 5 (المعروف باسم HTML5). الإصدارات السابقة من HTML، مرتكز على SGML (لغة ​​الترميز المعممة القياسية)، تتضمن تعريفًا لنوع المستند (DTD) حيث تم الإعلان عن نوع القواعد المستخدمة في اللغة لوصف المستند.

    يحتوي السطر الثاني والأخير على الكود HTML بين التوجيهات <html> y </html> والتي تعمل كالفتح والإغلاق على التوالي. التوجيهات HTML وهي تضع الاسم والصفات بين علامتي "أقل من" و"أكبر من" لتشكل نوعاً من علامات "القوس الحاد". العناصر HTML التي تحتوي على المحتوى لها توجيه إغلاق يتضمن الشرطة المائلة أمام الاسم كما في </html>.

    يتم فصل خصائص أو سمات العناصر بمسافات عن الاسم وعن بعضها البعض ويتم التعبير عنها كنص عادي أو، في كثير من الأحيان، كنص (اسم الخاصية) متبوعًا بعلامة يساوي وقيمة محاطة بعلامتي اقتباس. في حالة توجيه فتح الكود HTML تم استخدام الممتلكات lang بشجاعة es, lang="es" للإشارة إلى أن نص الوثيقة HTML يستخدم اللغة الاسبانية.

    تم تضمين تعليق بعد التوجيه الافتتاحي لرمز HTML. التعليقات في HTML يمكنهم شغل عدة أسطر واستخدام الرمز كعلامة افتتاحية <!-- وكخاتمة -->

    الرمز HTML وهي مكونة من كتلتين: الرأس <head> والجسد <body>. يهدف الأول إلى تقديم معلومات عن الوثيقة نفسها، بما في ذلك المعلومات المتعلقة بها (المعلومات الفوقية)، والثاني هو دعم محتوى الوثيقة.

    في التوجيه <body> تم تضمين حدث onload التي يمكن من خلالها تنفيذ وظيفة تلقائيًا جافا سكريبت بمجرد تحميل المحتوى. يتيح لك هذا المورد بدء تنفيذ التعليمات البرمجية التي ستحدد الكائنات الرسومية وتحديثها حيث يتم تحميل المعلومات من الخادم حول حالة المستشعرات التي تمثل هذه الرسومات.

    من بين جميع المعلومات الوصفية التي يمكن تضمينها في رأس المستند HTML، نحن مهتمون بشكل خاص بمعرفة ما تم وصفه بالتوجيهات التالية:

    • <title> الذي يعمل على إعطاء عنوان للوثيقة. سيظهر عادةً في نافذة المتصفح أو في علامة التبويب المقابلة وسيساعدنا في التعرف على الرسومات التي يحتوي عليها.
    • <charset> يعلن مجموعة الأحرف المستخدمة لترميز المستند. إنه مهم بشكل خاص للعلامات "الخاصة" مثل eñes أو اللهجات.
    • <link> يسمح بإقامة علاقة بين الوثيقة HTML الحالية وغيرها من الخارجية. وسوف يساعدنا في تحميل ورقة الأنماط بالتنسيق CSS مع ظهور الوثيقة
    • <script> يحتوي على برنامج نصي مع التعليمات البرمجية القابلة للتنفيذ. باستخدام هذا التوجيه سنقوم بتحميل الوظائف جافا سكريبت التي يمكن من خلالها إنشاء أو تعديل الرسومات SVG.

    كما يتبين في مثال HTML أعلاه، اسم (والمسار، إن أمكن) للمستند بالنمط CSS يشار مع السمة href، بينما في حالة الكود جافا سكريبت يتم استخدامه src. كلاهما يتقاسمان الملكية type بشجاعة text/css y text/javascript على التوالي.

    وفيما يتعلق بمحتوى الوثيقة، الجزء الذي يتوافق مع العنصر <body>, HTML5 فهو يسمح لك بإنشاء هياكل محددة للمكونات الأكثر شيوعًا على صفحة الويب مثل التذييل أو القسم الجانبي أو شريط التنقل، ولكن ما يهمنا هو استخدام المستند كحاوية رسومات. SVG هي العناصر <div> تعمل ككتل مستقلة تسمح بتحديد البنية الهرمية عن طريق تداخل بعضها <div> داخل الآخرين.

    في المثال السابق تم استخدام عنصر <div> الذي يحتوي على اثنين آخرين. يقدم هذا المثال خاصيتين مهمتين جدًا للاستخدام الذي نريد استخدامه للكود. HTML: id والذي يستخدم لتعيين معرف فريد لعنصر ما HTML (A <div>، في هذه الحالة) و class والتي تم تخصيص فئة سنستخدمها لتحديد المظهر. ليس من الضروري أن تكون الفئة فريدة من نوعها، في الواقع، يكمن جزء كبير من فعاليتها في عدة عناصر تشترك في نفس الجانب.

    العنصر (أو العلامة) <p> يعمل على تحديد فقرة تحتوي عادةً على نص (على الرغم من أنه في HTML ليس هناك قيود على هذا). لإنشاء مجموعات ضمن فقرة (أو أ <div>، ولا توجد أيضًا أي قيود) يتم استخدام العلامة <span>. باستخدام هذا العنصر، من الممكن، على سبيل المثال، تضمين نص داخل فقرة لمنحها مظهرًا مختلفًا، مثل وضع خط تحته أو غامق.

    تعريف الخصائص الرسومية وبشكل عام السلوك المرتبط بالعنصر HTML يتم إسناد الفصل في الكود CSS; في حالة المثال السابق في المستند aspecto.css.

    لتحسين تعيين الخصائص CSS فمن الممكن أن نفس العنصر HTML ينتمي إلى عدة فئات، وبالتالي له المظهر أو السلوك الذي تحدده هذه الفئات. للقيام بهذه المهمة، اكتب أسماء الفئات المختلفة، وافصل بينها بفواصل على يمين العقار. class

    في المثال السابق العنصر <div> والتي تم تحديدها على أنها primer_hijo تم تعيين ثلاث فئات: aspecto_de_hijo, aspecto_raro y tipografia_grande، والتي من المفترض أن تحدد معًا مظهر العنصر وسلوكه. كما هو موضح في المقال التالي عن تحديد مظهر الويب لرسومات مستشعر إنترنت الأشياء باستخدام CSS، عند استخدام فئات متعددة، إذا تم تعريف أي من الخصائص التي تحدد الجانب في كليهما، فإن الخاصية الأخيرة المشار إليها هي التي تسود.

    كما رأينا، العناصر <div> وقد تحتوي على عناصر أخرى، بما في ذلك عناصر أخرى <div>. ستكون الحالة أبسط <div> التي تحتوي على النص. المظهر الذي يحدد الأسلوب CSS سيؤثر أيضًا على النص الموجود في العنصر.

    لتحسين تعيين الخصائص CSS فمن الممكن أن نفس العنصر HTML ينتمي إلى عدة فئات، وبالتالي له المظهر أو السلوك الذي تحدده هذه الفئات. للقيام بهذه المهمة، اكتب أسماء الفئات المختلفة، وافصل بينها بفواصل على يمين العقار. class

    في المثال السابق، الفئات الثلاثة المرتبطة بـ <div> primer_hijo من شأنها أن تحدد مظهر العنصر والنص الذي يحتوي عليه، على سبيل المثال، جعل الخط الذي يكتب به كبيرًا (إذا كان الغرض المشار إليه باسمه في الفئة الأخيرة صحيحًا)

    منذ الإصدار 5 (HTML5) من الممكن تضمين كود الرسومات بالتنسيق SVG داخل الكود نفسه HTML كعنصر آخر. من وجهة نظر الكود HTML، المحتوى SVG إنه عنصر <svg> الذي يحتوي على العناصر الرسومية المختلفة (الخطوط، الدوائر، المستطيلات...

    على الرغم من أنه قيل أن الخصائص الرسومية للعناصر HTML يتم تعريفها في الاسلوب CSS وترتبط بها من خلال صنف، ومن الممكن أيضًا إسناد بعضها مباشرة إلى العناصر بطريقتين. من ناحية، يمكنك استخدام الخاصية style وتعيين الخصائص الرسومية المختلفة للكائن كقيمة له. منطقيًا، من الأفضل استخدام التقنية المذكورة أعلاه لتعيين الجانب لفئة ما، ولكن مع هذه الإمكانية يمكنك إضافة تصحيح صغير لعنصر (استثناء خاص جدًا) دون الحاجة إلى إنشاء فئة جديدة.

    ومن ناحية أخرى، بعض العناصر HTML إنها تسمح لك باستخدام خصائص محددة تحدد مظهرها. بشكل عام، حتى لو كانت هذه الخصائص موجودة، فمن الأفضل استخدام الفئات، لكن لسوء الحظ، لا تقدم جميع العناصر هذا البديل، يتوقع البعض الإشارة إلى قيمة معينة مباشرة مع تلك الخصائص المحددة بدلاً من الإشارة إلى الفئة المرتبطة بها. أحد العناصر التي لها هذا النوع من السلوك هو الكود بالتحديد SVG، والتي يجب أن نخصص لها النسبة المئوية للعرض والارتفاع في الخصائص width y heightعلى التوالي، بدلا من الفصل.

    كما سيتبين بمزيد من التفصيل في مقال يتحدث عن كود SVG، من أجل استخدام الطريقة البسيطة المقترحة، فمن المستحسن النظر في أبعاد الرسم البياني كنسب مئوية. في حالة الحجم الإجمالي للكائن، من خلال الإشارة إلى 100% في قيمة العرض والارتفاع، ستكون الحاوية هي التي تحدد الأبعاد النهائية ( <div> مع id="dibujo"، في المثال السابق)

    في حالة المكونات المختلفة للرسم البياني SVG (خطوط، دوائر، مستطيلات...)، يتم تضمينها في مساحة قياسها 100×100 (أي وحدة) ويتم توسيعها بشكل مستطيل دون الحفاظ على النسبة. الخصائص viewBox y preserveAspectRatio العنصر SVG وهم مسؤولون عن ترسيخ هذه القيم. في الحالة الأولى مع عرض مستطيل ينتقل من نقطة الإحداثيات (0,0) إلى نقطة الإحداثيات (100,100) ويتم التعبير عنه كـ "0 0 100 100" وفي الثانية بالقيمة none.

    مع كل ما سبق، يمكنك الآن تحديد التعليمات البرمجية الكاملة التي ستكون بمثابة حاوية رسومات. SVG تم إنشاؤها أو تعديلها من جافا سكريبت. يحتوي المثال أدناه على أربع كتل رسومات تستخدم التنسيق HTML لاقتراح التمثيل الذي سنستخدمه.

    يمكنك أدناه رؤية الشكل الذي سيبدو عليه الكود السابق، منسقًا بالنمط CSS المقابلة، وتوليد مع جافا سكريبت الرسومات SVG مع قراءات الخادم للبيانات المخزنة بواسطة أجهزة الاستشعار المتصلة بإنترنت الأشياء. باستثناء أن البيانات لا يتم تحميلها من الخادم ولكن يتم إنشاؤها بشكل عشوائي في العميل (المتصفح الخاص بك)، فإن بقية التعليمات البرمجية هي ما سيتم استخدامه في الاقتراح المحدد في هذه السلسلة من المقالات.

    المقالة التالية في هذه السلسلة توضح ذلك كيفية تحديد أنماط CSS لإضفاء مظهر على كود HTML الذي يعمل كحاوية للرسومات SVG والتي من خلالها تمثل حالة أجهزة الاستشعار المتصلة بإنترنت الأشياء (IoT).

    تعليق

    مستخدم التعليقات
    كازينو

    ??

    أكتب تعليق

    ربما تكون قد فاتتك