Table des matières:

Compteur de vitesse Internet : 9 étapes (avec photos)
Compteur de vitesse Internet : 9 étapes (avec photos)

Vidéo: Compteur de vitesse Internet : 9 étapes (avec photos)

Vidéo: Compteur de vitesse Internet : 9 étapes (avec photos)
Vidéo: Ce Code Vous Donne Toutes Les Photos Et Vidéos Cachées Sur votre Téléphone 2024, Novembre
Anonim
Image
Image
Le plan
Le plan

Avec le verrouillage complet en cours en Inde, tout, y compris les services de courrier, a été fermé. Pas de nouveaux projets PCB, pas de nouveaux composants, rien ! Alors pour vaincre l'ennui et m'occuper, j'ai décidé de faire quelque chose à partir des pièces que j'ai déjà à la maison. J'ai commencé à chercher dans la pile de déchets électroniques et j'ai trouvé un vieux multimètre analogique cassé. J'en ai récupéré le "mouvement du compteur" et j'ai décidé d'afficher une sorte d'information mais je ne savais pas exactement quoi. Tout d'abord, j'ai pensé à afficher les statistiques COVID-19 mais il y a déjà beaucoup de meilleurs projets sur internet. De plus, les données sont mises à jour après quelques heures et un pointeur fixe du compteur serait ennuyeux. Je voulais des données qui changent rapidement, changent à chaque seconde. J'ai demandé des suggestions sur Instagram et l'un de mes abonnés a répondu avec Internet Speedometer. Cela avait l'air intéressant et j'ai décidé de le faire !

Dans ce Instructable, je vais vous montrer comment j'ai récupéré les données de mon routeur WiFi à l'aide de SNMP et affiché les vitesses de téléchargement et de téléchargement sur le compteur.

Commençons

Étape 1: le plan

Comme toujours avant de me lancer dans le projet, j'ai fait quelques recherches sur internet. J'ai trouvé quelques projets liés à ce sujet. Ils étaient de deux sortes. Un qui a montré la vitesse d'Internet en mesurant la "force" du signal WiFi. Je ne suis pas un expert en réseau, mais cela ne sonnait pas bien. Les autres ont mesuré la latence et classé la vitesse en lente, moyenne ou rapide. La latence est le délai entre l'envoi de la demande et l'obtention de la réponse et ne peut donc pas être la représentation réelle de la vitesse Internet. Nous pouvons cependant appeler cela une vitesse de réponse du réseau ! Ensuite, il y avait des projets légitimes qui mesuraient le temps nécessaire pour télécharger certaines données et calculaient la vitesse Internet en fonction de cela.

Mais c'est dans ce projet (par Alistair) que j'ai découvert le Simple Network Management Protocol ou SNMP. En utilisant SNMP, nous pouvons communiquer avec le routeur WiFi et obtenir les données requises directement à partir de celui-ci. Facile, non ? En fait non! Parce que les différents modèles de routeurs WiFi utilisés ont des paramètres différents et nécessitent beaucoup d'essais et d'erreurs avant d'obtenir enfin la sortie. N'ayez pas peur. J'expliquerai brièvement tout ce que j'ai appris sur SNMP et les difficultés que j'ai rencontrées dans les étapes à venir.

Le plan est donc d'utiliser NodeMCU pour se connecter au routeur WiFi. Voici les étapes pour obtenir la sortie finale:

  • Envoyer une requête au routeur « demandant » les données requises
  • Obtenez la réponse du routeur
  • Analyser la réponse et analyser les données requises à partir de celle-ci
  • Convertir les données « brutes » en informations compréhensibles
  • Générer une tension proportionnelle à la vitesse Internet pour le compteur
  • Répéter

J'utiliserai un DAC ou un convertisseur numérique-analogique pour contrôler le compteur.

Étape 2: choses dont vous aurez besoin

Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin
Choses dont vous aurez besoin

1x nœud MCU

1x mouvement de compteur analogique

1x DAC MPU4725

1x commutateur SPDT

1x potentiomètre 10k

1x résistance

Étape 3: Calcul du courant de déviation à pleine échelle

Calcul du courant de déviation à pleine échelle
Calcul du courant de déviation à pleine échelle
Calcul du courant de déviation à pleine échelle
Calcul du courant de déviation à pleine échelle

Remarque: passez à l'étape 7 pour la version actuelle !

Ignorez cette étape si vous connaissez déjà le courant de déviation à pleine échelle de votre compteur. Mon compteur n'en avait pas fait mention donc j'ai dû calculer. Mais d'abord, voyons rapidement comment fonctionne un tel mouvement. Il se compose d'une bobine suspendue dans un champ magnétique. Lorsque le courant traverse la bobine, selon la loi de Faraday, il subit une force. La bobine peut tourner librement dans le champ magnétique, de même que le pointeur qui est attaché à la bobine. L'amplitude du courant qui fait bouger le pointeur à la « fin de l'échelle » est appelée courant de déviation à pleine échelle. C'est aussi le courant maximum qui doit pouvoir circuler dans la bobine.

Il se passe beaucoup d'autres choses, mais c'est suffisant pour ce que nous faisons. Nous avons maintenant le mouvement. Il peut être utilisé comme un voltmètre en ajoutant une résistance élevée en série avec lui ou comme un ampèremètre en lui ajoutant une petite résistance en parallèle. Nous l'utiliserons comme un voltmètre pour afficher la tension proportionnelle à la vitesse d'Internet. Il faut donc calculer la résistance à ajouter en série. Pour cela, nous devons d'abord calculer le courant de déviation à pleine échelle.

  1. Choisissez une valeur de résistance élevée (comme >100k)
  2. Connectez-le en série avec le mouvement et appliquez une tension variable à ses bornes à l'aide du pot.
  3. Continuez à augmenter la tension lentement jusqu'à ce que le pointeur atteigne la fin de l'échelle.
  4. À l'aide d'un multimètre, mesurez le courant qui le traverse. Il s'agit du courant de déviation à pleine échelle. (I = 150uA dans mon cas)

Nous utilisons un DAC qui a la plage de tension de sortie de 0 à VCC (3,3 V en raison de NodeMCU). Cela signifie que lorsque 3,3 V est appliqué au compteur, il doit pointer vers la fin de l'échelle. Cela peut se produire lorsqu'un courant de déviation à pleine échelle traverse le circuit lorsque 3,3 V est appliqué. En utilisant la loi d'Ohm, 3.3/(courant de déviation pleine échelle) donne la valeur de la résistance à insérer en série.

Étape 4: Création d'une requête SNMP GET

Création d'une requête GET SNMP
Création d'une requête GET SNMP
Création d'une requête GET SNMP
Création d'une requête GET SNMP
Création d'une requête GET SNMP
Création d'une requête GET SNMP

Le protocole SNMP (Simple Network Management Protocol) est un protocole Internet standard permettant de collecter et d'organiser les informations sur les périphériques gérés sur les réseaux IP et de modifier ces informations pour modifier le comportement des périphériques. Les périphériques qui prennent généralement en charge SNMP incluent les modems câble, les routeurs, les commutateurs, les serveurs, les postes de travail, les imprimantes, etc. Pour cette version, nous communiquerons avec notre routeur WiFi à l'aide de SNMP et obtiendrons les données requises.

Mais d'abord, nous devons envoyer une requête connue sous le nom de « requête GET » au routeur en mentionnant les détails des données que nous voulons. Le format de demande GET est montré dans l'image. La demande se compose de plusieurs parties. J'ai mis en évidence les octets que vous pourriez vouloir changer.

Veuillez noter que tout est en hexadécimal.

Message SNMP - Dans mon cas, la longueur du message entier est de 40 (couleur grise) qui, une fois convertie en hexadécimal, est de 0x28.

Chaîne de communauté SNMP - La valeur 'PUBLIC' est écrite en hexadécimal comme '70 75 62 6C 69 63' dont la longueur est 6 (jaune).

Type de PDU SNMP - Dans mon cas, la longueur du message est de 27 (bleu), c'est-à-dire 0x1B.

Type de liste Varbind - Dans mon cas, la longueur du message est de 16 (vert), c'est-à-dire 0x10.

Type Varbind - Dans mon cas, la longueur du message est de 14 (rose) c'est-à-dire 0x0E.

Identificateur d'objet -

Comme mentionné précédemment, les périphériques réseau compatibles SNMP (par exemple, les routeurs, les commutateurs, etc.) maintiennent une base de données d'informations sur l'état, la disponibilité et les performances du système en tant qu'objets, identifiés par des OID. Vous devez identifier les OID de votre routeur pour les paquets Upload et Download. Cela peut être fait en utilisant un navigateur MIB gratuit comme celui-ci.

Entrez l'adresse comme 192.168.1.1 et l'OID comme.1.3.6.1.2.1.2.1.2.1.10.x (ifInOctets) ou.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Sélectionnez Obtenir l'opération et cliquez sur Aller. Vous devriez voir l'OID avec sa valeur et son type.

Dans mon cas, la longueur du message est de 10 (rouge) soit 0x0A. Remplacez la valeur par l'OID. Dans ce cas, '2B 06 01 02 01 02 02 01 10 10'

C'est ça! Votre message de demande est prêt. Gardez le reste des octets tels quels.

Activer SNMP sur votre routeur:

  • Connectez-vous à la page de votre routeur WiFi via la passerelle par défaut. Tapez 192.168.1.1 dans votre navigateur et appuyez sur Entrée. Par défaut, le nom d'utilisateur et le mot de passe doivent être « admin ».
  • J'utilise un routeur TP-LINK (TD-W8961N). Pour ce routeur, vous devez aller dans Gestion des accès > SNMP et sélectionner 'Activé'.
  • Communauté GET: publique
  • Piège hôte: 0.0.0.0

Étape 5: Comprendre la réponse GET

Comprendre la réponse GET
Comprendre la réponse GET

Vous pouvez ignorer cette étape, mais il est bon de savoir si vous devez effectuer un dépannage.

Une fois que vous avez téléchargé le code et l'avez exécuté, vous pouvez consulter la réponse via le moniteur série. Il devrait ressembler à celui indiqué sur l'image. Il y a quelques octets que vous devez rechercher que j'ai mis en évidence.

A partir de 0, Le 15e octet indique au type de PDU - 0xA2 signifie qu'il s'agit d'une GetResponse.

Le 48e octet indique que le type de données - 0x41 signifie que le type de données est Counter.

Le 49e octet indique la longueur des données - 0x04 signifie que les données ont une longueur de 4 octets.

Les octets 50, 51, 52, 53 contiennent les données.

Étape 6: Convertisseur numérique-analogique (DAC)

Convertisseur numérique-analogique (DAC)
Convertisseur numérique-analogique (DAC)

Les microcontrôleurs sont des appareils numériques qui ne comprennent pas directement les tensions analogiques. J'utilise un compteur analogique qui a besoin d'une tension variable comme entrée. Mais le microcontrôleur peut simplement sortir HIGH (3.3V dans le cas de NodeMCU) et LOW (0V). Maintenant, vous pourriez dire pourquoi ne pas simplement utiliser PWM. Cela ne fonctionnera pas puisque le compteur n'affichera que la valeur moyenne.

J'utilise le DAC MCP4725 pour obtenir une tension variable. C'est un DAC 12 bits c'est-à-dire en termes simples, il divisera 0 à 3,3V en 4096 (= 2^12) parties. La résolution sera de 3,3/4096 = 0,8056 mV. Cela signifie que 0 correspond à 0V, 1 correspond à 0,8056mV, 2 correspond à 1,6112mV, ….., 4095 correspond à 3,3V.

La vitesse Internet sera « mappée » de « 0 à 7 mbps » à « 0 à 4095 », puis cette valeur sera donnée au DAC pour produire une tension qui sera proportionnelle à la vitesse Internet.

Étape 7: L'Assemblée

L'Assemblée
L'Assemblée
L'Assemblée
L'Assemblée
L'Assemblée
L'Assemblée
L'Assemblée
L'Assemblée

Les connexions sont très simples. Le schéma est joint ici.

J'ai conçu et imprimé l'échelle. Le supérieur correspond à la vitesse de téléchargement et le inférieur à la vitesse de téléchargement. J'ai collé la nouvelle échelle sur l'ancienne.

J'ai retiré tous les vieux trucs du multimètre et j'ai tout entassé dedans. C'était un ajustement serré. J'ai dû percer un trou à l'avant pour attacher l'interrupteur à bascule qui sert à choisir entre la vitesse de téléchargement et de téléchargement.

Étape 8: le temps du codage

Le temps du codage
Le temps du codage
Le temps du codage
Le temps du codage
Le temps du codage
Le temps du codage

Le code a été joint ici. Téléchargez-le et ouvrez-le dans Arduino IDE. Installez la bibliothèque MCP4725 d'Adafruit.

Avant de télécharger:

  1. Entrez votre SSID WiFi et votre mot de passe
  2. Entrez la vitesse maximale de téléchargement et de téléchargement mentionnée sur l'échelle.
  3. Apportez les modifications nécessaires dans le tableau de requêtes pour le téléchargement ainsi que les paquets de téléchargement.
  4. Décommentez la ligne 165 pour afficher la réponse sur le moniteur série.

Appuyez sur télécharger !

Étape 9: Profitez

Allumez-le et regardez l'aiguille danser pendant que vous surfez sur Internet !

Merci d'être resté jusqu'au bout. J'espère que vous aimez tous ce projet et que vous avez appris quelque chose de nouveau aujourd'hui. Faites-moi savoir si vous en faites un pour vous-même. Abonnez-vous à ma chaîne YouTube pour plus de projets de ce type.

Conseillé: