Мазмұны:

Өткізу қабілеті мониторы: 7 қадам (суреттермен)
Өткізу қабілеті мониторы: 7 қадам (суреттермен)

Бейне: Өткізу қабілеті мониторы: 7 қадам (суреттермен)

Бейне: Өткізу қабілеті мониторы: 7 қадам (суреттермен)
Бейне: Бұл видеоны көрсеніз сіз өз атың ұмытып қаласын 2024, Шілде
Anonim
Өткізу қабілеті мониторы
Өткізу қабілеті мониторы
Өткізу қабілеті мониторы
Өткізу қабілеті мониторы
Өткізу қабілеті мониторы
Өткізу қабілеті мониторы

Мен өзімнен қазіргі уақытта Интернет -провайдерім қандай өткізу қабілеттілігін қамтамасыз ететінін сұрайтын кезде (мен Интернетке қосылу үшін LTE модемін қолданамын), мен өткізу қабілеттілігін бақылау жүйесі туралы ойладым. Жүйе ықшам және қуатты үнемдейтін болғандықтан, мен орталық компонент ретінде Raspberry Pi Zero таңдадым. Таңқурай модемге WLAN арқылы қосылған, сондықтан WLAN ақауларын да анықтауға болады.

Жабдықтар

  • Raspberry Pi Zero WH
  • Waveshare электрондық сия дисплейі (2,9 дюймдік қағаз-модуль)
  • DC-DC түрлендіргіші (мысалы, DEBO DCDC 20W)
  • RGB жарық диоды (ескі құрылғыдан шығарылған)
  • Батырмаға басу
  • Ауыстыру
  • Relais модулі (мысалы, 2 Way Relay модулі2 Way Relay модулі)
  • Еркек коннектор + аналық қосқыш (екеуі де модемнің қуат көзінің ашасына сәйкес келеді)
  • 3D басып шығарылған корпус

1 -қадам: ерекшеліктері

Мүмкіндіктер
Мүмкіндіктер
Мүмкіндіктер
Мүмкіндіктер
Мүмкіндіктер
Мүмкіндіктер
  • Raspberry Pi Zero WLAN арқылы қосылады, жүктеу мен жүктеу жылдамдығын тексереді және әр жарты сағат сайын пинг өлшеуін жүргізеді. Өлшеу үшін негіз ретінде speedtest.net пәрмен жолы нұсқасы қолданылады.
  • Өткізу ені мен пинг өлшеу нәтижесі электрондық сия дисплейінде көрсетіледі. Өлшеу уақыты да көрсетіледі.
  • Егер жүктеу жылдамдығы белгіленген шекті мәннен төмен болса, реле модемді қысқа уақытқа өшіреді және қосады. Модем осылайша құрылғыны өзгертпей қалпына келтіріледі (тек қуат көзі үзіледі).
  • Құрылғының алдыңғы жағында өткізу қабілеттілігін өлшеуді қолмен іске қосу үшін түйме бар.
  • Өлшенген мәндер Ubidots бақылау тақтасында (IOT порталы) көрсетіледі. Шолу кезінде сіз өлшенген мәндердің уақыт тарихын және соңғы қалпына келтірудің себептерін көре аласыз.
  • IOT порталында модемді қашықтан қалпына келтіру батырмасын табуға болады.
  • Bandwidth мониторы модемнің қуат көзін пайдаланады. Қосымша жеткізілім қажет емес. Реле қуат көзін модемге жіберуді тоқтатады - таңқурай қосулы күйінде қалады.

2 -қадам: Сымдарды жалғау

Сымдар
Сымдар
Сымдар
Сымдар
Сымдар
Сымдар
Сымдар
Сымдар

Бірінші суретте сіз өткізу қабілеті мониторының ішкі дизайнын көре аласыз:

Негізгі компоненттер:

    1. Батырмаға басу
    2. E-сия дисплейі
    3. Raspberry Pi Zero
    4. Реле модулі
    5. RGB LED + резисторлары (сіз қолданатын RGB светодиодына байланысты)
    6. Ауыстыру
    7. DC-DC түрлендіргіші
    8. Әйел қосқышы

Екінші суретте сымдардың схемасы көрсетілген. Қоректендіру кернеуінің оң полюсі тұрақты ток кернеуінің түрлендіргішіне (маршрутизатордың 12В кернеуін таңқурай үшін 5В-қа түрлендіретін) қосқыш арқылы және реле арқылы (қалыпты қосылған түйреуіш арқылы) қайта қосылады. шығыс қосқышы. Сонымен, өткізу қабілеттілігі мониторы өшірілгенде модемге қуат беріледі.

Өткізу жолағын өлшеуді түйме арқылы қолмен бастауға болады. Әр түрлі жұмыс күйін бейнелеу үшін RGB жарық диоды қолданылады.

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 маманы болмағандықтан, ешқандай оңтайландыру немесе ұқсас жасалған жоқ. Мен жақсы және тиімдірек шешімдер бар екенін білемін.

Сізде Pi -де Raspbian орнатылған (негізгі операциялық жүйені орнату бойынша көптеген оқулықтар бар) және сізде дисплей (miniHDMI арқылы), тінтуір мен пернетақта қосылған деп есептейік. Маршрутизаторға немесе Интернетке дұрыс орнатылған WLAN байланысы да қабылданады. Егер басқаша көрсетілмесе, барлық орнату процедуралары терминалда орындалады.

Қашықтағы жұмыс үстелін орнатыңыз (PI -ге компьютерден кіру үшін):

sudo apt-get жаңартуы

sudo apt-get

xrdp орнатыңыз

немесе сіз ssh арқылы бассыз жұмыс жасай аласыз (мысалы, қараңыз

Құпия сөзді өзгерту:

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

Speedtest орнатыңыз:

sudo

apt-get python-pip орнатыңыз

sudo pip орнату speedtest-cli

Терминалда Speedtest орнатудың сәтті болғанын тексеру үшін:

жылдамдық-клип

егер бәрі дұрыс болса, сіз жоғарыдағы бірінші суреттегідей нәрсені алуыңыз керек.

Сымды ПИ орнатыңыз

sudo apt-get install-core орнатыңыз

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

CD сымдарыPi

./құру

(https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/ қараңыз)

Балама:

sudo apt-get wiringpi орнатыңыз

(https://wiringpi.com/download-and-install/ қараңыз)

BCM2835 орнатыңыз

(қараңыз:

Bcm2835-1.60.tar.gz жүктеп алыңыз (немесе бар болса, жаңа нұсқасы)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

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

жасау

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 -> yes таңдаңыз. Содан кейін конфигурация файлын өзгерту қажет. Конфигурация файлын ашу үшін келесі пәрменді іске қосыңыз:

sudo nano /etc /модульдер

Келесі екі жолды конфигурация файлына қосыңыз

i2c-bcm2708

i2c-dev

Сондай -ақ қараңыз

SPI функциясын қосыңыз

Raspberry Pi тақтасын конфигурациялау үшін келесі пәрменді орындаңыз:

sudo raspi-config

SPI негізгі драйверін іске қосу үшін Interface Options-> SPI -> yes таңдаңыз.

Қосымша қаріптерді орнатыңыз:

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

Қаріптерді жүктеңіз және орнатыңыз (Roboto + Droid)

gksudo

pcmanfm

Файлдық менеджерді түбірлік артықшылықтармен іске қосу және truetype қаріптерін/usr/share/fonts/truetype қалтасына көшіру үшін

Балама:

Қаріптерді WinSCP көмегімен Жүктеулер қалтасына көшіріңіз (WinSCP пайдалану үшін ssh қосылуы керек)

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

sudo cp -r/home/pi/жүктеулер/roboto/usr/share/font/truetype

Қаріп қалтасына кіру үшін сізге root артықшылықтары қажет. Мүмкін, мұны істеудің жақсы әдістері бар (жоғарыда айтылғандай, мен Linux маманы емеспін), бірақ екі әдіс де мен үшін жұмыс істеді.

Python файлдары:

Жаңа «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 жарық диоды көк түске боялады. Егер өткізу қабілеттілігі таңдалған шекті мәннен жоғары болса, мән электрондық сия дисплейінде (уақыт белгісімен бірге) көрсетіледі және Ubidots бақылау тақтасына экспортталады. Егер өткізу қабілеттілігі шекті мәннен төмен болса, жарық диоды қызыл түске боялады және қысқа кідірістен кейін өлшеу қайталанады. 3 теріс әрекеттен кейін реле іске қосылады, осылайша модемнің қоректенуі үзіледі. Қалпына келтіру коды (мән = 2) журнал бөліміне жазылады.

poll_killswitch.py бақылау тақтасындағы логикалық айнымалының күйін оқиды. Егер killswitch_state рас болса, реле қосылады және модемнің қуат көзі үзіледі. RGB светодиоды өлтірушіге дауыс беру кезінде жасыл түске боялады. Қалпына келтіруден кейін killswitch_state жалған болып табылады және бақылау тақтасының журнал бөлімінде жазба жасалады (мән = 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/kz/) немесе Google арқылы табуға болады.

6 -қадам: IOT бақылау тақтасы

IOT бақылау тақтасы
IOT бақылау тақтасы

Ubidots орналастырған бақылау тақтасында (https://ubidots.com қараңыз) төменде қысқаша сипатталған бірнеше аймақ бар.

    1. Жоғары және жүктеу жылдамдығының уақыт реттілігі. Әр жарты сағат сайын диаграммаға жаңа мән енгізіледі.
    2. Өлшенген пинг уақытының уақыттық жүрісі. Әр жарты сағат сайын диаграммаға жаңа мән енгізіледі.
    3. Орташа жүктеу жылдамдығының уақыт реттілігі. 24 сағат ішінде орташа мән есептеледі және диаграммаға жазылады.
    4. Уақыт белгісін қосқандағы ағымдағы өлшеу мәндерінің электрондық кесте көрінісі.
    5. Модемді Интернет арқылы қалпына келтіруге арналған қашықтан басқару түймесі. Сұрау әр 3 минут сайын орын алады, яғни әрекет орындалғанша біраз уақыт кетуі мүмкін.
    6. Қалпына келтіру себебін қоса, соңғы қалпына келтірулерді тіркеу (қашықтан іске қосу, өшіру немесе кернеудің жоғалуы, ең төменгі өткізу жолағынан төмен түсу)

Бақылау тақтасын құру және бақылау тақтасын Python бағдарламасына біріктіру бойынша толық нұсқаулықтарды Ubidots бетінде (https://help.ubidots.com/kz/) немесе Google арқылы табуға болады.

Ұсынылған: