Mundarija:

Tarmoqli kengligi monitor: 7 qadam (rasmlar bilan)
Tarmoqli kengligi monitor: 7 qadam (rasmlar bilan)

Video: Tarmoqli kengligi monitor: 7 qadam (rasmlar bilan)

Video: Tarmoqli kengligi monitor: 7 qadam (rasmlar bilan)
Video: Бу аёл Кулга тушди уйига келган уста билан хар куни 2024, Noyabr
Anonim
Tarmoqli kengligi monitor
Tarmoqli kengligi monitor
Tarmoqli kengligi monitor
Tarmoqli kengligi monitor
Tarmoqli kengligi monitor
Tarmoqli kengligi monitor

Men tez -tez o'z provayderim tomonidan qaysi tarmoqli kengligi ta'minlanganligini so'raganimda (men Internetga ulanish uchun LTE modemidan foydalanaman), men tarmoqli kengligini nazorat qilish tizimi haqida o'yladim. Tizim ixcham va quvvatni tejaydigan bo'lishi kerakligi sababli men markaziy komponent sifatida Raspberry Pi Zero ni tanladim. Raspberry modemga WLAN orqali ulangan, shuning uchun WLAN muammolarini ham aniqlash mumkin.

Ta'minotlar

  • Raspberry Pi Zero WH
  • Waveshare elektron siyohli displey (2,9 dyuymli elektron qog'ozli modul)
  • DC-DC konvertori (masalan, DEBO DCDC 20W)
  • RGB LED (eski qurilmadan olingan)
  • Tugma
  • O'tish
  • Relais moduli (masalan, 2 tomonlama Relay moduli2 Way Relay moduli)
  • Erkak ulagichi + ayol ulagichi (ikkalasi ham modem quvvat manbaiga ulanadi)
  • 3D bosilgan quti

1 -qadam: Xususiyatlar

Xususiyatlari
Xususiyatlari
Xususiyatlari
Xususiyatlari
Xususiyatlari
Xususiyatlari
  • Raspberry Pi Zero WLAN orqali ulanadi, yuklanish va yuklanish tezligini tekshiradi va har yarim soatda ping o'lchovini bajaradi. O'lchovlar uchun speedtest.net ning buyruq qatori versiyasi ishlatiladi.
  • Tarmoqli kengligi va ping o'lchovining natijasi elektron siyohli displeyda ko'rsatiladi. O'lchov vaqti ham ko'rsatiladi.
  • Agar yuklash tezligi belgilangan chegara qiymatidan past bo'lsa, o'rni qisqa vaqt ichida modemni o'chirib qo'yadi. Shunday qilib, modem qurilmani o'zgartirmasdan tiklanadi (faqat quvvat manbai uziladi).
  • Qo'lda tarmoqli kengligini o'lchash uchun qurilmaning old qismidagi tugma mavjud.
  • O'lchangan qiymatlar Ubidots boshqaruv panelida (IOT portali) ko'rsatiladi. Umumiy ko'rinishda siz o'lchangan qiymatlarning vaqt tarixini va oxirgi qayta tiklash sabablarini ko'rishingiz mumkin.
  • IOT portalida siz modemni masofadan tiklash tugmachasini ham topishingiz mumkin.
  • Tarmoqli kengligi monitorida modem quvvat manbai ishlatiladi. Qo'shimcha ta'minot kerak emas. Relea quvvat manbaini modemga uzatishni to'xtatadi - malina ochiq qoladi.

2 -qadam: simlarni ulash

Ulanish
Ulanish
Ulanish
Ulanish
Ulanish
Ulanish
Ulanish
Ulanish

Birinchi rasmda siz tarmoqli kengligi monitorining ichki dizaynini ko'rishingiz mumkin:

Asosiy komponentlar:

    1. Tugmani bosish
    2. Elektron siyohli displey
    3. Raspberry Pi Zero
    4. O'rnimizni moduli
    5. RGB LED + rezistorlar (siz foydalanadigan RGB LEDga bog'liq)
    6. O'tish
    7. DC-DC konvertori
    8. Ayol ulagichi

Ikkinchi rasmda simlarning sxemasi ko'rsatilgan. Ta'minot kuchlanishining musbat qutbi DC-DC kuchlanish konvertoriga (yo'riqchining 12V kuchlanishini Raspberry uchun 5V ga o'zgartiradi) va o'rni orqali (odatiy ulangan pin orqali) quvvat manbai orqali uzatiladi. chiqish ulagichi. Shunday qilib, tarmoqli kengligi monitor o'chirilganida, modem ham quvvat bilan ta'minlanadi.

Tarmoqli tarmoqli kengligini o'lchash tugma yordamida qo'lda boshlanishi mumkin. RGB LED har xil ish holatini vizualizatsiya qilish uchun ishlatiladi.

Raspberry Pi va elektron siyoh displeyi o'rtasidagi bog'liqlik sxemada ko'rsatilmagan. Ekranni yuqoridagi jadval va pin-ga muvofiq ulang.

3 -qadam: 3D bosib chiqarish va ta'qib qilish

3D bosib chiqarish va ta'qib qilish
3D bosib chiqarish va ta'qib qilish
3D bosib chiqarish va ta'qib qilish
3D bosib chiqarish va ta'qib qilish
3D bosib chiqarish va ta'qib qilish
3D bosib chiqarish va ta'qib qilish
3D bosib chiqarish va ta'qib qilish
3D bosib chiqarish va ta'qib qilish

Ish uchun quyidagi qismlar kerak (yuqoridagi rasmga qarang):

    1. pastki qismi
    2. yuqori qismi
    3. old
    4. orqaga
    5. 4x o'rnatish

Barcha qismlar tayanchlarsiz chop etilishi mumkin. Siz Thingiverse -da fayllarni va boshqa dizaynlarimni topishingiz mumkin:

Displeyni old panelga mahkamlagichlar va ikki tomonlama lenta bilan biriktirish mumkin. Tugma tugmasi va ayol konnektori orqa va orqa panelga vidalanadi. Men korpusning ikki yarmini ulash uchun 3x20 mm vintlarni ishlatardim. Old va orqa panellar uchun yivlardagi toleranslar nisbatan qattiq. Agar kerak bo'lsa, old va orqa panellarni chetidan zımparalanishi kerak (sirtni buzmaslik uchun ichki tomondan).

4 -qadam: Raspberry PI ni sozlash

Raspberry PI ni sozlash
Raspberry PI ni sozlash
Raspberry PI ni sozlash
Raspberry PI ni sozlash

Ushbu sozlash qo'llanmasi turli manbalardan (e-Ink displey ishlab chiqaruvchilari, …) bir nechta o'rnatish yo'riqnomalarini tuzishga asoslangan. Men uchun ko'rsatmalar kerakli natijaga olib keldi. Men Linux mutaxassisi bo'lmaganim uchun hech qanday optimallashtirish yoki shunga o'xshash ishlar qilinmagan. Men, albatta, yaxshiroq va samaraliroq echimlar borligini bilaman.

Faraz qilaylik, sizning Pi -da Raspbian o'rnatilgan (asosiy operatsion tizimni o'rnatish bo'yicha ko'plab qo'llanmalar mavjud) va sizda displey (miniHDMI orqali), sichqoncha va klaviatura ulangan. Router yoki Internetga to'g'ri o'rnatilgan WLAN ulanishi ham qabul qilinadi. Agar boshqacha ko'rsatilmagan bo'lsa, barcha o'rnatish tartiblari terminalda amalga oshiriladi.

Masofaviy ish stolini o'rnating (kompyuterdan PI -ga kirish uchun):

sudo apt-get yangilanishi

sudo apt-get

xrdp -ni o'rnating

yoki siz ssh orqali boshsiz ishlashingiz mumkin (qarang:

Kalit so'zni o'zgartirish:

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

Speedtest -ni o'rnating:

sudo

apt-get install python-pip

sudo pip speedtest-cli ni o'rnatadi

O'rnatish muvaffaqiyatli bo'lganligini tekshirish uchun terminalda Speedtest -ni ishga tushiring:

eng tezkor-cli

Agar biror narsa to'g'ri bo'lsa, siz yuqoridagi birinchi rasmdagi kabi narsalarni olishingiz kerak.

Simlarni o'rnatish

sudo apt-get install-core ni o'rnating

git klon git: //git.drogon.net/wiringPi

CD simiPi

./qurmoq

(shuningdek qarang:

Alternativ:

sudo apt-get wiringpi-ni o'rnating

(qarang:

BCM2835 -ni o'rnating

(qarang:

Bcm2835-1.60.tar.gz-ni yuklab oling (yoki mavjud bo'lsa, yangi versiyasi)

tar zxvf bcm2835-1.60.tar.gz

CD bcm2835-1.60

./ sozlash

qilmoq

sudo tekshiring

sudo make install

Python tasvirlar kutubxonasini o'rnating

sudo apt-get python tasvirini o'rnating

Alternativ:

sudo apt-get install python-pil

I2C funktsiyasini yoqing.

Raspberry Pi kartasini sozlash uchun quyidagi buyruqni bajaring:

sudo raspi-config

I2C yadro drayverini ishga tushirish uchun interfeys parametrlari -> I2C -> ha -ni tanlang. Keyin konfiguratsiya faylini o'zgartirishingiz kerak. Konfiguratsiya faylini ochish uchun quyidagi buyruqni bajaring:

sudo nano /etc /modullari

Konfiguratsiya fayliga quyidagi ikkita qatorni qo'shing

i2c-bcm2708

i2c-dev

Shuningdek qarang:

SPI funktsiyasini yoqing

Raspberry Pi kartasini sozlash uchun quyidagi buyruqni bajaring:

sudo raspi-config

SPI yadro drayverini ishga tushirish uchun Interface Options-> SPI -> ha ni tanlang.

Qo'shimcha shriftlarni o'rnating:

sudo apt-get ttf-mscorefonts-installer-ni o'rnating

Shriftlarni yuklab oling va o'rnating (Roboto + Droid)

gksudo

pcmanfm

Fayl menejerini ildiz imtiyozlari bilan ishga tushirish va truetype shriftlarini/usr/share/fonts/truetype papkasiga nusxalash.

Alternativ:

Shriftlarni WinSCP yordamida Yuklamalar papkasiga nusxalash (WinSCP -dan foydalanish uchun ssh -ni yoqish kerak)

sudo cp -r/home/pi/Yuklamalar/droid/usr/share/shriftlar/truetype

sudo cp -r/home/pi/yuklamalar/roboto/usr/share/shriftlar/truetype

Shrift papkasiga kirish uchun sizga root imtiyozlari kerak. Ehtimol, buni qilishning yaxshiroq usullari bor (yuqorida aytib o'tilganidek, men Linux mutaxassisi emasman), lekin ikkala usul ham men uchun ishlagan.

Python fayllari:

Yangi "bandwidth_monitor" papkasini yaratish uchun filemangerdan foydalaning.

Bandwidth_monitor katalogiga barcha fayllarni nusxalash

Python fayllari va skriptni bajariladigan qilib qo'ying

chmod +x *.py

chmod +x speedtest-cron.sh

Crontab -ni sozlang

crontab -e

Crontab dasturning bajarilishini rejalashtirish uchun ishlatiladi, masalan. har 30 daqiqada eng tez. Crontab -ga quyidagi qatorlarni qo'shing (ikkinchi rasmga qarang):

@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

Rejalashtirilgan vazifalarning tavsifi:

  • qayta ishga tushirilganda, qayta boshlash xabari IOT boshqaruv paneliga yoziladi
  • qayta yuklashda test_now_button boshlanadi
  • har 30 daqiqada tarmoqli kengligi o'lchami o'tkaziladi
  • har 3 daqiqada masofadan tiklash tugmachasining holati (IOT asboblar panelida) tekshiriladi
  • kuniga bir marta displeyni yangilash davri boshlanadi.

Dasturlarning qisqacha tavsifi uchun dasturiy ta'minot bo'limiga qarang.

5 -qadam: dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot

Dastur bir nechta fayl / dasturlarga bo'lingan:

bandwidth_monitor_0_4.py - Crontab tomonidan har yarim soatda chaqiriladigan asosiy dastur. U tarmoqli kengligi sinovini o'tkazadi (speedtest.net ning buyruq qatori versiyasi orqali). Sinov paytida RGB LED ko'k rangda. Agar tarmoqli kengligi tanlangan chegaradan yuqori bo'lsa, qiymat elektron siyoh displeyida (vaqt tamg'asi bilan birga) ko'rsatiladi va Ubidots boshqaruv paneliga eksport qilinadi. Agar tarmoqli kengligi chegaradan past bo'lsa, LED qizil rangga aylanadi va o'lchov qisqa vaqtdan keyin takrorlanadi. 3 ta salbiy urinishdan so'ng, o'rni ishga tushadi va shuning uchun modemning quvvat manbai uziladi. Qayta tiklash kodi (qiymat = 2) jurnal bo'limiga yoziladi.

poll_killswitch.py asboblar panelida boolean o'zgaruvchining holatini o'qiydi. Agar killswitch_state rost bo'lsa, rele faollashtiriladi va modemning quvvat manbai uziladi. RGB svetodiod qichitgichni so'roq qilish paytida yashil rangga aylanadi. Qayta tiklashdan so'ng, killswitch_state "noto'g'ri" deb o'rnatiladi va asboblar panelidagi jurnallar bo'limida yozuv paydo bo'ladi (qiymat = 1).

poll_test_now_button.py korpus old panelidagi tugmachaning bosilishini kutmoqda. Tugmani faollashtirish orqali tarmoqli kengligi o'lchami qo'lda ishga tushiriladi. Dastur ishga tushirilganda (Raspberry Pi qayta ishga tushirilganda) RGB LED qizil yonadi.

post_restart_message.py asboblar panelining jurnal bo'limiga asl holatini tiklash kodini (qiymati = 3) yozadi. Bu tarmoqli kengligi monitorining qayta ishga tushirilganligini ko'rsatadi. Dastur boshlanganda RGB LED ko'k rangda yonadi.

test_LED.py va test_relay.py - bu oddiy skriptlar, ular RGB LED va o'rni apparat funktsiyasini sinab ko'rish uchun ishlatilishi mumkin.

epdconfig.py va epd2in9.py-Waveshare tomonidan taqdim etilgan elektron siyoh displeyi uchun qurilma drayveri.

Dasturlarga Ubidots boshqaruv paneliga kirishga ruxsat berish uchun siz individual belgilar va qurilmalar yoki o'zgaruvchilar nomlarini qo'shishingiz kerak (agar siz turli xil yozuvlardan foydalansangiz). Yuqoridagi rasmda ko'rsatilgandek bo'limni qidiring (XXXXXXXX ni belgingiz bilan almashtiring).

Boshqaruv panelini yaratish va asboblar panelini Python dasturiga qanday qo'shish bo'yicha keng qo'llanmalarni to'g'ridan -to'g'ri Ubidots sahifasida (https://help.ubidots.com/en/) yoki Google orqali topish mumkin.

6 -qadam: IOT boshqaruv paneli

IOT boshqaruv paneli
IOT boshqaruv paneli

Ubidots tomonidan boshqariladigan asboblar paneli (qarang: https://ubidots.com) quyida qisqacha tavsiflangan bir nechta sohalarni o'z ichiga oladi.

    1. Yuklanish va yuklanish tezligining vaqt ketma-ketligi. Har yarim soatda diagrammaga yangi qiymat kiritiladi.
    2. O'lchangan ping vaqtining vaqt yo'nalishi. Har yarim soatda diagrammada yangi qiymat kiritiladi.
    3. O'rtacha yuklab olish tezligining vaqt ketma -ketligi. O'rtacha qiymat 24 soat ichida hisoblanadi va diagramaga yoziladi.
    4. Jadvalda joriy o'lchov qiymatlari, shu jumladan vaqt tamg'asi.
    5. Internet orqali modemni qayta o'rnatish uchun masofadan boshqarish tugmasi. So'rov har 3 daqiqada sodir bo'ladi, ya'ni harakat bajarilgunga qadar biroz vaqt ketishi mumkin.
    6. Qayta tiklash sababini o'z ichiga olgan oxirgi sozlamalarni qayd qilish (masofadan turib ishga tushirish, kuchlanishni o'chirish yoki yo'qotish, minimal tarmoqli kengligidan pastga tushish)

Boshqaruv panelini yaratish va asboblar panelini Python dasturiga qanday qo'shish bo'yicha keng qo'llanmalarni to'g'ridan -to'g'ri Ubidots sahifasida (https://help.ubidots.com/en/) yoki Google orqali topish mumkin.

Tavsiya: