İçindekiler:

İnternet Hız Göstergesi: 4 Adım (Resimlerle)
İnternet Hız Göstergesi: 4 Adım (Resimlerle)

Video: İnternet Hız Göstergesi: 4 Adım (Resimlerle)

Video: İnternet Hız Göstergesi: 4 Adım (Resimlerle)
Video: Bir Ayarı Değiştirerek Daha Hızlı Bir İnternete Ulaşın 2024, Temmuz
Anonim
Image
Image
İnternet Hız Göstergesi
İnternet Hız Göstergesi
İnternet Hız Göstergesi
İnternet Hız Göstergesi

genel bakış

Bu "İnternet Hız Göstergesi" size ağ kullanımınız hakkında gerçek zamanlıya yakın bir denetim sağlayacaktır. Bu bilgi, çoğu ev yönlendiricisinin web arayüzünde mevcuttur. Ancak, ona erişmek, onu aramak için mevcut görevinizi durdurmanızı gerektirir.

Bu bilgiyi şu anki görevimi kesintiye uğratmadan görüntülemek, sadece hızlı bir bakışla anlaşılabilir bir formatta görüntülemek ve mümkün olduğunca çok sayıda yönlendirici ile çalışacak bir şekilde bilgileri almak istedim, böylece diğerleri bunu yapabilirdi. potansiyel olarak onu da kullanın.

İşleri nasıl yapıyor

Yönlendiriciden bilgi almanın yolu olarak SNMP'ye (Basit Ağ Yönetim Protokolü) karar verdim. SNMP, ağ ekipmanında yaygın olarak kullanılır ve cihazınız varsayılan olarak bunu desteklemiyorsa, SNMP'yi uygulamak için DDWRT (açık kaynaklı yönlendirici bellenimi) kullanılabilir.

Bilgileri anlaşılması kolay bir şekilde göstermek için bir arabadan bir gösterge kullandım. Otomotiv göstergeleri, sürücünün gözlerini yoldan ayırmaması için dikkatinizi dağıtmadan veya kafa karıştırmaksızın size bilgi vermek üzere tasarlanmıştır. Ayrıca, etrafta biraz uzanıyordum.

Bu masamda olacağından, bilgisayar aksesuarlarının hepsinin RGB olması gerektiği için arka ışığı da RGB yapmaya karar verdim. Doğru?

Zorluklar

Air-Core aktüatörü kullandığım göstergeler. Bu projeden önce bunları hiç duymamıştım.

Wikipedia'dan: Hava çekirdeği göstergesi, içi boş bir odayı çevreleyen iki bağımsız, dikey bobinden oluşur. Bir iğne şaftı, şafta kalıcı bir mıknatısın yapıştırıldığı haznenin içine doğru çıkıntı yapar. Dikey bobinlerden akım geçtiğinde, manyetik alanları üst üste biner ve mıknatıs, birleşik alanlarla hizalanmakta serbesttir.

Yönetici yapılandırmasında SNMP'yi destekleyen Arduino için bir kitaplık bulamadım. SNMP'nin aracı ve yönetici olmak üzere iki ana formu vardır. Aracılar isteğe yanıt verir ve yöneticiler aracılara istek gönderir. 0neblock tarafından oluşturulan Arduino_SNMP kitaplığını değiştirerek yönetici işlevselliğini çalıştırabildim. Arduino'da LED'lerin yanıp sönmesini sağlamak dışında hiçbir zaman C++ ile programlamadım, bu yüzden SNMP kitaplığı ile ilgili sorunlar varsa bana bildirin ve bunları düzeltmeye çalışacağım, şimdilik çalışıyor.

Ayrıca, SNMP gerçek zamanlı görüntüleme için tasarlanmamıştır. Amaçlanan kullanım, istatistikleri izlemek ve kesintileri tespit etmek içindir. Bu nedenle, yönlendiricideki bilgiler yalnızca yaklaşık her 5 saniyede bir güncellenir (cihazınız değişebilir). Hız testindeki sayı ile iğnenin hareket etmesi arasındaki gecikmenin nedeni budur.

Adım 1: Araçlar ve Malzemeler

Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Devre tasarımı
Devre tasarımı

3 tam H köprüsüne ihtiyacımız olacak. Kullandığım modeller Dual TB6612FNG ve Dual L298N.

Bobinlerin bağımsız olarak kontrol edilmesi gerektiğinden, her Air-Core aktüatörü 2 tam H köprüsü gerektirir.

Kullandığım göstergelerden biri, bir diyot ve dirençle toprağa kısa devre yapmış bir bobine sahip. Arkasındaki bilimden emin değilim ama bunu yapmak, yalnızca bir bobinle çalıştırıldığında yaklaşık 90 derece dönmesine izin veriyor.

ESP32'ye güç sağlamak için seçtiğim L298N kartının bir parçası olan 12v ila 5v regülatörünü kullanacağım.

JST konektörlerinin yanı sıra tüm LED devreleri isteğe bağlıdır. Kabloları doğrudan ESP32'ye ve motor sürücüsüne kolayca lehimleyebilirsiniz.

Adım 3: Kod Tasarımı

Kod Kurulumu

ESP32 kartını kullanabilmek için Arduino'yu kurmamız gerekecek. Burada ESP32 Arduino kurulumunda size yol gösterecek iyi bir rehber var.

Ayrıca burada bulunan Arduino_SNMP kütüphanesine de ihtiyacınız olacak.

Kodu yapılandırmak için bazı bilgiler toplamanız gerekecektir.

  1. yönlendirici IP'si
  2. Maksimum yükleme hızı
  3. Maksimum indirme hızı
  4. WiFi adınız ve şifreniz
  5. Yönlendiricinizin WAN arayüzünde "giriş" ve "çıkış" için sekizli sayıları içeren OID

İstediğimiz bilgiler için standart OID'ler (Object Identifiers) bulunmaktadır. MIB-2 standardına göre istediğimiz sayılar:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.1.2.2.1.10. X

X, istatistikleri almak istediğiniz arayüze atanan sayıdır. Benim için bu sayı 3'tür. Bunun sizin için doğru OID olduğunu doğrulamanın ve hangi arayüz numarasını kullanmanız gerektiğini belirlemenin bir yolu, MIB Tarayıcısı gibi bir araç kullanmaktır.

Maksimum hızları elde etmek için SpeedTest.net'i kullandım. Hızlarınızı Mbps olarak belirledikten sonra, bu formülü kullanarak onları sekizlilere dönüştürmeniz gerekecektir.

Sekizli/saniye = (Mbps cinsinden hız testi sonucu * 1048576) / 8

Kod İşlevi

Kod, yönlendiriciye bir SNMP alma isteği gönderir. Yönlendirici daha sonra bir sayı ile yanıt verir, sayı gönderilen veya alınan sekizli sayısını temsil eder. Aynı zamanda Arduino başladığından beri geçen milisaniye sayısını da kaydediyoruz.

Bu işlem en az iki kez gerçekleştiğinde, bu kodu kullanarak maksimum değerlerimize göre kullanım yüzdesini hesaplayabiliriz.

yüzdeDown = ((float)(byteDown - byteDownLast)/(float)(maxDown*((millis() - timeLast)/1000))) * 100;

Matematik şu şekilde bozulur:

oktetsDiff = snmp_result - Önceki_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Sekizli_saniye başına)/1000

Yüzde = (octetsDiff / MaxPosableOverTime) * 100

Artık ağ kullanımının yüzdesine sahip olduğumuza göre, bunu göstergeye yazmamız yeterli. Bunu 2 adımda yapıyoruz. İlk önce updateDownloadGauge fonksiyonunu kullanıyoruz. Bu fonksiyonda, yüzdeyi göstergede bir radyan konumunu temsil eden bir sayıya dönüştürmek için “harita” kullanıyoruz. Daha sonra iğneyi yeni konuma hareket ettirmek için setMeterPosition fonksiyonuna o sayıyı veriyoruz.

Adım 4: Kasa Tasarımı

Kasa Tasarımı
Kasa Tasarımı
Kasa Tasarımı
Kasa Tasarımı
Kasa Tasarımı
Kasa Tasarımı

Her şeyi içermesi için fusion360'ta bir muhafaza tasarladım ve onu 3B yazdırdım. Yaptığım tasarım nispeten basit. Bileşenleri içeriye tutturmak için sıcak tutkal kullandım ve gösterge ön kapak ile arka kapak arasına sıkıştırılarak yerinde tutuldu. Kasayı oluşturmak için 3D baskı kullanmanıza gerek yoktur. Örneğin, tahtadan bir kasa yapabilir veya her şeyi göstergelerin geldiği orijinal kasaya geri koyabilirsiniz.

Onlara bakmak isterseniz, STL dosyalarım Thingsiverse'de mevcuttur, ancak kullandığım ölçüleri tam olarak almadığınız sürece sizin için çalışması pek olası değildir.

Vaka dosyaları:

Okuduğunuz için teşekkürler. Herhangi bir sorunuz varsa bana bildirin, cevaplamak için elimden geleni yapacağım.

Önerilen: