Sommario:

Indicatore di velocità Internet: 4 passaggi (con immagini)
Indicatore di velocità Internet: 4 passaggi (con immagini)

Video: Indicatore di velocità Internet: 4 passaggi (con immagini)

Video: Indicatore di velocità Internet: 4 passaggi (con immagini)
Video: Aumenta La Velocità Di Internet Con Un Solo Gesto 2024, Luglio
Anonim
Image
Image
Indicatore di velocità di Internet
Indicatore di velocità di Internet
Indicatore di velocità di Internet
Indicatore di velocità di Internet

Panoramica

Questo "indicatore di velocità Internet" ti fornirà una supervisione quasi in tempo reale dell'utilizzo della tua rete. Queste informazioni sono disponibili sull'interfaccia web della maggior parte dei router domestici. Tuttavia, l'accesso richiede di interrompere l'attività corrente per andare a cercarlo.

Volevo visualizzare queste informazioni senza dover interrompere la mia attività attuale, visualizzarle in un formato comprensibile con una rapida occhiata e ottenere le informazioni in un modo che funzionasse con il maggior numero possibile di router, in modo che altri potessero potenzialmente usarlo anche tu.

Come fa le cose?

Ho deciso su SNMP (Simple Network Management Protocol) come modo per ottenere le informazioni dal router. SNMP è ampiamente utilizzato nelle apparecchiature di rete e se il dispositivo non lo supporta per impostazione predefinita, è possibile utilizzare DDWRT (firmware del router open source) per implementare SNMP.

Per visualizzare le informazioni in modo facile da capire ho usato un indicatore di un'auto. Gli indicatori per autoveicoli sono progettati per fornire informazioni senza distrarre o confondere, in modo che il conducente possa tenere gli occhi sulla strada. Inoltre, ho avuto qualche posa in giro.

Dato che questo sarebbe stato sulla mia scrivania, ho deciso di rendere RGB anche la retroilluminazione perché gli accessori per computer dovrebbero essere tutti RGB. Destra?

Sfide

Gli indicatori che avevo usano un attuatore Air-Core. Non ne avevo mai sentito parlare prima di questo progetto.

Da Wikipedia: Il misuratore del nucleo d'aria è costituito da due bobine indipendenti e perpendicolari che circondano una camera cava. Un albero dell'ago sporge nella camera, dove è fissato un magnete permanente all'albero. Quando la corrente scorre attraverso le bobine perpendicolari, i loro campi magnetici si sovrappongono e il magnete è libero di allinearsi con i campi combinati.

Non sono riuscito a trovare una libreria per Arduino che supportasse SNMP nella configurazione del gestore. SNMP ha due forme principali, agente e manager. Gli agenti rispondono alla richiesta ei manager inviano la richiesta agli agenti. Sono stato in grado di far funzionare la funzionalità del gestore modificando la libreria Arduino_SNMP creata da 0neblock. Non ho mai programmato in C++ oltre a far lampeggiare i LED su un Arduino, quindi se ci sono problemi con la libreria SNMP fammi sapere e cercherò di risolverli, per ora funziona però.

Inoltre, SNMP non è progettato per la visualizzazione in tempo reale. L'uso previsto è per il monitoraggio delle statistiche e il rilevamento delle interruzioni. Per questo motivo, le informazioni sul router vengono aggiornate solo ogni 5 secondi (il dispositivo può variare). Questa è la causa del ritardo tra il numero sul test di velocità e lo spostamento dell'ago.

Passaggio 1: strumenti e materiali

Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Strumenti e materiali
Progettazione di circuiti
Progettazione di circuiti

Avremo bisogno di 3 H-bridge completi. I modelli che ho usato sono Dual TB6612FNG e Dual L298N.

Ogni attuatore Air-Core richiede 2 ponti ad H completi perché le bobine devono essere controllate in modo indipendente.

Uno dei misuratori che sto usando ha una bobina in cortocircuito a massa con un diodo e un resistore. Non sono sicuro della scienza dietro, ma farlo gli consente di ruotare di circa 90 gradi con una sola bobina alimentata.

Userò il regolatore da 12v a 5v che fa parte della scheda L298N che ho selezionato per alimentare ESP32.

Tutta la circuiteria LED è opzionale, così come i connettori JST. Potresti facilmente saldare i fili direttamente a ESP32 e al driver del motore.

Passaggio 3: progettazione del codice

Configurazione del codice

Avremo bisogno di configurare Arduino per poter utilizzare la scheda ESP32. C'è una buona guida che si trova qui che ti guiderà attraverso la configurazione di ESP32 Arduino.

Avrai anche bisogno della libreria Arduino_SNMP che si trova qui.

Per configurare il codice, dovrai raccogliere alcune informazioni.

  1. IP del router
  2. Velocità massima di caricamento
  3. Velocità massima di download
  4. Il tuo nome e password WiFi
  5. OID che contiene i conteggi di ottetti per "in" e "out" sull'interfaccia WAN del router

Ci sono OID (identificatori di oggetto) standard per le informazioni che desideriamo. Secondo lo standard MIB-2 i numeri che vogliamo sono:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Dove X è il numero assegnato all'interfaccia da cui vuoi ottenere le statistiche. Per me quel numero è 3. Un modo per confermare che questo è l'OID corretto per te e per identificare quale numero di interfaccia devi utilizzare è utilizzare uno strumento come MIB Browser.

Per ottenere le velocità massime ho usato SpeedTest.net. una volta che hai le tue velocità in Mbps dovrai convertirle in ottetti usando questa formula.

Ottetti al secondo = (Risultato del test di velocità in Mbps * 1048576) / 8

Codice Funzione

Il codice invia una richiesta di get SNMP al router. Il router quindi risponde con un numero, il numero rappresenta il conteggio degli ottetti che sono stati inviati o ricevuti. Allo stesso tempo, registriamo il numero di millisecondi trascorsi dall'avvio di Arduino.

Una volta che questo processo è avvenuto almeno due volte, possiamo calcolare la percentuale di utilizzo in base ai nostri valori massimi utilizzando questo codice

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

La matematica si scompone in questo modo:

octetsDiff = snmp_result - Precedente_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Percentuale = (octetsDiff / MaxPosableOverTime) * 100

Ora che abbiamo la percentuale di utilizzo della rete, dobbiamo solo scriverla sul misuratore. Lo facciamo in 2 passaggi. Per prima cosa usiamo la funzione updateDownloadGauge. In questa funzione utilizziamo "mappa" per convertire la percentuale in un numero che rappresenta una posizione in radianti sull'indicatore. Quindi diamo quel numero alla funzione setMeterPosition per spostare l'ago nella nuova posizione.

Passaggio 4: progettazione della custodia

Design della cassa
Design della cassa
Design della cassa
Design della cassa
Design della cassa
Design della cassa

Per contenere tutto, ho progettato un involucro in fusion360 e l'ho stampato in 3D. Il disegno che ho realizzato è relativamente semplice. Ho usato la colla a caldo per fissare i componenti all'interno e il calibro è tenuto in posizione pizzicandolo tra il coperchio anteriore e il coperchio posteriore. Non è necessario utilizzare la stampa 3D per creare la custodia. Ad esempio, potresti creare una custodia in legno o rimettere tutto nella custodia originale in cui sono stati inseriti gli indicatori.

I miei file STL sono disponibili su Thingsiverse se vuoi guardarli, ma è improbabile che funzionino per te a meno che tu non ottenga esattamente gli stessi indicatori che ho usato.

File del caso:

Grazie per aver letto. Fatemi sapere se avete domande e farò del mio meglio per rispondere.

Consigliato: