Mundarija:

Internet tezligi o'lchagichi: 4 qadam (rasmlar bilan)
Internet tezligi o'lchagichi: 4 qadam (rasmlar bilan)

Video: Internet tezligi o'lchagichi: 4 qadam (rasmlar bilan)

Video: Internet tezligi o'lchagichi: 4 qadam (rasmlar bilan)
Video: ROYAL elektr scooter CHOPPER CITYCOCO 3000w Electro-chopper citycoco citikoko 3000w elektr tsikli 2024, Noyabr
Anonim
Image
Image
Internet tezligi ko'rsatkichi
Internet tezligi ko'rsatkichi
Internet tezligi ko'rsatkichi
Internet tezligi ko'rsatkichi

Sharh

Ushbu "Internet tezligi o'lchagichi" sizga tarmoqdan foydalanishni real vaqtda nazorat qilish imkonini beradi. Bu ma'lumot ko'pchilik uy yo'riqchilarining veb -interfeysida mavjud. Biroq, unga kirish uchun siz hozirgi vazifangizni to'xtatib, uni ko'rib chiqishingiz kerak.

Men bu ma'lumotni hozirgi vazifamni to'xtatmasdan ko'rishni, uni bir qarashda tushunarli bo'lgan formatda ko'rsatishni va ma'lumotni iloji boricha ko'p marshrutizatorlar bilan ishlaydigan tarzda olishni xohlardim, shunda boshqalar undan ham foydalanish mumkin.

Bu narsalarni qanday qiladi

Men yo'riqchidan ma'lumot olish usuli sifatida SNMP (oddiy tarmoqni boshqarish protokoli) ni tanladim. SNMP tarmoq uskunalarida keng qo'llaniladi va agar sizning qurilmangiz uni sukut bo'yicha qo'llab -quvvatlamasa, SNMPni ishga tushirish uchun DDWRT (ochiq manbali yo'riqnoma dasturiy ta'minoti) dan foydalanish mumkin.

Ma'lumotni tushunarli qilib ko'rsatish uchun men mashinadan o'lchagichdan foydalandim. Avtomobil o'lchagichlari sizni chalg'itmasdan va chalg'itmasdan ma'lumot berishga mo'ljallangan, shuning uchun haydovchi ko'zlarini yo'lda saqlay oladi. Bundan tashqari, men biroz yotib oldim.

Bu mening stolimda bo'lgani uchun, men ham orqa yorug'lik RGB -ni yaratishga qaror qildim, chunki kompyuter aksessuarlari hammasi RGB bo'lishi kerak. To'g'ri?

Qiyinchiliklar

Menda mavjud bo'lgan o'lchagichlar Air-Core aktuatoridan foydalangan. Men bu loyihadan oldin bu haqda eshitmagan edim.

Vikipediyadan: Havo yadrosi o'lchagichi bo'sh kamerani o'rab turgan ikkita mustaqil perpendikulyar rulondan iborat. Igna o'qi kameraga chiqib turadi, u erda milga doimiy magnit o'rnatilgan. Qachonki tok perpendikulyar sariqlardan o'tib ketsa, ularning magnit maydonlari bir -birining ustiga chiqadi va magnit birlashgan maydonlar bilan erkin hizalanadi.

Men menejer konfiguratsiyasida SNMP -ni qo'llab -quvvatlaydigan Arduino uchun kutubxona topa olmadim. SNMP ikkita asosiy shaklga ega: agent va menejer. Agentlar so'rovga javob berishadi va menejerlar agentlarga so'rov yuborishadi. Men 0neblock tomonidan yaratilgan Arduino_SNMP kutubxonasini o'zgartirib, menejer funksiyasini ishga tushirdim. Men hech qachon C ++ da Arduino -da LEDni yondirishdan boshqa dastur qilmaganman, shuning uchun agar SNMP kutubxonasida muammolar bo'lsa, menga xabar bering va men ularni tuzatishga harakat qilaman, hozircha u ishlamoqda.

Bundan tashqari, SNMP real vaqtda ko'rish uchun mo'ljallanmagan. Maqsad statistikani kuzatish va uzilishlarni aniqlash uchun mo'ljallangan. Shu sababli, yo'riqnoma haqidagi ma'lumotlar har 5 soniyada yangilanadi (qurilmangiz o'zgarishi mumkin). Tezlik testidagi raqam va ignaning harakatlanishi o'rtasidagi kechikishning sababi shu.

1 -qadam: asboblar va materiallar

Asboblar va materiallar
Asboblar va materiallar
Asboblar va materiallar
Asboblar va materiallar
Asboblar va materiallar
Asboblar va materiallar
Asboblar va materiallar
Asboblar va materiallar
O'chirish dizayni
O'chirish dizayni

Bizga 3 ta to'liq H-ko'prigi kerak bo'ladi. Men ishlatgan modellar Dual TB6612FNGand Dual L298N.

Har bir Air-Core aktuatoriga 2 ta to'liq H-ko'prigi kerak, chunki rulonlarni mustaqil boshqarish kerak.

Men foydalanadigan o'lchagichlardan birida diodli va rezistorli erga qisqa tutashgan bitta lasan bor. Men buning ortida turgan fanga ishonchim komil emas, lekin bu uning faqat bitta rulon bilan ishlaydigan 90 gradus atrofida aylanishiga imkon beradi.

Men ESP32 -ni yoqish uchun tanlagan L298N platasining bir qismi bo'lgan 12v dan 5vgacha regulyatordan foydalanaman.

Barcha LED sxemalari ixtiyoriy, shuningdek JST ulagichlari. Siz simlarni to'g'ridan -to'g'ri ESP32 va motor haydovchisiga lehimlashingiz mumkin.

3 -qadam: Kodni loyihalash

Kodni sozlash

ESP32 kartasini ishlatish uchun biz Arduino -ni sozlashimiz kerak. Bu erda sizga ESP32 Arduino -ni sozlash bo'yicha ko'rsatma beradigan yaxshi qo'llanma mavjud.

Bu erda joylashgan Arduino_SNMP kutubxonasi ham sizga kerak bo'ladi.

Kodni sozlash uchun siz ba'zi ma'lumotlarni to'plashingiz kerak bo'ladi.

  1. IP -yo'riqnoma
  2. Maksimal yuklash tezligi
  3. Yuklab olishning maksimal tezligi
  4. Sizning WiFi ismingiz va parolingiz
  5. Router WAN interfeysida "kirish" va "chiqish" oktetlarini o'z ichiga olgan OID

Biz xohlagan ma'lumot uchun standart OID (Ob'ekt identifikatorlari) mavjud. MIB-2 standartiga muvofiq biz xohlagan raqamlar:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Bu erda X - statistikani olishni istagan interfeysga berilgan raqam. Men uchun bu raqam 3. Bu siz uchun to'g'ri OID ekanligini tasdiqlash va qaysi interfeys raqamidan foydalanish kerakligini aniqlashning bir usuli - MIB brauzeri kabi vositadan foydalanish.

Maksimal tezlikni olish uchun SpeedTest.net dan foydalanardim. Mbit / s tezligida siz ushbu formuladan foydalanib ularni oktetlarga aylantirishingiz kerak bo'ladi.

Sekundiga sekundlar = (Mbps * 1048576 da tezlikni tekshirish natijasi) / 8

Kod funktsiyasi

Kod yo'riqchiga SNMP olish so'rovini yuboradi. Keyin yo'riqnoma raqam bilan javob beradi, bu raqam yuborilgan yoki qabul qilingan sekizliklar sonini bildiradi. Shu bilan birga, biz Arduino ishga tushganidan beri o'tgan millisekundlar sonini qayd qilamiz.

Bu jarayon kamida ikki marta sodir bo'lganidan so'ng, biz ushbu kod yordamida maksimal qiymatlarimizga asoslanib foydalanish foizini hisoblashimiz mumkin

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

Matematika quyidagicha buziladi:

octetsDiff = snmp_result - Oldingi_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Foiz = (octetsDiff / MaxPosableOverTime) * 100

Endi bizda tarmoqdan foydalanish foizi bor, biz uni o'lchagichga yozishimiz kerak. Biz buni 2 bosqichda qilamiz. Avval biz updateDownloadGauge funktsiyasidan foydalanamiz. Bu funksiyada biz foizni o'lchagichdagi radian pozitsiyasini ifodalovchi raqamga aylantirish uchun "xarita" dan foydalanamiz. Keyin biz ignani yangi holatiga o'tkazish uchun setMeterPosition funktsiyasiga bu raqamni beramiz.

4 -qadam: Koson dizayni

Koson dizayni
Koson dizayni
Koson dizayni
Koson dizayni
Koson dizayni
Koson dizayni

Hamma narsani o'z ichiga olish uchun men fusion360 -da korpus yaratdim va uni 3D chop etdim. Men qilgan dizayn nisbatan sodda. Men komponentlarni ichkariga mahkamlash uchun issiq elim ishlatardim va o'lchagich old qopqoq bilan orqa qopqoq orasiga qisilib ushlab turiladi. Koson yaratish uchun 3D bosib chiqarishdan foydalanish shart emas. Masalan, siz yog'ochdan sumka yasashingiz mumkin, yoki o'lchagichlar kelgan hamma narsani asl holatiga qaytarishingiz mumkin.

Mening STL fayllarim har xil joyda mavjud, agar siz ularga qarashni xohlasangiz, lekin men ishlatgan o'lchagichlarni olmaguningizcha ular siz uchun ishlamasligi mumkin.

Ish fayllari:

O'qiganingiz uchun tashakkur. Agar sizda biron bir savol bo'lsa, menga xabar bering va men javob berish uchun qo'limdan kelganicha harakat qilaman.

Tavsiya: