Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
Με τον πλήρη αποκλεισμό να συνεχίζεται στην Ινδία, όλα, συμπεριλαμβανομένων των υπηρεσιών ταχυδρομείου, έχουν κλείσει. Ούτε νέα έργα PCB, ούτε νέα εξαρτήματα, ούτε τίποτα! Έτσι, για να ξεπεράσω την πλήξη και να ασχοληθώ, αποφάσισα να φτιάξω κάτι από τα μέρη που έχω ήδη στο σπίτι. Άρχισα να ψάχνω από το σωρό των σκουπιδιών ηλεκτρονικών ειδών και βρήκα ένα παλιό, σπασμένο αναλογικό πολύμετρο. Έσωσα την «κίνηση μετρητή» από αυτήν και αποφάσισα να εμφανίσω κάποιου είδους πληροφορίες, αλλά δεν ήξερα ακριβώς τι. Αρχικά, σκέφτηκα να εμφανίσω στατιστικά στοιχεία για τον COVID-19, αλλά υπάρχουν ήδη πολλά καλύτερα έργα στο διαδίκτυο. Επίσης, τα δεδομένα ενημερώνονται μετά από μερικές ώρες και ένας ακίνητος δείκτης του μετρητή θα ήταν βαρετός. Wantedθελα δεδομένα που αλλάζουν γρήγορα, αλλάζουν κάθε δευτερόλεπτο. Ζήτησα προτάσεις στο Instagram και ένας από τους ακόλουθούς μου απάντησε με ταχύμετρο διαδικτύου. Ακούστηκε ενδιαφέρον και αποφάσισε να το φτιάξει!
Σε αυτό το Instructable, θα σας δείξω πώς πήρα δεδομένα από το δρομολογητή WiFi μου χρησιμοποιώντας SNMP και εμφάνισα τις ταχύτητες μεταφόρτωσης και λήψης στον μετρητή.
Ας αρχίσουμε
Βήμα 1: Το σχέδιο
Όπως πάντα πριν ξεκινήσω με το έργο, έκανα λίγη έρευνα στο διαδίκτυο. Βρήκα μερικά έργα που σχετίζονται με αυτό το θέμα. Ταν δύο ειδών. Ένα που έδειξε ταχύτητα διαδικτύου μετρώντας την «ισχύ» του σήματος WiFi. Δεν είμαι ειδικός δικτύωσης αλλά αυτό δεν ακούστηκε σωστά. Οι άλλοι μέτρησαν την καθυστέρηση και κατηγοριοποίησαν την ταχύτητα ως αργή, μεσαία ή γρήγορη. Η καθυστέρηση είναι η χρονική καθυστέρηση μεταξύ της αποστολής του αιτήματος και της λήψης της απάντησης και έτσι δεν μπορεί να είναι η πραγματική αναπαράσταση της ταχύτητας του διαδικτύου. Μπορούμε όμως να το ονομάσουμε ταχύτητα απόκρισης δικτύου! Στη συνέχεια, υπήρχαν νόμιμα έργα που μέτρησαν τον χρόνο που απαιτείται για τη λήψη ορισμένων δεδομένων και υπολόγισαν την ταχύτητα του διαδικτύου με βάση αυτό.
Αλλά σε αυτό το έργο (από την Alistair) έμαθα για το Simple Network Management Protocol ή το SNMP. Χρησιμοποιώντας το SNMP, μπορούμε να επικοινωνήσουμε με το δρομολογητή WiFi και να λάβουμε τα απαιτούμενα δεδομένα απευθείας από αυτόν. Εύκολο, σωστά; Βασικά, όχι! Επειδή διαφορετικά μοντέλα δρομολογητών WiFi χρησιμοποιούν διαφορετικές ρυθμίσεις και χρειάζονται πολλή δοκιμή και σφάλμα προτού επιτύχετε τελικά την έξοδο. Μην φοβάσαι. Θα εξηγήσω εν συντομία ό, τι έμαθα για το SNMP και τις δυσκολίες που αντιμετώπισα στα επόμενα βήματα.
Έτσι, το σχέδιο είναι να χρησιμοποιήσετε το NodeMCU για σύνδεση στο δρομολογητή WiFi. Αυτά είναι τα βήματα για να φτάσετε στην τελική έξοδο:
- Στείλτε ένα αίτημα στο δρομολογητή 'ζητώντας' τα απαιτούμενα δεδομένα
- Λάβετε την απάντηση από το δρομολογητή
- Αναλύστε την απάντηση και αναλύστε τα απαιτούμενα δεδομένα από αυτήν
- Μετατρέψτε τα «ακατέργαστα» δεδομένα σε κατανοητές πληροφορίες
- Δημιουργήστε τάση ανάλογη της ταχύτητας διαδικτύου για τον μετρητή
- Επαναλαμβάνω
Θα χρησιμοποιώ DAC ή Digital to Analog Converter για τον έλεγχο του μετρητή.
Βήμα 2: Πράγματα που θα χρειαστείτε
1x NodeMCU
1x Αναλογική κίνηση μετρητή
1x MPU4725 DAC
1x διακόπτης SPDT
Ποτενσιόμετρο 1x 10k
1x Αντίσταση
Βήμα 3: Υπολογισμός ρεύματος εκτροπής πλήρους κλίμακας
Σημείωση: Μεταβείτε στο βήμα 7 για την πραγματική κατασκευή!
Παραλείψτε αυτό το βήμα εάν γνωρίζετε ήδη το ρεύμα εκτροπής πλήρους κλίμακας για τον μετρητή σας. Ο μετρητής μου δεν είχε καμία αναφορά γι 'αυτό έπρεπε να υπολογίσω. Αλλά πρώτα, ας δούμε γρήγορα πώς λειτουργεί μια τέτοια κίνηση. Αποτελείται από ένα πηνίο αιωρούμενο σε μαγνητικό πεδίο. Όταν το ρεύμα ρέει μέσω του πηνίου, σύμφωνα με τον νόμο του Faraday, βιώνει μια δύναμη. Το πηνίο αφήνεται να περιστρέφεται ελεύθερα στο μαγνητικό πεδίο και το ίδιο κάνει και ο δείκτης που είναι προσαρτημένος στο πηνίο. Το μέγεθος του ρεύματος που κάνει τον δείκτη να κινείται στο «τέλος της κλίμακας» ονομάζεται ρεύμα εκτροπής πλήρους κλίμακας. Αυτό είναι επίσης το μέγιστο ρεύμα που πρέπει να επιτραπεί να ρέει μέσω του πηνίου.
Γίνονται πολλά ακόμη, αλλά αυτό είναι αρκετό για αυτό που κάνουμε. Τώρα έχουμε το κίνημα. Μπορεί να χρησιμοποιηθεί ως βολτόμετρο προσθέτοντας μια μεγάλη αντίσταση σε σειρά μαζί του ή ως Αμπερόμετρο προσθέτοντας μια μικρή αντίσταση παράλληλα σε αυτό. Θα το χρησιμοποιήσουμε ως βολτόμετρο για να εμφανίσουμε την τάση ανάλογη της ταχύτητας του διαδικτύου. Έτσι, πρέπει να υπολογίσουμε την αντίσταση που πρέπει να προστεθεί σε σειρά. Για αυτό, πρέπει πρώτα να υπολογίσουμε το ρεύμα εκτροπής πλήρους κλίμακας.
- Επιλέξτε μια τιμή υψηλής αντίστασης (όπως> 100k)
- Συνδέστε το σε σειρά με την κίνηση και εφαρμόστε μια μεταβλητή τάση σε αυτό χρησιμοποιώντας το δοχείο.
- Συνεχίστε να αυξάνετε την τάση αργά μέχρι ο δείκτης να φτάσει στο τέλος της κλίμακας.
- Χρησιμοποιώντας ένα πολύμετρο, μετρήστε το ρεύμα που διαρρέει. Αυτό είναι το ρεύμα εκτροπής πλήρους κλίμακας. (I = 150uA στην περίπτωσή μου)
Χρησιμοποιούμε ένα DAC το οποίο έχει εύρος τάσης εξόδου από 0 έως VCC (3,3V λόγω NodeMCU). Αυτό σημαίνει ότι όταν εφαρμόζεται 3,3V στον μετρητή, θα πρέπει να δείχνει στο τέλος της κλίμακας. Αυτό μπορεί να συμβεί όταν ρεύμα εκτροπής πλήρους κλίμακας ρέει μέσω του κυκλώματος όταν εφαρμόζεται 3,3V. Χρησιμοποιώντας το νόμο του Ohm, το 3.3/(ρεύμα εκτροπής πλήρους κλίμακας) δίνει την τιμή της αντίστασης που πρέπει να εισαχθεί σε σειρά.
Βήμα 4: Δημιουργία SNMP GET Request
Το Simple Network Management Protocol (SNMP) είναι ένα τυπικό πρωτόκολλο Διαδικτύου για τη συλλογή και οργάνωση πληροφοριών σχετικά με διαχειριζόμενες συσκευές σε δίκτυα IP και την τροποποίηση αυτών των πληροφοριών για την αλλαγή της συμπεριφοράς της συσκευής. Οι συσκευές που συνήθως υποστηρίζουν SNMP περιλαμβάνουν καλωδιακά μόντεμ, δρομολογητές, διακόπτες, διακομιστές, σταθμούς εργασίας, εκτυπωτές και άλλα. Για αυτήν την κατασκευή, θα επικοινωνούμε με το δρομολογητή WiFi χρησιμοποιώντας SNMP και θα λαμβάνουμε τα απαιτούμενα δεδομένα.
Αλλά πρώτα, πρέπει να στείλουμε ένα αίτημα γνωστό ως «GET Request» στο δρομολογητή που αναφέρει τις λεπτομέρειες των δεδομένων που θέλουμε. Η μορφή GET Request εμφανίζεται στην εικόνα. Το αίτημα αποτελείται από διάφορα μέρη. Έχω επισημάνει τα byte τα οποία ίσως θέλετε να αλλάξετε.
Λάβετε υπόψη ότι όλα είναι δεκαεξαδικά.
Μήνυμα SNMP -Στην περίπτωσή μου, το μήκος ολόκληρου του μηνύματος είναι 40 (γκρι χρώμα) το οποίο όταν μετατρέπεται σε δεκαεξαδικό είναι 0x28.
Κοινοτική συμβολοσειρά SNMP - Η τιμή «PUBLIC» γράφεται σε δεκαεξαδική ως «70 75 62 6C 69 63» του οποίου το μήκος είναι 6 (κίτρινο).
Τύπος SNMP PDU - Στην περίπτωσή μου, το μήκος του μηνύματος είναι 27 (μπλε), δηλαδή 0x1B.
Τύπος λίστας Varbind - Στην περίπτωσή μου, το μήκος του μηνύματος είναι 16 (πράσινο), δηλαδή 0x10.
Varbind Type - Στην περίπτωσή μου, το μήκος του μηνύματος είναι 14 (ροζ), δηλαδή 0x0E.
Αναγνωριστικό αντικειμένου -
Όπως αναφέρθηκε προηγουμένως, οι συσκευές δικτύου με δυνατότητα SNMP (π.χ. δρομολογητές, διακόπτες κ.λπ.) διατηρούν μια βάση δεδομένων για την κατάσταση του συστήματος, τη διαθεσιμότητα και τις πληροφορίες απόδοσης ως αντικείμενα, τα οποία προσδιορίζονται από OID. Πρέπει να προσδιορίσετε τα OID του δρομολογητή σας για πακέτα μεταφόρτωσης και λήψης. Μπορεί να γίνει χρησιμοποιώντας ένα δωρεάν πρόγραμμα περιήγησης MIB όπως αυτό.
Εισαγάγετε Διεύθυνση ως 192.168.1.1 και OID ως.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) ή.1.3.6.1.2.1.2.2.1.16.x (ifOutOctets). Επιλέξτε Λήψη λειτουργίας και κάντε κλικ στο Go. Θα πρέπει να δείτε το OID μαζί με την τιμή και τον τύπο του.
Στην περίπτωσή μου, το μήκος του μηνύματος είναι 10 (κόκκινο), δηλαδή 0x0A. Αντικαταστήστε την τιμή με το OID. Στην περίπτωση αυτή, «2B 06 01 02 01 02 02 01 01 10 10»
Αυτό είναι! Το μήνυμα αιτήματός σας είναι έτοιμο. Διατηρήστε τα υπόλοιπα byte όπως είναι.
Ενεργοποίηση του SNMP στο δρομολογητή σας:
- Συνδεθείτε στη σελίδα του δρομολογητή WiFi μέσω της προεπιλεγμένης πύλης. Πληκτρολογήστε 192.168.1.1 στο πρόγραμμα περιήγησής σας και πατήστε enter. Από προεπιλογή, το όνομα χρήστη και ο κωδικός πρόσβασης πρέπει να είναι "διαχειριστής".
- Χρησιμοποιώ δρομολογητή TP-LINK (TD-W8961N). Για αυτόν τον δρομολογητή, πρέπει να μεταβείτε στη Διαχείριση πρόσβασης> SNMP και να επιλέξετε "Ενεργοποιημένο".
- GET Κοινότητα: δημόσια
- Παγίδα παγίδα: 0.0.0.0
Βήμα 5: Κατανόηση της απόκρισης GET
Μπορείτε να παραλείψετε αυτό το βήμα, αλλά είναι καλό να γνωρίζετε εάν πρέπει να κάνετε κάποια αντιμετώπιση προβλημάτων.
Μόλις ανεβάσετε τον κώδικα και τον εκτελέσετε, μπορείτε να ρίξετε μια ματιά στην απάντηση μέσω της σειριακής οθόνης. Θα πρέπει να μοιάζει όπως φαίνεται στην εικόνα. Υπάρχουν μερικά byte που πρέπει να αναζητήσετε και τα οποία έχω επισημάνει.
Ξεκινώντας από το 0, Το 15ο byte λέει στον τύπο PDU - 0xA2 σημαίνει ότι είναι GetResponse.
Το 48ο byte λέει τον τύπο δεδομένων - 0x41 σημαίνει ότι ο τύπος δεδομένων είναι Counter.
Το 49ο byte λέει το μήκος των δεδομένων - 0x04 σημαίνει ότι τα δεδομένα έχουν μήκος 4 byte.
Το Byte 50, 51, 52, 53 περιέχει τα δεδομένα.
Βήμα 6: Μετατροπέας ψηφιακού σε αναλογικό (DAC)
Οι μικροελεγκτές είναι ψηφιακές συσκευές που δεν καταλαβαίνουν άμεσα τις αναλογικές τάσεις. Χρησιμοποιώ έναν αναλογικό μετρητή που χρειάζεται μεταβλητή τάση ως είσοδο. Αλλά ο μικροελεγκτής μπορεί απλά να εξάγει Υ HIGHΗΛΗ (3,3V σε περίπτωση NodeMCU) και ΧΑΜΗΛΟΣ (0V). Τώρα μπορείτε να πείτε γιατί να μην χρησιμοποιείτε μόνο το PWM. Δεν θα λειτουργήσει αφού ο μετρητής θα εμφανίζει μόνο τη μέση τιμή.
Χρησιμοποιώ το MCP4725 DAC για να λάβω μεταβλητή τάση. Είναι ένα DAC 12-bit, δηλαδή με απλά λόγια, θα διαιρέσει το 0 έως το 3.3V σε 4096 (= 2^12) μέρη. Η ανάλυση θα είναι 3,3/4096 = 0,8056mV. Αυτό σημαίνει ότι 0 αντιστοιχεί σε 0V, 1 αντιστοιχεί σε 0.8056mV, 2 αντιστοιχεί σε 1.6112mV,….., 4095 αντιστοιχεί σε 3.3V.
Η ταχύτητα του διαδικτύου θα "χαρτογραφηθεί" από "0 έως 7 mbps" σε "0 έως 4095" και στη συνέχεια αυτή η τιμή θα δοθεί στο DAC για να εξάγει μια τάση που θα είναι ανάλογη με την ταχύτητα του διαδικτύου.
Βήμα 7: Η συνέλευση
Οι συνδέσεις είναι πολύ απλές. Το σχήμα επισυνάπτεται εδώ.
Σχεδίασα και εκτύπωσα τη ζυγαριά. Το πάνω είναι για ταχύτητα λήψης και το κάτω για ταχύτητα μεταφόρτωσης. Κόλλησα τη νέα ζυγαριά πάνω από την παλιά.
Αφαίρεσα όλα τα παλιά πράγματα από το πολύμετρο και στριμώχνω τα πάντα σε αυτό. Wasταν μια σφιχτή εφαρμογή. Έπρεπε να ανοίξω μια τρύπα στο μπροστινό μέρος για να συνδέσω τον διακόπτη εναλλαγής που χρησιμοποιείται για την επιλογή μεταξύ της ταχύτητας μεταφόρτωσης και λήψης.
Βήμα 8: Timeρα για κωδικοποίηση
Ο κωδικός έχει επισυναφθεί εδώ. Κατεβάστε και ανοίξτε το στο Arduino IDE. Εγκαταστήστε τη βιβλιοθήκη MCP4725 από το Adafruit.
Πριν ανεβάσετε:
- Εισαγάγετε το SSID WiFi και τον κωδικό πρόσβασής σας
- Εισαγάγετε τη μέγιστη ταχύτητα μεταφόρτωσης και λήψης που αναφέρεται στην κλίμακα.
- Πραγματοποιήστε τις απαραίτητες αλλαγές στον πίνακα αιτημάτων για λήψη καθώς και μεταφόρτωση πακέτων.
- Αποσυνδέστε τη γραμμή 165 για προβολή απόκρισης στη σειριακή οθόνη.
Πατήστε upload!
Βήμα 9: Απολαύστε
Ενεργοποιήστε το και απολαύστε να βλέπετε τη βελόνα να χορεύει καθώς σερφάρετε στο διαδίκτυο!
Σας ευχαριστώ που μείνετε στο τέλος. Ελπίζω να σας άρεσε πολύ αυτό το έργο και να μάθατε κάτι νέο σήμερα. Ενημερώστε με αν φτιάξετε ένα για τον εαυτό σας. Εγγραφείτε στο κανάλι μου στο YouTube για περισσότερα τέτοια έργα.
Συνιστάται:
Ταχύμετρο τροχού χάμστερ: 11 βήματα (με εικόνες)
Ταχύμετρο τροχού χάμστερ: Πριν από περίπου τρία χρόνια, οι ανιψιές απέκτησαν το πρώτο τους κατοικίδιο, ένα χάμστερ που ονομάστηκε Νάγκετ. Η περιέργεια για τη ρουτίνα άσκησης του Νάγκετ ξεκίνησε ένα έργο που είχε πολύ καιρό να διαρκέσει το Nugget (RIP). Αυτό το Instructable σκιαγραφεί μια λειτουργική οπτική σφήνα τροχού άσκησης
Ταχύμετρο GPS: 4 βήματα (με εικόνες)
Ταχύμετρο GPS: Το εταιρικό μου αυτοκίνητο που κανονικά οδηγώ τείνει να έχει ένα " μικρό " προβλήματα κατά καιρούς, το ταχύμετρο πέφτει στα 0 χιλιόμετρα/ώρα κατά την οδήγηση (μετά από λίγο καιρό ξαναρχίζει). Κανονικά αυτό δεν είναι μεγάλο ζήτημα αφού αν γνωρίζετε πώς να οδηγείτε αυτοκίνητο
Ταχύμετρο εργασίας RC αυτοκινήτου: 4 βήματα (με εικόνες)
Speedometer Car RC: Αυτό είναι ένα σύντομο έργο που δημιούργησα ως μέρος μιας μεγαλύτερης κατασκευής RC ενός ελαφρού Land Rover. Αποφάσισα ότι μου άρεσε να έχω ένα ταχύμετρο στο ταμπλό, αλλά ήξερα ότι ένα σερβο δεν θα το κόψει. Υπήρχε μόνο μία λογική επιλογή: d
Ταχύμετρο κύκλου DIY: 6 βήματα (με εικόνες)
Ταχύμετρο κύκλου DIY: Αυτό το έργο ήρθε στο μυαλό μου όταν έκανα το έργο μου MEM (Mechanical Engineering Measurement), ένα θέμα στην B.tech. Η ιδέα είναι να μετρήσω τη γωνιακή ταχύτητα του τροχού του ποδηλάτου μου. Γνωρίζοντας έτσι τη διάμετρο και τον διαχρονικό μαθηματικό θρύλο
Αυτόνομος έλεγχος στροφών στροφών κινητήρα χρησιμοποιώντας σύστημα ανατροφοδότησης από ταχύμετρο βασισμένο σε IR: 5 βήματα (με εικόνες)
Αυτόνομος έλεγχος στροφών κινητήρα χρησιμοποιώντας σύστημα ανατροφοδότησης από ταχύμετρο βασισμένο σε IR: Υπάρχει πάντα ανάγκη αυτοματοποίησης μιας διαδικασίας, είτε απλής/τερατώδους. Πήρα την ιδέα να κάνω αυτό το έργο από μια απλή πρόκληση που αντιμετώπισα ενώ βρήκα μέθοδοι ποτίσματος/άρδευσης του μικρού μας κομματιού γης. Το πρόβλημα της μη τρέχουσας γραμμής τροφοδοσίας