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

مقياس سرعة الإنترنت: 4 خطوات (بالصور)
مقياس سرعة الإنترنت: 4 خطوات (بالصور)

فيديو: مقياس سرعة الإنترنت: 4 خطوات (بالصور)

فيديو: مقياس سرعة الإنترنت: 4 خطوات (بالصور)
فيديو: قياس سرعة الانترنت وماهو الرفع والتحميل ؟ 2024, يوليو
Anonim
Image
Image
مقياس سرعة الإنترنت
مقياس سرعة الإنترنت
مقياس سرعة الإنترنت
مقياس سرعة الإنترنت

ملخص

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

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

كيف تفعل الأشياء

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

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

نظرًا لأن هذا سيكون على مكتبي ، فقد قررت أيضًا أن أجعل الإضاءة الخلفية RGB لأن ملحقات الكمبيوتر يجب أن تكون جميعها RGB. حق؟

التحديات

المقاييس التي استخدمتها باستخدام مشغل Air-Core. لم أسمع عن هؤلاء قبل هذا المشروع.

من ويكيبيديا: يتكون مقياس الهواء الأساسي من ملفين مستقلين متعامدين يحيطان بغرفة مجوفة. يبرز عمود الإبرة في الحجرة ، حيث يتم لصق مغناطيس دائم على العمود. عندما يتدفق التيار عبر الملفات المتعامدة ، تتراكب مجالاتها المغناطيسية ، ويكون المغناطيس حراً في محاذاة الحقول المدمجة.

لم أتمكن من العثور على مكتبة لـ Arduino تدعم SNMP في تكوين المدير. يتكون SNMP من شكلين رئيسيين ، الوكيل والمدير. يستجيب الوكلاء للطلب ويرسل المديرون الطلب إلى الوكلاء. تمكنت من تشغيل وظائف المدير من خلال تعديل مكتبة Arduino_SNMP التي تم إنشاؤها بواسطة 0neblock. لم أقم ببرمجة C ++ أبدًا بخلاف عمل وميض LED على Arduino ، لذا إذا كانت هناك مشكلات في مكتبة SNMP ، فأعلمني وسأحاول إصلاحها ، في الوقت الحالي يعمل بالرغم من ذلك.

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

الخطوة 1: الأدوات والمواد

الأدوات والمواد
الأدوات والمواد
الأدوات والمواد
الأدوات والمواد
الأدوات والمواد
الأدوات والمواد
الأدوات والمواد
الأدوات والمواد
تصميم الدوائر
تصميم الدوائر

سنحتاج إلى 3 جسور H كاملة. النماذج التي استخدمتها هي Dual TB6612FNG و Dual L298N.

يتطلب كل مشغل Air-Core جسرين H كاملين لأن الملفات تحتاج إلى التحكم بشكل مستقل.

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

سأستخدم منظم 12 فولت إلى 5 فولت وهو جزء من لوحة L298N التي اخترتها لتشغيل ESP32.

جميع دوائر LED اختيارية ، بالإضافة إلى موصلات JST. يمكنك بسهولة لحام الأسلاك مباشرة إلى ESP32 وسائق المحرك.

الخطوة الثالثة: تصميم الكود

إعداد التعليمات البرمجية

سنحتاج إلى إعداد Arduino حتى نتمكن من استخدام لوحة ESP32. يوجد دليل جيد موجود هنا سيرشدك خلال إعداد ESP32 Arduino.

ستحتاج أيضًا إلى مكتبة Arduino_SNMP الموجودة هنا.

لتكوين الرمز ، ستحتاج إلى جمع بعض المعلومات.

  1. IP جهاز التوجيه
  2. سرعة الرفع القصوى
  3. سرعة التنزيل القصوى
  4. اسم شبكة WiFi وكلمة المرور الخاصة بك
  5. معرف الكائن الذي يحتوي على عدد ثماني بتات لـ "الدخول" و "الخروج" على واجهة WAN الخاصة بأجهزة التوجيه

هناك معرّفات OID قياسية للمعلومات التي نريدها. وفقًا لمعيار MIB-2 ، فإن الأرقام التي نريدها هي:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

حيث X هو الرقم المخصص للواجهة التي تريد الحصول على الإحصائيات منها. بالنسبة لي ، هذا الرقم هو 3. إحدى الطرق للتأكد من أن هذا هو معرف الكائن الصحيح لك ولتحديد رقم الواجهة الذي تريد استخدامه ، هو استخدام أداة مثل متصفح MIB.

للحصول على سرعات قصوى ، استخدمت SpeedTest.net. بمجرد الحصول على سرعاتك بالميجابت في الثانية ، ستحتاج إلى تحويلها إلى ثماني بتات باستخدام هذه الصيغة.

الثماني في الثانية = (الناتج عن اختبار السرعة بالميجابت في الثانية * 1048576) / 8

وظيفة الكود

يرسل الرمز طلب الحصول على SNMP إلى جهاز التوجيه. ثم يرد جهاز التوجيه برقم ، ويمثل الرقم عدد الثمانيات التي تم إرسالها أو استلامها. في الوقت نفسه ، نسجل عدد المللي ثانية التي مرت منذ أن بدأ Arduino.

بمجرد حدوث هذه العملية مرتين على الأقل ، يمكننا حساب النسبة المئوية للاستخدام بناءً على قيمنا القصوى باستخدام هذا الرمز

النسبة المئوية للأسفل = ((عائم) (بايت داون - بايت ديونلاست) / (عائم) (maxDown * ((ميليس () - وقت متأخر) / 1000))) * 100 ؛

تنقسم الرياضيات على النحو التالي:

octetsDiff = snmp_result - Previous_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (الإطار الزمني * Octets_per_second) / 1000

النسبة المئوية = (octetsDiff / MaxPosableOverTime) * 100

الآن بعد أن أصبح لدينا نسبة استخدام الشبكة ، نحتاج فقط إلى كتابتها إلى المقياس. نقوم بذلك في خطوتين. أولاً ، نستخدم وظيفة updateDownloadGauge. في هذه الوظيفة ، نستخدم "الخريطة" لتحويل النسبة المئوية إلى رقم يمثل موضعًا راديانًا على المقياس. ثم نعطي هذا الرقم لوظيفة setMeterPosition لتحريك الإبرة إلى الموضع الجديد.

الخطوة 4: تصميم الحالة

تصميم الهيكل
تصميم الهيكل
تصميم الهيكل
تصميم الهيكل
تصميم الهيكل
تصميم الهيكل

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

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

ملفات الحالة:

شكرا للقراءة. يُرجى إعلامي إذا كان لديك أي أسئلة وسأبذل قصارى جهدي للإجابة عليها.

موصى به: