Мазмуну:

Bandwidth Monitor: 7 кадам (Сүрөттөр менен)
Bandwidth Monitor: 7 кадам (Сүрөттөр менен)

Video: Bandwidth Monitor: 7 кадам (Сүрөттөр менен)

Video: Bandwidth Monitor: 7 кадам (Сүрөттөр менен)
Video: Windows 7. Подключение к Интернету 2024, Ноябрь
Anonim
Bandwidth Monitor
Bandwidth Monitor
Bandwidth Monitor
Bandwidth Monitor
Bandwidth Monitor
Bandwidth Monitor

Мен көп учурда өзүмдүн провайдерим тарабынан кандай өткөрүү жөндөмдүүлүгү камсыздалганын сурап жатканымда (мен Интернетке туташуу үчүн LTE модемин колдоном), мен өткөрүү жөндөмдүүлүгүн көзөмөлдөө системасын ойлондум. Система компакт жана энергияны үнөмдөөчү болушу керек болгондуктан, мен борбордук компонент катары Raspberry Pi Zero тандадым. Raspberry WLAN аркылуу модемге туташкан, ошондуктан WLAN көйгөйлөрүн да аныктаса болот.

Жабдуулар

  • Raspberry Pi Zero WH
  • Waveshare электрондук сыя дисплейи (2.9inch-e-paper-module)
  • DC-DC алмаштыргыч (мис. DEBO DCDC 20W)
  • RGB LED (эски аппараттан алынган)
  • Баскыч
  • Которуу
  • Relais модулу (мис. 2 Way Relay модулу2 Way Relay модулу)
  • Эркек туташтыргычы + Аял туташтыргычы (экөө тең модемдин электр менен камсыздоочу сайгычынын өлчөмүнө туура келет)
  • 3D басылган корпус

1 -кадам: Өзгөчөлүктөр

Өзгөчөлүктөрү
Өзгөчөлүктөрү
Өзгөчөлүктөрү
Өзгөчөлүктөрү
Өзгөчөлүктөрү
Өзгөчөлүктөрү
  • Raspberry Pi Zero WLAN аркылуу туташат, жүктөө ылдамдыгын текшерет жана ар бир жарым саатта пинг өлчөөсүн аткарат. Өлчөө үчүн негиз катары speedtest.netтин командалык сап версиясы колдонулат.
  • Өткөрүү жөндөмүнүн жана пинг өлчөөнүн натыйжасы электрондук сыя дисплейде көрсөтүлөт. Өлчөө убактысы да көрсөтүлөт.
  • Эгерде жүктөө ылдамдыгы белгиленген чектен төмөн түшсө, реле модемди өчүрүп, кыска убакытка коет. Ошентип, модем түзмөктү өзгөртпөстөн баштапкы абалга келтирилет (электр менен камсыздоо үзгүлтүккө учурайт).
  • Түзмөктүн маңдайындагы баскыч кол менен өткөрүү жөндөмүн өлчөө үчүн жеткиликтүү.
  • Ченелген баалуулуктар Ubidots тактасында (IOT Portal) көрсөтүлөт. Обзордо сиз өлчөнгөн баалуулуктардын убакыт тарыхын жана акыркы абалга келтирүү себептерин көрө аласыз.
  • IOT порталында сиз модемди алыстан баштапкы абалга келтирүү үчүн баскычты таба аласыз.
  • Bandwidth монитору модемдин кубаттуулугун колдонот. Кошумча камсыздоонун кереги жок. Реле модемге электр энергиясын жеткирүүнү үзгүлтүккө учуратат - малина күйүк бойдон калууда.

2 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү

Биринчи сүрөттө сиз өткөрмө монитордун ички дизайнын көрө аласыз:

Негизги компоненттери болуп төмөнкүлөр саналат:

    1. Баскычты басыңыз
    2. E-ink Display
    3. Raspberry Pi Zero
    4. Реле модулу
    5. RGB LED + резисторлор (сиз колдонгон RGB LEDине жараша)
    6. Которуу
    7. DC-DC Converter
    8. Аял туташтыргычы

Экинчи сүрөттө зымдардын схемасы көрсөтүлгөн. Жеткирүү чыңалуусунун оң уюлу DC-DC чыңалуу алмаштыргычына которулат (роутердин 12В камсыздоо чыңалуусун Малинага 5Вга айландырат) жана реле аркылуу (нормалдуу туташкан пин аркылуу) кайра чыгаруу туташтыргычы. Ошентип, модемге өткөрүү жөндөмдүүлүгү монитору өчүрүлгөндө да кубат берилет.

Өткөрүү жөндөмүн өлчөө баскыч аркылуу кол менен башталышы мүмкүн. RGB LED ар кандай иштөө абалын элестетүү үчүн колдонулат.

Raspberry Pi менен электрондук сыя дисплейинин ортосундагы байланыш схемада көрсөтүлгөн эмес. Дисплейди үстөлгө жана пин-чыкка ылайык туташтырыңыз.

3 -кадам: 3D басып чыгаруу жана кууп чыгуу

3D басып чыгаруу жана кууп чыгуу
3D басып чыгаруу жана кууп чыгуу
3D басып чыгаруу жана кууп чыгуу
3D басып чыгаруу жана кууп чыгуу
3D басып чыгаруу жана кууп чыгуу
3D басып чыгаруу жана кууп чыгуу
3D басып чыгаруу жана кууп чыгуу
3D басып чыгаруу жана кууп чыгуу

Кап үчүн төмөнкү бөлүктөр талап кылынат (жогорудагы сүрөттү караңыз):

    1. төмөнкү бөлүгү
    2. жогорку бөлүгү
    3. алдыңкы
    4. кайра
    5. 4x орнотуу

Бардык бөлүктөрдү тирөөчсүз басып чыгарууга болот. Сиз ошондой эле Thingiverseдеги файлдарды жана башка дизайндарды таба аласыз:

Дисплей алдыңкы панелге тиркемелер жана эки жактуу скотч менен тиркелиши мүмкүн. Түймө которгуч жана ургаачы туташтыргычы арткы жана арткы панелге сайылган. Мен корпустун эки жарымын туташтыруу үчүн 3x20 мм бурамаларды колдондум. Алдыңкы жана арткы панелдердин оюктарындагы толеранттуулук салыштырмалуу тыгыз. Керек болсо, алдыңкы жана арткы панелдерди четинен тегиздөө керек (ички бетин бузбоо үчүн).

4 -кадам: Raspberry PI орнотуу

Raspberry PI орнотуу
Raspberry PI орнотуу
Raspberry PI орнотуу
Raspberry PI орнотуу

Бул орнотуу көрсөтмөсү ар кандай булактардан (e-Ink дисплей өндүрүүчүлөрү, …) бир нече орнотуу көрсөтмөлөрүн түзүүгө негизделген. Мен үчүн көрсөтмөлөр каалаган натыйжага алып келди. Мен Linux боюнча эксперт болбогондуктан, эч кандай оптимизация же окшош иш жасалган жок. Мен, албетте, жакшыраак жана эффективдүү чечимдер бар экенин билем.

Пиңизде Raspbian орнотулган деп ойлоп көрөлү (негизги операциялык тутумду орнотуу боюнча көптөгөн окуу куралдары бар) жана сизде дисплей (miniHDMI аркылуу), чычкан жана клавиатура туташкан. Ошондой эле роутерге же Интернетке туура орнотулган WLAN байланышы кабыл алынат. Башкача каралбаса, бардык орнотуу процедуралары терминалда аткарылат.

Алыскы рабочийди орнотуңуз (компьютерден PIге кирүү үчүн):

sudo apt-get update

sudo apt-get

xrdp орнотуу

же сиз дагы ssh аркылуу башсыз иштей аласыз (мис. https://desertbot.io/blog/headless-raspberry-pi-3-bplus-ssh-wifi-setup караңыз)

Сырсөздү өзгөртүү:

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

Speedtest орнотуу:

sudo

apt-get python-pip орнотуу

sudo pip орнотуу speedtest-cli

Орнотуу ийгиликтүү болгонун текшерүү үчүн Speedtest терминалда иштейт:

speedtest-cli

эгерде баары туура болсо, сиз жогорудагы биринчи сүрөттөгүдөй нерсени алышыңыз керек.

WiringPI орнотуу

sudo apt-get орнотуу git-core

git clone git: //git.drogon.net/wiringPi

cd wiringPi

./build

(ошондой эле караңыз

Альтернатива:

sudo apt-get wiringpi орнотуу

(караңыз

BCM2835 орнотуу

(караңыз

Bcm2835-1.60.tar.gz жүктөп алыңыз (же бар болсо жаңы версия)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./configure

жасоо

sudo текшерүү

sudo make install

Python сүрөт иштетүүчү китепканасын орнотуңуз

sudo apt-get python-Imaging орнотуу

Альтернатива:

sudo apt-get python-pil орнотуу

I2C функциясын иштетүү.

Raspberry Pi тактаңызды конфигурациялоо үчүн төмөнкү буйрукту аткарыңыз:

sudo raspi-config

I2C негизги драйверин баштоо үчүн Interface Options-> I2C -> ооба тандаңыз. Андан кийин конфигурация файлын өзгөртүү керек. Конфигурация файлын ачуу үчүн төмөнкү буйрукту аткарыңыз:

Sudo нано /ж.б. /модулдар

Конфигурация файлына төмөнкү эки сапты кошуңуз

i2c-bcm2708

i2c-dev

Ошондой эле караңыз

SPI функциясын иштетүү

Raspberry Pi тактаңызды конфигурациялоо үчүн төмөнкү буйрукту аткарыңыз:

sudo raspi-config

Interface Options-> SPI -> ооба, SPI негизги драйверин баштоо үчүн тандаңыз.

Кошумча шрифттерди орнотуңуз:

sudo apt-get ttf-mscorefonts-installer орнотуңуз

Ариптерди жүктөп алып, орнотуңуз (Roboto + Droid)

gksudo

pcmanfm

Файл башкаруучусун root артыкчылыктары менен баштоо үчүн жана truetype шрифттерин папкага/usr/share/font/truetype көчүрүү үчүн

Альтернатива:

Ариптерди WinSCP менен Жүктөөлөр папкасына көчүрүңүз (WinSCPди колдонуу үчүн ssh иштетилиши керек)

sudo cp -r/home/pi/Downloads/droid/usr/share/font/truetype

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

Шрифт папкасына кирүү үчүн сизге root артыкчылыктары керек. Балким, муну кылуунун жакшы жолдору бар (жогоруда айтылгандай, мен Linux боюнча эксперт эмесмин), бирок эки жол тең мен үчүн иштеген.

Python файлдары:

Filemanger аркылуу "bandwidth_monitor" жаңы папкасын түзүңүз

Бардык файлдарды каталог bandwidth_monitorго көчүрүү

Python файлдарын жана скриптин аткарылуучу кылыңыз

chmod +x *.py

chmod +x speedtest-cron.sh

Crontab конфигурациялоо

crontab -e

Crontab программанын аткарылышын пландаштыруу үчүн колдонулат, мис. ылдамдыгы 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 мүнөт өткөрмө өлчөө жүзөгө ашырылат
  • ар бир 3 мүнөттө алыскы абалга келтирүү баскычынын абалы (IOT панелинде) текшерилет
  • күнүнө бир жолу дисплейди жаңыртуу цикли башталат.

Программаларды кыскача сүрөттөө үчүн программалык камсыздоо бөлүмүн караңыз.

5 -кадам: Программалык камсыздоо

Программалык камсыздоо
Программалык камсыздоо

Программа бир нече файлдарга / программаларга бөлүнөт:

bandwidth_monitor_0_4.py - Crontab тарабынан ар бир жарым саатта чакырылган негизги программа. Ал өткөрүү жөндөмдүүлүгүн текшерет (speedtest.netтин буйрук сабынын версиясы аркылуу). Сыноо учурунда, RGB LED көк. Өткөрүү жөндөмү тандалган босогодон жогору болсо, мааниси электрондук сыя дисплейинде көрсөтүлөт (убакыт белгиси менен бирге) жана Ubidots тактасына экспорттолот. Эгерде өткөрмө чеги босогодон төмөн болсо, анда LED кызыл түскө айланат жана өлчөө бир аз кечигүүдөн кийин кайталанат. 3 терс аракеттен кийин реле активдештирилет жана ушинтип модемдин электр энергиясы үзгүлтүккө учурайт. Жөндөө коду (маани = 2) журнал бөлүмүнө жазылган.

poll_killswitch.py панелдеги логикалык өзгөрмөнүн абалын окуйт. Эгерде killswitch_state чын болсо, анда реле активдештирилет жана модемдин электр энергиясы үзгүлтүккө учурайт. RGB LED өлтүрүүчүгө добуш берүү учурунда жашыл түскө ээ болот. Кайра орнотуудан кийин killswitch_state "false" деп коюлат жана панелдин журнал бөлүмүндө жазуу пайда болот (маани = 1).

poll_test_now_button.py иштин алдыңкы панелиндеги баскычтын басылышын күтүүдө. Баскычты иштетүү менен, өткөрүү жөндөмдүүлүгүн өлчөө кол менен ишке киргизилет. Программа башталганда (Raspberry Pi кайра жүктөлгөндө) RGB светодиоду кызыл күйүп турат.

post_restart_message.py панелдин журнал бөлүмүнө баштапкы абалга келтирүү кодун (маани = 3) жазат. Бул өткөрүү жөндөмдүүлүгүнүн монитору кайра башталганын көрсөтөт. Программанын башталышында RGB светодиоду көк түстө күйөт.

test_LED.py жана test_relay.py - бул RGB светодиодунун жана реленин аппараттык функцияларын текшерүү үчүн колдонула турган жөнөкөй скрипттер.

epdconfig.py жана epd2in9.py Waveshare тарабынан берилген электрондук сыя дисплейи үчүн түзмөк драйвери.

Программаларга Ubidots тактасына кирүүгө уруксат берүү үчүн, сиз жеке токендериңизди жана түзмөгүңүздү же өзгөрмөлүү аттарды кошушуңуз керек (эгер сиз ар кандай белгилерди колдонсоңуз). Жогорудагы сүрөттө көрсөтүлгөндөй бөлүмдү издеңиз (XXXXXXXXти белгисиңиз менен алмаштырыңыз).

Куралдар тактасын куруу жана панелди Python программасына кантип интеграциялоо боюнча кеңири сабактарды Ubidots баракчасынан (https://help.ubidots.com/en/) же Google аркылуу табууга болот.

6 -кадам: IOT панели

IOT панели
IOT панели

Ubidots тарабынан жайгаштырылган тактасы (https://ubidots.com караңыз) төмөндө кыскача сүрөттөлгөн бир нече аймакты камтыйт.

    1. Убакыт ырааттуулугу жана жүктөө ылдамдыгы. Ар бир жарым саатта диаграммага жаңы маани киргизилет.
    2. Өлчөөчү пинг убактысынын убактысы. Ар бир жарым саатта диаграммага жаңы маани киргизилет.
    3. Орточо жүктөө ылдамдыгынын убакыт ырааты. 24 сааттан ашык орточо көрсөткүч эсептелген жана диаграммага жазылган.
    4. Учурдагы өлчөө баалуулуктарынын электрондук таблицасы, анын ичинде убакыт мөөрү.
    5. Интернет аркылуу модемди баштапкы абалга келтирүү үчүн алыстан башкаруу баскычы. Суроо ар бир 3 мүнөт сайын болот, башкача айтканда, аракет аткарылганга чейин бир аз убакыт кетиши мүмкүн.
    6. Баштапкы абалга келтирүү себебин камтыган акыркы калыбына келтирүүлөрдү каттоо (алыстан иштетүү, өчүрүү же чыңалуунун жоголушу, минималдуу өткөрүү жөндөмүнөн төмөн)

Куралдар тактасын куруу жана панелди Python программасына кантип интеграциялоо боюнча кеңири сабактарды Ubidots баракчасынан (https://help.ubidots.com/en/) же Google аркылуу табууга болот.

Сунушталууда: