Съдържание:
Видео: Интернет скоростомер: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Общ преглед
Този „Индикатор за скорост на интернет“ще ви даде почти в реално време надзор върху използването на вашата мрежа. Тази информация е достъпна в уеб интерфейса на повечето домашни рутери. Достъпът до него обаче изисква да спрете текущата си задача, за да я потърсите.
Исках да прегледам тази информация, без да се налага да прекъсвам текущата си задача, да я покажа във формат, разбираем само с един бърз поглед, и да получа информацията по начин, който да работи с възможно най -много рутери, така че другите да могат потенциално да го използвате и вие.
Как прави нещата
Реших да използвам 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, която се намира тук.
За да конфигурирате кода, ще трябва да съберете малко информация.
- IP на рутера
- Максимална скорост на качване
- Максимална скорост на изтегляне
- Вашето име и парола за WiFi
- 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, ако искате да ги разгледате, но е малко вероятно те да работят за вас, освен ако не получите точно същите измервателни уреди, които използвах.
Досиета на делата:
Благодаря за четенето. Кажете ми, ако имате въпроси и ще направя всичко възможно да отговоря.
Препоръчано:
Интернет скоростомер: 9 стъпки (със снимки)
Интернет скоростомер: С пълното блокиране в Индия всичко, включително пощенските услуги, беше затворено. Без нови проекти за печатни платки, без нови компоненти, нищо! Така че, за да преодолея скуката и да се занимавам, реших да направя нещо от частите, които преценявам
GPS скоростомер: 4 стъпки (със снимки)
GPS скоростомер: Моят служебен автомобил, който обикновено карам, има тенденция да има " малък " проблеми от време на време, скоростомерът пада до 0 км/ч при шофиране (след известно време се възобновява отново). Обикновено това не е голям проблем, тъй като, ако знаете как да шофирате кола
Работен RC автомобилен скоростомер: 4 стъпки (със снимки)
Работещ скоростомер RC Car: Това е кратък проект, който създадох като част от по -голяма RC конструкция на лек Land Rover. Реших, че си представям, че имам работещ скоростомер в арматурното табло, но знаех, че серво няма да го отреже. Имаше само един разумен вариант: д
Цикличен скоростомер на цикъл: 6 стъпки (със снимки)
Цикличен скоростомер за цикъл „Направи си сам“: Този проект ми дойде на ум, когато правех моя MEM (Mechanical Engineering Measurement) проект, предмет в моя B.tech. Идеята е да се измери ъгловата скорост на колелото на моя велосипед. Така познавайки диаметъра и математическата легенда през цялото време
Тахометър, направен от велосипеден скоростомер (циклокомпютър): 3 стъпки (със снимки)
Тахометър, направен от велосипеден скоростомер (циклокомпютър): Понякога просто трябва да знаете колко бързо се върти колело или вал или мотор. Измервателното устройство за скорост на въртене е тахометър. Но те са скъпи и не са лесни за намиране. Неговият евтин и лесен за правене такъв с велосипеден скоростомер (цикъл