Sommario:
- Passaggio 1: strumenti e materiali
- Passaggio 3: progettazione del codice
- Passaggio 4: progettazione della custodia
Video: Indicatore di velocità Internet: 4 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
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
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.
- IP del router
- Velocità massima di caricamento
- Velocità massima di download
- Il tuo nome e password WiFi
- 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
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:
Raspberry Pi Box di ventola di raffreddamento con indicatore della temperatura della CPU: 10 passaggi (con immagini)
Raspberry Pi Box di raffreddamento FAN con indicatore della temperatura della CPU: avevo introdotto il circuito dell'indicatore della temperatura della CPU raspberry pi (di seguito come RPI) nel progetto precedente. Il circuito mostra semplicemente RPI 4 diversi livelli di temperatura della CPU come segue.- LED verde acceso quando La temperatura della CPU è entro 30~
Imbracatura per cani con indicatore di distanza a LED: 5 passaggi (con immagini)
Indicatore di distanza LED Pettorina per cani: di solito porto il mio cane Rusio a fare una passeggiata quando il sole tramonta, così può giocare senza scaldarsi troppo. Il problema è che quando è senza guinzaglio a volte si agita troppo e corre più lontano di quanto dovrebbe e con la luce scarsa e gli altri cani
OreServer: un server Minecraft dedicato a Raspberry Pi con indicatore LED del lettore: 9 passaggi (con immagini)
OreServer: un server Minecraft dedicato Raspberry Pi con indicatore LED Player: AGGIORNAMENTO di luglio 2020 - Prima di iniziare questo progetto, tieni presente che sono state apportate MOLTE modifiche e aggiornamenti ai vari strumenti software che ho usato per creare questo su due anni fa. Di conseguenza, molti dei passaggi non funzionano più come scritti
Motore ad acqua automatizzato con indicatore di livello: 6 passaggi (con immagini)
Motore ad acqua automatizzato con indicatore di livello: Ciao a tutti, benvenuti in un altro Instructable. In questo progetto impareremo come creare un controller del livello del serbatoio dell'acqua completamente automatico con la funzione di indicatore del livello dell'acqua utilizzando Arduino Nano.Arduino è il cervello di questo progetto. Ci vorranno input da
Indicatore o indicatore del livello di rumore non sicuro: 4 passaggi (con immagini)
Indicatore o indicatore del livello di rumore non sicuro: mi piace guardare i progetti creativi delle persone. Strumenti moderni e la tecnologia ci offre così tante opzioni creative. Insegno materiali duri agli studenti delle scuole secondarie in una scuola superiore in Nuova Zelanda, quindi sviluppo sempre & sperimentando cose nuove. questo