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

Ασύρματος αναγνώστης καρτών SD [ESP8266]: 10 βήματα (με εικόνες)
Ασύρματος αναγνώστης καρτών SD [ESP8266]: 10 βήματα (με εικόνες)

Βίντεο: Ασύρματος αναγνώστης καρτών SD [ESP8266]: 10 βήματα (με εικόνες)

Βίντεο: Ασύρματος αναγνώστης καρτών SD [ESP8266]: 10 βήματα (με εικόνες)
Βίντεο: Χωρίς καλώδια, 100% ασύρματη || Vacos Cam IR 2024, Ιούλιος
Anonim
Image
Image

Το USB υποτίθεται ότι ήταν καθολικό και ο κύριος στόχος ήταν να γίνει μια συσκευή με δυνατότητα εναλλαγής θερμότητας, εξαιρετικά εύκολη στη διασύνδεση με άλλες συσκευές, αλλά με την πάροδο των ετών η ιδέα πήγε χαμένη. Υπάρχουν τόσες πολλές διαφορετικές παραλλαγές αυτών των θυρών USB που είναι τόσο απογοητευτικές κατά καιρούς και ο τρόπος με τον οποίο αυτά λειτουργούν έρχεται σε πλήρη αντίθεση με το όνομά τους [USB - Universal Serial Bus] επειδή κάθε δέκτης USB πρέπει να είναι συμβατός με οποιαδήποτε συσκευή USB! Δεν μπορείτε να συνδέσετε το USB stick ή ένα πληκτρολόγιο μέσα σε έναν φορτιστή και να περιμένετε να λειτουργήσει.

Αλλά η ιδέα ακούγεται πολύ καλή! Αυτός είναι ο λόγος για τον οποίο ξεκίνησα αυτήν την ιδέα "Universal-Port" ξεκίνησα με ένα απλό έργο "Wireless Card reader"

Αυτό εκπλήρωσε όλες τις επιθυμίες μου, το μόνο που έχω να κάνω είναι να το συνδέσω σε οποιοδήποτε δέκτη USB, δεν έχει σημασία ποιος!

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

Προμήθειες

Αυτή είναι η λίστα των προϊόντων που μπορούν να σας βοηθήσουν να κάνετε αυτό το έργο με ευκολία

(Affiliate Link)

  • Esp12E:
  • Κάρτα SD:
  • Προσαρμογέας Micro SD:
  • HeaderPins:
  • Καρφίτσες με κεφαλίδες υπό γωνία:
  • Σύρματα:
  • FTDI:
  • Σύρμα Arduino nano + προγραμματιστή:
  • Αρσενικό USB:
  • PCB:
  • Συγκολλητικό όπλο:
  • Μόλυβδος συγκόλλησης:

Βήμα 1: Κάρτα SD (Secure Digital)

Κάρτα SD (Secure Digital)
Κάρτα SD (Secure Digital)

Το SD σημαίνει Secure Digital, είναι παρόμοιο με το Pendrive, αλλά με μικρότερο αποτύπωμα και πολύ φθηνότερη τιμή.

Όταν πρέπει να το χρησιμοποιήσουμε με οποιονδήποτε από τους μικροελεγκτές, υπάρχουν 2 επιλογές, μία είναι η SDIO και η SPI. Σχεδόν όλες οι κάρτες SD έχουν πολλές τυπικές λειτουργίες και έχουν τις ίδιες φυσικές και ηλεκτρικές προδιαγραφές. Οι πραγματικές διαφορές μεταξύ του SPI και του SDIO είναι κυρίως σε επίπεδο λογισμικού. Μπορείτε να διαβάσετε περισσότερα για αυτό σε αυτόν τον σύνδεσμο.

Προς το παρόν, ας πούμε ότι το SDIO είναι πιο γρήγορο αλλά πιο δύσκολο να εφαρμοστεί και το SPI είναι πιο αργό αλλά πιο εύκολο να εφαρμοστεί. Δεδομένου ότι οι περισσότεροι μικροελεγκτές υποστηρίζουν το SPI από προεπιλογή, θα παραμείνουμε σε αυτό.

Pinout κάρτας SD για SPI

Pin -1 - CS (Chip select) Pin -2 - DI (MOSI) Pin -3 - GNDPin -4 - VCCPin -5 - SCLKPin -6 - GNDPin -7 - DO (MISO) Pin -8 - NCPin -9 - NC

Βήμα 2: Τροποποίηση προσαρμογέα κάρτας SD

Τροποποίηση προσαρμογέα κάρτας SD
Τροποποίηση προσαρμογέα κάρτας SD
Τροποποίηση προσαρμογέα κάρτας SD
Τροποποίηση προσαρμογέα κάρτας SD
Τροποποίηση προσαρμογέα κάρτας SD
Τροποποίηση προσαρμογέα κάρτας SD
Τροποποίηση προσαρμογέα κάρτας SD
Τροποποίηση προσαρμογέα κάρτας SD

Μπορείτε να χρησιμοποιήσετε οποιαδήποτε μονάδα κάρτας SD που υποστηρίζει Arduino και esp8266, αλλά για τους σκοπούς αυτού του έργου, θα χρησιμοποιήσουμε τον προσαρμογέα κάρτας microSD και θα τροποποιήσουμε με τέτοιο τρόπο ώστε να μπορούμε να το χρησιμοποιήσουμε αντί για τη μονάδα.

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

Κόψτε το PCB με τέτοιο τρόπο ώστε να ταιριάζει απόλυτα με τον προσαρμογέα κάρτας SD και να έχει λίγο επιπλέον χώρο, για να προσθέσετε την αρσενική θύρα USB.

Μπορείτε επίσης να κάνετε την ίδια διαδικασία με την κάρτα SD αντί για τον προσαρμογέα, αλλά είναι αρκετά επικίνδυνο αν την καταστρέψετε.

Βήμα 3: Σύνδεση USB

Σύνδεση USB
Σύνδεση USB
Σύνδεση USB
Σύνδεση USB
Σύνδεση USB
Σύνδεση USB

Πρέπει να τροφοδοτήσουμε την κάρτα SD. Για αυτό, θα χρησιμοποιούμε την ίδια τη θύρα λήψης USB. Θα χρησιμοποιήσουμε λοιπόν μια αρσενική θύρα USB. Αυτό έχει συνήθως 4 ακίδες, όπου 2 μεσαίες ακίδες χρησιμοποιούνται για τη μεταφορά δεδομένων και 2 ακραίες ακίδες χρησιμοποιούνται για τροφοδοσία και γείωση. Δεδομένου ότι χρειαζόμαστε απλώς τροφοδοσία, θα κόψω τις ακίδες δεδομένων και θα κρατήσω το GND και το VCC.

Στη συνέχεια τοποθετήσαμε την αρσενική θύρα USB μπροστά από την κάρτα SD, όπου δημιουργήσαμε λίγο χώρο και στη συνέχεια τη συγκολλήσαμε στη θέση της. Αυτό δεν έλυσε κανένα πρόβλημα ισχύος ακόμα! Επειδή η κάρτα SD απαιτεί 3,3v, αλλά η τροφοδοσία USB είναι στάνταρ 5V, αν απλώς την συνδέσετε στην τροφοδοσία, πιθανότατα θα σβήσετε την κάρτα SD (Αλλά δεν θα προκληθεί ζημιά από τον προσαρμογέα microSD).

Για να το λύσουμε αυτό, θα χρησιμοποιήσουμε έναν ρυθμιστή 3.3V και θα συνδέσουμε την είσοδο της τροφοδοσίας USB στον ρυθμιστή 3.3V, δηλαδή θα συνδέσουμε το GND του USB στον ακροδέκτη 1 του ρυθμιστή και θα συνδέσουμε τον πείρο 3 του ρυθμιστή στα +5V του ρυθμιστή. Τέλος, κολλήστε τον πείρο 3 (ακίδα εξόδου) και τη γείωση του ρυθμιστή στην κάρτα SD.

Αυτό θα ρυθμίσει την ισχύ για την κάρτα SD. Μπορείτε να ελέγξετε το διάγραμμα κυκλώματος για πιο λεπτομερή σύνδεση.

Βήμα 4: Συνδυάζοντας τα πάντα μαζί με το ESP-12E

Συνδυάζοντας τα πάντα μαζί με το ESP-12E
Συνδυάζοντας τα πάντα μαζί με το ESP-12E
Συνδυάζοντας τα πάντα μαζί με το ESP-12E
Συνδυάζοντας τα πάντα μαζί με το ESP-12E
Συνδυάζοντας τα πάντα μαζί με το ESP-12E
Συνδυάζοντας τα πάντα μαζί με το ESP-12E
Συνδυάζοντας τα πάντα μαζί με το ESP-12E
Συνδυάζοντας τα πάντα μαζί με το ESP-12E

Τώρα για να διαβάσουμε και να γράψουμε τα δεδομένα από την κάρτα SD θα χρησιμοποιήσουμε τη μονάδα wifi Esp12E, παρόλο που είναι πιο αργή από το esp32. Αλλά πραγματικά δεν έχει σημασία ποια θα επιλέξετε, θα πω τον λόγο στα τελευταία βήματα.

Συγκολλήστε πρώτα το EN (ενεργοποιήστε τον πείρο) στο VCC του esp12E, αυτό θα ενεργοποιήσει το IC. Εάν αυτό δεν είναι συνδεδεμένο στο σήμα HIGH, το IC δεν θα ενεργοποιηθεί. Στη συνέχεια, τοποθετήστε το esp12E στο πίσω μέρος της πλακέτας PCB και κολλήστε τις ακίδες SPI του esp12E στις καρφίτσες SPI της κάρτας SD. Για λεπτομέρειες, η σύνδεση ελέγχει το διάγραμμα κυκλώματος.

Βήμα 5: HTTP VS FTP

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

Το FTP είναι ταχύτερο από το HTTP στη μεταφορά αρχείων επειδή έχει δημιουργηθεί ειδικά για αυτό. Έτσι, ήθελα να το εφαρμόσω σε αυτό το έργο. Όπου ένας διακομιστής FTP εκτελείται στο esp-12E και μπορούμε να σπρώξουμε και να φέρουμε δεδομένα μέσω αυτού του FTP στην κάρτα SD.

Βήμα 6: Βρείτε τη βιβλιοθήκη FTP

Βρείτε τη βιβλιοθήκη FTP
Βρείτε τη βιβλιοθήκη FTP
Βρείτε τη βιβλιοθήκη FTP
Βρείτε τη βιβλιοθήκη FTP

Δεν μπόρεσα να βρω βιβλιοθήκη FTP που να έχει αναπτυχθεί πολύ ή να έχει δημιουργηθεί ειδικά για το esp8266. Αλλά με λίγο σκάψιμο συνάντησα τον David Paiva ο οποίος μετέφερε μια έκδοση Arduino του διακομιστή FTP στο esp8266 αλλά με την υποστήριξη SPIFFS και όχι την κάρτα SD.

Αλλά με λίγη περισσότερη προσπάθεια, βρήκα κάποιον που έκανε κάποια δουλειά στη βιβλιοθήκη David Paiva για να μετατρέψει το SPIFFS σε κάρτα SD. Αλλά όταν προσπάθησα να το χρησιμοποιήσω, αντιμετώπισα 2 ζητήματα. Πρώτον, η σελίδα όπου το διαπίστωσα ήταν στα Κορεάτικα, οπότε έπρεπε να καθίσω κυριολεκτικά και να μεταφράσω τα πάντα για να ξέρω τι συνέβαινε πριν προλάβω να κάνω κάτι με αυτό. Στη συνέχεια, το δεύτερο πρόβλημα ήταν, έπρεπε να τροποποιήσω την υπάρχουσα βιβλιοθήκη SD για να υποστηρίξω τις αλλαγές που έκανε, αλλά αυτό μου φάνηκε πολύ αδέξιο.

Έτσι, συνέκρινα τόσο αυτήν τη βιβλιοθήκη, τη μία από τον David Paiva όσο και την άλλη από τον ιστότοπο της Κορέας, έπειτα έκανα κάποιες μικρές αλλαγές και το έκανα ολόκληρο σε ένα έργο, οπότε δεν χρειάζεται να εγκαταστήσετε οποιαδήποτε βιβλιοθήκη. Μπορείτε να δείτε τον κωδικό από τον λογαριασμό μου στο Github.

Βήμα 7: Προγραμματισμός του ESP-12E

Προγραμματισμός του ESP-12E
Προγραμματισμός του ESP-12E
Προγραμματισμός του ESP-12E
Προγραμματισμός του ESP-12E
Προγραμματισμός του ESP-12E
Προγραμματισμός του ESP-12E

Το ESP-12E δεν συνοδεύεται από ενσωματωμένο προγραμματιστή, οπότε πρέπει να χρησιμοποιήσουμε έναν εξωτερικό προγραμματιστή όπως η μονάδα FDTI. Έτσι έφτιαξα έναν προσαρμογέα με μερικά καλώδια και θηλυκές ακίδες, με αυτό, μπορούμε να συγκολλήσουμε προσωρινά το esp12E και να το προγραμματίσουμε χρησιμοποιώντας τη μονάδα FTDI.

Συνδέστε το GND [esp12E] στο GND, το Rx [esp12E] στο Tx, το Tx [esp12E] στο Rx, το GPIO15 [esp12E] στο GND, το GPIO0 [esp12E] στο GND, το VCC [esp12E] στο VCC της μονάδας FDTI.

Στη συνέχεια, ανεβάστε τον κώδικα από το Github χρησιμοποιώντας το Arduino IDE.

Μόλις μεταφορτωθεί το πρόγραμμα, μπορείτε να ξεκολλήσετε τα καλώδια που ήταν συνδεδεμένα για να προγραμματίσετε το esp12E.

Βήμα 8: Ολοκληρώστε το έργο

Τελειώνοντας το Έργο!
Τελειώνοντας το Έργο!
Τελειώνοντας το Έργο!
Τελειώνοντας το Έργο!
Τελειώνοντας το Έργο!
Τελειώνοντας το Έργο!

Απλώς τοποθετήστε οποιαδήποτε κάρτα microSD [32 GB max] μέσα στον προσαρμογέα και συνδέστε ολόκληρη τη συσκευή σε οποιαδήποτε συμβατή με USB συσκευή, κάτι που θα ενεργοποιήσει τα πράγματα! Αλλά υπάρχουν λίγα πράγματα που πρέπει να λάβετε υπόψη, βεβαιωθείτε ότι το ρεύμα εξόδου της θύρας USB είναι μεγαλύτερο από 1 amp, μόνο για να είστε σε ασφαλέστερη πλευρά. Επειδή η μονάδα Esp12E καταναλώνει περισσότερο ρεύμα όταν μεταφέρει αρχεία.

Βήμα 9: Χρήση της συσκευής

Χρήση της Συσκευής
Χρήση της Συσκευής
Χρήση της Συσκευής
Χρήση της Συσκευής
Χρήση της Συσκευής
Χρήση της Συσκευής

Μόλις τροφοδοτηθεί η συσκευή, η συσκευή δημιουργεί ένα σημείο πρόσβασης που ονομάζεται SD Reader. Συνδεθείτε σε αυτό το σημείο πρόσβασης χρησιμοποιώντας τον κωδικό πρόσβασης που βρίσκεται στον κωδικό. Στη συνέχεια, ανάλογα με τη συσκευή που χρησιμοποιείτε για να συνδεθείτε στο 12E, κατεβάστε το αντίστοιχο λογισμικό προγράμματος -πελάτη FTP, εάν χρησιμοποιείτε υπολογιστή, κατεβάστε το WinSCP ή το Filzella και εάν χρησιμοποιείτε συσκευή Android, κατεβάστε το AndFTP.

Μόλις ολοκληρωθεί η εγκατάσταση, ανοίξτε το AndFTP και συμπληρώστε τα διαπιστευτήρια για να ρυθμίσετε το πρόγραμμα -πελάτη FTP. Στην περίπτωσή μου, άφησα το όνομα χρήστη και τον κωδικό πρόσβασης ως προεπιλεγμένο "esp8266" στον κώδικα. Έτσι, χρησιμοποιήστε το για τις πληροφορίες χρήστη και για τον κεντρικό υπολογιστή 192.168.12.7. Τέλος, συνδεθείτε στο διακομιστή FTP.

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

Μπορείτε να δείτε το βίντεο για να μάθετε πώς λειτουργεί!

Βήμα 10: Τελικές σκέψεις

Τελικές σκέψεις
Τελικές σκέψεις
Τελικές σκέψεις
Τελικές σκέψεις

Αλλά προτού καταλήξουμε στο συμπέρασμα ότι είναι μια πολύ εύχρηστη συσκευή, ας κάνουμε ένα βήμα πίσω.

Παρόλο που κάνει αυτό που θέλω, είναι εντελώς αργό! Για μόλις 4 αρχεία (το καθένα K 100Kb) χρειάζονται περίπου 30 δευτερόλεπτα και αν προσπαθήσετε με ένα μεγαλύτερο αρχείο όπως 10MB θα χρειαστούν περίπου 3-4 λεπτά για να ολοκληρωθεί. Υπάρχουν τρόποι βελτιστοποίησης, και από τη σελίδα στην οποία αναφέρθηκα μπόρεσε να πάρει ταχύτητα ανάγνωσης περίπου 450kbs. (Με Esp32 και SD_MMC η ταχύτητα μεταφοράς της βιβλιοθήκης μπορεί να είναι περίπου 1MB/sec)

Ο λόγος που σταμάτησα το έργο εδώ και δεν προσπάθησα να το βελτιστοποιήσω ήταν για 2 λόγους. Πρώτος λόγος, θα ήθελα πραγματικά, μαζί με τον διακομιστή FTP να μπορούσα να χρησιμοποιήσω τη γραμμή δεδομένων USB για τη μεταφορά δεδομένων, αλλά δεν υποστηρίζεται στο esp8266 ή το esp32. Και ο δεύτερος λόγος είναι ότι δεν μπόρεσα να έχω αρκετή ταχύτητα για να μεταφέρω τα αρχεία μέσω FTP. Αυτοί είναι επίσης ο ίδιος λόγος για τον οποίο δεν μπήκα στον κόπο να χρησιμοποιήσω το esp32 αντί για το esp12E.

Αλλά νομίζω ότι ορισμένα από αυτά τα προβλήματα μπορούν να λυθούν εάν μπορούμε να χρησιμοποιήσουμε τους πίνακες esp32 S2 που υποστηρίζουν πλήρη ταχύτητα εν κινήσει USB. Maybeσως μπορώ να το κάνω για ένα άλλο διδακτικό XD.

Συνιστάται: