Spisu treści:

Wskaźnik prędkości Internetu: 4 kroki (ze zdjęciami)
Wskaźnik prędkości Internetu: 4 kroki (ze zdjęciami)

Wideo: Wskaźnik prędkości Internetu: 4 kroki (ze zdjęciami)

Wideo: Wskaźnik prędkości Internetu: 4 kroki (ze zdjęciami)
Wideo: Ograniczają prędkość Twojego internetu, blokują Ci dostęp do ███, a tryb incognito to ściema!😲🤯 2024, Listopad
Anonim
Image
Image
Wskaźnik prędkości Internetu
Wskaźnik prędkości Internetu
Wskaźnik prędkości Internetu
Wskaźnik prędkości Internetu

Przegląd

Ten „wskaźnik prędkości Internetu” zapewnia nadzór nad wykorzystaniem sieci w czasie niemal rzeczywistym. Informacje te są dostępne w interfejsie internetowym większości routerów domowych. Jednak uzyskanie do niego dostępu wymaga zatrzymania bieżącego zadania, aby je wyszukać.

Chciałem wyświetlić te informacje bez konieczności przerywania mojego bieżącego zadania, wyświetlić je w formacie zrozumiałym na pierwszy rzut oka i uzyskać informacje w sposób, który będzie działał z jak największą liczbą routerów, aby inni mogli potencjalnie też go używać.

Jak to robi?

Zdecydowałem się na SNMP (Simple Network Management Protocol) jako sposób na uzyskanie informacji z routera. SNMP jest szeroko stosowany w sprzęcie sieciowym i jeśli twoje urządzenie nie obsługuje go domyślnie, DDWRT (oprogramowanie układowe routera open source) może zostać użyte do wdrożenia SNMP.

Aby wyświetlić informacje w sposób łatwy do zrozumienia posłużyłem się manometrem samochodowym. Wskaźniki samochodowe są zaprojektowane tak, aby dostarczać informacji bez rozpraszania uwagi i dezorientacji, dzięki czemu kierowca może patrzeć na drogę. Poza tym miałem trochę leżenia.

Ponieważ to będzie na moim biurku, zdecydowałem, że zrobię również podświetlenie RGB, ponieważ wszystkie akcesoria komputerowe powinny być RGB. Dobrze?

Wyzwania

Wskaźniki, które miałem, używały siłownika Air-Core. Nigdy o nich nie słyszałem przed tym projektem.

Z Wikipedii: Miernik rdzenia powietrznego składa się z dwóch niezależnych, prostopadłych cewek otaczających pustą komorę. Wałek igły wystaje do komory, do której przymocowany jest magnes trwały. Kiedy prąd przepływa przez prostopadłe cewki, ich pola magnetyczne nakładają się, a magnes może swobodnie ustawiać się w linii z połączonymi polami.

Nie udało mi się znaleźć biblioteki dla Arduino obsługującej SNMP w konfiguracji menedżera. SNMP ma dwie główne formy, agenta i menedżera. Agenci odpowiadają na żądania, a menedżerowie wysyłają żądania do agentów. Udało mi się uruchomić funkcjonalność menedżera, modyfikując bibliotekę Arduino_SNMP stworzoną przez 0neblock. Nigdy nie programowałem w C ++ poza miganiem diod LED na Arduino, więc jeśli pojawią się problemy z biblioteką SNMP, daj mi znać, a postaram się je naprawić, na razie jednak działa.

Ponadto protokół SNMP nie jest przeznaczony do przeglądania w czasie rzeczywistym. Przeznaczeniem jest śledzenie statystyk i wykrywanie awarii. Z tego powodu informacje na routerze są aktualizowane tylko co około 5 sekund (Twoje urządzenie może się różnić). To jest przyczyną opóźnienia między liczbą na teście prędkości a ruchem igły.

Krok 1: Narzędzia i materiały

Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Projekt obwodu
Projekt obwodu

Będziemy potrzebować 3 pełne mostki H. Modele, których użyłem to Dual TB6612FNG i Dual L298N.

Każdy siłownik Air-Core wymaga 2 pełnych mostków H, ponieważ cewki muszą być sterowane niezależnie.

Jeden z używanych przeze mnie mierników ma jedną cewkę zwartą do masy za pomocą diody i rezystora. Nie jestem pewien nauki, która za tym stoi, ale dzięki temu może obracać się o około 90 stopni przy zasilaniu tylko jednej cewki.

Będę używał regulatora 12v do 5v, który jest częścią płyty L298N, którą wybrałem do zasilania ESP32.

Wszystkie obwody LED są opcjonalne, podobnie jak złącza JST. Możesz łatwo przylutować przewody bezpośrednio do ESP32 i sterownika silnika.

Krok 3: Projektowanie kodu

Konfiguracja kodu

Będziemy musieli skonfigurować Arduino, aby móc korzystać z płyty ESP32. Znajduje się tutaj dobry przewodnik, który przeprowadzi Cię przez konfigurację ESP32 Arduino.

Będziesz także potrzebować znajdującej się tutaj biblioteki Arduino_SNMP.

Aby skonfigurować kod, będziesz musiał zebrać pewne informacje.

  1. IP routera
  2. Maksymalna prędkość wysyłania
  3. Maksymalna prędkość pobierania
  4. Twoja nazwa Wi-Fi i hasło
  5. OID, który zawiera liczbę oktetów dla „wejścia” i „wyjścia” na interfejsie WAN twojego routera

Dla potrzebnych informacji istnieją standardowe identyfikatory OID (identyfikatory obiektów). Zgodnie ze standardem MIB-2 żądane przez nas liczby to:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Gdzie X to numer przypisany do interfejsu, z którego chcesz uzyskać statystyki. Dla mnie ta liczba to 3. Jednym ze sposobów, aby potwierdzić, że jest to właściwy dla Ciebie OID i zidentyfikować numer interfejsu, którego musisz użyć, jest użycie narzędzia takiego jak MIB Browser.

Aby uzyskać maksymalne prędkości, użyłem SpeedTest.net. po osiągnięciu prędkości w Mb/s będziesz musiał przekonwertować je na oktety za pomocą tej formuły.

Oktety na sekundę = (Wynik z testu prędkości w Mb/s * 1048576) / 8

Funkcja kodu

Kod wysyła żądanie pobrania SNMP do routera. Następnie router odpowiada liczbą, która reprezentuje liczbę wysłanych lub odebranych oktetów. Jednocześnie rejestrujemy liczbę milisekund, które minęły od uruchomienia Arduino.

Gdy ten proces nastąpi co najmniej dwa razy, możemy obliczyć procent użycia na podstawie naszych maksymalnych wartości za pomocą tego kodu

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

Matematyka wygląda następująco:

octetsDiff = snmp_result - Poprzedni_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Oktety_na_sekundę)/1000

Procent = (oktetyDiff / MaxPosableOverTime) * 100

Teraz, gdy mamy już procent wykorzystania sieci, wystarczy wpisać go do miernika. Robimy to w 2 krokach. Najpierw używamy funkcji updateDownloadGauge. W tej funkcji używamy „mapy”, aby przekonwertować procent na liczbę, która reprezentuje pozycję w radianach na mierniku. Następnie nadajemy tę liczbę funkcji setMeterPosition, aby przesunąć igłę do nowej pozycji.

Krok 4: Projekt obudowy

Projekt obudowy
Projekt obudowy
Projekt obudowy
Projekt obudowy
Projekt obudowy
Projekt obudowy

Aby pomieścić wszystko, zaprojektowałem obudowę w fusion360 i wydrukowałem ją w 3D. Projekt, który wykonałem, jest stosunkowo prosty. Użyłem gorącego kleju, aby przymocować elementy do środka, a miernik jest utrzymywany na miejscu przez ściśnięcie między przednią okładką a tylną okładką. Nie musisz używać druku 3D do stworzenia obudowy. Na przykład możesz zrobić skrzynkę z drewna lub możesz włożyć wszystko z powrotem do oryginalnej skrzynki, w której pojawiły się wskaźniki.

Moje pliki STL są dostępne na thingiverse, jeśli chcesz je obejrzeć, ale jest mało prawdopodobne, że będą dla ciebie działać, chyba że uzyskasz dokładnie te same wskaźniki, których użyłem.

Akta sprawy:

Dziękuje za przeczytanie. Daj mi znać, jeśli masz jakieś pytania, a postaram się odpowiedzieć.

Zalecana: