Tabla de contenido:

Velocímetro de Internet: 9 pasos (con imágenes)
Velocímetro de Internet: 9 pasos (con imágenes)

Video: Velocímetro de Internet: 9 pasos (con imágenes)

Video: Velocímetro de Internet: 9 pasos (con imágenes)
Video: CIERRA LOS OJOS ANTES DEL CHOQUE 😱 #shorts 2024, Noviembre
Anonim
Image
Image
El plan
El plan

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á

Cosas que necesitará
Cosas que necesitará
Cosas que necesitará
Cosas que necesitará
Cosas que necesitará
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

Cálculo de la corriente de deflexión a escala completa
Cálculo de la corriente de deflexión a escala completa
Cálculo de la corriente de deflexión a escala completa
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.

  1. Elija un valor de resistencia alto (como> 100k)
  2. Conéctelo en serie con el movimiento y aplique un voltaje variable a través de él usando la olla.
  3. Siga aumentando el voltaje lentamente hasta que el puntero llegue al final de la escala.
  4. 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

Creación de una solicitud GET de SNMP
Creación de una solicitud GET de SNMP
Creación de una solicitud GET de SNMP
Creación de una solicitud GET de SNMP
Creación de una solicitud GET de SNMP
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

Comprensión de la respuesta GET
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)

Convertidor digital a analógico (DAC)
Convertidor 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

La Asamblea
La Asamblea
La Asamblea
La Asamblea
La Asamblea
La Asamblea
La Asamblea
La Asamblea

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

Tiempo para codificar
Tiempo para codificar
Tiempo para codificar
Tiempo para codificar
Tiempo para codificar
Tiempo para codificar

El código se ha adjuntado aquí. Descárguelo y ábralo en Arduino IDE. Instale la biblioteca MCP4725 de Adafruit.

Antes de cargar:

  1. Ingrese su SSID y contraseña de WiFi
  2. Ingrese la velocidad máxima de carga y descarga mencionada en la escala.
  3. Realice los cambios necesarios en la matriz de solicitudes para descargar y cargar paquetes.
  4. 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: