Taula de continguts:
- Pas 1: el pla
- Pas 2: coses que necessitareu
- Pas 3: càlcul del corrent de deflexió a escala completa
- Pas 4: Creació de la sol·licitud SNMP GET
- Pas 5: entendre la resposta GET
- Pas 6: convertidor de digital a analògic (DAC)
- Pas 7: l'Assemblea
- Pas 8: temps de codificació
- Pas 9: gaudiu
Vídeo: Velocímetre d'Internet: 9 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Amb el bloqueig complet a l'Índia, s'ha tancat tot el que inclou els serveis de correu. No hi ha projectes nous de PCB, no hi ha components nous, res! Així que, per superar l’avorriment i mantenir-me ocupat, vaig decidir fer alguna cosa a partir de les parts que ja tinc a casa. Vaig començar a buscar des de la pila de brossa electrònica i vaig trobar un multímetre analògic antic trencat. Vaig salvar-ne el "moviment del metre" i vaig decidir mostrar algun tipus d'informació però no sabia exactament què. En primer lloc, vaig pensar en mostrar estadístiques de COVID-19, però ja hi ha molts millors projectes a Internet. A més, les dades s’actualitzen al cap d’unes hores i un punter fix del mesurador seria avorrit. Volia dades que canviessin ràpidament, que canviessin cada segon. Vaig demanar suggeriments a Instagram i un dels meus seguidors va respondre amb velocímetre a Internet. Va sonar interessant i va decidir fer-ho!
En aquest manual d’instruccions, us mostraré com he agafat dades del meu encaminador WiFi mitjançant SNMP i he mostrat les velocitats de càrrega i descàrrega al comptador.
Comencem
Pas 1: el pla
Com sempre abans de començar amb el projecte, vaig investigar una mica a Internet. Vaig trobar alguns projectes relacionats amb aquest tema. Eren de dues classes. Un que mostrava la velocitat d'Internet mesurant la "força" del senyal WiFi. No sóc un home expert en xarxes però no em va semblar bé. Els altres van mesurar la latència i van classificar la velocitat com a lenta, mitjana o ràpida. La latència és el retard de temps entre l'enviament de la sol·licitud i l'obtenció de la resposta i, per tant, no pot ser la representació real de la velocitat d'Internet. Tanmateix, podem anomenar-la una velocitat de resposta de la xarxa. Després hi va haver projectes legítims que mesuraven el temps necessari per descarregar algunes dades i calculaven la velocitat d’Internet en funció d’això.
Però va ser en aquest projecte (d’Alistair) que vaig conèixer el protocol de gestió de xarxes simples o SNMP. Mitjançant SNMP, podem comunicar-nos amb l’encaminador WiFi i obtenir-ne les dades necessàries directament. Fàcil, oi? En realitat, no! Com que els diferents models d’utilització d’encaminadors WiFi tenen diferents configuracions i necessiten moltes proves i errors abans d’obtenir finalment la sortida. No us espanteu. Explicaré breument tot el que vaig aprendre sobre SNMP i les dificultats que vaig haver d’afrontar en els propers passos.
Per tant, el pla és utilitzar NodeMCU per connectar-se al router WiFi. Aquests són els passos per arribar a la sortida final:
- Envieu una sol·licitud al router "sol·licitant" les dades necessàries
- Obteniu la resposta del router
- Analitzeu la resposta i analitzeu-ne les dades necessàries
- Convertiu les dades "en brut" en informació comprensible
- Genereu tensió proporcional a la velocitat d’Internet del comptador
- Repetiu
Utilitzaré un convertidor DAC o digital a analògic per controlar el comptador.
Pas 2: coses que necessitareu
1x NodeMCU
1x moviment analògic del comptador
1x MPU4725 DAC
1 commutador SPDT
Potenciòmetre 1x 10k
1x resistència
Pas 3: càlcul del corrent de deflexió a escala completa
Nota: aneu al pas 7 per a la versió real.
Omet aquest pas si ja coneixes el corrent de deflexió a escala completa del comptador. El meu comptador no en feia cap menció, així que vaig haver de calcular. Però primer, vegem ràpidament com funciona aquest moviment. Consisteix en una bobina suspesa en un camp magnètic. Quan el corrent flueix a través de la bobina, segons la llei de Faraday, experimenta una força. Es permet que la bobina giri lliurement en el camp magnètic i també el punter que s’adjunta a la bobina. La magnitud del corrent que fa moure el punter al "final de l'escala" s'anomena corrent de deflexió a escala completa. Aquest és també el corrent màxim que s’ha de deixar fluir per la bobina.
Hi ha moltes coses més, però això és suficient per al que estem fent. Ara tenim el moviment. Es pot utilitzar com a voltímetre afegint una alta resistència en sèrie amb ell o com a amperímetre afegint una petita resistència en paral·lel. L’utilitzarem com a voltímetre per mostrar el voltatge proporcional a la velocitat d’Internet. Per tant, hem de calcular la resistència que s’ha d’afegir en sèrie. Per a això, primer hem de calcular el corrent de deflexió a escala completa.
- Trieu un valor de resistència elevat (com ara> 100 k)
- Connecteu-lo en sèrie amb el moviment i apliqueu-hi una tensió variable mitjançant l'olla.
- Seguiu augmentant el voltatge lentament fins que el punter arribi al final de l’escala.
- Amb un multímetre, mesureu el corrent que circula. Aquest és el corrent de deflexió a escala completa. (I = 150uA en el meu cas)
Estem utilitzant un DAC que té un rang de tensió de sortida de 0 a VCC (3,3 V degut a NodeMCU). Això vol dir que quan s’aplica 3,3 V al comptador, ha d’apuntar al final de l’escala. Això pot passar quan el corrent de deflexió a gran escala flueix pel circuit quan s’aplica 3,3V. Utilitzant la llei d’Ohm, 3.3 / (corrent de deflexió a escala completa) dóna el valor de la resistència a inserir en sèrie.
Pas 4: Creació de la sol·licitud SNMP GET
Simple Network Management Protocol (SNMP) és un protocol estàndard d'Internet per recopilar i organitzar informació sobre dispositius gestionats a xarxes IP i per modificar aquesta informació per canviar el comportament del dispositiu. Els dispositius que normalment admeten SNMP inclouen mòdems de cable, encaminadors, commutadors, servidors, estacions de treball, impressores i molt més. Per a aquesta compilació, ens comunicarem amb el nostre router WiFi mitjançant SNMP i obtindrem les dades necessàries.
Però, primer, hem d’enviar una sol·licitud coneguda com a “Sol·licitud GET” al router que mencioni els detalls de les dades que volem. El format GET Request es mostra a la imatge. La sol·licitud consta de diverses parts. He destacat els bytes que és possible que vulgueu canviar.
Tingueu en compte que tot està en hexadecimal.
Missatge SNMP: en el meu cas, la longitud de tot el missatge és de 40 (color gris), que quan es converteix en hexadecimal és 0x28.
Cadena de comunitat SNMP: el valor "PUBLIC" s'escriu en hexadecimal com a "70 75 62 6C 69 63" la longitud del qual és 6 (groc).
Tipus de PDU SNMP: en el meu cas, la longitud del missatge és 27 (blau), és a dir, 0x1B.
Tipus de llista Varbind: en el meu cas, la longitud del missatge és de 16 (verd), és a dir, 0x10.
Tipus Varbind: en el meu cas, la longitud del missatge és 14 (rosa), és a dir, 0x0E.
Identificador d'objectes -
Com s’ha esmentat anteriorment, els dispositius de xarxa habilitats per SNMP (per exemple, enrutadors, commutadors, etc.) mantenen una base de dades d’estat del sistema, disponibilitat i informació de rendiment com a objectes, identificats per OID. Heu d’identificar els OID del vostre encaminador per carregar i baixar paquets. Es pot fer amb un navegador MIB gratuït com aquest.
Introduïu l'adreça com a 192.168.1.1 i OID com a.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). Seleccioneu Operació i feu clic a Vés. Hauríeu de veure l'OID juntament amb el seu valor i tipus.
En el meu cas, la longitud del missatge és de 10 (vermell), és a dir, 0x0A. Substituïu el valor per l'OID. En aquest cas, "2B 06 01 02 01 02 02 01 10 10"
Això és! El vostre missatge de sol·licitud està a punt. Mantingueu la resta de bytes tal com són.
Activació de SNMP al router:
- Inicieu sessió a la pàgina del vostre router WiFi a través de la passarel·la predeterminada. Escriviu 192.168.1.1 al navegador i premeu Retorn. Per defecte, el nom d'usuari i la contrasenya han de ser "administrador".
- Estic fent servir un encaminador TP-LINK (TD-W8961N). Per a aquest enrutador, heu d’anar a Gestió d’accés> SNMP i seleccionar “Activat”.
- Comunitat GET: pública
- Amfitrió de trampa: 0.0.0.0
Pas 5: entendre la resposta GET
Podeu ometre aquest pas, però és bo saber si heu de resoldre problemes.
Un cop hàgiu carregat el codi i executat-lo, podeu fer una ullada a la resposta a través del monitor sèrie. Ha de tenir l’aspecte que es mostra a la imatge. Hi ha uns quants bytes que heu de buscar que he ressaltat.
A partir de 0, El 15è byte diu que el tipus PDU - 0xA2 significa que és una GetResponse.
El 48è byte indica el tipus de dades: 0x41 significa que el tipus de dades és Comptador.
El 49è byte indica la longitud de les dades: 0x04 significa que les dades tenen una longitud de 4 bytes.
El byte 50, 51, 52, 53 conté les dades.
Pas 6: convertidor de digital a analògic (DAC)
Els microcontroladors són dispositius digitals que no entenen les tensions analògiques directament. Estic fent servir un comptador analògic que necessita una tensió variable com a entrada. Però el microcontrolador només pot generar HIGH (3,3V en cas de NodeMCU) i LOW (0V). Ara podeu dir per què no només utilitzeu PWM. No funcionarà, ja que el mesurador només mostrarà el valor mitjà.
Estic fent servir MCP4725 DAC per obtenir voltatge variable. Es tracta d’un DAC de 12 bits, és a dir, en termes simples, dividirà de 0 a 3,3V en 4096 (= 2 ^ 12) parts. La resolució serà de 3,3 / 4096 = 0,8056mV. Això vol dir que 0 correspon a 0V, 1 correspon a 0,8056mV, 2 correspon a 1,6112mV, ….., 4095 correspon a 3,3V.
La velocitat d'Internet es "maparà" de "0 a 7 mbps" a "0 a 4095" i, a continuació, aquest valor es donarà a DAC per generar una tensió que serà proporcional a la velocitat d'Internet.
Pas 7: l'Assemblea
Les connexions són molt senzilles. S'ha adjuntat l'esquema aquí.
Vaig dissenyar i imprimir l’escala. La superior és per a la velocitat de descàrrega i la inferior per a la velocitat de càrrega. Vaig enganxar la nova escala sobre l’antiga.
Vaig treure totes les coses velles del multímetre i vaig aplegar-hi tot. Va ser un ajust ajustat. Vaig haver de perforar un forat a la part davantera per connectar l'interruptor de palanca que s'utilitza per seleccionar entre la velocitat de càrrega i descàrrega.
Pas 8: temps de codificació
El codi s'ha adjuntat aquí. Baixeu-lo i obriu-lo a Arduino IDE. Instal·leu la biblioteca MCP4725 des d'Adafruit.
Abans de penjar:
- Introduïu el vostre SSID WiFi i la vostra contrasenya
- Introduïu la velocitat màxima de càrrega i descàrrega esmentada a l'escala.
- Feu els canvis necessaris a la matriu de sol·licituds per descarregar-los i carregar paquets.
- Descomenteu la línia 165 per veure la resposta al monitor sèrie.
Accedeix a la pujada.
Pas 9: gaudiu
Enceneu-lo i gaudiu de l’agulla ballant mentre navegueu per Internet.
Gràcies per mantenir-vos al final. Espero que us agradi aquest projecte i hàgiu après alguna cosa nova. Avisa’m si en fas un per tu mateix. Subscriviu-vos al meu canal de YouTube per obtenir més projectes d’aquest tipus.
Recomanat:
Indicador de velocímetre de bicicleta: 10 passos (amb imatges)
Com es diu el nom, en aquest projecte aprendreu a crear una pantalla per a la vostra bicicleta que consti tant d’un velocímetre com d’un comptaquilòmetres. Indica la velocitat i la distància recorregudes en temps real. El cost total d’aquest projecte arriba a aro
Velocímetre GPS: 4 passos (amb imatges)
Velocímetre GPS: el cotxe de la meva empresa que condueixo normalment acostuma a tenir un "petit" problemes de tant en tant, el velocímetre cau a 0 Km / h quan es condueix (al cap d’un temps es torna a reprendre). Normalment no és un gran problema, ja que si se sap conduir un cotxe
Velocímetre de cotxe RC de treball: 4 passos (amb imatges)
Velocímetre de cotxe RC de treball: aquest és un projecte breu que vaig crear com a part d'una versió RC més gran d'un Light Rover Land Rover. Vaig decidir que m'agradava tenir un velocímetre de treball al tauler, però sabia que un servo no el tallaria. Només hi havia una opció raonable: d
Velocímetre de cicle de bricolatge: 6 passos (amb imatges)
Velocímetre de cicle de bricolatge: aquest projecte em va venir al cap quan feia el meu projecte MEM (Mechanical Engineering Measurement), un tema de la meva B.tech. La idea és mesurar la velocitat angular de la roda de la meva bicicleta. Així coneixem el diàmetre i la llegenda matemàtica de tots els temps
Tacòmetre fabricat a partir d'un velocímetre de bicicleta (ciclocomputador): 3 passos (amb imatges)
Tacòmetre fabricat a partir d’un velocímetre de bicicleta (ciclocomputador): de vegades només cal saber la velocitat amb què gira una roda, un eix o un motor. El dispositiu de mesura de la velocitat de rotació és un tacòmetre. Però són cars i no són fàcils de trobar. És barat i fàcil de fer amb un velocímetre de bicicleta (cicl