Съдържание:

Интернет скоростомер: 4 стъпки (със снимки)
Интернет скоростомер: 4 стъпки (със снимки)

Видео: Интернет скоростомер: 4 стъпки (със снимки)

Видео: Интернет скоростомер: 4 стъпки (със снимки)
Видео: РАЗПРОСТРАНЯВАНЕ НА WIFI НАБЛЮДЕНИЕ ЛИЦЕ 4G камера за наблюдение 2024, Ноември
Anonim
Image
Image
Интернет скоростомер
Интернет скоростомер
Интернет скоростомер
Интернет скоростомер

Общ преглед

Този „Индикатор за скорост на интернет“ще ви даде почти в реално време надзор върху използването на вашата мрежа. Тази информация е достъпна в уеб интерфейса на повечето домашни рутери. Достъпът до него обаче изисква да спрете текущата си задача, за да я потърсите.

Исках да прегледам тази информация, без да се налага да прекъсвам текущата си задача, да я покажа във формат, разбираем само с един бърз поглед, и да получа информацията по начин, който да работи с възможно най -много рутери, така че другите да могат потенциално да го използвате и вие.

Как прави нещата

Реших да използвам SNMP (Simple Network Management Protocol) като начин за получаване на информацията от рутера. SNMP се използва широко в мрежово оборудване и ако устройството ви не го поддържа по подразбиране DDWRT (фърмуер на рутера с отворен код) може да се използва за внедряване на SNMP.

За да покажа информацията по начин, който е лесен за разбиране, използвах габарит от кола. Автомобилните габарити са проектирани да ви дават информация, без да разсейват или объркват, така че водачът може да държи очите си на пътя. Освен това имах някакви легла наоколо.

Тъй като това щеше да е на бюрото ми, реших да направя и RGB подсветка, защото всички компютърни аксесоари трябва да са RGB. Нали?

Предизвикателства

Манометрите, които имах, използват задвижващ механизъм Air-Core. Никога не бях чувал за тези преди този проект.

От Уикипедия: Манометърът на въздушното ядро се състои от две независими, перпендикулярни намотки, обграждащи куха камера. Вал на иглата излиза в камерата, където постоянен магнит е прикрепен към вала. Когато токът протича през перпендикулярните намотки, техните магнитни полета се наслагват и магнитът е свободен да се подравнява с комбинираните полета.

Не успях да намеря библиотека за Arduino, която поддържа SNMP в конфигурацията на мениджъра. SNMP има две основни форми, агент и мениджър. Агентите отговарят на искането, а мениджърите изпращат искане до агентите. Успях да накарам функционалността на мениджъра да работи чрез промяна на библиотеката Arduino_SNMP, създадена от 0neblock. Никога не съм програмирал в C ++, освен да мига LED на Arduino, така че ако има проблеми с SNMP библиотеката, уведомете ме и ще се опитам да ги поправя, но засега работи.

Освен това, SNMP не е предназначен за гледане в реално време. Предвидената употреба е за проследяване на статистиката и откриване на прекъсвания. Поради това информацията на рутера се актуализира само на всеки 5 секунди (устройството ви може да варира). Това е причината за забавянето между числото при изпитването на скоростта и движението на иглата.

Стъпка 1: Инструменти и материали

Инструменти и материали
Инструменти и материали
Инструменти и материали
Инструменти и материали
Инструменти и материали
Инструменти и материали
Инструменти и материали
Инструменти и материали
Дизайн на вериги
Дизайн на вериги

Ще ни трябват 3 пълни H-моста. Моделите, които използвах, са Dual TB6612FNG и Dual L298N.

Всеки задвижващ механизъм Air-Core изисква 2 пълни H-моста, тъй като намотките трябва да се управляват независимо.

Един от измервателните уреди, които използвам, има една бобина, късо заземена с диод и резистор. Не съм сигурен в науката зад това, но това му позволява да се върти около 90 градуса само с една бобина.

Ще използвам регулатор 12v до 5v, който е част от платката L298N, която избрах за захранване на ESP32.

Всички LED схеми са по избор, както и JST конекторите. Можете лесно да запоявате проводниците директно към ESP32 и драйвера на двигателя.

Стъпка 3: Дизайн на кода

Настройка на кода

Ще трябва да настроим Arduino, за да можем да използваме платката ESP32. Тук има добро ръководство, което ще ви преведе през настройката на ESP32 Arduino.

Ще ви е необходима и библиотеката Arduino_SNMP, която се намира тук.

За да конфигурирате кода, ще трябва да съберете малко информация.

  1. IP на рутера
  2. Максимална скорост на качване
  3. Максимална скорост на изтегляне
  4. Вашето име и парола за WiFi
  5. OID, който съдържа октетовите числа за „вход“и „изход“на WAN интерфейса на вашите рутери

Съществуват стандартни 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 Browser.

За да получа максимални скорости използвах SpeedTest.net. след като имате скоростите си в Mbps, ще трябва да ги преобразувате в октети, използвайки тази формула.

Октети в секунда = (Резултат от скоростен тест в Mbps * 1048576) / 8

Кодова функция

Кодът изпраща SNMP get-заявка към рутера. След това рутерът отговаря с число, което представлява броя на изпратените или получените октети. В същото време записваме броя милисекунди, изминали от стартирането на Arduino.

След като този процес се е случил поне два пъти, можем да изчислим процента на използване въз основа на нашите максимални стойности, използвайки този код

percentDown = ((float) (byteDown - byteDownLast)/(float) (maxDown * ((millis () - timeLast)/1000))) * 100;

Математиката се разпада по следния начин:

octetsDiff = snmp_result - Предишен_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Процент = (октетиDiff / MaxPosableOverTime) * 100

Сега, когато имаме процента на използване на мрежата, просто трябва да го запишем в манометъра. Правим това в 2 стъпки. Първо използваме функцията updateDownloadGauge. В тази функция използваме „карта“, за да преобразуваме процента в число, което представлява радиано положение на манометъра. След това даваме този номер на функцията setMeterPosition, за да премести иглата в новото положение.

Стъпка 4: Дизайн на корпуса

Дизайн на корпуса
Дизайн на корпуса
Дизайн на корпуса
Дизайн на корпуса
Дизайн на корпуса
Дизайн на корпуса

За да съдържа всичко, проектирах корпус във fusion360 и го отпечатах 3D. Дизайнът, който направих, е сравнително прост. Използвах горещо лепило, за да закрепя компонентите отвътре и манометърът се държи на място, като се притисне между предния и задния капак. Не е необходимо да използвате 3D печат, за да създадете калъфа. Например, можете да направите калъф от дърво или да върнете всичко обратно в оригиналния калъф, в който са влезли измервателните уреди.

Моите STL файлове са достъпни на thingiverse, ако искате да ги разгледате, но е малко вероятно те да работят за вас, освен ако не получите точно същите измервателни уреди, които използвах.

Досиета на делата:

Благодаря за четенето. Кажете ми, ако имате въпроси и ще направя всичко възможно да отговоря.

Препоръчано: