Πίνακας περιεχομένων:

Μετρητής ταχύτητας Internet: 4 βήματα (με εικόνες)
Μετρητής ταχύτητας Internet: 4 βήματα (με εικόνες)

Βίντεο: Μετρητής ταχύτητας Internet: 4 βήματα (με εικόνες)

Βίντεο: Μετρητής ταχύτητας Internet: 4 βήματα (με εικόνες)
Βίντεο: COSMOTE Hints & Tips - Μέτρηση ταχύτητας σύνδεσης Speedtest 2024, Νοέμβριος
Anonim
Image
Image
Μετρητής ταχύτητας διαδικτύου
Μετρητής ταχύτητας διαδικτύου
Μετρητής ταχύτητας διαδικτύου
Μετρητής ταχύτητας διαδικτύου

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Αυτός ο "μετρητής ταχύτητας Internet" θα σας δώσει σχεδόν πραγματικό χρόνο επίβλεψη της χρήσης του δικτύου σας. Αυτές οι πληροφορίες είναι διαθέσιμες στη διεπαφή ιστού των περισσότερων δρομολογητών σπιτιού. Ωστόσο, η πρόσβαση σε αυτό απαιτεί να σταματήσετε την τρέχουσα εργασία σας για να το αναζητήσετε.

Wantedθελα να δω αυτές τις πληροφορίες χωρίς να χρειαστεί να διακόψω την τρέχουσα εργασία μου, να τις εμφανίσω σε μια μορφή κατανοητή με μια γρήγορη ματιά και να λάβω τις πληροφορίες με έναν τρόπο που θα λειτουργούσε με όσο το δυνατόν περισσότερους δρομολογητές, ώστε άλλοι να μπορούν ενδεχομένως να το χρησιμοποιήσετε επίσης.

Πώς κάνει τα πράγματα

Αποφάσισα το SNMP (Simple Network Management Protocol) ως τον τρόπο λήψης των πληροφοριών από το δρομολογητή. Το SNMP χρησιμοποιείται ευρέως σε εξοπλισμό δικτύωσης και εάν η συσκευή σας δεν το υποστηρίζει από προεπιλογή, το DDWRT (υλικολογισμικό δρομολογητή ανοιχτού κώδικα) μπορεί να χρησιμοποιηθεί για την εφαρμογή του SNMP.

Για να εμφανιστούν οι πληροφορίες με τρόπο που είναι εύκολο να κατανοηθεί, χρησιμοποίησα ένα μετρητή από ένα αυτοκίνητο. Οι μετρητές αυτοκινήτων έχουν σχεδιαστεί για να σας παρέχουν πληροφορίες χωρίς να σας αποσπούν την προσοχή ή να σας μπερδεύουν, ώστε ο οδηγός να μπορεί να έχει τα μάτια του στο δρόμο. Επίσης, έκανα μερικά ξαπλωμένα.

Δεδομένου ότι αυτό θα ήταν στο γραφείο μου, αποφάσισα ότι θα φτιάξω επίσης το πίσω φως RGB επειδή τα αξεσουάρ υπολογιστών πρέπει να είναι όλα RGB. Σωστά?

Προκλήσεις

Οι μετρητές που είχα χρησιμοποιήσει έναν ενεργοποιητή Air-Core. Δεν τα είχα ξανακούσει αυτά πριν από αυτό το έργο.

Από τη Wikipedia: Ο μετρητής πυρήνα αέρα αποτελείται από δύο ανεξάρτητα, κάθετα πηνία που περιβάλλουν έναν κοίλο θάλαμο. Ένας άξονας βελόνας προεξέχει στον θάλαμο, όπου ένας μόνιμος μαγνήτης είναι προσαρτημένος στον άξονα. Όταν το ρεύμα ρέει μέσω των κάθετων πηνίων, τα μαγνητικά τους πεδία υπερτίθενται και ο μαγνήτης είναι ελεύθερος να ευθυγραμμιστεί με τα συνδυασμένα πεδία.

Δεν μπόρεσα να βρω μια βιβλιοθήκη για το Arduino που να υποστηρίζει SNMP στη διαμόρφωση του διαχειριστή. Το SNMP έχει δύο κύριες μορφές, τον πράκτορα και τον διαχειριστή. Οι πράκτορες απαντούν στο αίτημα και οι διαχειριστές στέλνουν αίτημα στους πράκτορες. Κατάφερα να λειτουργήσω τη λειτουργικότητα του διαχειριστή τροποποιώντας τη βιβλιοθήκη Arduino_SNMP που δημιουργήθηκε από το 0neblock. Δεν έχω προγραμματίσει ποτέ σε C ++ εκτός από το να αναβοσβήνει η λυχνία LED σε ένα Arduino, οπότε αν υπάρχουν προβλήματα με τη βιβλιοθήκη SNMP, ενημερώστε με και θα προσπαθήσω να τα διορθώσω, προς το παρόν όμως λειτουργεί.

Επιπλέον, το SNMP δεν έχει σχεδιαστεί για προβολή σε πραγματικό χρόνο. Η προβλεπόμενη χρήση είναι για την παρακολούθηση στατιστικών και τον εντοπισμό διακοπών λειτουργίας. Εξαιτίας αυτού, οι πληροφορίες στο δρομολογητή ενημερώνονται μόνο κάθε 5 δευτερόλεπτα (η συσκευή σας μπορεί να διαφέρει). Αυτή είναι η αιτία της καθυστέρησης μεταξύ του αριθμού στη δοκιμή ταχύτητας και της κίνησης της βελόνας.

Βήμα 1: Εργαλεία και υλικά

Εργαλεία και υλικά
Εργαλεία και υλικά
Εργαλεία και υλικά
Εργαλεία και υλικά
Εργαλεία και υλικά
Εργαλεία και υλικά
Εργαλεία και υλικά
Εργαλεία και υλικά
Σχεδιασμός κυκλωμάτων
Σχεδιασμός κυκλωμάτων

Θα χρειαστούμε 3 γεμάτες H-γέφυρες. Τα μοντέλα που χρησιμοποίησα είναι Dual TB6612FNGand Dual L298N.

Κάθε ενεργοποιητής αέρα-πυρήνα απαιτεί 2 γεμάτες γέφυρες Η επειδή τα πηνία πρέπει να ελέγχονται ανεξάρτητα.

Ένας από τους μετρητές που χρησιμοποιώ έχει ένα πηνίο βραχυκυκλωμένο στη γείωση με μια δίοδο και μια αντίσταση. Δεν είμαι σίγουρος για την επιστήμη πίσω από αυτό, αλλά αυτό το επιτρέπει να περιστρέφεται περίπου 90 μοίρες με μόνο ένα πηνίο να τροφοδοτείται.

Θα χρησιμοποιήσω τον ρυθμιστή 12v έως 5v που είναι μέρος της πλακέτας L298N που επέλεξα για να τροφοδοτήσει το ESP32.

Όλα τα κυκλώματα LED είναι προαιρετικά, καθώς και οι σύνδεσμοι JST. Θα μπορούσατε εύκολα να κολλήσετε τα καλώδια απευθείας στο ESP32 και στον οδηγό κινητήρα.

Βήμα 3: Σχεδιασμός κώδικα

Ρύθμιση κώδικα

Θα χρειαστεί να ρυθμίσουμε το Arduino για να μπορέσουμε να χρησιμοποιήσουμε τον πίνακα ESP32. Υπάρχει ένας καλός οδηγός που βρίσκεται εδώ και θα σας καθοδηγήσει στη ρύθμιση του ESP32 Arduino.

Θα χρειαστείτε επίσης τη βιβλιοθήκη Arduino_SNMP που βρίσκεται εδώ.

Για να διαμορφώσετε τον κώδικα, θα χρειαστεί να συλλέξετε ορισμένες πληροφορίες.

  1. IP δρομολογητή
  2. Μέγιστη ταχύτητα μεταφόρτωσης
  3. Μέγιστη ταχύτητα λήψης
  4. Το όνομα και ο κωδικός πρόσβασής σας WiFi
  5. OID που περιέχει τις οκτάδες μετράει για "in" και "out" στη διεπαφή WAN των δρομολογητών σας

Υπάρχουν τυπικά OIDs (Object Identifiers) για τις πληροφορίες που θέλουμε. Σύμφωνα με το πρότυπο MIB-2, οι αριθμοί που θέλουμε είναι:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Όπου X είναι ο αριθμός που έχει εκχωρηθεί στη διεπαφή από την οποία θέλετε να λάβετε τα στατιστικά στοιχεία. Για μένα αυτός ο αριθμός είναι 3. Ένας τρόπος για να επιβεβαιώσετε ότι αυτό είναι το σωστό OID για εσάς και για να προσδιορίσετε τον αριθμό διεπαφής που πρέπει να χρησιμοποιήσετε, είναι να χρησιμοποιήσετε ένα εργαλείο όπως το MIB Browser.

Για να λάβω μέγιστες ταχύτητες χρησιμοποίησα το SpeedTest.net. μόλις έχετε τις ταχύτητές σας σε Mbps θα χρειαστεί να τις μετατρέψετε σε οκτάδες χρησιμοποιώντας αυτόν τον τύπο.

Οκτέτες ανά δευτερόλεπτο = (Αποτέλεσμα δοκιμής ταχύτητας σε Mbps * 1048576) / 8

Λειτουργία κώδικα

Ο κώδικας στέλνει ένα αίτημα λήψης SNMP στο δρομολογητή. Στη συνέχεια, ο δρομολογητής απαντά με έναν αριθμό, ο αριθμός αντιπροσωπεύει τον αριθμό των οκτάδων που έχουν σταλεί ή ληφθεί. Ταυτόχρονα, καταγράφουμε τον αριθμό των χιλιοστών του δευτερολέπτου που έχουν περάσει από την έναρξη του Arduino.

Μόλις πραγματοποιηθεί αυτή η διαδικασία τουλάχιστον δύο φορές, μπορούμε να υπολογίσουμε το ποσοστό χρήσης βάσει των μέγιστων τιμών μας χρησιμοποιώντας αυτόν τον κώδικα

ποσοστάDown = ((float) (byteDown - byteDownLast)/(float) (maxDown * ((millis () - timeLast)/1000))) * 100;

Τα μαθηματικά αναλύονται ως εξής:

octetsDiff = snmp_result - Previous_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second)/1000

Ποσοστό = (octetsDiff / MaxPosableOverTime) * 100

Τώρα που έχουμε το ποσοστό χρήσης του δικτύου, πρέπει απλώς να το γράψουμε στον μετρητή. Το κάνουμε σε 2 βήματα. Αρχικά χρησιμοποιούμε τη συνάρτηση updateDownloadGauge. Σε αυτή τη συνάρτηση χρησιμοποιούμε τον "χάρτη" για να μετατρέψουμε το ποσοστό σε έναν αριθμό που αντιπροσωπεύει μια ακτινική θέση στο μετρητή. Στη συνέχεια, δίνουμε αυτόν τον αριθμό στη συνάρτηση setMeterPosition για να μετακινήσουμε τη βελόνα στη νέα θέση.

Βήμα 4: Σχεδιασμός θήκης

Σχεδιασμός θήκης
Σχεδιασμός θήκης
Σχεδιασμός θήκης
Σχεδιασμός θήκης
Σχεδιασμός θήκης
Σχεδιασμός θήκης

Για να περιέχει τα πάντα, σχεδίασα ένα περίβλημα σε fusion360 και το εκτύπωσα 3D. Ο σχεδιασμός που έφτιαξα είναι σχετικά απλός. Χρησιμοποίησα θερμή κόλλα για να στερεώσω τα εξαρτήματα στο εσωτερικό και ο μετρητής κρατιέται στη θέση του τσιμπώντας μεταξύ του μπροστινού καλύμματος και του πίσω καλύμματος. Δεν χρειάζεται να χρησιμοποιήσετε τρισδιάστατη εκτύπωση για να δημιουργήσετε τη θήκη. Για παράδειγμα, μπορείτε να φτιάξετε μια θήκη από ξύλο ή να βάλετε τα πάντα πίσω στην αρχική θήκη που μπήκαν οι μετρητές.

Τα αρχεία μου STL είναι διαθέσιμα στο thingiverse αν θέλετε να τα δείτε, αλλά είναι απίθανο να λειτουργήσουν για εσάς, εκτός εάν λάβετε τα ίδια μετρητικά που χρησιμοποίησα.

Αρχεία υπόθεσης:

Ευχαριστώ για την ανάγνωση. Ενημερώστε με εάν έχετε οποιεσδήποτε ερωτήσεις και θα κάνω ό, τι καλύτερο μπορώ για να απαντήσω.

Συνιστάται: