Sommario:
- Passaggio 1: il piano
- Passaggio 2: cose di cui avrai bisogno
- Fase 3: Calcolo della corrente di deflessione su vasta scala
- Passaggio 4: creazione della richiesta GET SNMP
- Passaggio 5: comprensione della risposta GET
- Passaggio 6: convertitore da digitale ad analogico (DAC)
- Fase 7: L'Assemblea
- Passaggio 8: tempo per la codifica
- Passaggio 9: divertiti
Video: Tachimetro Internet: 9 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Con il blocco completo in corso in India, tutto, compresi i servizi di posta, è stato chiuso. Nessun nuovo progetto PCB, nessun nuovo componente, niente! Quindi, per superare la noia e per tenermi occupato, ho deciso di realizzare qualcosa con le parti che ho già in casa. Ho iniziato a cercare nel mucchio di cianfrusaglie elettroniche e ho trovato un vecchio multimetro analogico rotto. Ho recuperato il "movimento del misuratore" da esso e ho deciso di visualizzare un qualche tipo di informazione ma non sapevo esattamente cosa. Innanzitutto, ho pensato di visualizzare le statistiche COVID-19, ma ci sono già molti progetti migliori su Internet. Inoltre, i dati vengono aggiornati dopo poche ore e un puntatore fermo del contatore sarebbe noioso. Volevo dati che cambiassero rapidamente, cambiassero ogni secondo. Ho chiesto suggerimenti su Instagram e uno dei miei follower ha risposto con Internet Speedometer. Sembrava interessante e ho deciso di farlo!
In questo Instructable, ti mostrerò come ho acquisito i dati dal mio router WiFi utilizzando SNMP e visualizzato le velocità di upload e download sul misuratore.
Iniziamo
Passaggio 1: il piano
Come sempre prima di iniziare il progetto ho fatto un po' di ricerche su internet. Ho trovato alcuni progetti relativi a questo argomento. Erano di due tipi. Uno che mostrava la velocità di Internet misurando la "forza" del segnale WiFi. Non sono un esperto di reti, ma questo non suonava bene. Gli altri hanno misurato la latenza e classificato la velocità come lenta, media o veloce. La latenza è il ritardo tra l'invio della richiesta e l'ottenimento della risposta e quindi non può essere la rappresentazione effettiva della velocità di Internet. Possiamo chiamarla una velocità di risposta di rete però! Poi c'erano progetti legittimi che misuravano il tempo necessario per scaricare alcuni dati e calcolavano la velocità di Internet in base a quello.
Ma è stato in questo progetto (di Alistair) che ho imparato a conoscere il Simple Network Management Protocol o SNMP. Utilizzando SNMP, possiamo comunicare con il router WiFi e ottenere i dati richiesti direttamente da esso. Facile, vero? In realtà, no! Poiché i diversi modelli di router WiFi utilizzati hanno impostazioni diverse e richiedono molte prove ed errori prima di ottenere finalmente l'output. Non aver paura. Spiegherò in breve tutto ciò che ho appreso su SNMP e le difficoltà che ho dovuto affrontare nei passaggi successivi.
Quindi il piano è utilizzare NodeMCU per connettersi al router WiFi. Questi sono i passaggi per arrivare all'output finale:
- Invia una richiesta al router 'richiedendo' i dati richiesti
- Ottieni la risposta dal router
- Analizza la risposta e analizza i dati richiesti da essa
- Converti i dati "grezzi" in informazioni comprensibili
- Genera tensione proporzionale alla velocità di Internet per il contatore
- Ripetere
Userò un DAC o un convertitore digitale-analogico per controllare lo strumento.
Passaggio 2: cose di cui avrai bisogno
1x NodeMCU
1x movimento del misuratore analogico
1x DAC MPU4725
1x interruttore SPDT
1x potenziometro da 10k
1x resistenza
Fase 3: Calcolo della corrente di deflessione su vasta scala
Nota: vai al passaggio 7 per la build effettiva!
Salta questo passaggio se conosci già la corrente di deflessione a fondo scala per il tuo misuratore. Il mio contatore non ne parlava, quindi ho dovuto calcolare. Ma prima, vediamo rapidamente come funziona un tale movimento. Consiste in una bobina sospesa in un campo magnetico. Quando la corrente scorre attraverso la bobina, secondo la legge di Faraday, sperimenta una forza. La bobina può ruotare liberamente nel campo magnetico, così come il puntatore che è attaccato alla bobina. La grandezza della corrente che fa muovere la lancetta alla "fine della scala" è chiamata corrente di deflessione a fondo scala. Questa è anche la corrente massima che deve essere lasciata passare attraverso la bobina.
C'è molto di più in corso, ma questo è abbastanza per quello che stiamo facendo. Ora abbiamo il movimento. Può essere utilizzato come voltmetro aggiungendo in serie un'alta resistenza o come amperometro aggiungendo in parallelo una piccola resistenza. Lo useremo come voltmetro per visualizzare la tensione proporzionale alla velocità di Internet. Quindi, dobbiamo calcolare la resistenza che deve essere aggiunta in serie. Per questo, dobbiamo prima calcolare la corrente di deflessione a fondo scala.
- Scegli un valore di resistenza elevato (come >100k)
- Collegarlo in serie con il movimento e applicare una tensione variabile attraverso di esso utilizzando il potenziometro.
- Continuare ad aumentare la tensione lentamente finché la lancetta non raggiunge la fine della scala.
- Utilizzando un multimetro, misurare la corrente che scorre attraverso. Questa è la corrente di deflessione a fondo scala. (I = 150uA nel mio caso)
Stiamo utilizzando un DAC che ha l'intervallo di tensione di uscita da 0 a VCC (3,3 V a causa di NodeMCU). Ciò significa che quando si applica 3,3 V allo strumento, dovrebbe puntare alla fine della scala. Questo può accadere quando la corrente di deflessione a fondo scala scorre attraverso il circuito quando viene applicato 3,3 V. Utilizzando la legge di Ohm, 3,3/(corrente di deflessione di fondo scala) fornisce il valore della resistenza da inserire in serie.
Passaggio 4: creazione della richiesta GET SNMP
Simple Network Management Protocol (SNMP) è un protocollo Internet Standard per la raccolta e l'organizzazione di informazioni sui dispositivi gestiti su reti IP e per la modifica di tali informazioni per modificare il comportamento del dispositivo. I dispositivi che in genere supportano SNMP includono modem via cavo, router, switch, server, workstation, stampanti e altro. Per questa build, comunicheremo con il nostro router WiFi utilizzando SNMP e otterremo i dati richiesti.
Ma prima, dobbiamo inviare una richiesta nota come "richiesta GET" al router menzionando i dettagli dei dati che vogliamo. Il formato della richiesta GET è mostrato nell'immagine. La richiesta si compone di varie parti. Ho evidenziato i byte che potresti voler modificare.
Si prega di notare che tutto è in esadecimale.
Messaggio SNMP -Nel mio caso, la lunghezza dell'intero messaggio è 40 (colore grigio) che una volta convertito in esadecimale è 0x28.
Stringa comunità SNMP - Il valore 'PUBLIC' è scritto in esadecimale come '70 75 62 6C 69 63' la cui lunghezza è 6 (giallo).
Tipo SNMP PDU - Nel mio caso, la lunghezza del messaggio è 27 (blu), ovvero 0x1B.
Varbind List Type - Nel mio caso, la lunghezza del messaggio è 16 (verde), ovvero 0x10.
Tipo Varbind - Nel mio caso, la lunghezza del messaggio è 14 (rosa), ovvero 0x0E.
Identificatore oggetto -
Come accennato in precedenza, i dispositivi di rete abilitati SNMP (ad esempio router, switch, ecc.) mantengono un database di stato del sistema, disponibilità e informazioni sulle prestazioni come oggetti, identificati da OID. È necessario identificare gli OID del router per i pacchetti di caricamento e download. Può essere fatto utilizzando un browser MIB gratuito come questo.
Immettere l'indirizzo come 192.168.1.1 e l'OID come.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) o.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Seleziona Ottieni operazione e fai clic su Vai. Dovresti vedere l'OID insieme al suo valore e tipo.
Nel mio caso, la lunghezza del messaggio è 10 (rosso) cioè 0x0A. Sostituire il valore con l'OID. In questo caso, '2B 06 01 02 01 02 02 01 10 10'
Questo è tutto! Il tuo messaggio di richiesta è pronto. Mantieni il resto dei byte così come sono.
Attivare SNMP sul router:
- Accedi alla pagina del tuo router WiFi tramite il gateway predefinito. Digita 192.168.1.1 nel tuo browser e premi invio. Per impostazione predefinita, il nome utente e la password dovrebbero essere "admin".
- Sto utilizzando un router TP-LINK (TD-W8961N). Per questo router, devi andare su Gestione accessi > SNMP e selezionare "Attivato".
- GET Community: pubblico
- Host della trappola: 0.0.0.0
Passaggio 5: comprensione della risposta GET
Puoi saltare questo passaggio, ma è utile sapere se devi risolvere alcuni problemi.
Una volta caricato il codice ed eseguito, puoi dare un'occhiata alla risposta tramite il monitor seriale. Dovrebbe apparire come mostrato nell'immagine. Ci sono alcuni byte che devi cercare che ho evidenziato.
A partire da 0, Il 15° byte indica al tipo di PDU: 0xA2 significa che si tratta di un GetResponse.
Il 48° byte indica il tipo di dati: 0x41 significa che il tipo di dati è Counter.
Il 49° byte indica la lunghezza dei dati - 0x04 significa che i dati sono lunghi 4 byte.
Il byte 50, 51, 52, 53 contiene i dati.
Passaggio 6: convertitore da digitale ad analogico (DAC)
I microcontrollori sono dispositivi digitali che non comprendono direttamente le tensioni analogiche. Sto usando un misuratore analogico che necessita di una tensione variabile come ingresso. Ma il microcontrollore può solo emettere ALTO (3,3 V in caso di NodeMCU) e BASSO (0 V). Ora potresti dire perché non usare semplicemente PWM. Non funzionerà poiché lo strumento visualizzerà solo il valore medio.
Sto usando MCP4725 DAC per ottenere una tensione variabile. È un DAC a 12 bit, ovvero, in termini semplici, dividerà da 0 a 3,3 V in 4096 parti (= 2^12). La risoluzione sarà 3,3/4096 = 0,8056 mV. Ciò significa che 0 corrisponde a 0V, 1 corrisponde a 0,8056mV, 2 corrisponde a 1,6112mV, ….., 4095 corrisponde a 3,3V.
La velocità di Internet verrà "mappata" da "0 a 7 mbps" a "0 a 4095" e quindi questo valore verrà assegnato al DAC per emettere una tensione che sarà proporzionale alla velocità di Internet.
Fase 7: L'Assemblea
I collegamenti sono molto semplici. Lo schema è stato allegato qui.
Ho disegnato e stampato la bilancia. Quello superiore è per la velocità di download e quello inferiore è per la velocità di upload. Ho incollato la nuova scala su quella vecchia.
Ho rimosso tutte le vecchie cose dal multimetro e ci ho messo dentro tutto. Era un adattamento stretto. Ho dovuto praticare un foro nella parte anteriore per collegare l'interruttore a levetta che viene utilizzato per selezionare tra la velocità di upload e download.
Passaggio 8: tempo per la codifica
Il codice è stato allegato qui. Scaricalo e aprilo nell'IDE di Arduino. Installa la libreria MCP4725 da Adafruit.
Prima di caricare:
- Inserisci il tuo SSID WiFi e la password
- Immettere la velocità massima di caricamento e scaricamento indicata sulla bilancia.
- Apportare le modifiche necessarie nell'array di richiesta per il download e per caricare i pacchetti.
- Rimuovere il commento dalla riga 165 per visualizzare la risposta sul monitor seriale.
Premi carica!
Passaggio 9: divertiti
Accendilo e divertiti a guardare l'ago che balla mentre navighi in Internet!
Grazie per essere rimasto fedele alla fine. Spero che amiate tutti questo progetto e che oggi abbiate imparato qualcosa di nuovo. Fammi sapere se ne fai uno per te. Iscriviti al mio canale YouTube per altri progetti simili.
Consigliato:
Display del tachimetro della bicicletta: 10 passaggi (con immagini)
Display del tachimetro della bicicletta: che cos'è? Come suggerisce il nome, in questo progetto imparerai come creare un display per la tua bici che consiste sia di un tachimetro che di un contachilometri. Indica la velocità in tempo reale e la distanza percorsa. Il costo totale di questo progetto si aggira intorno a
Tachimetro GPS: 4 passaggi (con immagini)
Tachimetro GPS: la mia auto aziendale che guido normalmente tende ad avere un "piccolo" problemi di tanto in tanto, il tachimetro scende a 0 Km/h durante la guida (dopo un po' riprende). Normalmente questo non è un grosso problema poiché se sai guidare una macchina
Tachimetro per auto RC funzionante: 4 passaggi (con immagini)
Tachimetro per auto RC funzionante: questo è un breve progetto che ho creato come parte di una costruzione RC più grande di una Land Rover leggera. Ho deciso che mi sarebbe piaciuto avere un tachimetro funzionante nel cruscotto, ma sapevo che un servo non lo avrebbe tagliato. C'era solo un'opzione ragionevole: d
Tachimetro ciclo fai da te: 6 passaggi (con immagini)
Tachimetro per ciclo fai-da-te: questo progetto mi è venuto in mente durante il mio progetto MEM (Meccanica Misurazione dell'Ingegneria), un argomento nel mio B.tech. L'idea è misurare la velocità angolare della ruota della mia bicicletta. Conoscendo così il diametro e la leggenda matematica di tutti i tempi th
Aggiungi un tachimetro ottico basato su Arduino a un router CNC: 34 passaggi (con immagini)
Aggiungi un tachimetro ottico basato su Arduino a un router CNC: costruisci un indicatore RPM ottico per il tuo router CNC con un Arduino Nano, un sensore IR LED/fotodiodo IR e un display OLED per meno di $ 30. Mi sono ispirato a Measure RPM - Optical Tachometer Instructable di eletro18 e volevo aggiungere un tachimetro