Mündəricat:

İnternet Sürət Göstəricisi: 4 Adım (Şəkillərlə birlikdə)
İnternet Sürət Göstəricisi: 4 Adım (Şəkillərlə birlikdə)

Video: İnternet Sürət Göstəricisi: 4 Adım (Şəkillərlə birlikdə)

Video: İnternet Sürət Göstəricisi: 4 Adım (Şəkillərlə birlikdə)
Video: WhatsApp-ın bu hiyləsini bilirsən? 😎 2024, Iyul
Anonim
Image
Image
İnternet Sürət Göstəricisi
İnternet Sürət Göstəricisi
İnternet Sürət Göstəricisi
İnternet Sürət Göstəricisi

Baxış

Bu "İnternet Sürət Göstəricisi" sizə şəbəkə istifadənizə real vaxtda nəzarət edəcək. Bu məlumat bir çox ev yönlendiricisinin veb interfeysində mövcuddur. Ancaq buna daxil olmaq üçün indiki vəzifənizi dayandırıb onu axtarmalısınız.

Bu məlumatı hazırkı vəzifəmi kəsmədən görmək, onu qısa bir baxışda başa düşülən bir formatda göstərmək və məlumatı mümkün qədər çox yönləndirici ilə işləyəcək şəkildə əldə etmək istədim ki, başqaları da potensial olaraq da istifadə edin.

İşləri necə edir

Routerdən məlumat əldə etməyin yolu olaraq SNMP (Simple Network Management Protocol) qərarına gəldim. SNMP şəbəkə avadanlıqlarında geniş istifadə olunur və cihazınız standart olaraq DDWRT (açıq mənbə yönləndirici firmware) tərəfindən dəstəklənmirsə, SNMP -ni tətbiq etmək üçün istifadə edilə bilər.

Məlumatı başa düşülən bir şəkildə göstərmək üçün bir avtomobildən bir ölçü cihazı istifadə etdim. Avtomobil ölçü cihazları, diqqəti yayındırmadan və çaşqınlıq yaratmadan məlumat vermək üçün hazırlanmışdır, buna görə də sürücü gözlərini yolda saxlaya bilər. Bundan əlavə, bir az ətrafımda yatdım.

Bu mənim masamda olacağından, arxa işıq RGB də edəcəyimə qərar verdim, çünki kompüter aksesuarlarının hamısı RGB olmalıdır. Doğru?

Çətinliklər

Məndə olan Air-Core aktuatorundan istifadə edən ölçü cihazları. Bu layihədən əvvəl bunları eşitməmişdim.

Vikipediyadan: Hava nüvəsi ölçüsü, içi boş bir kameranı əhatə edən iki müstəqil, dik spiraldən ibarətdir. İğne mili, şafta daimi bir maqnitin yapışdırıldığı kameraya çıxır. Cərəyan dik bobinlərdən keçərkən, maqnit sahələri üst -üstə düşür və maqnit birləşmiş sahələrlə hizalanmaqda sərbəstdir.

Menecer konfiqurasiyasında SNMP -ni dəstəkləyən Arduino üçün kitabxana tapa bilmədim. SNMP -nin iki əsas forması var: agent və menecer. Agentlər sorğuya cavab verir və menecerlər agentlərə sorğu göndərirlər. 0neblock tərəfindən yaradılan Arduino_SNMP kitabxanasını dəyişdirərək menecer funksiyalarını işlədə bildim. Mən heç vaxt C ++ dilində bir Arduino -da LED -lərin yanıb -sönməsini proqramlaşdırmamışam, buna görə də SNMP kitabxanasında problemlər varsa mənə bildirin və bunları düzəltməyə çalışacağam, hal hazırda işləyir.

Əlavə olaraq, SNMP real vaxt görüntü üçün nəzərdə tutulmayıb. İstifadə statistikanı izləmək və kəsilmələri aşkar etmək üçündür. Bu səbəbdən, routerdəki məlumatlar yalnız hər 5 saniyədə bir yenilənir (cihazınız dəyişə bilər). Sürət testindəki rəqəmlə iynənin hərəkəti arasındakı gecikmənin səbəbi budur.

Addım 1: Alətlər və materiallar

Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Dövrə Dizaynı
Dövrə Dizaynı

3 tam H körpüsünə ehtiyacımız olacaq. İstifadə etdiyim modellər Dual TB6612FNGand Dual L298N -dir.

Hər bir Air-Core aktuatoru üçün 2 tam H-körpü tələb olunur, çünki rulonların müstəqil idarə olunmasına ehtiyac var.

İstifadə etdiyim ölçü cihazlarından birində bir diod və rezistor ilə yerə qısaldılmış bir bobin var. Bunun arxasında duran elmdən əmin deyiləm, amma bu, yalnız bir bobinlə işləyərək təxminən 90 dərəcə dönməsinə imkan verir.

ESP32 -ni gücləndirmək üçün seçdiyim L298N lövhəsinin bir hissəsi olan 12v -5v tənzimləyicisini istifadə edəcəyəm.

Bütün LED sxemləri isteğe bağlıdır, həmçinin JST bağlayıcıları. Telləri birbaşa ESP32 və motor sürücüsünə asanlıqla lehimləyə bilərsiniz.

Addım 3: Kod Dizaynı

Kod Quraşdırma

ESP32 lövhəsini istifadə etmək üçün Arduino qurmalıyıq. Burada sizi ESP32 Arduino quraşdırması ilə tanış edəcək yaxşı bir bələdçi var.

Burada yerləşən Arduino_SNMP kitabxanasına da ehtiyacınız olacaq.

Kodu konfiqurasiya etmək üçün bəzi məlumatlar toplamalısınız.

  1. Router IP
  2. Maksimum yükləmə sürəti
  3. Maksimum yükləmə sürəti
  4. WiFi adınız və şifrəniz
  5. Routerlərinizin WAN interfeysində "daxil" və "çıxmaq" üçün oktet sayını ehtiva edən OID

İstədiyimiz məlumat üçün standart OID (Object Identifiers) var. MIB-2 standartına görə istədiyimiz nömrələr:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Harada X, statistikanı əldə etmək istədiyiniz interfeysə verilən nömrədir. Mənim üçün bu rəqəm 3 -dür. Bunun sizin üçün doğru OID olduğunu təsdiqləməyin və istifadə etməli olduğunuz interfeys nömrəsini təyin etməyin bir yolu MIB Brauzer kimi bir vasitədir.

Maksimum sürəti əldə etmək üçün SpeedTest.net istifadə etdim. Mbps sürətinizə çatdıqdan sonra bu düsturdan istifadə edərək oktetlərə çevirməlisiniz.

Saniyədə səkkizlik = (Mbps * 1048576 sürət testinin nəticəsi) / 8

Kod funksiyası

Kod, yönlendiriciye bir SNMP almaq istəyi göndərir. Router sonra bir nömrə ilə cavab verir, nömrə göndərilən və ya alınan oktetlərin sayını təmsil edir. Eyni zamanda, Arduinonun işə salınmasından keçən millisaniyələrin sayını qeyd edirik.

Bu proses ən azı iki dəfə baş verdikdən sonra bu kodu istifadə edərək maksimum dəyərlərimizə əsaslanan istifadə faizini hesablaya bilərik

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

Riyaziyyat bu şəkildə parçalanır:

octetsDiff = snmp_result - Əvvəlki_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Yüzdə = (octetsDiff / MaxPosableOverTime) * 100

İndi şəbəkə istifadə faizinə sahib olduğumuz üçün onu ölçmə cihazına yazmalıyıq. Bunu 2 addımda edirik. Əvvəlcə updateDownloadGauge funksiyasından istifadə edirik. Bu funksiyada faizi ölçüdə radian mövqeyini təmsil edən bir rəqəmə çevirmək üçün "xəritə" dən istifadə edirik. Sonra bu nömrəni iynəni yeni mövqeyə keçirmək üçün setMeterPosition funksiyasına veririk.

Addım 4: Kassa Dizaynı

Kassa Dizaynı
Kassa Dizaynı
Kassa Dizaynı
Kassa Dizaynı
Kassa Dizaynı
Kassa Dizaynı

Hər şeyi ehtiva etmək üçün fusion360 -da bir korpus hazırladım və 3D çap etdim. Hazırladığım dizayn nisbətən sadədir. Komponentləri içəriyə bərkitmək üçün isti yapışqan istifadə etdim və ön qapaqla arxa qapaq arasında sıxışmaqla ölçü yeri tutulur. Kassanı yaratmaq üçün 3D çapdan istifadə etmək lazım deyil. Məsələn, ağacdan bir qutu düzəldə bilərsiniz və ya ölçü cihazlarının daxil olduğu hər şeyi orijinal vəziyyətinə qaytara bilərsiniz.

Mənim STL sənədlərim onlara baxmaq istəsəniz çox şeydə mövcuddur, amma istifadə etdiyim ölçü cihazlarını əldə etmədiyiniz təqdirdə sizin üçün işləyəcəklər.

Dava sənədləri:

Oxuduğunuz üçün təşəkkürlər. Hər hansı bir sualınız varsa mənə bildirin və cavablandırmaq üçün əlimdən gələni edəcəyəm.

Tövsiyə: