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

Πίνακας αποτελεσμάτων κρίκετ χρησιμοποιώντας το NodeMCU: 9 βήματα (με εικόνες)
Πίνακας αποτελεσμάτων κρίκετ χρησιμοποιώντας το NodeMCU: 9 βήματα (με εικόνες)

Βίντεο: Πίνακας αποτελεσμάτων κρίκετ χρησιμοποιώντας το NodeMCU: 9 βήματα (με εικόνες)

Βίντεο: Πίνακας αποτελεσμάτων κρίκετ χρησιμοποιώντας το NodeMCU: 9 βήματα (με εικόνες)
Βίντεο: Inglês - Nivel Intermedio (9) - Diálogos em Inglês - English Conversations B1 2024, Ιούλιος
Anonim
Image
Image
Το σχέδιο
Το σχέδιο

Γειά σου! Πρόσφατα μυήθηκα στον κόσμο του IoT (Internet of Things) καθώς συνάντησα τη δημοφιλέστερη συσκευή σε αυτόν τον τομέα, το ESP8266. Έμεινα έκπληκτος από τον τελικό αριθμό των δυνατοτήτων που άνοιξε αυτή η μικροσκοπική και φθηνή συσκευή. Καθώς είμαι τώρα νέος σε αυτό, αποφάσισα να κάνω ένα έργο χρησιμοποιώντας αυτό και να μάθω στην πορεία. Έτσι, άρχισα να ψάχνω στο διαδίκτυο για έργα και ιδέες.

Συνάντησα ένα καταπληκτικό έργο που ονομάζεται Arduino Cricket Score Ticker του W. A. Smith. Σε αυτό το έργο, το Arduino μαζί με το Ethernet Shield και την κάρτα SD χρησιμοποιούνται για την εμφάνιση ζωντανών αποτελεσμάτων κρίκετ από το Cricbuzz. Αυτό το έργο με έβαλε σε σκέψεις.

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

Δεν είσαι φαν του κρίκετ; Κανένα πρόβλημα! Ο κώδικας περιέχει τον αναλυτή XML που μπορεί να χρησιμοποιηθεί για τη λήψη δεδομένων από οποιοδήποτε αρχείο XML. Απλώς χρησιμοποιήστε τις σωστές λειτουργίες για να λάβετε τα δεδομένα.

Βήμα 1: Το σχέδιο

Το σχέδιο
Το σχέδιο

Το σχέδιο είναι να χρησιμοποιήσετε το NodeMCU Development Board (με μονάδα ESP-12E) για πρόσβαση στο διαδίκτυο και να ζητήσετε τον κωδικό XML από το Cricbuzz που περιέχει όλες τις πληροφορίες σχετικά με τους τρέχοντες/επερχόμενους αγώνες. Αυτός ο κωδικός αποθηκεύεται στην κάρτα SD ως αρχείο.xml. Το αρχείο διαβάζεται στη συνέχεια από την κάρτα SD για να αναλύσει τα απαιτούμενα δεδομένα από τον κωδικό XML. Θα χρησιμοποιήσω τον κώδικα του W. A. Smith για να αναλύσω τις πληροφορίες. Χάρη στις προσπάθειές του. Ελέγξτε το έργο του εάν θέλετε να κάνετε το ίδιο χρησιμοποιώντας Arduino και Ethernet Shield.

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

Ας αρχίσουμε

Βήμα 2: Οθόνη OLED

Οθόνη OLED
Οθόνη OLED
Οθόνη OLED
Οθόνη OLED

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

Η οθόνη που χρησιμοποιώ είναι μονόχρωμη με το πρόγραμμα οδήγησης SSD1306 και διεπαφή I2C (2-καλωδίων). Διατίθενται επίσης εκδόσεις SPI της οθόνης. Η εκτέλεσή τους είναι εύκολη υπόθεση. Κατεβάστε τις βιβλιοθήκες SSD1306 και GFX που χρειάζονται για την εκτέλεση των οθονών. Ευχαριστώ την Adafruit για τη συγγραφή αυτών των βιβλιοθηκών.

Οι συνδέσεις είναι πολύ απλές.

  • GND σε GND
  • VCC έως 3,3V
  • SCL έως D1
  • SDA έως D2.

Βήμα 3: Κάρτα SD και προσαρμογέας

Κάρτα SD & Προσαρμογέας
Κάρτα SD & Προσαρμογέας

Η κάρτα SD αποθηκεύει το αρχείο XML από το Cricbuzz μέχρι να αναλυθούν όλες οι πληροφορίες. Μόλις εμφανιστούν οι απαραίτητες πληροφορίες, το αρχείο διαγράφεται. Η χρήση κάρτας SD για αποθήκευση αρχείου XML 10 - 20 kB είναι λίγο υπερβολική, αλλά καθιστά την ανάλυση πολύ πιο εύκολη και εύκολη στην κατανόηση.

Μπορεί να χρησιμοποιηθεί οποιαδήποτε κάρτα μνήμης. Επέλεξα την κάρτα micro SD για το μικρό της σχήμα. Μπορείτε να κολλήσετε απευθείας καλώδια στην κάρτα SD, αλλά η χρήση ενός πίνακα διάσπασης διευκολύνει τη δουλειά. Πρέπει να σημειωθεί ότι όλες οι κάρτες SD προορίζονται να λειτουργούν σε 3.3V. Αυτό σημαίνει ότι όχι μόνο θα πρέπει να τροφοδοτείται με χρήση 3.3V, αλλά και η επικοινωνία μεταξύ μικροελεγκτή και κάρτας SD πρέπει να είναι λογικού επιπέδου 3,3V. Τάση πάνω από 3.3V θα το σκοτώσει! Δεν θα ασχοληθούμε με αυτό όσον αφορά το NodeMCU επειδή το ίδιο το NodeMCU τρέχει σε 3.3V που είναι εντάξει. Εάν σκοπεύετε να χρησιμοποιήσετε οποιοδήποτε άλλο μικροελεγκτή με λογική στάθμη 5V, βεβαιωθείτε ότι η πλακέτα breakout σας έχει ενσωματωμένο έναν επιλογέα αλλαγής στάθμης (Όπως φαίνεται στην εικόνα). Βασικά μετατρέπει ή «μετατοπίζει» το 5V από τον μικροελεγκτή σε φιλικό προς κάρτα SD 3.3V. Η χρήση αλλαγής επιπέδου μαζί με τα 3.3V (όπως έκανα) δεν επηρεάζει τη λειτουργία του.

Η κάρτα SD χρησιμοποιεί διεπαφή SPI για επικοινωνία. Η καρφίτσα CS ή Chip Select μπορεί να συνδεθεί σε οποιαδήποτε από τις καρφίτσες GPIO. Επέλεξα το GPIO15 (D8). Απλώς κάντε τις απαραίτητες αλλαγές στον κώδικα εάν χρησιμοποιήσατε μια καρφίτσα διαφορετική από το GPIO15

  • SCK έως D5
  • MISO έως D6
  • MOSI έως D7
  • CS έως D8
  • VCC έως 3,3V
  • GND σε GND

Διαμορφώστε την κάρτα SD σας

Η βιβλιοθήκη που θα χρησιμοποιήσουμε υποστηρίζει συστήματα αρχείων FAT16 ή FAT32. Βεβαιωθείτε ότι έχετε μορφοποιήσει την κάρτα SD στη σωστή μορφή.

Βήμα 4: Δημιουργία πληκτρολογίου

Δημιουργία πληκτρολογίου
Δημιουργία πληκτρολογίου
Δημιουργία πληκτρολογίου
Δημιουργία πληκτρολογίου
Δημιουργία πληκτρολογίου
Δημιουργία πληκτρολογίου

Θέλω να κρατήσω το έργο όσο το δυνατόν μικρότερο. Έτσι, αποφάσισα να φτιάξω έναν ξεχωριστό πίνακα για το πληκτρολόγιο και να τον τοποθετήσω πάνω από τον κεντρικό πίνακα αργότερα. Αυτό θα εξοικονομήσει λίγο χώρο.

Μπορείτε να αγοράσετε μια έτοιμη μήτρα κλειδιού, αλλά είχα πατήσει κουμπιά. Επίσης, ήθελα να το κάνω όσο το δυνατόν μικρότερο. Μια τυπική διάταξη γραμμών και στηλών σύνδεσης θα χρειαζόταν συνολικά 6 καρφίτσες GPIO για μήτρα 3 x 3. Αυτό είναι αρκετά, λαμβάνοντας υπόψη ότι η οθόνη OLED και η κάρτα SD θα συνδεθούν επίσης.

Σε περίπτωση αμφιβολίας, βγάλτε το στο Google! Αυτό έκανα και βρήκα έναν τρόπο που θα χρειαστεί μόνο 1 ακίδα για να ελέγξει ολόκληρο τον πίνακα. Αυτό καθίσταται δυνατό με τη χρήση μήτρας διαίρεσης τάσης. Οι αντιστάσεις συνδέονται μεταξύ κάθε γραμμής και στήλης. Όταν πατηθεί ένα πλήκτρο, ένας συγκεκριμένος συνδυασμός αντιστάσεων συνδέεται σε σειρά, δημιουργώντας ένα διαχωριστή τάσης. Ανατρέξτε στο διάγραμμα κυκλώματος. Η μεταβαλλόμενη τάση θα διαβαστεί από τον μικροελεγκτή. Κάθε κλειδί θα παράγει διαφορετική τάση και έτσι μπορεί εύκολα να διαπιστωθεί ποιο πλήκτρο πατήθηκε διαβάζοντας την τάση εξόδου της μήτρας. Δεδομένου ότι θέλουμε να διαβάσουμε διάφορα επίπεδα τάσης και τώρα μόνο υψηλά και χαμηλά, θα χρειαστούμε έναν αναλογικό πείρο. Ευτυχώς υπάρχει ένας αναλογικός πείρος με την ένδειξη A0 στο NodeMCU. Το πρόβλημα λύθηκε!

Εάν επιθυμείτε να αγοράσετε μια μήτρα, ελέγξτε τις εσωτερικές συνδέσεις που εμφανίζονται στο διάγραμμα. Μπορεί να χρησιμοποιηθεί μήτρα οποιωνδήποτε διαστάσεων. Βεβαιωθείτε ότι χρησιμοποιείτε αντίσταση 2,2kΩ μεταξύ των γραμμών και αντίσταση 680Ω μεταξύ των στηλών.

Σύνδεση κουμπιών ώθησης

Οι ακίδες 1 και 2 είναι εσωτερικά συνδεδεμένες. Το ίδιο με τους πείρους 3 & 4. Όταν πατήσετε το κουμπί, όλες οι ακίδες συνδέονται μεταξύ τους. Ανατρέξτε στην εικόνα για να πάρετε μια ιδέα για τη σύνδεση των διακοπτών σε μια σανίδα.

Έχω συνδέσει μια αρσενική κεφαλίδα 3 ακίδων, ώστε να μπορεί να συνδεθεί με την κεντρική πλακέτα αργότερα.

Βήμα 5: Συνδυάζοντας τα πάντα μαζί

Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί
Βάζοντας τα πάντα μαζί

Μπορείτε να προγραμματίσετε την τοποθέτηση των εξαρτημάτων όπου θέλετε. Χωρίς περιορισμούς σε αυτό. Θα σας δείξω πώς το έκανα για να γίνει συμπαγές καθώς ήθελα κάτι που θα ταιριάζει στην παλάμη. Μπορεί να γίνει λίγο ακατάστατο, οπότε δοκιμάστε τον τρόπο μου αν σας βολεύει η συγκόλληση. Αποφάσισα να συμπληρώσω και τις δύο πλευρές του πίνακα όπως θα ήταν ένα PCB δύο επιπέδων. Ο πίνακας NodeMCU και η κάρτα SD από τη μία πλευρά και OLED και το πληκτρολόγιο από την άλλη πλευρά.

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

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

Καλύψτε τις συνδέσεις συγκόλλησης κάτω από το πληκτρολόγιο για να αποφύγετε βραχυκυκλώματα. Προσθέστε ένα λεπτό κομμάτι σκληρού αφρού (περίπου 5 χιλιοστά πάχος) μεταξύ του πληκτρολογίου και του πληκτρολογίου για επιπλέον προστασία και ακαμψία. Τέλος, κολλήστε το πληκτρολόγιο που φτιάξαμε νωρίτερα. Έχοντας ένα συγκολλητικό σίδερο με μυτερή άκρη σίγουρα θα κάνει τη δουλειά σας εύκολη. Aταν μια ακατάστατη δουλειά που το έκανε όσο το δυνατόν πιο συμπαγές, αλλά τελικά το κατάφερε.

Ελέγξτε ξανά όλες τις συνδέσεις σας για τυχόν βραχυκυκλώματα πριν τροφοδοτήσετε τη συσκευή

Βήμα 6: Ρύθμιση του πληκτρολογίου

Ρύθμιση του πληκτρολογίου
Ρύθμιση του πληκτρολογίου

Αφού ελέγξετε όλες τις συνδέσεις, είστε έτοιμοι να τροφοδοτήσετε τη συσκευή σας για πρώτη φορά. Δάχτυλα σταυρωμένα! Χωρίς μαγικό καπνό; Συγχαρητήρια!

Τώρα είμαστε έτοιμοι να ρυθμίσουμε το πληκτρολόγιο. Θυμηθείτε τη λειτουργία του πληκτρολογίου. Κάθε πάτημα πλήκτρου θα εξάγει διαφορετική τάση που τροφοδοτείται στον αναλογικό πείρο του NodeMCU. Το ESP-12E διαθέτει Analog to Digital Converter (ADC) ανάλυσης 10-bit. 2 που αυξάνεται στη δύναμη 10 θα δώσει 1024. Αυτό σημαίνει ότι θα λαμβάνουμε μια ένδειξη μεταξύ 0 και 1024 για κάθε πατημένο πλήκτρο. Ας δούμε τι αναγνώσεις έχουμε. Αλλά πρώτα, πρέπει να γράψουμε ένα μικρό πρόγραμμα για να πάρουμε αυτές τις τιμές. Ανοίξτε το Arduino IDE, αντιγράψτε επικολλήστε τον ακόλουθο κώδικα και ανεβάστε τον στο NodeMCU.

int keypadPin = A0;

void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Serial.println (r); }

  • Ανοίξτε τη Σειριακή οθόνη. Ρυθμίστε τον ρυθμό baud σε 115200.
  • Τώρα πατήστε οποιοδήποτε κουμπί. Θα πρέπει να έχετε συνεχή ανάγνωση στην σειριακή οθόνη. Οι μικρές διακυμάνσεις είναι εντάξει. Αυτά θα ληφθούν υπόψη στον κύριο κώδικα. Κάντε το ίδιο για κάθε κλειδί.
  • Κάθε κλειδί πρέπει να έχει διαφορετική ανάγνωση.
  • Σημειώστε όλες τις τιμές. Θα τα χρειαστούμε αργότερα.

Βήμα 7: Ας κωδικοποιήσουμε

Ας κωδικοποιήσουμε
Ας κωδικοποιήσουμε
Ας κωδικοποιήσουμε
Ας κωδικοποιήσουμε
Ας κωδικοποιήσουμε
Ας κωδικοποιήσουμε

Κατεβάστε το αρχείο Scoreboard.ino που παρέχεται παρακάτω στον υπολογιστή σας και ανοίξτε το χρησιμοποιώντας το Arduino IDE.

Πριν ανεβάσετε

1) Ρυθμίστε την ώρα ανανέωσης για τον πίνακα αποτελεσμάτων. Για παράδειγμα, 15L για 15 δευτερόλεπτα.

2) Εισαγάγετε το SSID και τον κωδικό πρόσβασης του δρομολογητή που θέλετε να συνδεθείτε.

3) Πραγματοποιήστε τις απαραίτητες αλλαγές εάν επιλέξατε να συνδέσετε την καρφίτσα CS της κάρτας SD σε μια καρφίτσα διαφορετική από το GPIO15.

4) Θυμάστε τις τιμές που σημειώσαμε για όλα τα κλειδιά; Πρέπει να εκχωρήσουμε έναν αριθμό κλειδιού για κάθε τιμή. Σας είχα πει επίσης για τις διακυμάνσεις στο διάβασμα. Αυτό οφείλεται στο ότι οι επαφές του διακόπτη δεν είναι τέλειες. Μακροπρόθεσμα, αυτή η τιμή μπορεί να αποκλίνει από την τρέχουσα τιμή λόγω της γήρανσης των επαφών που προσθέτει επιπλέον αντίσταση στο κύκλωμα αλλάζοντας έτσι την τάση. Μπορούμε να αντιμετωπίσουμε αυτό το πρόβλημα στον κώδικα.

Θα προσθέσουμε ένα ανώτερο όριο και ένα κατώτατο όριο της τιμής με περιθώριο 5. Για παράδειγμα, πήρα μια ένδειξη 617 για το κλειδί 1.

  • Αφαιρέστε 5 από αυτό. 617 - 5 = 612. Αυτό είναι το κατώτερο όριο.
  • Τώρα προσθέστε 5 σε αυτό. 617 + 5 = 622. Αυτό είναι το ανώτερο όριο.
  • Μετακινηθείτε στο τέλος του κώδικα. Συμπληρώστε το διάστημα που προβλέπεται για τις δύο τιμές στον κώδικα όπως φαίνεται στην εικόνα.
  • Κάντε το για κάθε 9 τιμές.

εάν (r> 612 && r <622) {keyNumber = 1; }

Τι σημαίνει αυτό?

ΑΝ η ένδειξη (r) είναι μεγαλύτερη από 612 ΚΑΙ μικρότερη από 622, τότε πιέζεται το πλήκτρο 1. Οποιαδήποτε τιμή μεταξύ 612 και 622 θα αντιμετωπιστεί ως κλειδί 1. Αυτό λύνει το πρόβλημα της αυξομειούμενης ανάγνωσης.

Βήμα 8: Χτίζοντας την υπόθεση

Χτίζοντας την υπόθεση
Χτίζοντας την υπόθεση
Χτίζοντας την υπόθεση
Χτίζοντας την υπόθεση
Χτίζοντας την υπόθεση
Χτίζοντας την υπόθεση
Χτίζοντας την υπόθεση
Χτίζοντας την υπόθεση

Αυτό είναι εντελώς προαιρετικό. Νόμιζα ότι το έργο θα φαινόταν προσεγμένο και ολοκληρωμένο με μια θήκη γύρω του. Χωρίς κατάλληλα εργαλεία για αυτή τη δουλειά, θα ήταν ένα τεράστιο έργο για μένα. Η θήκη είναι κατασκευασμένη με ακρυλικό.

Προετοιμάστε τα κομμάτια για κόλληση εξομαλύνοντας τις άκρες χρησιμοποιώντας γυαλόχαρτο. Χρησιμοποίησα τη Fevi Kwik (Super Glue) για να ενώσω όλα τα κομμάτια μαζί. Η σούπερ κόλλα αφήνει ένα λευκό υπόλειμμα αφού στεγνώσει. Έτσι, εφαρμόστε το μόνο μεταξύ των αρθρώσεων. Πρέπει να είστε γρήγοροι και ακριβείς όταν εργάζεστε με σούπερ κόλλα καθώς δένεται γρήγορα. Το ακρυλικό τσιμέντο ταιριάζει καλύτερα σε αυτή τη δουλειά.

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

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

Μετά από τόση λείανση, κοπή, στερέωση και ρύθμιση, τελικά έγινε!

Βήμα 9: Διασκεδάστε

Καλα να περνατε!
Καλα να περνατε!

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

Μετά την ενεργοποίηση, συνδέεται πρώτα με το σημείο πρόσβασης. Αρχικοποιεί την κάρτα SD. Θα εμφανίσει σφάλμα εάν η κάρτα SD δεν έχει προετοιμαστεί.

Θα εμφανιστεί μια λίστα με όλους τους αγώνες μαζί με τον αριθμό αγώνα.

Επιλέξτε τον αριθμό αντιστοίχισης χρησιμοποιώντας το πληκτρολόγιο.

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

Για να επιστρέψετε στο μενού, κρατήστε πατημένο το κουμπί ΠΙΣΩ (Κλειδί 8) μέχρι να εμφανιστεί η σελίδα "Ανάκτηση βαθμολογιών …".

Μελλοντικά σχέδια

  • Σχεδιάστε ένα προσαρμοσμένο PCB με τη μονάδα ESP8266 12-E.
  • Προσθέστε μια επαναφορτιζόμενη μπαταρία.
  • Βελτιώστε τον κώδικα με νέες δυνατότητες.

Ελπίζω να σας άρεσε η κατασκευή. Φτιάξτε το μόνοι σας και διασκεδάστε! Υπάρχει πάντα χώρος για βελτίωση και πολλά για μάθηση. Πάρτε τις δικές σας ιδέες. Μη διστάσετε να σχολιάσετε τυχόν προτάσεις σχετικά με την κατασκευή. Σας ευχαριστώ που μείνατε μέχρι το τέλος.

Συνιστάται: