مراقبة النطاق الترددي: 7 خطوات (بالصور)
مراقبة النطاق الترددي: 7 خطوات (بالصور)
Anonim
مراقبة النطاق الترددي
مراقبة النطاق الترددي
مراقبة النطاق الترددي
مراقبة النطاق الترددي
مراقبة النطاق الترددي
مراقبة النطاق الترددي

نظرًا لأنني سألت نفسي كثيرًا عن النطاق الترددي الذي يوفره حاليًا موفر خدمة الإنترنت (أستخدم مودم LTE للاتصال بالإنترنت) ، فكرت في نظام مراقبة النطاق الترددي. نظرًا لأن النظام يجب أن يكون مضغوطًا وموفرًا للطاقة ، فقد اخترت Raspberry Pi Zero كمكون مركزي. يتم توصيل جهاز Raspberry بالمودم عبر WLAN ، وبالتالي يمكن اكتشاف مشكلات WLAN أيضًا.

اللوازم

  • Raspberry Pi Zero WH
  • شاشة Waveshare e-ink (وحدة ورقية إلكترونية بحجم 2.9 بوصة)
  • محول DC-DC (مثل DEBO DCDC 20W)
  • RGB LED (مأخوذ من جهاز قديم)
  • اضغط الزر
  • يحول
  • وحدة ريلايس (على سبيل المثال ، وحدة ترحيل ثنائية الاتجاه ، وحدة ترحيل ثنائية الاتجاه)
  • موصل ذكر + موصل أنثى (كلاهما يتناسب مع حجم قابس مصدر طاقة المودم)
  • حافظة مطبوعة ثلاثية الأبعاد

الخطوة 1: الميزات

سمات
سمات
سمات
سمات
سمات
سمات
  • يتم توصيل Raspberry Pi Zero عبر WLAN ، ويقوم باختبار سرعة التنزيل والتنزيل ويقوم بإجراء قياس ping كل نصف ساعة. يتم استخدام إصدار سطر الأوامر من speedtest.net كأساس للقياسات.
  • يتم عرض نتيجة عرض النطاق الترددي وقياس ping على شاشة الحبر الإلكتروني. يظهر وقت القياس أيضًا.
  • إذا كانت سرعة التنزيل أقل من قيمة العتبة المحددة ، يقوم المرحل بإيقاف تشغيل المودم وتشغيله لفترة قصيرة. وهكذا تتم إعادة ضبط المودم بدون أي تعديل للجهاز (فقط مصدر الطاقة ينقطع).
  • يتوفر زر في مقدمة الجهاز لتشغيل قياس النطاق الترددي يدويًا.
  • يتم عرض القيم المقاسة على لوحة معلومات Ubidots (بوابة IOT). في النظرة العامة ، يمكنك أيضًا رؤية التاريخ الزمني للقيم المقاسة وأسباب عمليات إعادة التعيين الأخيرة.
  • في بوابة IOT ، يمكنك أيضًا العثور على زر لإعادة ضبط المودم عن بُعد.
  • تستخدم شاشة عرض النطاق الترددي مصدر الطاقة الخاص بالمودم. لا حاجة لإمدادات إضافية. يقطع relais إعادة توجيه مصدر الطاقة إلى المودم - يظل التوت قيد التشغيل.

الخطوة 2: الأسلاك

الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك

في الصورة الأولى يمكنك رؤية التصميم الداخلي لجهاز عرض النطاق الترددي:

المكونات الرئيسية هي:

    1. اضغط الزر
    2. عرض الحبر الإلكتروني
    3. Raspberry Pi Zero
    4. وحدة الترحيل
    5. مقاومات RGB LED + (حسب RGB LED الذي تستخدمه)
    6. يحول
    7. محول DC-DC
    8. موصل أنثى

تُظهر الصورة الثانية تخطيطًا للأسلاك. يتم تغذية القطب الموجب لجهد الإمداد عبر المحول إلى محول الجهد DC-DC (الذي يحول جهد إمداد 12 فولت للموجه إلى 5 فولت لـ Raspberry) وعبر المرحل (عبر الدبوس المتصل العادي) مرة أخرى إلى موصل الإخراج. وبالتالي يتم تزويد المودم أيضًا بالطاقة عند إيقاف تشغيل شاشة عرض النطاق الترددي.

يمكن بدء قياس النطاق الترددي يدويًا عبر زر. يتم استخدام RGB LED لتصور حالات التشغيل المختلفة.

لا يظهر الاتصال بين Raspberry Pi وشاشة e-ink في مخطط الدائرة. قم بتوصيل الشاشة وفقًا للجدول والمسمار أعلاه.

الخطوة 3: الطباعة ثلاثية الأبعاد وبناء المطاردة

الطباعة ثلاثية الأبعاد وبناء المطاردة
الطباعة ثلاثية الأبعاد وبناء المطاردة
الطباعة ثلاثية الأبعاد وبناء المطاردة
الطباعة ثلاثية الأبعاد وبناء المطاردة
الطباعة ثلاثية الأبعاد وبناء المطاردة
الطباعة ثلاثية الأبعاد وبناء المطاردة
الطباعة ثلاثية الأبعاد وبناء المطاردة
الطباعة ثلاثية الأبعاد وبناء المطاردة

الأجزاء التالية ضرورية للحالة (انظر الصورة أعلاه):

    1. الجزء السفلي
    2. الجزء العلوي
    3. أمام
    4. الى الخلف
    5. 4x جبل

يمكن طباعة جميع الأجزاء بدون دعامات. يمكنك أيضًا العثور على الملفات وبعض تصميماتي الأخرى على Thingiverse:

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

الخطوة 4: إعداد Raspberry PI

إعداد Raspberry PI
إعداد Raspberry PI
إعداد Raspberry PI
إعداد Raspberry PI

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

لنفترض أن لديك بالفعل Raspbian مثبتًا على Pi الخاص بك (هناك العديد من البرامج التعليمية حول كيفية تثبيت نظام التشغيل الأساسي) ولديك شاشة (عبر miniHDMI) ، والماوس ولوحة المفاتيح متصلة. يُفترض أيضًا وجود اتصال WLAN تم إعداده بشكل صحيح بجهاز التوجيه أو الإنترنت. ما لم ينص على خلاف ذلك ، يتم تنفيذ جميع إجراءات التثبيت في الجهاز.

قم بتثبيت Remote Desktop (للوصول إلى PI من جهاز الكمبيوتر الخاص بك):

sudo apt-get update

sudo apt-get

تثبيت xrdp

أو يمكنك أيضًا العمل بلا رأس عبر ssh (انظر على سبيل المثال

تغيير كلمة المرور:

www.raspberrypi.org/forums/viewtopic.php؟t=193620

تثبيت speedtest:

سودو

apt-get install python-pip

تثبيت sudo pip speedtest-cli

لاختبار ما إذا كان التثبيت ناجحًا ، قم بتشغيل Speedtest في الجهاز:

speedtest- cli

إذا كان كل شيء صحيحًا ، فيجب أن تحصل على شيء مثل في الصورة الأولى أعلاه.

قم بتثبيت wiringPI

sudo apt-get install git-core

بوابة استنساخ git: //git.drogon.net/wiringPi

الأسلاك القرص المضغوط

./يبني

(انظر أيضًا

البديل:

sudo apt-get install wiringpi

(انظر

قم بتثبيت BCM2835

(انظر

قم بتنزيل bcm2835-1.60.tar.gz (أو إصدار أحدث إذا كان متاحًا)

القطران zxvf bcm2835-1.60.tar.gz

القرص المضغوط bcm2835-1.60

./تهيئة

صنع

sudo تحقق

sudo جعل التثبيت

قم بتثبيت مكتبة التصوير في Python

sudo apt-get install python-imaging. تثبيت sudo apt-get install python-imaging

البديل:

sudo apt-get install python-pil

قم بتمكين وظيفة I2C.

قم بتشغيل الأمر التالي لتكوين لوحة Raspberry Pi الخاصة بك:

sudo raspi-config

حدد خيارات الواجهة-> I2C -> نعم ، لبدء تشغيل برنامج تشغيل I2C الأساسي. ثم تحتاج أيضًا إلى تعديل ملف التكوين. قم بتشغيل الأمر التالي لفتح ملف التكوين:

sudo نانو / الخ / وحدات

أضف السطرين التاليين إلى ملف التكوين

i2c-bcm2708

i2c- ديف

راجع أيضًا

قم بتمكين وظيفة SPI

قم بتشغيل الأمر التالي لتكوين لوحة Raspberry Pi الخاصة بك:

sudo raspi-config

حدد خيارات الواجهة-> SPI -> نعم ، لبدء تشغيل برنامج تشغيل SPI الأساسي.

تثبيت خطوط إضافية:

sudo apt-get install ttf-mscorefonts-installer

تنزيل الخطوط وتثبيتها (Roboto + Droid)

غكسودو

pcmanfm

لبدء filemanager بامتيازات الجذر ونسخ خطوط truetype في المجلد / usr / share / Fonts / truetype

البديل:

انسخ الخطوط إلى مجلد التنزيلات باستخدام WinSCP (يجب تمكين ssh لاستخدام WinSCP)

sudo cp -r / home / pi / Downloads / droid / usr / share / الخطوط / truetype

sudo cp -r / home / pi / Downloads / roboto / usr / share / Fonts / truetype

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

ملفات Python:

استخدم مدير الملف لإنشاء مجلد جديد "bandwidth_monitor"

انسخ جميع الملفات إلى الدليل bandwidth_monitor

اجعل ملفات Python والبرامج النصية قابلة للتنفيذ

chmod + x *.py

chmod + x speedtest-cron.sh

تكوين crontab

كرونتاب -e

يستخدم Crontab لجدولة تنفيذ البرنامج ، على سبيل المثال speedtest كل 30 دقيقة. أضف الأسطر التالية إلى crontab الخاص بك (انظر أيضًا الشكل الثاني):

reboot / usr / bin / python /home/pi/bandwidth_monitor/post_restart_message.py &

@ reboot sleep 30 && / usr / bin / python /home/pi/bandwidth_monitor/poll_test_now_button.py * / 30 * * * * /home/pi/bandwidth_monitor/speedtest-cron.sh * / 3 * * * * / usr / bin / python /home/pi/bandwidth_monitor/poll_killswitch.py 13 03 * * * / usr / bin / python /home/pi/bandwidth_monitor/refresh_display.py

وصف المهام المجدولة:

  • عند إعادة التشغيل ، تتم كتابة رسالة إعادة التشغيل على لوحة معلومات IOT
  • عند إعادة التشغيل ، بدأ اختبار الاستطلاع test_now_button
  • يتم إجراء قياس النطاق الترددي كل 30 دقيقة
  • يتم فحص حالة زر إعادة الضبط عن بُعد (على لوحة معلومات IOT) كل 3 دقائق
  • مرة واحدة في اليوم تبدأ دورة تحديث العرض.

انظر قسم البرامج للحصول على وصف موجز للبرامج.

الخطوة 5: البرمجيات

برمجة
برمجة

البرنامج مقسم إلى عدة ملفات / برامج:

bandwidth_monitor_0_4.py هو البرنامج الرئيسي الذي تستدعيه Crontab كل نصف ساعة. يقوم بإجراء اختبار النطاق الترددي (عبر إصدار سطر الأوامر من speedtest.net). أثناء الاختبار ، يكون RGB LED باللون الأزرق. إذا كان النطاق الترددي أعلى من الحد المحدد ، فستظهر القيمة على شاشة الحبر الإلكتروني (جنبًا إلى جنب مع الطابع الزمني) ويتم تصديرها إلى لوحة معلومات Ubidots. إذا كان عرض النطاق الترددي أقل من الحد الأدنى ، يتحول مؤشر LED إلى اللون الأحمر ويتكرر القياس بعد مهلة قصيرة. بعد 3 محاولات سلبية ، يتم تنشيط الترحيل وبالتالي ينقطع مصدر الطاقة عن المودم. تتم كتابة رمز إعادة التعيين (القيمة = 2) في قسم السجل.

Poll_killswitch.py يقرأ حالة المتغير المنطقي على لوحة القيادة. إذا كان killswitch_state صحيحًا ، يتم تنشيط relais ، ويتم مقاطعة مصدر الطاقة الخاص بالمودم. يتحول RGB LED إلى اللون الأخضر أثناء التصويت على مفتاح القتل. بعد إعادة الضبط ، يتم تعيين killswitch_state على "خطأ" ويتم إنشاء إدخال في قسم السجل بلوحة القيادة (القيمة = 1).

poll_test_now_button.py في انتظار الضغط على الزر الضغطي الموجود على اللوحة الأمامية للحالة. من خلال تنشيط الزر ، يتم تشغيل قياس النطاق الترددي يدويًا. عند بدء تشغيل البرنامج (عند إعادة تشغيل Raspberry Pi) ، يومض مصباح RGB LED باللون الأحمر.

يكتب post_restart_message.py رمز إعادة التعيين (القيمة = 3) في قسم السجل بلوحة القيادة. يشير هذا إلى إعادة تشغيل جهاز مراقبة النطاق الترددي. أثناء بدء تشغيل البرنامج ، يومض مصباح RGB LED باللون الأزرق.

test_LED.py و test_relay.py عبارة عن نصوص برمجية بسيطة يمكن استخدامها لاختبار وظيفة الأجهزة في RGB LED والمرحل.

epdconfig.py و epd2in9.py هما برنامج تشغيل الجهاز لعرض الحبر الإلكتروني المقدم من Waveshare.

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

يمكن العثور على برامج تعليمية شاملة حول كيفية إنشاء لوحة القيادة وكيفية دمج لوحة القيادة في برنامج Python مباشرة على صفحة Ubidots (https://help.ubidots.com/en/) أو عبر Google.

الخطوة 6: IOT Dashboard

لوحة معلومات IOT
لوحة معلومات IOT

تحتوي لوحة القيادة التي يستضيفها Ubidots (راجع https://ubidots.com) على عدة مناطق موصوفة بإيجاز أدناه.

    1. التسلسل الزمني لأعلى وسرعة التنزيل. يتم إدخال قيمة جديدة في الرسم التخطيطي كل نصف ساعة.
    2. الدورة الزمنية لوقت ping المقاس. يتم إدخال قيمة جديدة في الرسم التخطيطي كل نصف ساعة.
    3. التسلسل الزمني لمتوسط سرعة التنزيل. يتم حساب متوسط القيمة على مدار 24 ساعة وكتابته في الرسم التخطيطي.
    4. تمثيل جدول بيانات لقيم القياس الحالية بما في ذلك الطابع الزمني.
    5. زر التحكم عن بعد لإعادة ضبط المودم عبر الإنترنت. يحدث الاستعلام كل 3 دقائق ، أي قد يستغرق الأمر بعض الوقت حتى يتم تنفيذ الإجراء.
    6. تسجيل آخر عمليات إعادة التعيين بما في ذلك سبب إعادة التعيين (التشغيل عن بُعد ، أو إيقاف التشغيل أو فقدان الجهد ، أو الانخفاض إلى ما دون الحد الأدنى لعرض النطاق الترددي)

يمكن العثور على برامج تعليمية شاملة حول كيفية إنشاء لوحة القيادة وكيفية دمج لوحة القيادة في برنامج Python مباشرة على صفحة Ubidots (https://help.ubidots.com/en/) أو عبر Google.