Inhoudsopgave:
Video: Internetsnelheidsmeter: 4 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Overzicht
Deze "Internetsnelheidsmeter" geeft u bijna realtime overzicht van uw netwerkgebruik. Deze informatie is beschikbaar op de webinterface van de meeste thuisrouters. Om toegang te krijgen, moet u echter uw huidige taak stoppen om deze op te zoeken.
Ik wilde deze informatie bekijken zonder mijn huidige taak te onderbreken, deze weergeven in een formaat dat in één oogopslag begrijpelijk was, en de informatie op een manier krijgen die met zoveel mogelijk routers zou werken, zodat anderen mogelijk ook gebruiken.
Hoe het de dingen doet?
Ik koos voor SNMP (Simple Network Management Protocol) als de manier om de informatie van de router te krijgen. SNMP wordt veel gebruikt in netwerkapparatuur en als uw apparaat dit niet standaard ondersteunt, kan DDWRT (open source router-firmware) worden gebruikt om SNMP te implementeren.
Om de informatie op een begrijpelijke manier weer te geven heb ik een meter uit een auto gebruikt. Autometers zijn ontworpen om u informatie te geven zonder af te leiden of verwarrend te zijn, zodat de bestuurder zijn ogen op de weg kan houden. Ik had ook nog wat liggen.
Aangezien dit op mijn bureau zou staan, besloot ik dat ik ook de achtergrondverlichting RGB zou maken, omdat computeraccessoires allemaal RGB zouden moeten zijn. Rechts?
Uitdagingen
De meters die ik had gebruiken een Air-Core-actuator. Ik had er voor dit project nog nooit van gehoord.
Van Wikipedia: De luchtkernmeter bestaat uit twee onafhankelijke, loodrechte spoelen die een holle kamer omringen. Een naaldschacht steekt uit in de kamer, waar een permanente magneet op de schacht is bevestigd. Wanneer stroom door de loodrechte spoelen stroomt, superponeren hun magnetische velden en kan de magneet vrij worden uitgelijnd met de gecombineerde velden.
Ik kon geen bibliotheek voor Arduino vinden die SNMP ondersteunde in de managerconfiguratie. SNMP heeft twee hoofdvormen, agent en manager. Agenten reageren op verzoeken en managers sturen verzoeken naar agenten. Ik kon de managerfunctionaliteit werkend krijgen door de Arduino_SNMP-bibliotheek te wijzigen die door 0neblock is gemaakt. Ik heb nooit in C++ geprogrammeerd, behalve dat LED's knipperen op een Arduino, dus als er problemen zijn met de SNMP-bibliotheek, laat het me weten en ik zal proberen ze te repareren, want nu werkt het echter.
Bovendien is SNMP niet ontworpen voor realtime weergave. Het beoogde gebruik is voor het bijhouden van statistieken en het detecteren van storingen. Hierdoor wordt de informatie op de router slechts ongeveer elke 5 seconden bijgewerkt (uw apparaat kan variëren). Dat is de oorzaak van de vertraging tussen het getal op de snelheidstest en het bewegen van de naald.
Stap 1: Gereedschappen en materialen
We hebben 3 volledige H-bruggen nodig. De modellen die ik heb gebruikt zijn Dual TB6612FNG en Dual L298N.
Elke Air-Core-actuator vereist 2 volledige H-bruggen omdat de spoelen onafhankelijk moeten worden aangestuurd.
Een van de meters die ik gebruik heeft een spoel die is kortgesloten naar aarde met een diode en een weerstand. Ik ben niet zeker van de wetenschap erachter, maar door dat te doen, kan het ongeveer 90 graden draaien met slechts één spoel aangedreven.
Ik zal de 12v tot 5v-regelaar gebruiken die deel uitmaakt van het L298N-bord dat ik heb geselecteerd om de ESP32 van stroom te voorzien.
Alle LED-circuits zijn optioneel, evenals de JST-connectoren. U kunt de draden gemakkelijk rechtstreeks op ESP32 en motordriver solderen.
Stap 3: Code-ontwerp
Code instellen
We moeten Arduino instellen om het ESP32-bord te kunnen gebruiken. Er is hier een goede gids die u door de ESP32 Arduino-configuratie leidt.
U hebt ook de Arduino_SNMP-bibliotheek nodig die zich hier bevindt.
Om de code te configureren, moet u wat informatie verzamelen.
- Router-IP
- Maximale uploadsnelheid
- Maximale downloadsnelheid
- Uw wifi-naam en wachtwoord
- OID die de octettellingen voor "in" en "out" bevat op de WAN-interface van uw router
Er zijn standaard OID's (Object Identifiers) voor de informatie die we willen. Volgens de MIB-2-standaard zijn de nummers die we willen:
ifInOctets.1.3.6.1.2.1.2.2.1.16. X
ifOutOctets.1.3.6.1.2.1.2.2.1.10. X
Waarbij X het nummer is dat is toegewezen aan de interface waarvan u de statistieken wilt krijgen. Voor mij is dat nummer 3. Een manier om te bevestigen dat dit de juiste OID voor u is en om te bepalen welk interfacenummer u moet gebruiken, is door een tool zoals MIB Browser te gebruiken.
Om maximale snelheden te krijgen, heb ik SpeedTest.net gebruikt. zodra u uw snelheden in Mbps hebt, moet u ze met deze formule in octetten converteren.
Octetten per seconde = (Resultaat van snelheidstest in Mbps * 1048576) / 8
Code Functie:
De code stuurt een SNMP get-request naar de router. De router antwoordt dan met een nummer, het nummer staat voor het aantal octetten dat is verzonden of ontvangen. Tegelijkertijd registreren we het aantal milliseconden dat is verstreken sinds de Arduino is gestart.
Zodra dit proces minstens twee keer is gebeurd, kunnen we het percentage van het gebruik berekenen op basis van onze maximale waarden met behulp van deze code
percentDown = ((float)(byteDown - byteDownLast)/(float)(maxDown*((millis() - timeLast)/1000))) * 100;
De wiskunde valt als volgt uiteen:
octetsDiff = snmp_result - Vorige_ snmp_result
timeFrame = currentTime - timeLast
MaxPosableOverTime = (timeFrame * Octets_per_second)/1000
Percentage = (octetsDiff / MaxPosableOverTime) * 100
Nu we het percentage netwerkgebruik hebben, hoeven we het alleen maar naar de meter te schrijven. Dat doen we in 2 stappen. Eerst gebruiken we de updateDownloadGauge-functie. In deze functie gebruiken we "kaart" om het percentage om te zetten in een getal dat een radiale positie op de meter vertegenwoordigt. Vervolgens geven we dat nummer aan de functie setMeterPosition om de naald naar de nieuwe positie te verplaatsen.
Stap 4: Case-ontwerp
Om alles te bevatten, heb ik een behuizing in fusion360 ontworpen en deze in 3D geprint. Het ontwerp dat ik heb gemaakt is relatief eenvoudig. Ik heb hete lijm gebruikt om de componenten aan de binnenkant te bevestigen en de meter wordt op zijn plaats gehouden door tussen de voorklep en de achterklep te knijpen. U hoeft geen 3D-printing te gebruiken om de case te maken. Je zou bijvoorbeeld een koffer van hout kunnen maken, of je zou alles terug kunnen zetten in de originele koffer waarin de meters kwamen.
Mijn STL-bestanden zijn beschikbaar op thingiverse als je ze wilt bekijken, maar het is onwaarschijnlijk dat ze voor jou zullen werken, tenzij je exact dezelfde meters krijgt die ik heb gebruikt.
Dossiers:
Bedankt voor het lezen. Laat het me weten als je vragen hebt en ik zal mijn best doen om te antwoorden.
Aanbevolen:
Internetsnelheidsmeter: 9 stappen (met afbeeldingen)
Internetsnelheidsmeter: met volledige afsluiting in India, is alles, inclusief postdiensten, gesloten. Geen nieuwe PCB-projecten, geen nieuwe componenten, niets! Dus om de verveling te overwinnen en mezelf bezig te houden, besloot ik iets te maken van de onderdelen die ik al
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
PCB-ontwerp met eenvoudige en gemakkelijke stappen: 30 stappen (met afbeeldingen)
PCB-ontwerp met eenvoudige en gemakkelijke stappen: HELLO VRIENDEN Het is een zeer nuttige en gemakkelijke tutorial voor diegenen die PCB-ontwerp willen leren, laten we beginnen
Een video met gesplitst scherm maken in vier stappen: 4 stappen (met afbeeldingen)
Een video met gesplitst scherm maken in vier stappen: we zien vaak dezelfde persoon twee keer in een scène in een tv-toneelstuk. En voor zover we weten heeft de acteur geen tweelingbroer. We hebben ook gezien dat er twee zangvideo's op één scherm worden gezet om hun zangkunsten te vergelijken. Dit is de kracht van spl