Съдържание:

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

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

Видео: Интернет скоростомер: 9 стъпки (със снимки)
Видео: Как да споделим интернет от мобилно устройство 2024, Ноември
Anonim
Image
Image
Планът
Планът

С пълното блокиране в Индия всичко, включително пощенските услуги, беше затворено. Без нови проекти за печатни платки, без нови компоненти, нищо! Затова, за да преодолея скуката и да се занимавам, реших да направя нещо от частите, които вече имам вкъщи. Започнах да търся от купчина боклуци с електроника и намерих стар, счупен аналогов мултицет. Аз спасих „движението на метрите“от него и реших да покажа някаква информация, но не знаех точно какво. Първо мислех да покажа статистика за COVID-19, но вече има много по-добри проекти в интернет. Също така данните се актуализират след няколко часа и неподвижната стрелка на измервателния уред би била скучна. Исках данни, които се променят бързо, променят се всяка секунда. Поисках предложения в Instagram и един от моите последователи отговори с интернет скоростомер. Звучеше интересно и реших да го направя!

В тази инструкция ще ви покажа как взех данни от моя WiFi рутер с помощта на SNMP и показах скоростите на качване и изтегляне на глюкомера.

Да започваме

Стъпка 1: Планът

Както винаги, преди да започна с проекта, направих малко проучване в интернет. Открих няколко проекта, свързани с тази тема. Те бяха два вида. Този, който показва скоростта на интернет чрез измерване на „силата“на WiFi сигнала. Не съм експерт по мрежи, но това не звучеше правилно. Другите измерват латентността и категоризират скоростта като бавна, средна или бърза. Латентността е времето за забавяне между изпращането на заявката и получаването на отговора и затова не може да бъде действителното представяне на скоростта на интернет. Можем обаче да го наречем скорост на мрежовия отговор! След това имаше законни проекти, които измерваха времето, необходимо за изтегляне на някои данни и изчисляваха скоростта на интернет въз основа на това.

Но точно в този проект (от Алистър) научих за Прост протокол за управление на мрежата или SNMP. Използвайки SNMP, можем да комуникираме с WiFi рутера и да получим необходимите данни директно от него. Лесно, нали? Всъщност не! Тъй като различните модели WiFi рутери, които се използват, имат различни настройки и се нуждаят от много опити и грешки, преди най -накрая да получите изхода. Не се плашете. Ще обясня накратко всичко, което научих за SNMP и трудностите, с които се сблъсках в предстоящите стъпки.

Така че планът е да използвате NodeMCU за свързване към WiFi рутера. Ето стъпките, за да стигнете до крайния резултат:

  • Изпратете заявка до рутера, който „изисква“необходимите данни
  • Получете отговора от рутера
  • Анализирайте отговора и анализирайте необходимите данни от него
  • Преобразувайте „необработените“данни в разбираема информация
  • Генерирайте напрежение, пропорционално на скоростта на интернет за глюкомера
  • Повторете

Ще използвам DAC или цифрово -аналогов конвертор за управление на глюкомера.

Стъпка 2: Неща, от които ще се нуждаете

Неща, от които ще се нуждаете
Неща, от които ще се нуждаете
Неща, от които ще се нуждаете
Неща, от които ще се нуждаете
Неща, от които ще се нуждаете
Неща, от които ще се нуждаете

1x NodeMCU

1x движение на аналогов метър

1x MPU4725 DAC

1x SPDT превключвател

1x 10k потенциометър

1x резистор

Стъпка 3: Изчисляване на тока на отклонение в пълен мащаб

Изчисляване на тока на отклонение в пълен мащаб
Изчисляване на тока на отклонение в пълен мащаб
Изчисляване на тока на отклонение в пълен мащаб
Изчисляване на тока на отклонение в пълен мащаб

Забележка: Преминете към Стъпка 7 за действителната компилация!

Пропуснете тази стъпка, ако вече знаете пълния мащаб на отклонителен ток за вашия глюкомер. Моят глюкомер не го споменава, затова трябваше да изчисля. Но първо, нека бързо да видим как работи такова движение. Състои се от бобина, окачена в магнитно поле. Когато токът тече през бобината, според закона на Фарадей, той изпитва сила. Намотката се оставя да се върти свободно в магнитното поле, както и показалеца, който е прикрепен към бобината. Величината на тока, който кара показалеца да се движи в „края на скалата“, се нарича пълномащабен отклонителен ток. Това е и максималният ток, който трябва да се остави да тече през бобината.

Още много се случва, но това е достатъчно за това, което правим. Сега имаме движението. Може да се използва като волтметър чрез добавяне на високо съпротивление последователно с него или като амперметър чрез добавяне на малко съпротивление успоредно с него. Ще го използваме като волтметър за показване на напрежението, пропорционално на скоростта на интернет. Така че, трябва да изчислим съпротивлението, което трябва да се добави последователно. За това първо трябва да изчислим тока на отклонение в пълен мащаб.

  1. Изберете стойност на висока устойчивост (като> 100k)
  2. Свържете го последователно с движението и приложете променливо напрежение върху него с помощта на гърнето.
  3. Продължавайте бавно да увеличавате напрежението, докато показалецът достигне края на скалата.
  4. С помощта на мултицет измерете тока, който протича. Това е пълномащабният отклонителен ток. (I = 150uA в моя случай)

Използваме DAC, който има диапазон на изходното напрежение от 0 до VCC (3.3V поради NodeMCU). Това означава, че когато 3.3V се прилага към глюкомера, той трябва да сочи в края на скалата. Това може да се случи, когато токът на отклонение в пълен мащаб преминава през веригата, когато се прилага 3.3V. Използвайки закона на Ом, 3.3/(пълномащабен отклонителен ток) дава стойността на съпротивлението, което трябва да бъде вмъкнато последователно.

Стъпка 4: Създаване на SNMP GET заявка

Създаване на SNMP GET заявка
Създаване на SNMP GET заявка
Създаване на SNMP GET заявка
Създаване на SNMP GET заявка
Създаване на SNMP GET заявка
Създаване на SNMP GET заявка

Прост протокол за управление на мрежата (SNMP) е протокол за стандартен интернет за събиране и организиране на информация за управлявани устройства в IP мрежи и за промяна на тази информация, за да се промени поведението на устройството. Устройствата, които обикновено поддържат SNMP, включват кабелни модеми, рутери, комутатори, сървъри, работни станции, принтери и др. За тази компилация ще комуникираме с нашия WiFi рутер, използвайки SNMP, и ще получим необходимите данни.

Но първо трябва да изпратим заявка, известна като „GET Request“до рутера, в която се споменават подробностите за данните, които искаме. GET Форматът на заявката е показан на снимката. Искането се състои от различни части. Подчертах байтовете, които може да искате да промените.

Моля, обърнете внимание, че всичко е в шестнадесетично число.

SNMP съобщение -В моя случай дължината на цялото съобщение е 40 (сив цвят), което при преобразуване в шестнадесетично число е 0x28.

SNMP Community String - Стойността „PUBLIC“е написана в шестнадесетичен знак като „70 75 62 6C 69 63“, чиято дължина е 6 (жълто).

SNMP PDU Тип - В моя случай дължината на съобщението е 27 (синьо), т.е. 0x1B.

Тип списък на Varbind - В моя случай дължината на съобщението е 16 (зелено), т.е. 0x10.

Тип Varbind - В моя случай дължината на съобщението е 14 (розово), т.е. 0x0E.

Идентификатор на обект -

Както бе споменато по-рано, мрежовите устройства с SNMP (напр. Рутери, комутатори и т.н.) поддържат база данни за състоянието на системата, наличността и информацията за производителността като обекти, идентифицирани от OID. Трябва да идентифицирате OID на вашия рутер за пакети за качване и изтегляне. Това може да стане с помощта на безплатен MIB браузър като този.

Въведете Адрес като 192.168.1.1 и OID като.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) или.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Изберете Получаване на операция и щракнете върху Напред. Трябва да видите OID заедно с неговата стойност и тип.

В моя случай дължината на съобщението е 10 (червено), т.е. 0x0A. Заменете стойността с OID. В този случай „2B 06 01 02 01 02 02 01 10 10“

Това е! Вашето съобщение за заявка е готово. Оставете останалите байтове такива, каквито са.

Включване на SNMP на вашия рутер:

  • Влезте в страницата на вашия WiFi рутер през шлюза по подразбиране. Въведете 192.168.1.1 в браузъра си и натиснете enter. По подразбиране потребителското име и паролата трябва да са „администратор“.
  • Използвам рутер TP-LINK (TD-W8961N). За този рутер трябва да отидете до Управление на достъпа> SNMP и да изберете „Активиран“.
  • GET общност: обществена
  • Трап хост: 0.0.0.0

Стъпка 5: Разбиране на GET Response

Разбиране на GET Response
Разбиране на GET Response

Можете да пропуснете тази стъпка, но е добре да знаете дали трябва да отстраните неизправности.

След като качите кода и го стартирате, можете да разгледате отговора чрез серийния монитор. Трябва да изглежда така, както е показано на снимката. Трябва да потърсите няколко байта, които подчертах.

Започвайки от 0, 15 -ти байт казва на PDU Type - 0xA2 означава, че е GetResponse.

48 -ият байт казва типа на данните - 0x41 означава, че типът данни е Counter.

49 -ти байт казва дължината на данните - 0x04 означава, че данните са с дължина 4 байта.

Байт 50, 51, 52, 53 съдържа данните.

Стъпка 6: Цифро -аналогов конвертор (DAC)

Цифрово -аналогов преобразувател (DAC)
Цифрово -аналогов преобразувател (DAC)

Микроконтролерите са цифрови устройства, които не разбират директно аналоговите напрежения. Използвам аналогов метър, който се нуждае от променливо напрежение като вход. Но микроконтролерът може просто да извежда HIGH (3.3V в случай на NodeMCU) и LOW (0V). Сега може да кажете защо просто не използвате PWM. Това няма да работи, тъй като измервателният уред ще показва само средната стойност.

Използвам MCP4725 DAC, за да получа променливо напрежение. Това е 12-битов ЦАП, т.е. с прости думи, той ще раздели 0 до 3.3V на 4096 (= 2^12) части. Разделителната способност ще бъде 3.3/4096 = 0.8056mV. Това означава, че 0 съответства на 0V, 1 съответства на 0.8056mV, 2 съответства на 1.6112mV,….., 4095 съответства на 3.3V.

Скоростта на интернет ще бъде „картографирана“от „0 до 7 mbps“до „0 до 4095“и след това тази стойност ще бъде дадена на DAC за извеждане на напрежение, което ще бъде пропорционално на скоростта на интернет.

Стъпка 7: Сглобяването

Асамблеята
Асамблеята
Асамблеята
Асамблеята
Асамблеята
Асамблеята
Асамблеята
Асамблеята

Връзките са много прости. Схемата е приложена тук.

Проектирах и отпечатах везната. Горната е за скорост на изтегляне, а долната е за скорост на качване. Залепих новата везна върху старата.

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

Стъпка 8: Време за кодиране

Време за кодиране
Време за кодиране
Време за кодиране
Време за кодиране
Време за кодиране
Време за кодиране

Кодът е приложен тук. Изтеглете и го отворете в Arduino IDE. Инсталирайте библиотеката MCP4725 от Adafruit.

Преди да качите:

  1. Въведете своя SSID и парола за WiFi
  2. Въведете максималната скорост на качване и изтегляне, посочена в скалата.
  3. Направете необходимите промени в масива с заявки за изтегляне, както и качете пакети.
  4. Декомментирайте ред 165, за да видите отговора на серийния монитор.

Натиснете качване!

Стъпка 9: Насладете се

Включете го и се насладете да гледате как иглата танцува, докато сърфирате в интернет!

Благодаря, че се придържате към края. Надявам се, че всички обичате този проект и научихте нещо ново днес. Кажете ми, ако направите такъв за себе си. Абонирайте се за канала ми в YouTube за още такива проекти.

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