Sommario:

Lettore di schede SD wireless [ESP8266]: 10 passaggi (con immagini)
Lettore di schede SD wireless [ESP8266]: 10 passaggi (con immagini)

Video: Lettore di schede SD wireless [ESP8266]: 10 passaggi (con immagini)

Video: Lettore di schede SD wireless [ESP8266]: 10 passaggi (con immagini)
Video: Come si utilizza il Lettore di schede Sd da REFLEX ad IPHONE? - UNBOXING INCREDIBILE 2024, Luglio
Anonim
Image
Image

L'USB doveva essere universale e l'obiettivo principale era quello di creare un dispositivo hot-swap, super facile da interfacciare con altri dispositivi, ma nel corso degli anni l'idea è andata in tilt. Ci sono così tante varianti diverse di queste porte USB che a volte sono così frustranti e il modo in cui funzionano contraddice totalmente il loro nome [USB - Universal Serial Bus] perché ogni ricevitore USB dovrebbe essere compatibile con qualsiasi dispositivo USB! Non puoi collegare la tua chiavetta USB o una tastiera all'interno di un caricabatterie e aspettarti che funzioni.

Ma il concetto suona troppo bene! Ecco perché per iniziare questo concetto di "porta universale" ho iniziato con un semplice progetto "lettore di schede wireless"

Questo ha soddisfatto tutti i miei desideri, tutto quello che devo fare è collegarlo a qualsiasi ricevitore USB, non importa quale!

Non appena lo colleghi, crea un punto di accesso in cui possiamo connetterci e quindi connetterci al punto di accesso e aprire semplicemente qualsiasi applicazione client FTP in qualsiasi dispositivo compatibile. Con questa configurazione, possiamo copiare e salvare file sulla scheda SD in modalità wireless!

Forniture

Questo è l'elenco dei prodotti che possono aiutarti a realizzare questo progetto con facilità

(Link di affiliazione)

  • Esp12E:
  • Scheda SD:
  • Adattatore Micro SD:
  • HeaderPins:
  • Perni di testata angolati:
  • Fili:
  • FTDI:
  • Arduino nano + cavo programmatore:
  • USB maschio:
  • PCB:
  • Pistola per saldatura:
  • Piombo di saldatura:

Passaggio 1: scheda SD (Secure Digital)

Scheda SD (Secure Digital)
Scheda SD (Secure Digital)

SD sta per Secure Digital, è simile alla tua Pendrive ma con un ingombro ridotto e un prezzo molto più economico.

Quando dobbiamo usarlo con uno qualsiasi dei microcontrollori ci sono 2 opzioni, una è SDIO e SPI. Quasi tutte le schede SD condividono molte caratteristiche standard e hanno le stesse specifiche fisiche ed elettriche. Le differenze effettive tra SPI e SDIO sono principalmente a livello di software. Puoi leggere di più a riguardo in questo Link.

Per ora, diciamo solo che SDIO è più veloce ma più difficile da implementare e SPI è più lento ma più facile da implementare. Poiché la maggior parte dei microcontrollori supporta SPI per impostazione predefinita, ci limiteremo ad attenerci ad esso.

Piedinatura della scheda SD per 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

Passaggio 2: modifica dell'adattatore della scheda SD

Modifica dell'adattatore della scheda SD
Modifica dell'adattatore della scheda SD
Modifica dell'adattatore della scheda SD
Modifica dell'adattatore della scheda SD
Modifica dell'adattatore della scheda SD
Modifica dell'adattatore della scheda SD
Modifica dell'adattatore della scheda SD
Modifica dell'adattatore della scheda SD

È possibile utilizzare qualsiasi modulo della scheda SD che supporti Arduino ed esp8266, ma per lo scopo di questo progetto utilizzeremo l'adattatore per schede microSD e modificheremo in modo tale da poterlo utilizzare al posto del modulo.

Per prima cosa, pulisci i contatti dell'adattatore della scheda SD. Quindi utilizzare i pin dell'intestazione angolati e saldare i pin direttamente ai contatti dell'adattatore. Una volta eseguita la saldatura, controllare i contatti tra i pin dell'intestazione per verificare eventuali cortocircuiti. Rimuovi il separatore nero uno per uno, così quando lo riposiamo, si allinea con il PCB.

Tagliare il PCB in modo tale che si adatti perfettamente all'adattatore per schede SD e abbia uno spazio extra, per aggiungere la porta USB maschio.

Puoi anche fare lo stesso processo con la scheda SD invece dell'adattatore, ma è piuttosto rischioso se la danneggi.

Passaggio 3: connessione USB

Connessione USB
Connessione USB
Connessione USB
Connessione USB
Connessione USB
Connessione USB

Dobbiamo alimentare la scheda SD, per questo utilizzeremo la porta di ricezione USB stessa. Quindi useremo una porta USB maschio. Questo di solito ha 4 pin, dove vengono utilizzati 2 pin centrali per il trasferimento dei dati e 2 pin estremi vengono utilizzati per alimentazione e massa. Dal momento che abbiamo solo bisogno di energia, taglierò i pin dei dati e manterrò solo GND e VCC.

Quindi posiziona la porta USB maschio davanti alla scheda SD dove abbiamo creato un po' di spazio in precedenza, quindi saldala in posizione. Questo non ha ancora risolto alcun problema di alimentazione! Poiché la scheda SD richiede 3,3 V ma l'alimentazione USB è 5 V standard, se la colleghi semplicemente all'alimentazione, probabilmente farai fuori la scheda SD (ma l'adattatore microSD non subirà danni).

Per risolvere questo problema utilizzeremo un regolatore da 3,3 V e collegheremo l'ingresso dell'alimentazione USB al regolatore da 3,3 V, ovvero collegare GND dell'USB al pin 1 del regolatore e collegare il pin 3 del regolatore a +5 V del regolatore. Infine, saldare il pin 3 (pin di uscita) e la massa del regolatore alla scheda SD.

Questo imposterà l'alimentazione per la scheda SD. È possibile controllare lo schema del circuito per una connessione più dettagliata.

Passaggio 4: mettere tutto insieme con ESP-12E

Mettere tutto insieme con ESP-12E
Mettere tutto insieme con ESP-12E
Mettere tutto insieme con ESP-12E
Mettere tutto insieme con ESP-12E
Mettere tutto insieme con ESP-12E
Mettere tutto insieme con ESP-12E
Mettere tutto insieme con ESP-12E
Mettere tutto insieme con ESP-12E

Ora per leggere e scrivere i dati dalla scheda SD utilizzeremo il modulo wifi Esp12E, anche se è più lento di esp32. Ma in realtà non importa quale scegli, ti dirò la ragione negli ultimi passaggi.

Prima saldare l'EN (pin di abilitazione) al VCC dell'esp12E, questo accenderà l'IC. Se questo non è collegato al segnale HIGH, l'IC non si accende. Quindi posizionare l'esp12E sul retro della scheda PCB e saldare i pin SPI dell'esp12E ai pin SPI sulla scheda SD. Per il dettaglio, il collegamento verifica lo schema elettrico.

Passaggio 5: HTTP VS FTP

Prima di programmare, ho fatto alcune ricerche su come funzionano i download e gli upload, ed è allora che mi sono imbattuto nella parola FTP. Fondamentalmente FTP sta per protocollo di trasferimento file, questo protocollo viene utilizzato per trasferire file tra server e client ed è totalmente diverso dal normale HTTP in cui client e server inviano e ricevono richieste/risposte di dimensioni molto ridotte.

L'FTP è più veloce dell'HTTP nel trasferimento dei file perché è stato creato appositamente per questo. Quindi, volevo implementarlo in questo progetto. Dove un server FTP viene eseguito su esp-12E e possiamo inviare e recuperare i dati attraverso questo FTP sulla scheda SD.

Passaggio 6: scoprire la libreria FTP

Capire la libreria FTP
Capire la libreria FTP
Capire la libreria FTP
Capire la libreria FTP

Non sono riuscito a trovare alcuna libreria FTP sviluppata in modo molto attivo o creata appositamente per esp8266. Ma con qualche ricerca mi sono imbattuto in David Paiva che ha portato una versione Arduino del server FTP su esp8266 ma con il supporto SPIFFS e non la scheda SD.

Ma con un piccolo sforzo in più, ho trovato qualcuno che ha lavorato sulla libreria di David Paiva per convertire gli SPIFFS sulla scheda SD. Ma quando ho provato a usarlo, ho riscontrato 2 problemi. Innanzitutto, la pagina in cui l'ho scoperto era in coreano, quindi ho dovuto letteralmente sedermi e tradurre tutto per sapere cosa stava succedendo prima di poterci fare qualsiasi cosa. Quindi il secondo problema è stato che ho dovuto modificare la libreria SD esistente per supportare le modifiche apportate, ma mi è sembrato molto goffo.

Quindi, ho confrontato questa libreria, una di David Paiva e l'altra del sito web coreano, quindi ho apportato alcune modifiche minori e ho trasformato il tutto in un unico progetto, quindi non è necessario installare alcuna libreria di alcun tipo. Puoi controllare il codice dal mio account Github.

Passaggio 7: programmazione dell'ESP-12E

Programmazione dell'ESP-12E
Programmazione dell'ESP-12E
Programmazione dell'ESP-12E
Programmazione dell'ESP-12E
Programmazione dell'ESP-12E
Programmazione dell'ESP-12E

ESP-12E non viene fornito con un programmatore integrato, quindi è necessario utilizzare un programmatore esterno come il modulo FDTI. Quindi ho realizzato un adattatore con alcuni fili e pin di intestazione femmina, con questo possiamo saldare temporaneamente l'esp12E e programmarlo utilizzando il modulo FTDI.

Collegare GND[esp12E] a GND, Rx[esp12E] a Tx, Tx[esp12E] a Rx, GPIO15[esp12E] a GND, GPIO0 [esp12E] a GND, VCC[esp12E] a VCC del modulo FDTI.

Quindi carica il codice da Github usando l'IDE di Arduino.

Una volta caricato il programma è possibile dissaldare i fili che erano collegati per programmare l'esp12E.

Passaggio 8: completamento del progetto

Finendo il progetto!
Finendo il progetto!
Finendo il progetto!
Finendo il progetto!
Finendo il progetto!
Finendo il progetto!

Basta inserire qualsiasi scheda microSD [32 GB max] all'interno dell'adattatore e collegare l'intero dispositivo a qualsiasi dispositivo compatibile USB, questo dovrebbe alimentare le cose! Ma ci sono alcune cose da considerare, assicurati che la corrente di uscita della porta USB sia maggiore di 1 amp, solo per essere più sicuro. Perché il modulo Esp12E consuma più corrente durante il trasferimento di file.

Passaggio 9: utilizzo del dispositivo

Utilizzo del dispositivo
Utilizzo del dispositivo
Utilizzo del dispositivo
Utilizzo del dispositivo
Utilizzo del dispositivo
Utilizzo del dispositivo

Non appena il dispositivo viene alimentato, il dispositivo crea un punto di accesso chiamato SD Reader. Connettiti a questo punto di accesso utilizzando la password che è sul codice. Quindi, a seconda del dispositivo che stai utilizzando per connetterti alla 12E, scarica il rispettivo software client FTP se stai usando il PC scarica WinSCP o Filzella e se stai usando un dispositivo Android scarica AndFTP.

Una volta completata l'installazione, apri AndFTP e inserisci le credenziali per configurare il client FTP. Nel mio caso, ho lasciato il nome utente e la password predefiniti "esp8266" nel codice. Quindi, usalo per le informazioni dell'utente e per l'host usa 192.168.12.7. Infine, connettiti al server FTP.

Una volta fatto, puoi scaricare qualsiasi file dalla scheda SD e caricare file dal tuo telefono alla scheda SD.

Potete vedere il video per sapere come funziona!

Passaggio 10: considerazioni finali

Pensieri finali
Pensieri finali
Pensieri finali
Pensieri finali

Ma prima di saltare alla conclusione che è un dispositivo molto utile da avere, facciamo un passo indietro.

Anche se fa quello che voglio, è assolutamente lento! Per soli 4 file (ciascuno ~ 100 Kb) ci vogliono circa 30 secondi e se provi con un file più grande come 10 MB ci vorranno circa 3-4 minuti per il completamento. Ci sono modi per ottimizzarlo e dalla pagina a cui ho fatto riferimento è stato in grado di ottenere una velocità di lettura di circa 450 kbs. (Con la libreria Esp32 e SD_MMC la velocità di trasferimento può essere di circa 1 MB/sec)

Il motivo per cui ho interrotto il progetto qui e non ho provato a ottimizzarlo è dovuto a 2 motivi. Primo motivo, vorrei davvero, insieme al server FTP, poter ancora utilizzare la linea dati USB per trasferire i dati, ma non è supportato in esp8266 o esp32. E la seconda ragione è che non sono riuscito a ottenere abbastanza velocità per trasferire i file su FTP. Questi sono anche lo stesso motivo per cui non mi sono preso la briga di usare esp32 invece di esp12E.

Ma penso che alcuni di questi problemi possano essere risolti se possiamo usare le schede esp32 S2 che supportano l'USB a piena velocità in movimento. Forse posso farlo per un altro istruibile XD.

Consigliato: