Índice:
Vídeo: Medidor de velocidade da Internet: 4 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Visão geral
Este "Medidor de velocidade da Internet" fornecerá uma visão quase em tempo real do uso da rede. Essas informações estão disponíveis na interface da Web da maioria dos roteadores domésticos. No entanto, para acessá-lo, é necessário interromper sua tarefa atual para procurá-lo.
Eu queria visualizar essas informações sem ter que interromper minha tarefa atual, exibi-las em um formato que fosse compreensível com apenas um rápido olhar e obter as informações de uma forma que funcionasse com o maior número possível de roteadores, para que outros pudessem potencialmente usá-lo também.
Como faz as coisas
Decidi usar SNMP (Simple Network Management Protocol) como a forma de obter as informações do roteador. O SNMP é amplamente usado em equipamentos de rede e, se o seu dispositivo não o suportar por padrão, o DDWRT (firmware do roteador de código aberto) pode ser usado para implementar o SNMP.
Para exibir as informações de uma maneira fácil de entender, usei um medidor de um carro. Os medidores automotivos são projetados para fornecer informações sem distrair ou confundir, para que o motorista possa manter os olhos na estrada. Além disso, eu tinha alguns por aí.
Já que isso estaria na minha mesa, decidi que também faria a luz de fundo RGB porque os acessórios do computador deveriam ser RGB. Direito?
Desafios
Os medidores que eu tinha usavam um atuador Air-Core. Eu nunca tinha ouvido falar deles antes deste projeto.
Da Wikipedia: O medidor de núcleo de ar consiste em duas bobinas perpendiculares independentes em torno de uma câmara oca. Um eixo de agulha se projeta para dentro da câmara, onde um ímã permanente é afixado ao eixo. Quando a corrente flui pelas bobinas perpendiculares, seus campos magnéticos se sobrepõem e o ímã fica livre para se alinhar com os campos combinados.
Não consegui encontrar uma biblioteca para Arduino que suportasse SNMP na configuração do gerenciador. O SNMP tem duas formas principais, agente e gerenciador. Os agentes respondem à solicitação e os gerentes enviam a solicitação aos agentes. Consegui fazer com que a funcionalidade do gerenciador funcionasse modificando a biblioteca Arduino_SNMP criada por 0neblock. Eu nunca programei em C ++ além de fazer o LED piscar em um Arduino, então se houver problemas com a biblioteca SNMP, me avise e tentarei corrigi-los, mas agora está funcionando.
Além disso, o SNMP não foi projetado para visualização em tempo real. O uso pretendido é para rastrear estatísticas e detectar interrupções. Por causa disso, as informações no roteador só são atualizadas a cada 5 segundos (seu dispositivo pode variar). Essa é a causa do atraso entre o número do teste de velocidade e o movimento da agulha.
Etapa 1: Ferramentas e materiais
Precisaremos de 3 pontes H completas. Os modelos que usei são Dual TB6612FNG e Dual L298N.
Cada atuador Air-Core requer 2 pontes H completas porque as bobinas precisam ser controladas de forma independente.
Um dos medidores que estou usando tem uma bobina em curto com o terra com um diodo e resistor. Não tenho certeza da ciência por trás disso, mas fazer isso permite que ele gire cerca de 90 graus com apenas uma bobina alimentada.
Vou usar o regulador de 12v a 5v que faz parte da placa L298N que selecionei para alimentar o ESP32.
Todos os circuitos do LED são opcionais, assim como os conectores JST. Você poderia facilmente soldar os fios diretamente no ESP32 e no driver do motor.
Etapa 3: Design de código
Configuração de código
Precisaremos configurar o Arduino para poder usar a placa ESP32. Há um bom guia localizado aqui que o orientará na configuração do ESP32 Arduino.
Você também precisará da biblioteca Arduino_SNMP localizada aqui.
Para configurar o código, você precisará coletar algumas informações.
- IP do roteador
- Velocidade máxima de upload
- Velocidade máxima de download
- Seu nome de WiFi e senha
- OID que contém as contagens de octetos para "entrada" e "saída" na interface WAN de seus roteadores
Existem OIDs (Identificadores de Objeto) padrão para as informações que desejamos. De acordo com o padrão MIB-2, os números que desejamos são:
ifInOctets.1.3.6.1.2.1.2.2.1.16. X
ifOutOctets.1.3.6.1.2.1.2.2.1.10. X
Onde X é o número atribuído à interface de onde você deseja obter as estatísticas. Para mim, esse número é 3. Uma maneira de confirmar que este é o OID correto para você e de identificar qual número de interface você precisa usar é usar uma ferramenta como o navegador MIB.
Para obter velocidades máximas, usei o SpeedTest.net. depois de ter suas velocidades em Mbps, você precisará convertê-las em octetos usando esta fórmula.
Octetos por segundo = (Resultado do teste de velocidade em Mbps * 1048576) / 8
Função de Código
O código envia uma solicitação get SNMP ao roteador. O roteador então responde com um número, o número representa a contagem de octetos que foram enviados ou recebidos. Ao mesmo tempo, registramos o número de milissegundos que se passaram desde que o Arduino foi iniciado.
Uma vez que esse processo tenha acontecido pelo menos duas vezes, podemos calcular a porcentagem de uso com base em nossos valores máximos usando este código
percentDown = ((float) (byteDown - byteDownLast) / (float) (maxDown * ((millis () - timeLast) / 1000))) * 100;
A matemática se divide assim:
octetsDiff = snmp_result - Previous_ snmp_result
timeFrame = currentTime - timeLast
MaxPosableOverTime = (timeFrame * Octets_per_second) / 1000
Percent = (octetsDiff / MaxPosableOverTime) * 100
Agora que temos a porcentagem de uso da rede, só precisamos registrá-la no medidor. Fazemos isso em 2 etapas. Primeiro, usamos a função updateDownloadGauge. Nesta função, usamos “map” para converter a porcentagem em um número que representa uma posição em radianos no medidor. Em seguida, atribuímos esse número à função setMeterPosition para mover a agulha para a nova posição.
Etapa 4: Design do caso
Para conter tudo, projetei um gabinete no fusion360 e imprimi-lo em 3D. O design que fiz é relativamente simples. Usei cola quente para prender os componentes por dentro e o medidor é mantido no lugar sendo pressionado entre a capa frontal e a capa traseira. Você não precisa usar a impressão 3D para criar o caso. Por exemplo, você pode fazer uma caixa de madeira ou pode colocar tudo de volta na caixa original em que os medidores vieram.
Meus arquivos STL estão disponíveis no thingiverse se você quiser vê-los, mas é improvável que funcionem para você, a menos que você obtenha exatamente os mesmos medidores que usei.
Arquivos do caso:
Obrigado pela leitura. Entre em contato se tiver alguma dúvida e farei o possível para responder.
Recomendado:
Construa sua própria antena BiQuad 4G com teste de velocidade: 7 etapas (com imagens)
Construa sua própria antena BiQuad 4G com teste de velocidade: Neste manual, vou mostrar como fiz uma antena BiQuad 4G. A recepção do sinal é ruim em minha casa devido às montanhas ao redor dela. A torre de sinalização fica a 4,5 km de casa. No distrito de Colombo meu provedor de serviço dá velocidade de 20mbps. mas em m
Teste sua velocidade de Internet usando um Raspberry Pi + Ubidots: 9 etapas
Teste sua velocidade na Internet usando um Raspberry Pi + Ubidots: O Raspberry Pi se tornou um dispositivo amplamente usado não apenas para fins educacionais e de prototipagem, mas também para projetos de produção industrial dentro das empresas. Além do tamanho do Pi, baixo custo e sistema operacional Linux totalmente operacional, ele também pode interagir com
Regulador de velocidade do ventilador WiFi (ESP8266 AC Dimmer): 8 etapas (com imagens)
Regulador de velocidade do ventilador WiFi (ESP8266 AC Dimmer): Este instrutível irá guiar como fazer um regulador de velocidade do ventilador de teto usando o método de controle de ângulo da fase Triac. O Triac é convencionalmente controlado pelo chip configurado arduino autônomo Atmega8. Wemos D1 mini adiciona funcionalidade WiFi para este regulato
Use um motor de transmissão CC de esteira e controlador de velocidade PWM para ferramentas de alimentação: 13 etapas (com imagens)
Use um motor de acionamento CC de esteira e controlador de velocidade PWM para ferramentas de alimentação: ferramentas elétricas, como fresas e tornos de corte de metal, furadeiras, serras de fita, lixadeiras e muito mais podem exigir. 5 Motores HP a 2HP com a capacidade de ajustar a velocidade enquanto mantém o torque .Coincidentalmente, a maioria das esteiras usa um motor de 80-260 VCC com
Como aumentar drasticamente a velocidade do seu PC e manter essa velocidade por toda a vida do sistema .: 9 etapas
Como acelerar drasticamente o seu PC e mantê-la durante a vida útil do sistema .: Este é um tutorial que fiz sobre como limpar, ajustar e otimizar seu PC para que funcione mais rápido do que quando você o comprou. e para ajudar a mantê-lo assim. Vou postar fotos assim que tiver a chance, infelizmente a partir de agora não