Мазмуну:

Интернет спидометр: 9 кадам (Сүрөттөр менен)
Интернет спидометр: 9 кадам (Сүрөттөр менен)

Video: Интернет спидометр: 9 кадам (Сүрөттөр менен)

Video: Интернет спидометр: 9 кадам (Сүрөттөр менен)
Video: Шовхал стесняется ведущей 😂 2024, Ноябрь
Anonim
Image
Image
План
План

Индияда толугу менен кулпулоо жүрүп жаткандыктан, почта кызматтары, анын ичинде бардыгы жабылды. Жаңы PCB долбоорлору жок, жаңы компоненттер жок, эч нерсе жок! Ошентип, зеригүүнү жеңүү жана бошобоо үчүн, мен үйдө болгон бөлүктөрдөн бир нерсе жасоону чечтим. Мен үйүлгөн электроникадан издей баштадым жана эски, сынган аналогдук мультиметрди таптым. Мен андан "метр кыймылын" куткардым жана кандайдыр бир маалыматты көрсөтүүнү чечтим, бирок эмне экенин так билбедим. Биринчиден, мен COVID-19 статистикасын көрсөтүүнү ойлодум, бирок интернетте көптөгөн жакшы долбоорлор бар. Ошондой эле, маалыматтар бир нече сааттан кийин жаңыртылып турат жана метрдин кыймылсыз көрсөткүчү кызыксыз болмок. Мен ылдам өзгөргөн, ар бир секундада өзгөрүлүүчү маалыматтарды кааладым. Мен Инстаграмдан сунуштарды сурадым жана менин жолдоочуларымдын бири Интернет спидометр менен жооп берди. Бул кызыктуу угулду жана аны жасоону чечтим!

Бул Нускамада мен сизге WiFi роутеримден SNMPти колдонуу менен маалыматтарды кантип тартып алганымды жана эсептегичке жүктөө жана жүктөө ылдамдыгын кантип көрсөткөнүмдү көрсөтөм.

Кел, баштайлы

1 -кадам: План

Долбоорду баштоодон мурун адаттагыдай эле мен интернетте бир аз изилдөө жүргүздүм. Мен бул темага байланыштуу бир нече долбоорлорду таптым. Алар эки түрдүү болгон. WiFi сигналынын "күчүн" өлчөө менен интернет ылдамдыгын көрсөткөн. Мен тармактык эксперт эмесмин, бирок бул туура эмес угулду. Калгандары кечигүүнү өлчөп, ылдамдыкты жай, орто же ылдам деп бөлүштү. Кечигүү - бул суроо жөнөтүү менен жооп алуунун ортосундагы убакыт кечигүүсү, андыктан ал интернет ылдамдыгынын чыныгы өкүлү боло албайт. Биз муну тармактын жооп ылдамдыгы деп атасак болот! Андан кийин кээ бир маалыматтарды жүктөө үчүн керектүү убакытты өлчөгөн жана ошонун негизинде интернет ылдамдыгын эсептеген мыйзамдуу долбоорлор болгон.

Бирок бул проектте (Alistair тарабынан) мен Simple Network Management Protocol же SNMP жөнүндө билдим. SNMPди колдонуп, биз WiFi роутери менен байланышып, керектүү маалыматтарды андан түз ала алабыз. Оңой, туурабы? Чынында, жок! Анткени WiFi роутерлеринин ар кандай моделдери ар кандай орнотууларга ээ жана сиз акыры чыгарууну ала электе көптөгөн сыноолорго жана каталарга муктаж болосуз. Коркпоңуз. Мен SNMP жана алдыдагы кадамдарда туш болгон кыйынчылыктар жөнүндө билгендеримдин баарын кыскача түшүндүрөм.

Ошентип, план WiFi роутерине туташуу үчүн NodeMCU колдонуу. Бул акыркы өндүрүшкө жетүү кадамдары:

  • Маршрутизаторго керектүү маалыматтарды "сурап" жөнөтүңүз
  • Жоопту роутерден алыңыз
  • Жоопту талдап, андан керектүү маалыматтарды талдаңыз
  • "Чийки" маалыматтарды түшүнүктүү маалыматка айлантыңыз
  • Метр үчүн интернет ылдамдыгына пропорционалдуу чыңалуу жаратыңыз
  • Кайталоо

Мен эсептегичти башкаруу үчүн DAC же Digital to Analog Converter колдоном.

2 -кадам: Сизге керектүү нерселер

Сизге керектүү нерселер
Сизге керектүү нерселер
Сизге керектүү нерселер
Сизге керектүү нерселер
Сизге керектүү нерселер
Сизге керектүү нерселер

1x NodeMCU

1x аналогдук метр кыймылы

1x MPU4725 DAC

1x SPDT которгуч

1х 10к потенциометр

1x резистор

3-кадам: Толук масштабдагы Четтөө Токун эсептөө

Толук масштабдагы Четтөө Токун эсептөө
Толук масштабдагы Четтөө Токун эсептөө
Толук масштабдагы Четтөө Токун эсептөө
Толук масштабдагы Четтөө Токун эсептөө

Эскертүү: Чыныгы курулуш үчүн 7 -кадамга өтүңүз!

Эгерде сиз метрдин толук масштабдуу бурулуш агымын билсеңиз, бул кадамды өткөрүп жибериңиз. Менин эсептегичимде бул тууралуу эч нерсе айтылган эмес, ошондуктан эсептеп чыгууга туура келди. Бирок, адегенде мындай кыймылдын кантип иштээрин тез арада карап көрөлү. Ал магнит талаасында илинген катушкадан турат. Катушка аркылуу ток өткөндө, Фарадей мыйзамы боюнча, ал бир күчтү башынан өткөрөт. Катушка магнит талаасында эркин айланууга уруксат берилет, ошондой эле катушка бекитилген көрсөткүч да ошондой болот. Көрсөткүчтү "масштабдын аягында" кыймылга келтирүүчү токтун чоңдугу толук масштабдуу бурулуш ток деп аталат. Бул ошондой эле катушка аркылуу өтүшү керек болгон эң чоң ток.

Дагы көп нерселер болуп жатат, бирок бул биздин жасап жаткан иштерибиз үчүн жетиштүү. Бизде азыр кыймыл бар. Аны вольтметр катары катарына жогорку каршылык кошуу менен же ага параллель кичине каршылык кошуу менен амперметр катары колдонсо болот. Биз аны интернет ылдамдыгына пропорционалдуу чыңалууну көрсөтүү үчүн вольтметр катары колдонобуз. Ошентип, биз катар кошула турган каршылыкты эсептешибиз керек. Ал үчүн, биз адегенде толук масштабдуу бурулуш токту эсептеп чыгышыбыз керек.

  1. Жогорку каршылык маанисин тандаңыз (> 100k сыяктуу)
  2. Аны кыймыл менен катар туташтырып, идишти колдонуп, ага өзгөрүлмө чыңалууну колдонуңуз.
  3. Көрсөткүч масштабдын аягына жеткенге чейин чыңалууну акырындык менен жогорулатыңыз.
  4. Мультиметрди колдонуп, өтүп жаткан токту өлчөгүлө. Бул толук масштабдуу бурулуш агымы. (Мен үчүн = 150uA)

Биз 0ден VCCге чейинки чыңалуу диапазонуна ээ болгон DACти колдонобуз (NodeMCUнун айынан 3.3V). Бул 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 Request форматы сүрөттө көрсөтүлгөн. Арыз ар кандай бөлүктөрдөн турат. Мен сиз өзгөртө турган байттарды бөлүп көрсөттүм.

Сураныч, баары он алтылыкта экенин эске алыңыз.

SNMP билдирүүсү -Менимче, бардык билдирүүнүн узундугу 40 (боз түс), он алтылыкка которулганда 0x28 болот.

SNMP Community String - 'PUBLIC' мааниси он алтылыкта '70 75 62 6C 69 63 'деп жазылат, анын узундугу 6 (сары).

SNMP PDU түрү - Менин учурда, билдирүүнүн узундугу 27 (көк) б.а. 0x1B.

Varbind List Type - Менин учурда, билдирүүнүн узундугу 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). Get Operation тандап, Go дегенди басыңыз. Сиз OIDди анын баасы жана түрү менен бирге көрүшүңүз керек.

Менин учурда, билдирүүнүн узундугу 10 (кызыл) б.а. 0x0A. Маанини OID менен алмаштырыңыз. Бул учурда, '2B 06 01 02 01 02 02 01 01 10 10'

Дал ушул! Сиздин суроо билдирүүңүз даяр. Калган байттарды ошол бойдон сактаңыз.

Роутериңизде SNMPти күйгүзүү:

  • Демейки шлюз аркылуу WiFi роутериңиздин баракчасына кириңиз. Браузериңизге 192.168.1.1 терип, enter басыңыз. Демейки боюнча, колдонуучу аты менен сырсөз "админ" болушу керек.
  • Мен TP-LINK (TD-W8961N) роутерин колдонуп жатам. Бул роутер үчүн сиз Access Management> SNMP бөлүмүнө өтүп, "Активдештирилгенди" тандашыңыз керек.
  • GET Community: коомдук
  • Капкан хост: 0.0.0.0

5 -кадам: GET Response түшүнүү

GET Response түшүнүү
GET Response түшүнүү

Сиз бул кадамды өткөрүп жибере аласыз, бирок кандайдыр бир көйгөйдү чечүү керекпи же жокпу билүү жакшы.

Сиз кодду жүктөп, иштеткенден кийин, сериялык монитор аркылуу жоопту карай аласыз. Бул сүрөттө көрсөтүлгөндөй болушу керек. Сиз белгилеген бир нече байттарды издөөңүз керек.

0ден баштап, 15 -байт PDU түрүн айтат - 0xA2 бул GetResponse экенин билдирет.

48 -байт маалыматтын түрүн айтат - 0x41 маалыматтын түрү Counter экенин билдирет.

49 -байт маалыматтын узундугун билдирет - 0x04, маалыматтын 4 байт экенин билдирет.

Байт 50, 51, 52, 53 маалыматтарды камтыйт.

6 -кадам: Digital аналогдук Converter (DAC)

Digital to Analog Converter (DAC)
Digital to Analog Converter (DAC)

Микроконтроллерлер - аналогдук чыңалууну түз түшүнбөгөн санарип түзмөктөр. Мен кирүү катары өзгөрүлмө чыңалууга муктаж болгон аналогдук эсептегичти колдонуп жатам. Бирок микроконтроллер жөн эле HIGH (NodeMCU учурда 3.3V) жана LOW (0V) чыгара алат. Эми сиз эмне үчүн PWMди колдонбойсуз деп айта аласыз. Бул иштебейт, анткени эсептегич орточо маанини гана көрсөтөт.

Мен өзгөрүлмө чыңалуу алуу үчүн MCP4725 DAC колдонуп жатам. Бул 12-бит DAC, б.а. жөнөкөй тил менен айтканда, 0дөн 3.3Vга чейин 4096 (= 2^12) бөлүккө бөлөт. Чечим 3.3/4096 = 0.8056mV болот. Бул 0 0Вге, 1 0.8056мВге, 2 1.6112mV,….., 4095 3.3V туура келет дегенди билдирет.

Интернеттин ылдамдыгы '0 ден 7 mbps' '' to to 4095 'га чейин "картага түшүрүлөт", андан кийин бул ылдамдык интернет ылдамдыгына пропорционалдуу боло турган чыңалууну чыгаруу үчүн DACке берилет.

7 -кадам: Ассамблея

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

Байланыштар абдан жөнөкөй. Схема бул жерге тиркелген.

Таразаны иштеп чыгып, басып чыгардым. Жогорку бири жүктөө ылдамдыгы үчүн, ал эми төмөндүгү жүктөө ылдамдыгы үчүн. Мен жаңы таразаны эскинин үстүнө чаптадым.

Мен мультиметрден бардык эски нерселерди алып салдым жана андагы бардык нерселерди тыгып койдум. Бул тыгыз болгон. Мен жүктөө жана жүктөө ылдамдыгын тандоо үчүн колдонулган которуштургучту тиркөө үчүн алдыңкы тешикти бурушум керек болчу.

8 -кадам: коддоо убактысы

Коддоо убактысы
Коддоо убактысы
Коддоо убактысы
Коддоо убактысы
Коддоо убактысы
Коддоо убактысы

Код бул жерге тиркелген. Аны жүктөп алып, Arduino IDEде ачыңыз. Adafruitтен MCP4725 китепканасын орнотуңуз.

Жүктөп берүүдөн мурун:

  1. WiFi SSID жана Сырсөзүңүздү киргизиңиз
  2. Шкалада айтылган максималдуу жүктөө жана жүктөө ылдамдыгын киргизиңиз.
  3. Жүктөө үчүн пакеттерди жүктөө үчүн суроо массивине керектүү өзгөртүүлөрдү киргизиңиз.
  4. Жоопту сериялык монитордон көрүү үчүн 165 -сапка комментарий бербеңиз.

Жүктөөнү басыңыз!

9 -кадам: ырахат алыңыз

Аны күйгүзүңүз жана интернетте жүргөндө ийненин бийлеп жатканын көрүп ырахат алыңыз!

Аягына чейин карманганыңыз үчүн рахмат. Баарыңыздар бул долбоорду жакшы көрөсүздөр жана бүгүн жаңы нерсени үйрөндүңүздөр деп үмүттөнөм. Мага өзүңүз үчүн бирөө жасап берсеңиз мага кабарлаңыз. Дагы ушундай долбоорлор үчүн менин YouTube каналыма жазылыңыз.

Сунушталууда: