Мазмұны:

Интернет жылдамдығын өлшейтін құрал: 4 қадам (суреттермен)
Интернет жылдамдығын өлшейтін құрал: 4 қадам (суреттермен)

Бейне: Интернет жылдамдығын өлшейтін құрал: 4 қадам (суреттермен)

Бейне: Интернет жылдамдығын өлшейтін құрал: 4 қадам (суреттермен)
Бейне: Басқа тышты деген осы 😡 2024, Қараша
Anonim
Image
Image
Интернет жылдамдығын өлшейтін құрал
Интернет жылдамдығын өлшейтін құрал
Интернет жылдамдығын өлшейтін құрал
Интернет жылдамдығын өлшейтін құрал

Шолу

Бұл «Интернет жылдамдығын өлшеуіш» сізге желінің қолданылуын нақты уақыт режимінде бақылауға мүмкіндік береді. Бұл ақпарат көптеген үй маршрутизаторларының веб -интерфейсінде бар. Алайда, оған қол жеткізу үшін сіз ағымдағы тапсырманы тоқтатуыңыз керек, оны іздеңіз.

Мен бұл ақпаратты ағымдағы тапсырманы үзбей -ақ көргім келді, оны тез қарап шығуға түсінікті форматта көрсеткім келді және ақпаратты мүмкіндігінше көптеген маршрутизаторлармен жұмыс істейтін етіп алғым келді, сондықтан басқалар оны да қолдануы мүмкін.

Ол заттарды қалай жасайды

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

Ақпаратты түсінікті етіп көрсету үшін мен көліктен өлшегішті қолдандым. Автокөлік өлшегіштері сізді алаңдатпай немесе шатастырмай ақпарат беруге арналған, сондықтан жүргізуші көзін жолда сақтай алады. Сонымен қатар менде біраз жатып қалдым.

Бұл менің үстелімде болатындықтан, мен RGB артқы жарығын жасаймын деп шештім, себебі компьютерлік керек -жарақтардың барлығы RGB болуы керек. Дұрыс па?

Қиындықтар

Менде бар өлшегіштер Air-Core жетегін қолданды. Мен бұл жобаға дейін бұл туралы естімеген едім.

Уикипедиядан: Ауа ядросының өлшегіші қуыс камераны қоршайтын екі тәуелсіз перпендикуляр катушкадан тұрады. Ине білігі камераға шығып тұрады, онда білікке тұрақты магнит бекітіледі. Перпендикуляр катушкалар арқылы ток өткенде, олардың магнит өрістері қосылады, ал магнит біріктірілген өрістермен еркін тураланады.

Менеджер конфигурациясында SNMP қолдайтын Arduino кітапханасын таба алмадым. SNMP екі негізгі формасы бар, агент және менеджер. Агенттер сұрауға жауап береді, ал менеджерлер агенттерге сұрау жібереді. Мен 0neblock құрған Arduino_SNMP кітапханасын өзгерту арқылы менеджердің жұмысына қол жеткізе алдым. Мен C ++ тілінде Arduino -да светодиодты жыпылықтаудан басқа ешқашан бағдарламалаған емеспін, сондықтан егер SNMP кітапханасында ақаулар болса, маған хабарлаңыз және мен оларды шешуге тырысамын, әзірге ол жұмыс істейді.

Сонымен қатар, SNMP нақты уақытта көруге арналмаған. Мақсаты статистиканы бақылауға және үзілістерді анықтауға арналған. Осыған байланысты маршрутизатордағы ақпарат әр 5 секунд сайын ғана жаңартылады (сіздің құрылғыңыз әр түрлі болуы мүмкін). Бұл жылдамдықты тексеретін сан мен иненің қозғалуы арасындағы кідірістің себебі.

1 -қадам: құралдар мен материалдар

Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Құралдар мен материалдар
Схема дизайны
Схема дизайны

Бізге 3 толық H көпір қажет болады. Мен қолданған модельдер - Dual TB6612FNGand Dual L298N.

Әрбір Air-Core жетегіне 2 толық H көпір қажет, себебі катушкалар тәуелсіз басқарылуы керек.

Мен қолданатын көрсеткіштердің бірінде диод пен резистормен жерге тұйықталған бір катушка бар. Мен оның ғылымына сенімді емеспін, бірақ бұл оны тек бір катушкамен 90 градусқа айналдыруға мүмкіндік береді.

Мен ESP32 -ді қосу үшін таңдаған L298N тақтасының бөлігі болып табылатын 12 -ден 5 -ке дейінгі реттегішті қолданамын.

Барлық жарықдиодты схемалар міндетті емес, сонымен қатар JST қосқыштары. Сіз сымдарды тікелей ESP32 мен мотор драйверіне оңай дәнекерлей аласыз.

3 -қадам: код дизайны

Кодты орнату

Біз ESP32 тақтасын пайдалану үшін Arduino -ны орнатуымыз керек. Бұл жерде сізге ESP32 Arduino -ны орнатуға көмектесетін жақсы нұсқаулық бар.

Сізге мұнда Arduino_SNMP кітапханасы қажет болады.

Кодты конфигурациялау үшін сізге кейбір ақпаратты жинау қажет болады.

  1. IP маршрутизаторы
  2. Жүктеудің максималды жылдамдығы
  3. Жүктеудің максималды жылдамдығы
  4. Сіздің WiFi атыңыз бен пароліңіз
  5. WAN интерфейсінің маршрутизаторларындағы «кіру» және «шығу» сегіздіктері бар OID

Біз қалаған ақпарат үшін стандартты OID (Object Identifiers) бар. MIB-2 стандартына сәйкес бізге қажет сандар:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Мұндағы X - статистиканы алғыңыз келетін интерфейске тағайындалған нөмір. Мен үшін бұл нөмір 3. Бұл сізге сәйкес OID екенін растаудың және интерфейстің қандай нөмірін қолдану керектігін анықтаудың бір жолы - MIB шолушысы сияқты құралды қолдану.

Максималды жылдамдыққа жету үшін мен SpeedTest.net қолдандым. Mbps жылдамдығына ие болғаннан кейін оларды осы формуланың көмегімен сегіздікке түрлендіру қажет болады.

Октеттер секундына = (Mbps * 1048576 жылдамдығын тексерудің нәтижесі) / 8

Код функциясы

Код маршрутизаторға SNMP алу сұрауын жібереді. Содан кейін маршрутизатор нөмірмен жауап береді, бұл нөмір жіберілген немесе алынған сегіздіктердің санын білдіреді. Сонымен қатар, біз Arduino іске қосылғаннан бері өткен миллисекундтардың санын жазамыз.

Бұл процесс кемінде екі рет болғаннан кейін біз осы кодты қолдана отырып, максималды мәндерімізге негізделген пайдалану пайызын есептей аламыз

процентDown = ((қалқымалы) (байтҚала - байтҚалақ)/(қалқу) (maxDown * ((миллис () - уақытша)/1000))) * 100;

Математика келесідей бөлінеді:

octetsDiff = snmp_result - Алдыңғы_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Пайыз = (octetsDiff / MaxPosableOverTime) * 100

Енді бізде желіні пайдалану пайызы бар, оны тек өлшеуішке жазу керек. Біз мұны 2 қадаммен жасаймыз. Алдымен updateDownloadGauge функциясын қолданамыз. Бұл функцияда пайызды өлшеуіштегі радиандық орынды білдіретін санға түрлендіру үшін «карта» қолданамыз. Содан кейін инені жаңа орынға жылжыту үшін сол санды setMeterPosition функциясына береміз.

4 -қадам: Корпустың дизайны

Корпустың дизайны
Корпустың дизайны
Корпустың дизайны
Корпустың дизайны
Корпустың дизайны
Корпустың дизайны

Барлығын қамту үшін мен fusion360 корпусын жасап, оны 3D басып шығардым. Мен жасаған дизайн салыстырмалы түрде қарапайым. Мен компоненттерді ішкі жағына бекіту үшін ыстық желімді қолдандым, ал өлшегіш алдыңғы қақпақ пен артқы қақпақ арасында қысылып қалады. Корпусты жасау үшін 3D басып шығаруды қолданудың қажеті жоқ. Мысалы, сіз ағаштан корпус жасай аласыз немесе өлшегіштер кірген түпнұсқа корпусына бәрін қоюға болады.

Менің STL файлдарым әр жерде қол жетімді, егер сіз оларды қарағыңыз келсе, бірақ мен қолданған дәл өлшегіштерді алмасаңыз, олар сіз үшін жұмыс істеуі екіталай.

Іс файлдары:

Оқығаныңыз үшін рахмет. Егер сізде сұрақтар туындаса, маған хабарлаңыз, мен жауап беруге тырысамын.

Ұсынылған: