Mündəricat:
Video: İnternet Sürət Göstəricisi: 4 Adım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
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
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.
- Router IP
- Maksimum yükləmə sürəti
- Maksimum yükləmə sürəti
- WiFi adınız və şifrəniz
- 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ı
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ə:
GPS istifadə edərək Arduino Velosiped Sürət Göstəricisi: 8 addım
GPS istifadə edərək Arduino Velosiped Sürət Göstəricisi: Bu təlimatda ST7735 ekranında GPS -dən cari Velosiped Sürətini göstərmək üçün Arduino və Visuinodan istifadə edəcəyik
Velosiped Sürət Göstəricisi: 10 Addım (Şəkillərlə birlikdə)
Velosiped Sürət Göstəricisi Ekranı: Bu nədir? Adından da göründüyü kimi, bu layihədə velosipediniz üçün həm sürətölçən, həm də odometrdən ibarət bir ekran yaratmağı öyrənəcəksiniz. Real vaxt sürəti və gediş məsafəsini göstərir. Bu layihənin ümumi dəyəri artıq
İşləyən RC Avtomobil Sürət Göstəricisi: 4 Addım (Şəkillərlə birlikdə)
İşləyən RC Avtomobil Sürətölçən: Bu, yüngül Land Roverin daha böyük bir RC quruluşunun bir hissəsi olaraq hazırladığım qısa bir layihədir. Tablosunda işləyən bir sürətölçən olmasını xəyal etdim, amma bir servonun onu kəsməyəcəyini bilirdim. Yalnız bir ağlabatan seçim var idi: d
Mobil Sürət Bump: 6 Adım (Şəkillərlə birlikdə)
Mobil Sürət Bump: "ağıllı" rdquo -da maşın öyrənmənin gəlişi ilə. mühitlər və avtonom robotlar, hər hərəkətimiz və hər ehtiyacımız tezliklə başqa bir ağıllı şey tərəfindən gözləniləcəkdir. Artıq maye olaraq diqqət yetirməməliyik və ya gözləməyəcəyik
Tamiya 72004 Qurd sürət qutusu sürət sensoru: 5 addım (şəkillərlə)
Tamiya 72004 Qurd Şanzıman Sürət Sensoru: Yaratdığım bir robot üçün Tamiya 72004 qurd sürət qutusunda motorun sürətini dəqiq idarə etmək istəyirdim. Bunu etmək üçün cari sürəti ölçmək üçün bir yolunuz olmalıdır. Bu layihə sürət sensorunun təkamülünü göstərir. Gördüyünüz kimi mən