Mundarija:
Video: Internet tezligi o'lchagichi: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
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
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.
- IP -yo'riqnoma
- Maksimal yuklash tezligi
- Yuklab olishning maksimal tezligi
- Sizning WiFi ismingiz va parolingiz
- 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
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:
Internet tezligi o'lchagichi: 9 qadam (rasmlar bilan)
Internet tezligi o'lchagichi: Hindistonda to'liq blokirovka davom etar ekan, hamma narsa, shu jumladan pochta xizmatlari yopildi. Yangi PCB loyihalari yo'q, yangi komponentlar yo'q, hech narsa! Shunday qilib, zerikishni engish va o'zimni band qilish uchun, men o'zim yoqtirgan qismlardan nimadir yasashga qaror qildim
Yurak urish tezligi o'lchagichi yordamida yorug'likdan bezovtalanadigan qurilma: 18 qadam (rasmlar bilan)
Yurak urish tezligini o'lchash moslamasi yordamida yorug'likdan bezovtalanadigan qurilmadan nafas oling: Dunyo gavjum bo'lganda, hamma stressli muhitda. Kollej talabalari stress va xavotirlik xavfidan yuqori. Imtihonlar, ayniqsa, talabalar uchun yuqori stressli davrlar va nafas olish mashqlari bilan aqlli soatlar
Ishlaydigan RC avtomobil tezligi o'lchagichi: 4 qadam (rasmlar bilan)
Ishlaydigan RC avtomobil tezligi o'lchagichi: Men bu engil Land Rover RC -ning katta qismi sifatida yaratgan qisqa loyiha. Men asboblar panelida ishlaydigan tezlik o'lchagichi borligini o'ylardim, lekin men servo uni kesmasligini bilardim. Faqat bitta oqilona variant bor edi: d
DIY aylanish tezligi o'lchagichi: 6 qadam (rasmlar bilan)
DIY tsikli tezlik o'lchagichi: bu loyiha B.Tech -dagi MEM (Mashinasozlik muhandisligini o'lchash) loyihasini bajarayotganda xayolimga keldi. Bu g'oya velosiped g'ildiragining burchak tezligini o'lchashdan iborat. Shunday qilib, diametri va har doim matematik afsonani bilish
STM32 bilan aylanish tezligi o'lchagichi: 8 qadam
STM32 bilan RPM o'lchagichi: Garchi sotib olish juda qiyin bo'lsa -da (chunki u ko'plab internet -do'konlarda mavjud emas), men STM32 L432KC ni muhokama qilishni lozim topdim. Bu chip ULTRA LOW POWER bo'lgani uchun alohida mehrga loyiqdir. Biroq, STga ega bo'lmaganlar uchun