Indholdsfortegnelse:

Trådløs SD -kortlæser [ESP8266]: 10 trin (med billeder)
Trådløs SD -kortlæser [ESP8266]: 10 trin (med billeder)

Video: Trådløs SD -kortlæser [ESP8266]: 10 trin (med billeder)

Video: Trådløs SD -kortlæser [ESP8266]: 10 trin (med billeder)
Video: Wiha Zai Hause trådløs SD skruetrækker 6 dele 38944622 2024, Juli
Anonim
Image
Image

USB skulle være universelt, og hovedmålet var at gøre en hot-swappable, super nem at interface med andre enheder, men i årenes løb gik ideen i stå. Der er så mange forskellige varianter af disse USB -porte, som til tider er så frustrerende, og den måde, disse fungerer på, modsiger deres navn fuldstændigt [USB - Universal Serial Bus], fordi hver USB -modtager skal være kompatibel med enhver USB -enhed! Du kan ikke tilslutte din USB -stick eller et tastatur i en oplader og forvente, at den fungerer.

Men konceptet lyder for godt! Derfor startede jeg med dette "Universal-Port" -koncept med et simpelt projekt "Trådløs kortlæser"

Dette opfyldte alle mine ønsker, alt hvad jeg skal gøre er bare at sætte det i en hvilken som helst USB -modtager, det er ligegyldigt hvilken!

Så snart du tilslutter det, opretter det et adgangspunkt, hvor vi kan oprette forbindelse og derefter oprette forbindelse til adgangspunktet og bare åbne enhver FTP -klientapplikation i en hvilken som helst kompatibel enhed. Med denne opsætning kan vi kopiere og gemme filer til SD -kortet trådløst!

Forbrugsvarer

Dette er listen over produkter, der let kan hjælpe dig med at udføre dette projekt

(Tilknyttet link)

  • Esp12E:
  • SD -kort:
  • Micro SD -adapter:
  • HeaderPins:
  • Vinklede headerpinde:
  • Ledninger:
  • FTDI:
  • Arduino nano + programmeringsledning:
  • Mand USB:
  • PCB:
  • Loddepistol:
  • Loddekabel:

Trin 1: SD -kort (Secure Digital)

SD (Secure Digital) kort
SD (Secure Digital) kort

SD står for Secure Digital, det ligner din Pendrive, men med et mindre fodaftryk og meget billigere pris.

Når vi skal bruge dette med nogen af mikrokontrollerne, er der 2 muligheder, den ene er SDIO og SPI. Næsten alle SD -kort har mange standardfunktioner og har de samme fysiske og elektriske specifikationer. De faktiske forskelle mellem SPI og SDIO er hovedsageligt på softwareniveau. Du kan læse mere om det i dette link.

Lad os nu sige, at SDIO er hurtigere, men sværere at implementere, og SPI er langsommere, men lettere at implementere. Da de fleste af mikrokontrollerne som standard understøtter SPI, holder vi bare fast ved det.

SD -kort pinout til 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

Trin 2: Ændring af SD -kortadapter

Ændring af SD -kortadapter
Ændring af SD -kortadapter
Ændring af SD -kortadapter
Ændring af SD -kortadapter
Ændring af SD -kortadapter
Ændring af SD -kortadapter
Ændring af SD -kortadapter
Ændring af SD -kortadapter

Du kan bruge alle SD -kortmoduler, der understøtter Arduino og esp8266, men i forbindelse med dette projekt bruger vi microSD -kortadapteren og ændrer på en sådan måde, at vi kan bruge det i stedet for modulet.

Rengør først kontakterne på SD -kortadapteren. Brug derefter vinklede hovedstifter og lod stifterne direkte til adapterkontakterne. Når lodningen er udført, skal du kontrollere kontakterne mellem hovedstifterne for at kontrollere, om der er kortslutning. Fjern den sorte separator en efter en, så når vi placerer den tilbage, vil den skylle med printkortet.

Skær printet på en sådan måde, at det passer perfekt til SD -kortadapteren og har lidt ekstra plads til at tilføje den mandlige USB -port.

Du kan også gøre den samme proces med SD -kortet i stedet for adapteren, men det er ret risikabelt, hvis du beskadiger det.

Trin 3: USB -forbindelse

USB -forbindelse
USB -forbindelse
USB -forbindelse
USB -forbindelse
USB -forbindelse
USB -forbindelse

Vi er nødt til at forsyne SD -kortet. Til det bruger vi selve USB -modtagelsesporten. Så vi bruger en han -USB -port. Denne har normalt 4 ben, hvor 2 midterste ben bruges til dataoverførsel og 2 ekstreme ben bruges til strøm og jord. Da vi bare har brug for strøm, vil jeg skære datapinde og bare beholde GND og VCC.

Placerede derefter den mandlige USB -port foran SD -kortet, hvor vi lavede noget plads tidligere, og lod det derefter på plads. Dette løste ikke noget strømproblem endnu! Fordi SD -kortet kræver 3.3v, men USB -forsyningen er standard 5V, hvis du bare tilslutter dette til forsyningen, vil du sandsynligvis stege SD -kortet ud (men der vil ikke blive taget skader af microSD -adapteren).

For at løse dette vil vi bruge en 3.3V regulator og slutte USB -forsyningens indgang til 3.3V regulator, dvs. slut USB's GND til pin 1 på regulatoren og tilslut pin 3 på regulatoren til +5V på regulatoren. Endelig loddes stiften 3 (udgangsstiften) og jord af regulatoren til SD -kortet.

Dette indstiller strømmen til SD -kortet. Du kan kontrollere kredsløbsdiagrammet for en mere detaljeret forbindelse.

Trin 4: Sætte alt sammen med ESP-12E

Sætter alt sammen med ESP-12E
Sætter alt sammen med ESP-12E
Sætter alt sammen med ESP-12E
Sætter alt sammen med ESP-12E
Sætter alt sammen med ESP-12E
Sætter alt sammen med ESP-12E
Sætter alt sammen med ESP-12E
Sætter alt sammen med ESP-12E

Nu for at læse og skrive dataene fra SD -kortet bruger vi Esp12E wifi -modulet, selvom det er langsommere end esp32. Men det er virkelig ligegyldigt hvilken du vælger, jeg vil fortælle grunden i de sidste trin.

Lod først EN (aktiveringsnålen) til VCC på esp12E, dette tænder IC. Hvis dette ikke er forbundet til HIGH -signalet, tændes IC'en ikke. Placer derefter esp12E på bagsiden af printkortet, og lod SPI -benene på esp12E til SPI -benene på SD -kortet. For detaljer kontrollerer forbindelsen kredsløbsdiagrammet.

Trin 5: HTTP VS FTP

Inden programmeringen lavede jeg nogle undersøgelser af, hvordan downloads og uploads fungerer, det var da jeg faldt over ordet FTP. Grundlæggende står FTP for filoverførselsprotokol, denne protokol bruges til at overføre filer mellem servere og klienter, og den er helt anderledes end den almindelige HTTP, hvor klienten og serveren sender og modtager anmodninger/svar, der er meget lille i størrelse.

FTP er hurtigere end HTTP i overførsel af filer, fordi det er specielt designet til det. Så jeg ville implementere dette i dette projekt. Hvor en FTP-server kører på esp-12E, og vi kan skubbe og hente data gennem denne FTP til SD-kortet.

Trin 6: Finde ud af FTP -biblioteket

Find ud af FTP -biblioteket
Find ud af FTP -biblioteket
Find ud af FTP -biblioteket
Find ud af FTP -biblioteket

Jeg kunne ikke finde noget FTP -bibliotek, der er meget aktivt udviklet eller specifikt lavet til esp8266. Men med lidt grave stødte jeg på David Paiva, der portede en Arduino -version af FTP -serveren til esp8266, men med SPIFFS -understøttelsen og ikke SD -kortet.

Men med lidt mere indsats fandt jeg nogen, der lavede noget arbejde på David Paiva -biblioteket for at konvertere SPIFFS til SD -kortet. Men da jeg forsøgte at bruge dette, stod jeg over for 2 problemer. Først var siden, hvor jeg fandt ud af dette, på koreansk, så jeg måtte bogstaveligt talt sidde og oversætte alt for at vide, hvad der foregik, før jeg kunne gøre noget med det. Så var det andet problem, jeg var nødt til at ændre det eksisterende SD -bibliotek for at understøtte de ændringer, han foretog, men det føltes meget klodset.

Så jeg sammenlignede både dette bibliotek, det ene fra David Paiva og det andet fra det koreanske websted, lavede derefter nogle mindre ændringer og lavede det hele til et enkelt projekt, så det er ikke nødvendigt at installere noget bibliotek af nogen art. Du kan tjekke koden fra min Github -konto.

Trin 7: Programmering af ESP-12E

Programmering af ESP-12E
Programmering af ESP-12E
Programmering af ESP-12E
Programmering af ESP-12E
Programmering af ESP-12E
Programmering af ESP-12E

ESP-12E leveres ikke med en indbygget programmerer, så vi skal bruge en ekstern programmerer som FDTI-modulet. Så jeg lavede en adapter med et par ledninger og kvindelige headerstifter. Med dette kan vi midlertidigt lodde esp12E og programmere det ved hjælp af FTDI -modulet.

Tilslut GND [esp12E] til GND, Rx [esp12E] til Tx, Tx [esp12E] til Rx, GPIO15 [esp12E] til GND, GPIO0 [esp12E] til GND, VCC [esp12E] til VCC på FDTI -modulet.

Upload derefter koden fra Github ved hjælp af Arduino IDE.

Når programmet er uploadet, kan du aflodde de ledninger, der var forbundet til at programmere esp12E.

Trin 8: Afslutning af projektet

Afslutter projektet!
Afslutter projektet!
Afslutter projektet!
Afslutter projektet!
Afslutter projektet!
Afslutter projektet!

Sæt bare ethvert microSD [32 GB maks.] Kort inde i adapteren, og tilslut hele enheden til en hvilken som helst USB -kompatibel enhed. Det burde sætte gang i tingene! Men der er få ting at overveje, sørg for at USB -portens udgangsstrøm er større end 1 amp, bare for at være på en mere sikker side. Fordi Esp12E -modulet forbruger mere strøm, når det overfører filer.

Trin 9: Brug af enheden

Brug af enheden
Brug af enheden
Brug af enheden
Brug af enheden
Brug af enheden
Brug af enheden

Så snart enheden får strøm, opretter enheden et adgangspunkt kaldet SD Reader. Opret forbindelse til dette adgangspunkt ved hjælp af adgangskoden, der er på koden. Afhængigt af hvilken enhed du bruger til at oprette forbindelse til 12E, downloader du den respektive FTP -klientsoftware, hvis du bruger pc -download WinSCP eller Filzella, og hvis du bruger en Android -enhed, download AndFTP.

Når installationen er udført, skal du åbne AndFTP og udfylde legitimationsoplysningerne for at konfigurere FTP -klienten. I mit tilfælde overlod jeg brugernavnet og adgangskoden til standard "esp8266" i koden. Så brug det til brugeroplysningerne og til værten, brug 192.168.12.7. Tilslut endelig til FTP -serveren.

Når det er gjort, kan du downloade alle filer fra SD -kortet, såvel som du kan uploade filer fra din telefon til SD -kortet.

Du kan se videoen for at vide, hvordan den fungerer!

Trin 10: Endelige tanker

Endelige tanker
Endelige tanker
Endelige tanker
Endelige tanker

Men før vi springer til den konklusion, at det er en meget praktisk enhed at have, lad os tage et skridt tilbage.

Selvom det gør hvad jeg vil, er det helt langsomt! For kun 4 filer (hver ~ 100Kb) tager det cirka 30 sekunder, og hvis du prøver med en større fil som 10 MB, vil det tage omkring 3-4 minutter at fuldføre. Der er måder at optimere dette på, og fra siden, hvor jeg henviste, var han i stand til at få cirka 450kbs læsehastighed. (Med Esp32 og SD_MMC biblioteksoverførselshastighed kan være omkring 1 MB/sek)

Grunden til, at jeg stoppede projektet her og ikke forsøgte at optimere det, var på grund af 2 grunde. Første grund ville jeg virkelig ønske, at jeg sammen med FTP -serveren stadig kunne bruge USB -datalinjen til at overføre data, men den understøttes ikke i esp8266 eller esp32. Og den anden grund er, at jeg ikke kunne få nok hastighed til at overføre filerne over FTP. Det er også den samme grund til, hvorfor jeg ikke gad at bruge esp32 i stedet for esp12E.

Men jeg tror, at nogle af disse problemer kan løses, hvis vi kan bruge esp32 S2 -kortene, der understøtter fuld hastighed på farten USB. Måske kan jeg gøre det for en anden instruerbar XD.

Anbefalede: