Innehållsförteckning:
Video: Internethastighetsmätare: 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Översikt
Denna "Internethastighetsmätare" ger dig nästan realtidsövervakning av din nätverksanvändning. Denna information är tillgänglig på webbgränssnittet för de flesta hemrouter. Men för att komma åt den måste du stoppa din nuvarande uppgift för att leta upp den.
Jag ville se denna information utan att behöva avbryta min nuvarande uppgift, visa den i ett format som var begripligt med en snabb blick och få informationen på ett sätt som skulle fungera med så många routrar som möjligt, så att andra kunde eventuellt använda den också.
Hur det gör sakerna
Jag bestämde mig för SNMP (Simple Network Management Protocol) som sättet att få informationen från routern. SNMP används i stor utsträckning i nätverksutrustning och om din enhet inte stöder det som standard kan DDWRT (open source router firmware) användas för att implementera SNMP.
För att visa informationen på ett lättförståeligt sätt använde jag en mätare från en bil. Fordonsmätare är utformade för att ge dig information utan att vara störande eller förvirrande, så att föraren kan hålla ögonen på vägen. Dessutom hade jag en del att ligga.
Eftersom detta skulle finnas på mitt skrivbord bestämde jag mig för att jag också skulle göra bakgrundsbelysningen RGB eftersom datortillbehör alla borde vara RGB. Höger?
Utmaningar
Mätarna som jag hade använde ett Air-Core-ställdon. Jag hade aldrig hört talas om dessa innan detta projekt.
Från Wikipedia: Luftkärnmätaren består av två oberoende, vinkelräta spolar som omger en ihålig kammare. En nålaxel sticker ut i kammaren, där en permanent magnet fästs på axeln. När strömmen flyter genom de vinkelräta spolarna överlagrar deras magnetfält och magneten är fri att anpassa sig till de kombinerade fälten.
Jag kunde inte hitta ett bibliotek för Arduino som stöder SNMP i chefskonfigurationen. SNMP har två huvudformer, agent och chef. Agenter svarar på förfrågan och chefer skickar förfrågan till agenter. Jag kunde få chefsfunktionaliteten att fungera genom att ändra Arduino_SNMP -biblioteket skapat av 0neblock. Jag har aldrig programmerat i C ++ annat än att få lysdioderna att blinka på en Arduino så om det finns problem med SNMP -biblioteket, meddela mig så ska jag försöka fixa dem, för nu fungerar det dock.
Dessutom är SNMP inte utformad för visning i realtid. Den avsedda användningen är för att spåra statistik och upptäcka avbrott. På grund av detta uppdateras informationen på routern bara var 5: e sekund (din enhet kan variera). Det är orsaken till fördröjningen mellan antalet på hastighetstestet och nålen som rör sig.
Steg 1: Verktyg och material
Vi behöver 3 fulla H-broar. Modellerna jag använde är Dual TB6612FNGand Dual L298N.
Varje Air-Core-ställdon kräver 2 fulla H-broar eftersom spolarna måste styras oberoende av varandra.
En av mätarna jag använder har en spole kortsluten till jord med en diod och ett motstånd. Jag är inte säker på vetenskapen bakom det, men gör det tillåter det att rotera cirka 90 grader med bara en spole driven.
Jag kommer att använda 12v till 5v regulatorn som är en del av L298N -kortet som jag valde för att driva ESP32.
Alla LED -kretsar är valfria, liksom JST -kontakterna. Du kan enkelt löda ledningarna direkt till ESP32 och motordrivrutinen.
Steg 3: Koddesign
Kodinställning
Vi måste konfigurera Arduino för att kunna använda ESP32 -kortet. Det finns en bra guide här som leder dig genom ESP32 Arduino -installationen.
Du behöver också Arduino_SNMP -biblioteket som finns här.
För att konfigurera koden måste du samla in lite information.
- Router -IP
- Max uppladdningshastighet
- Max nedladdningshastighet
- Ditt WiFi -namn och lösenord
- OID som innehåller oktetträkningarna för "in" och "out" på ditt routers WAN -gränssnitt
Det finns standard OID (Object Identifiers) för den information vi vill ha. Enligt MIB-2-standarden är siffrorna vi vill ha:
ifInOctets.1.3.6.1.2.1.2.2.1.16. X
ifOutOctets.1.3.6.1.2.1.2.2.1.10. X
Där X är numret tilldelat gränssnittet du vill hämta statistiken från. För mig är detta nummer 3. Ett sätt att bekräfta att detta är rätt OID för dig och att identifiera vilket gränssnittsnummer du behöver använda, är att använda ett verktyg som MIB Browser.
För att få maxhastigheter använde jag SpeedTest.net. när du har dina hastigheter i Mbps måste du konvertera dem till oktetter med denna formel.
Oktetter per sekund = (Resultat från hastighetstest i Mbps * 1048576) / 8
Kod Funktion
Koden skickar en SNMP-begäran till routern. Routern svarar sedan med ett nummer, numret representerar antalet oktetter som har skickats eller mottagits. Samtidigt registrerar vi antalet millisekunder som har gått sedan Arduino startade.
När denna process har skett minst två gånger kan vi beräkna procentandelen av användning baserat på våra maxvärden med denna kod
percentDown = ((float) (byteDown - byteDownLast)/(float) (maxDown * ((millis () - timeLast)/1000))) * 100;
Matematiken går sönder så här:
octetsDiff = snmp_result - Föregående_ snmp_result
timeFrame = currentTime - timeLast
MaxPosableOverTime = (timeFrame * Octets_per_second)/1000
Procent = (octetsDiff / MaxPosableOverTime) * 100
Nu när vi har andelen nätverksanvändning behöver vi bara skriva det till mätaren. Vi gör det i 2 steg. Först använder vi updateDownloadGauge -funktionen. I denna funktion använder vi "karta" för att konvertera procenttalet till ett tal som representerar en radianposition på mätaren. Sedan ger vi det numret till setMeterPosition -funktionen för att flytta nålen till den nya positionen.
Steg 4: Case Design
För att innehålla allt designade jag ett hölje i fusion360 och 3Dprintade det. Designen jag gjorde är relativt enkel. Jag använde varmt lim för att fästa komponenterna på insidan och mätaren hålls på plats genom att klämmas mellan frontluckan och bakstycket. Du behöver inte använda 3D -utskrift för att skapa fodralet. Till exempel kan du göra ett fodral av trä, eller så kan du lägga tillbaka allt i det ursprungliga fodralet som mätarna kom i.
Mina STL -filer är tillgängliga på thingiverse om du vill titta på dem men det är osannolikt att de fungerar för dig om du inte får exakt samma mätare som jag använde.
Ärenden:
Tack för att du läser. Låt mig veta om du har några frågor så ska jag göra mitt bästa för att svara.
Rekommenderad:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Internethastighetsmätare: 9 steg (med bilder)
Internethastighetsmätare: Med fullständig avstängning pågår i Indien har allt inklusive posttjänster stängts. Inga nya kretskortsprojekt, inga nya komponenter, ingenting! Så för att övervinna tristessen och för att hålla mig sysselsatt bestämde jag mig för att göra något från de delar som jag alr
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen