Թողունակության մոնիտոր `7 քայլ (նկարներով)
Թողունակության մոնիտոր `7 քայլ (նկարներով)
Anonim
Թողունակության մոնիտոր
Թողունակության մոնիտոր
Թողունակության մոնիտոր
Թողունակության մոնիտոր
Թողունակության մոնիտոր
Թողունակության մոնիտոր

Քանի որ ես հաճախ ինքս ինձ հարց էի տալիս, թե ինչ թողունակություն է ներկայումս տրամադրում իմ ISP- ն (ինտերնետ կապի համար օգտագործում եմ LTE մոդեմ), ես մտածեցի թողունակության մոնիտորինգի համակարգի մասին: Քանի որ համակարգը պետք է լինի կոմպակտ և էներգախնայող, ես ընտրեցի Raspberry Pi Zero- ն որպես կենտրոնական բաղադրիչ: Ազնվամորին միացված է մոդեմին WLAN- ի միջոցով, հետևաբար WLAN- ի խնդիրները նույնպես կարող են հայտնաբերվել:

Պարագաներ

  • Ազնվամորի Pi Zero WH
  • Waveshare էլեկտրոնային թանաքի էկրան (2.9 դյույմ-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 պորտալ): Ակնարկում կարող եք տեսնել նաև չափված արժեքների ժամանակային պատմությունը և վերջին վերակայումների պատճառները:
  • IOT պորտալում կարող եք գտնել նաև մոդեմը հեռակա կարգաբերելու կոճակ:
  • Bandwidth մոնիտորը օգտագործում է մոդեմի սնուցման աղբյուրը: Լրացուցիչ մատակարարման կարիք չկա: Ռելեները ընդհատում են հոսանքի մատակարարումը դեպի մոդեմ `ազնվամորին մնում է միացված:

Քայլ 2: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

Առաջին նկարում կարող եք տեսնել թողունակության մոնիտորի ներքին դիզայնը.

Հիմնական բաղադրիչներն են.

    1. Կտտացրեք կոճակը
    2. Էլեկտրոնային թանաքի էկրան
    3. Ազնվամորի Պի eroրո
    4. Ռելեի մոդուլ
    5. RGB LED + դիմադրիչներ (կախված ձեր օգտագործած RGB LED- ից)
    6. Անջատիչ
    7. DC-DC փոխարկիչ
    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: Ազնվամորի PI- ի կարգավորում

Ազնվամորի PI- ի կարգավորում
Ազնվամորի PI- ի կարգավորում
Ազնվամորի PI- ի կարգավորում
Ազնվամորի PI- ի կարգավորում

Կարգավորման այս ուղեցույցը հիմնված է տարբեր աղբյուրներից տեղադրման մի քանի հրահանգների (էլեկտրոնային թանաքի ցուցադրման արտադրողների,…) վրա: Ինձ համար հրահանգները բերեցին ցանկալի արդյունքի: Քանի որ ես Linux- ի փորձագետ չեմ, ոչ մի օպտիմալացում կամ նման բան չի արվել: Ես տեղյակ եմ, որ անշուշտ կան ավելի լավ և արդյունավետ լուծումներ:

Ենթադրենք, դուք արդեն ունեք Raspbian- ը ձեր Pi- ի վրա տեղադրված (կան բազմաթիվ ձեռնարկներ, թե ինչպես տեղադրել հիմնական օպերացիոն համակարգը), և դուք ունեք մի էկրան (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- ը տերմինալում.

speedtest-cli

եթե ամեն ինչ ճիշտ է, ապա պետք է ինչ -որ բան ստանաք, ինչպես վերևի առաջին նկարում:

Տեղադրեք wiringPI

sudo apt-get տեղադրել git-core

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

cd էլեկտրագծեր

./ կառուցել

(տես նաև

Այլընտրանքային:

sudo apt-get տեղադրել wiringpi

(տե՛ս

Տեղադրեք BCM2835

(տե՛ս

Ներբեռնեք bcm2835-1.60.tar.gz (կամ ավելի նոր տարբերակ, եթե առկա է)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./ կոնֆիգուրացիա

կատարել

sudo make check

sudo make install

Տեղադրեք Python պատկերապատման գրադարանը

sudo apt-get տեղադրել python-imaging

Այլընտրանքային:

sudo apt-get տեղադրել python-pil

Միացնել I2C գործառույթը:

Գործարկեք հետևյալ հրամանը ՝ ձեր Raspberry Pi խորհուրդը կազմաձևելու համար.

sudo raspi-config

Ընտրեք ինտերֆեյսի ընտրանքներ-> I2C -> այո, I2C հիմնական վարորդը գործարկելու համար: Այնուհետեւ դուք նույնպես պետք է փոփոխեք կազմաձեւման ֆայլը: Գործարկեք հետևյալ հրամանը ՝ կազմաձևման ֆայլը բացելու համար.

sudo nano /etc /մոդուլներ

Կազմաձևման ֆայլին ավելացրեք հետևյալ երկու տողերը

i2c-bcm2708

i2c-dev

Տես նաև

Միացնել SPI գործառույթը

Գործարկեք հետևյալ հրամանը ՝ ձեր Raspberry Pi խորհուրդը կազմաձևելու համար.

sudo raspi-config

Ընտրեք ինտերֆեյսի ընտրանքներ-> SPI -> այո, SPI հիմնական վարորդը գործարկելու համար:

Տեղադրեք լրացուցիչ տառատեսակներ.

sudo apt-get տեղադրել ttf-mscorefonts-installer

Ներբեռնեք և տեղադրեք տառատեսակներ (Roboto + Droid)

գկսուդո

pcmanfm

Սկսելու համար ֆայլերի կառավարիչ արմատային իրավունքներով և պատճենել truetype տառատեսակները թղթապանակում/usr/share/fonts/truetype

Այլընտրանքային:

WinSCP- ով պատճենեք տառատեսակները Ներլցումների թղթապանակին (WinSP- ն օգտագործելու համար ssh- ը պետք է միացված լինի)

sudo cp -r/home/pi/Ներլցումներ/droid/usr/share/fonts/truetype

sudo cp -r/home/pi/Ներլցումներ/roboto/usr/share/fonts/truetype

Տառատեսակի թղթապանակ մուտք գործելու համար ձեզ անհրաժեշտ են արմատային իրավունքներ: Գուցե կան ավելի լավ եղանակներ դա անելու համար (ինչպես նշվեց, ես Linux- ի մասնագետ չեմ), բայց երկու եղանակներն էլ ինձ մոտ աշխատում էին:

Python ֆայլեր

Օգտագործեք ֆայլերի կառավարիչը ՝ «bandwidth_monitor» նոր թղթապանակ ստեղծելու համար

Պատճենեք բոլոր ֆայլերը գրացուցակում bandwidth_monitor

Պիթոնի ֆայլերը և սցենարը կատարելի դարձնել

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 վահանակի վրա)
  • օրը մեկ անգամ սկսվում է ցուցադրման թարմացման ցիկլը:

Seeրագրերի համառոտ նկարագրության համար տես ծրագրաշարի բաժինը:

Քայլ 5: Softwareրագրակազմ

Ծրագրային ապահովում
Ծրագրային ապահովում

Softwareրագիրը բաժանված է մի քանի ֆայլերի / ծրագրերի.

bandwidth_monitor_0_4.py- ն այն հիմնական ծրագիրն է, որը յուրաքանչյուր կես ժամը մեկ կանչվում է Crontab- ի կողմից: Այն կատարում է թողունակության թեստ (speedtest.net հրամանի տողի տարբերակի միջոցով): Փորձարկման ընթացքում RGB LED- ը կապույտ է: Եթե թողունակությունը ընտրված շեմից բարձր է, ապա արժեքը ցուցադրվում է էլեկտրոնային թանաքի էկրանին (ժամանակացույցի հետ միասին) և արտահանվում է Ubidots- ի վահանակ: Եթե թողունակությունը շեմից ցածր է, LED- ը դառնում է կարմիր, և չափումը կրկնվում է կարճ ուշացումից հետո: 3 բացասական փորձից հետո ռելեն ակտիվանում է, և այդպիսով մոդեմի սնուցումն ընդհատվում է: Վերակայման ծածկագիրը (արժեքը = 2) գրված է մատյանների հատվածում:

poll_killswitch.py կարդում է բուլի փոփոխականի կարգավիճակը վահանակի վրա: Եթե killswitch_state- ը ճշմարիտ է, ապա ռելան ակտիվանում է, և մոդեմի սնուցման աղբյուրն ընդհատվում է: RGB LED- ը կանաչ է դառնում killswitch- ի քվեարկության ժամանակ: Վերականգնումից հետո killswitch_state- ը սահմանվում է false և ստեղծվում է վահանակի տեղեկամատյանում գրառում (արժեք = 1):

poll_test_now_button.py սպասում է գործի առջևի վահանակի սեղմիչին սեղմելուն: Կոճակն ակտիվացնելով ՝ թողունակության չափումը ձեռքով սկսվում է: Երբ ծրագիրը սկսվում է (Raspberry Pi- ի վերագործարկման ժամանակ) RGB LED- ը կարմիր թարթում է:

post_restart_message.py- ն գրում է վերակայման կոդը (արժեքը = 3) վահանակի տեղեկամատյանում: Սա ցույց է տալիս, որ թողունակության մոնիտորը վերագործարկվել է: Programրագրի մեկնարկի ժամանակ RGB LED լուսարձակը կապույտ է:

test_LED.py և test_relay.py պարզ սցենարներ են, որոնք կարող են օգտագործվել RGB LED- ի և ռելեի ապարատային գործառույթը ստուգելու համար:

epdconfig.py- ն և epd2in9.py- ն Waveshare- ի տրամադրած էլեկտրոնային թանաքի ցուցադրման սարքի վարորդն են:

Որպեսզի թույլ տաք ծրագրերին մուտք գործել Ubidots- ի վահանակ, դուք պետք է ավելացնեք ձեր անհատական նշաններն ու սարքի կամ փոփոխականների անունները (եթե օգտագործում եք տարբեր նշումներ): Որոնեք վերևում պատկերված հատվածի նման հատված (փոխարինեք XXXXXXXX- ը ձեր նշանով):

Գործիքային վահանակը կառուցելու և վահանակը Python ծրագրում ինտեգրելու մասին համապարփակ ձեռնարկներ կարելի է գտնել անմիջապես Ubidots էջում (https://help.ubidots.com/hy/) կամ Google- ի միջոցով:

Քայլ 6: IOT վահանակ

IOT վահանակ
IOT վահանակ

Ubidots- ի կողմից տեղադրված կառավարման վահանակը (տե՛ս https://ubidots.com) պարունակում է մի քանի ոլորտ, որոնք համառոտ նկարագրված են ստորև:

    1. Վերբեռնման և ներբեռնման արագության ժամանակային հաջորդականություն: Ամեն կես ժամը մեկ նոր արժեք է տեղադրվում գծապատկերում:
    2. Չափված պինգի ժամանակի ընթացքը: Ամեն կես ժամը մեկ դիագրամում տեղադրվում է նոր արժեք:
    3. Ներբեռնման միջին արագության ժամանակային հաջորդականություն: 24 ժամվա ընթացքում միջին արժեքը հաշվարկվում և գրվում է գծապատկերում:
    4. Ներկայիս չափման արժեքների աղյուսակների ներկայացում, ներառյալ ժամանակային կնիքը:
    5. Ինտերնետի միջոցով մոդեմի վերակայման հեռակառավարման կոճակ: Հարցումը տեղի է ունենում յուրաքանչյուր 3 րոպեն մեկ, այսինքն ՝ կարող է որոշ ժամանակ պահանջվել մինչև գործողության իրականացումը:
    6. Վերջին վերակայումների գրանցում, ներառյալ վերակայման պատճառը (հեռահար միացում, անջատում կամ լարման կորուստ, նվազագույն թողունակությունից ցածր)

Գործիքային վահանակը կառուցելու և վահանակը Python ծրագրում ինտեգրելու մասին համապարփակ ձեռնարկներ կարելի է գտնել անմիջապես Ubidots էջում (https://help.ubidots.com/hy/) կամ Google- ի միջոցով:

Խորհուրդ ենք տալիս: