Raspberry Pi OLED Internet bandbredd Display (2 / 3 steg)
Steg 2: Att få bandbredd från routern
Första bilden ovan visar den bandbredd informationen från vår router. I grunden är tanken på detta instructable att visa denna bandbredd data från WAN-porten av vår router på OLED display. Gör detta att Pi har på något sätt få denna information från routern.
Jag inledningsvis om att jag skulle behöva ha Pi skrapa denna information från webbsidan routrar men det visar sig att det kan göras mycket mer effektivt med hjälp av SNMP.
Förhoppningsvis din router stöder SNMP eller du kommer att behöva hitta ett alternativt sätt att göra denna del. Min router kör DD-WRT och tillgång till informationen som bara krävs att SNMP slås på från sidan tjänster för routern.
Vi kommer att göra lite av kommandoraden arbete nu att kontrollera vår tillgång till SNMP-data från routern. Om du har en Mac eller Linux maskin du kan förmodligen göra detta direkt, annars kan du köra SSH till Raspberry Pi och utfärda kommandon därifrån.
Installera med hjälp av snmp: sudo lämplig-få installera snmp
Testa snmp från din router använder: "snmpwalk - v 1 - c offentliga 192.168.0.1"
För att förklara detta, kommer att snmpwalk gå igenom alla tillgängliga SNMP-data och Visa det för dig. '-v 1' innebär att använda version 1 av protokollet. '-c offentliga ' sätt att visa information till allmänheten och "192.168.0.1" är min router IP-adress.
Du kan också använda "snmpwalk - v 1 - c offentliga 192.168.0.1 | mindre om du vill visa en sida av information på en gång. Jag var tvungen att göra detta för att stega igenom sidorna i SNMP-värden att hitta numret på WAN-anslutning.
Från all denna information behöver vi bara få de totala byte i och det totala antal byten ut från porten som vi är intresserade av (Raspberry Pi senare dras automatiskt tidigare totalt antal byte från det nuvarande totala antal byten att träna datahastigheten varje gång den uppdaterar skärmen). För min router var detta med oid (objektidentifierare) '1.3.6.1.2.1.2.2.1.10.1' för de totala inåt byte på WAN-porten och "1.3.6.1.2.1.2.2.1.16.1" för det totala antal byten utåt på WAN-porten. Om du har tur dessa kommer att vara samma för din router kan annars du behöva göra lite undersöka för att ta reda på vilka specifika oid's du behöver.
Bryta ner lite längre oid detta i princip kommer i två delar. '1.3.6.1.2.1.2.2.1.10' är del utan den avslutande '1' är för det totala antal byten i på ett gränssnitt och '1' i slutet numret för gränssnittet. '1.3.6.1.2.1.2.2.1.16' är för byte ut - med den samma '1' för samma gränssnitt på slutet.
Du kan se på första bilden ovan att det interna namnet för WAN-porten är ppp0. Med snmpwalk enligt den andra bilden kan man härleda att gränssnittsnumret för ppp0 är 1.
Vi kan testa detta genom att utfärda: snmpget - v 1 - c offentliga 192.168.0.1 1.3.6.1.2.1.2.2.1.10.1
Detta kommer att få just den SNMP-informationen för denna oid. Om du använder den upp pil efter varje kommando du kan utfärda kommandot flera gånger och få en indikation om detta är det nummer som du är ute efter som visar det totala antal byten på krävs port.
Oroa dig inte för mycket om du inte är vissa om detta är rätt oid, vi kan enkelt ändra detta i koden när du kör programmet bandbredd monitorn.
Beväpnade med detta kan vi använda informationen för att skriva ett Python-skript för att Visa bandbredden.