Spisu treści:
Wideo: Wskaźnik prędkości Internetu: 4 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
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
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.
- IP routera
- Maksymalna prędkość wysyłania
- Maksymalna prędkość pobierania
- Twoja nazwa Wi-Fi i hasło
- 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
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:
Rejestrator prędkości wiatru i promieniowania słonecznego: 3 kroki (ze zdjęciami)
Rejestrator prędkości wiatru i promieniowania słonecznego: Muszę rejestrować prędkość wiatru i moc promieniowania słonecznego (napromieniowanie), aby ocenić, ile energii można uzyskać za pomocą turbiny wiatrowej i/lub paneli słonecznych. Będę mierzyć przez rok, analizować dane, a następnie zaprojektuj system poza siecią
[15min] Zegar Weasleya / wskaźnik Who Is Home - na podstawie TR-064 (beta): 4 kroki (ze zdjęciami)
[15min] Zegar Weasleya / Wskaźnik kto jest w domu – na podstawie TR-064 (beta): AKTUALIZACJA: Zobacz krok 3. Długa historia (TL; DR poniżej): Jakiś czas temu napisałem mały skrypt bash na moim komputerze, który przeskanuj sieć w poszukiwaniu zarejestrowanych urządzeń i porównaj ich nazwy hostów z listą z powiązanymi nazwami. Za każdym razem, gdy urządzenie loguje się
Wskaźnik Halloween Baby: 4 kroki (ze zdjęciami)
Halloweenowy wskaźnik dziecka: Moja żona i ja staraliśmy się wymyślić, w co mogłaby się ubrać na Halloween. Ta sesja burzy mózgów odbyła się kilka nocy, zanim potrzebowała tego, aby nie trzeba mówić, że byłem trochę pospieszny. Wpadła na pomysł, by pokazać, jak daleko zaszła
Wskaźnik poziomu baterii: 4 kroki (ze zdjęciami)
Wskaźnik poziomu baterii: Jeśli, tak jak ja, masz aparat, na pewno masz też jakieś baterie, problem polega na tym, że nigdy nie wiesz, czy bateria jest pełna, czy pusta! więc zrobiłem przenośny moduł na nasadce baterii, aby daj mi przybliżony obraz pozostałej mocy
Ustaw swój wskaźnik laserowy „na miejscu”.: 3 kroki (ze zdjęciami)
Włącz punktowy wskaźnik laserowy: Sprawdź i dostosuj wyrównanie wskaźnika laserowego lub modułu. Jest to spin-off z innego „ibli”, który jest obecnie w budowie. Kupiłem zielony wskaźnik laserowy i rozebrałem „łatwe bity”, które w tym modelu były tylko soczewką ogniskującą