Tabla de contenido:
- Paso 1: el plan
- Paso 2: Cosas que necesitará
- Paso 3: Cálculo de la corriente de deflexión a escala completa
- Paso 4: Creación de una solicitud GET de SNMP
- Paso 5: Comprensión de la respuesta GET
- Paso 6: Convertidor de digital a analógico (DAC)
- Paso 7: el montaje
- Paso 8: tiempo de codificación
- Paso 9: ¡Disfruta
Video: Velocímetro de Internet: 9 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Con el bloqueo completo en la India, todo, incluidos los servicios de correo, se ha cerrado. Sin nuevos proyectos de PCB, sin nuevos componentes, ¡nada! Entonces, para superar el aburrimiento y mantenerme ocupado, decidí hacer algo con las piezas que ya tengo en casa. Comencé a buscar en el montón de basura electrónica y encontré un multímetro analógico viejo y roto. Rescaté el 'movimiento del medidor' y decidí mostrar algún tipo de información, pero no sabía exactamente qué. Primero, pensé en mostrar las estadísticas de COVID-19, pero ya hay muchos proyectos mejores en Internet. Además, los datos se actualizan después de unas horas y un puntero fijo del medidor sería aburrido. Quería datos que cambien rápidamente, cambien cada segundo. Pedí sugerencias en Instagram y uno de mis seguidores respondió con Internet Speedometer. ¡Sonaba interesante y decidió hacerlo!
En este Instructable, le mostraré cómo tomé datos de mi enrutador WiFi usando SNMP y mostré las velocidades de carga y descarga en el medidor.
¡Empecemos
Paso 1: el plan
Como siempre, antes de comenzar con el proyecto, investigué un poco en Internet. Encontré algunos proyectos relacionados con este tema. Eran de dos clases. Uno que mostraba la velocidad de Internet midiendo la "fuerza" de la señal WiFi. No soy un experto en redes, pero esto no sonaba bien. Los otros midieron la latencia y categorizaron la velocidad como lenta, media o rápida. La latencia es el tiempo que transcurre entre el envío de la solicitud y la obtención de la respuesta, por lo que no puede ser la representación real de la velocidad de Internet. ¡Sin embargo, podemos llamarlo una velocidad de respuesta de red! Luego hubo proyectos legítimos que midieron el tiempo requerido para descargar algunos datos y calcularon la velocidad de Internet en función de eso.
Pero fue en este proyecto (de Alistair) que aprendí sobre el Protocolo simple de administración de redes o SNMP. Usando SNMP, podemos comunicarnos con el enrutador WiFi y obtener los datos requeridos directamente de él. Fácil, ¿verdad? ¡En realidad no! Debido a que los diferentes modelos de uso de enrutadores WiFi tienen diferentes configuraciones y necesitan mucha prueba y error antes de que finalmente obtenga el resultado. No tengas miedo. Explicaré brevemente todo lo que aprendí sobre SNMP y las dificultades que enfrenté en los próximos pasos.
Entonces, el plan es usar NodeMCU para conectarse al enrutador WiFi. Estos son los pasos para llegar al resultado final:
- Envíe una solicitud al enrutador 'solicitando' los datos requeridos
- Obtenga la respuesta del enrutador
- Analizar la respuesta y analizar los datos requeridos de ella
- Convierta los datos 'brutos' en información comprensible
- Genere voltaje proporcional a la velocidad de Internet para el medidor
- Repetir
Usaré un convertidor DAC o digital a analógico para controlar el medidor.
Paso 2: Cosas que necesitará
1x NodeMCU
1x movimiento del medidor analógico
1x MPU4725 DAC
1x interruptor SPDT
1x potenciómetro de 10k
1x resistencia
Paso 3: Cálculo de la corriente de deflexión a escala completa
Nota: ¡Vaya al Paso 7 para la compilación real!
Omita este paso si ya conoce la corriente de deflexión de escala completa de su medidor. Mi medidor no lo mencionó, así que tuve que calcular. Pero primero, veamos rápidamente cómo funciona tal movimiento. Consiste en una bobina suspendida en un campo magnético. Cuando la corriente fluye a través de la bobina, de acuerdo con la ley de Faraday, experimenta una fuerza. Se permite que la bobina gire libremente en el campo magnético y también lo hace el puntero que está unido a la bobina. La magnitud de la corriente que hace que el puntero se mueva al "final de la escala" se llama corriente de deflexión de escala completa. Esta es también la corriente máxima que se debe permitir que fluya a través de la bobina.
Están sucediendo muchas más cosas, pero esto es suficiente para lo que estamos haciendo. Ahora tenemos el movimiento. Se puede usar como voltímetro agregando una alta resistencia en serie con él o como amperímetro agregando una pequeña resistencia en paralelo. Lo usaremos como voltímetro para mostrar el voltaje proporcional a la velocidad de Internet. Entonces, necesitamos calcular la resistencia que se agregará en serie. Para eso, primero necesitamos calcular la corriente de deflexión a escala completa.
- Elija un valor de resistencia alto (como> 100k)
- Conéctelo en serie con el movimiento y aplique un voltaje variable a través de él usando la olla.
- Siga aumentando el voltaje lentamente hasta que el puntero llegue al final de la escala.
- Con un multímetro, mida la corriente que fluye. Ésta es la corriente de deflexión a escala completa. (I = 150uA en mi caso)
Estamos usando un DAC que tiene un rango de voltaje de salida de 0 a VCC (3.3V debido a NodeMCU). Esto significa que cuando se aplica 3.3V al medidor, debe apuntar al final de la escala. Esto puede suceder cuando la corriente de deflexión a gran escala fluye a través del circuito cuando se aplica 3.3V. Usando la ley de Ohm, 3.3 / (corriente de deflexión de escala completa) da el valor de la resistencia que se insertará en serie.
Paso 4: Creación de una solicitud GET de SNMP
El Protocolo simple de administración de redes (SNMP) es un protocolo estándar de Internet para recopilar y organizar información sobre dispositivos administrados en redes IP y para modificar esa información para cambiar el comportamiento del dispositivo. Los dispositivos que suelen admitir SNMP incluyen módems de cable, enrutadores, conmutadores, servidores, estaciones de trabajo, impresoras y más. Para esta compilación, nos comunicaremos con nuestro enrutador WiFi mediante SNMP y obtendremos los datos necesarios.
Pero primero, debemos enviar una solicitud conocida como 'Solicitud GET' al enrutador mencionando los detalles de los datos que queremos. El formato de solicitud GET se muestra en la imagen. La solicitud consta de varias partes. He resaltado los bytes que es posible que desee cambiar.
Tenga en cuenta que todo está en hexadecimal.
Mensaje SNMP: en mi caso, la longitud de todo el mensaje es 40 (color gris) que cuando se convierte a hexadecimal es 0x28.
Cadena de comunidad SNMP: el valor 'PUBLIC' se escribe en hexadecimal como '70 75 62 6C 69 63 'cuya longitud es 6 (amarillo).
Tipo de PDU SNMP: en mi caso, la longitud del mensaje es 27 (azul), es decir, 0x1B.
Tipo de lista Varbind: en mi caso, la longitud del mensaje es 16 (verde), es decir, 0x10.
Tipo Varbind: en mi caso, la longitud del mensaje es 14 (rosa), es decir, 0x0E.
Identificador de objeto -
Como se mencionó anteriormente, los dispositivos de red habilitados para SNMP (por ejemplo, enrutadores, conmutadores, etc.) mantienen una base de datos del estado del sistema, la disponibilidad y la información de rendimiento como objetos, identificados por OID. Debe identificar los OID de su enrutador para cargar y descargar paquetes. Se puede hacer usando un navegador MIB gratuito como este.
Ingrese Dirección como 192.168.1.1 y OID como.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). Seleccione Obtener operación y haga clic en Ir. Debería ver el OID junto con su valor y tipo.
En mi caso, la longitud del mensaje es 10 (rojo), es decir, 0x0A. Reemplace el valor con el OID. En este caso, '2B 06 01 02 01 02 02 01 10 10'
¡Eso es todo! Su mensaje de solicitud está listo. Mantenga el resto de los bytes como están.
Activando SNMP en su enrutador:
- Inicie sesión en la página de su enrutador WiFi a través de la puerta de enlace predeterminada. Escriba 192.168.1.1 en su navegador y presione enter. De forma predeterminada, el nombre de usuario y la contraseña deben ser "admin".
- Estoy usando un enrutador TP-LINK (TD-W8961N). Para este enrutador, debe ir a Administración de acceso> SNMP y seleccionar 'Activado'.
- Comunidad GET: público
- Host de trampa: 0.0.0.0
Paso 5: Comprensión de la respuesta GET
Puede omitir este paso, pero es bueno saber si necesita solucionar algunos problemas.
Una vez que cargue el código y lo ejecute, puede ver la respuesta a través del monitor serial. Debería verse como se muestra en la imagen. Hay algunos bytes que debe buscar y los he resaltado.
Empezando desde 0, El 15º byte indica el tipo de PDU: 0xA2 significa que es una respuesta GetResponse.
El byte 48 indica el tipo de datos: 0x41 significa que el tipo de datos es Contador.
El byte 49 indica la longitud de los datos: 0x04 significa que los datos tienen una longitud de 4 bytes.
El byte 50, 51, 52, 53 contiene los datos.
Paso 6: Convertidor de digital a analógico (DAC)
Los microcontroladores son dispositivos digitales que no comprenden directamente los voltajes analógicos. Estoy usando un medidor analógico que necesita un voltaje variable como entrada. Pero el microcontrolador solo puede emitir ALTO (3.3V en el caso de NodeMCU) y BAJO (0V). Ahora podrías decir por qué no usas PWM. No funcionará ya que el medidor solo mostrará el valor promedio.
Estoy usando MCP4725 DAC para obtener voltaje variable. Es un DAC de 12 bits, es decir, en términos simples, dividirá de 0 a 3,3 V en 4096 (= 2 ^ 12) partes. La resolución será 3.3 / 4096 = 0.8056mV. Esto significa que 0 corresponde a 0V, 1 corresponde a 0.8056mV, 2 corresponde a 1.6112mV,….., 4095 corresponde a 3.3V.
La velocidad de Internet se 'mapeará' de '0 a 7 mbps' a '0 a 4095' y luego este valor se le dará al DAC para generar un voltaje que será proporcional a la velocidad de Internet.
Paso 7: el montaje
Las conexiones son muy sencillas. El esquema se ha adjuntado aquí.
Diseñé e imprimí la escala. El superior es para la velocidad de descarga y el inferior es para la velocidad de carga. Pegué la escala nueva sobre la anterior.
Saqué todas las cosas viejas del multímetro y metí todo en él. Fue un ajuste perfecto. Tuve que perforar un agujero en la parte delantera para conectar el interruptor de palanca que se usa para seleccionar entre la velocidad de carga y descarga.
Paso 8: tiempo de codificación
El código se ha adjuntado aquí. Descárguelo y ábralo en Arduino IDE. Instale la biblioteca MCP4725 de Adafruit.
Antes de cargar:
- Ingrese su SSID y contraseña de WiFi
- Ingrese la velocidad máxima de carga y descarga mencionada en la escala.
- Realice los cambios necesarios en la matriz de solicitudes para descargar y cargar paquetes.
- Quite el comentario de la línea 165 para ver la respuesta en el monitor en serie.
¡Haz clic en cargar!
Paso 9: ¡Disfruta
¡Enciéndelo y disfruta viendo la aguja bailar mientras navegas por Internet!
Gracias por perseverar hasta el final. Espero que a todos les guste este proyecto y que hayan aprendido algo nuevo hoy. Avísame si haces uno para ti. Suscríbete a mi canal de YouTube para más proyectos de este tipo.
Recomendado:
Pantalla del velocímetro de la bicicleta: 10 pasos (con imágenes)
Pantalla del velocímetro de bicicleta: ¿Qué es? Como sugiere el nombre, en este proyecto aprenderá a crear una pantalla para su bicicleta que consta de un velocímetro y un odómetro. Indica la velocidad y la distancia recorrida en tiempo real. El costo total de este proyecto llega a aro
Velocímetro GPS: 4 pasos (con imágenes)
Velocímetro GPS: el automóvil de mi empresa que normalmente conduzco tiende a tener un " pequeño " Problemas de vez en cuando, el velocímetro cae a 0 Km / h al conducir (después de un tiempo se reanuda de nuevo). Normalmente esto no es un gran problema ya que si sabes conducir un coche
Velocímetro de coche RC en funcionamiento: 4 pasos (con imágenes)
Velocímetro de coche RC en funcionamiento: este es un proyecto corto que creé como parte de una construcción RC más grande de un Land Rover ligero. Decidí que me apetecía tener un velocímetro que funcionara en el tablero, pero sabía que un servo no lo cortaría. Solo había una opción razonable: d
Velocímetro de ciclo de bricolaje: 6 pasos (con imágenes)
Velocímetro de ciclo de bricolaje: este proyecto me vino a la mente cuando hacía mi proyecto MEM (Medición de ingeniería mecánica), un tema en mi B.tech. La idea es medir la velocidad angular de la rueda de mi bicicleta. Conociendo así el diámetro y la leyenda matemática de todos los tiempos th
Tacómetro hecho con un velocímetro de bicicleta (ciclocomputadora): 3 pasos (con imágenes)
Tacómetro fabricado con un velocímetro de bicicleta (ciclocomputador): a veces solo tienes que saber qué tan rápido gira una rueda, un eje o un motor. El dispositivo de medición de la velocidad de rotación es un tacómetro. Pero son caros y no fáciles de encontrar. Es barato y fácil de hacer usando un velocímetro de bicicleta (cycl