Sadržaj:

Bežični čitač SD kartica [ESP8266]: 10 koraka (sa slikama)
Bežični čitač SD kartica [ESP8266]: 10 koraka (sa slikama)

Video: Bežični čitač SD kartica [ESP8266]: 10 koraka (sa slikama)

Video: Bežični čitač SD kartica [ESP8266]: 10 koraka (sa slikama)
Video: SD kartica - USB - mikro SD - mikro USB 2024, Studeni
Anonim
Image
Image

USB je trebao biti univerzalan, a glavni cilj je bio napraviti zamjenu vrućom, super laku za sučelje s drugim uređajima, ali s godinama je ideja krenula naopako. Postoji toliko mnogo varijanti ovih USB priključaka što je ponekad toliko frustrirajuće i način na koji oni rade potpuno je u suprotnosti s njihovim imenom [USB - Univerzalna serijska sabirnica] jer bi svaki USB prijemnik trebao biti kompatibilan s bilo kojim USB uređajem! USB punjač ili tipkovnicu ne možete priključiti unutar punjača i očekivati da će raditi.

Ali koncept zvuči previše dobro! Zato sam za pokretanje ovog koncepta "Universal-Port" započeo s jednostavnim projektom "Bežični čitač kartica"

Ovo mi je ispunilo sve želje, sve što moram učiniti je samo ga uključiti u bilo koji USB prijemnik, nije važno koji!

Čim ga priključite, on stvara pristupnu točku na koju se možemo povezati, a zatim spojiti na pristupnu točku i jednostavno otvoriti bilo koju FTP klijentsku aplikaciju na bilo kojem kompatibilnom uređaju. S ovim postavljanjem možemo bežično kopirati, ali i spremati datoteke na SD karticu!

Pribor

Ovo je popis proizvoda koji vam mogu pomoći da s lakoćom napravite ovaj projekt

(Affiliate Link)

  • Esp12E:
  • SD kartica:
  • Micro SD adapter:
  • Zaglavlja:
  • Igle zaglavlja pod kutom:
  • Žice:
  • FTDI:
  • Arduino nano + programerska žica:
  • Muški USB:
  • PCB:
  • Lemni pištolj:
  • Lemilica:

Korak 1: SD (Secure Digital) kartica

SD (Secure Digital) kartica
SD (Secure Digital) kartica

SD označava Secure Digital, sličan je vašem Pendriveu, ali s manjim otiskom i mnogo jeftinijom cijenom.

Kad ovo moramo koristiti s bilo kojim od mikrokontrolera, postoje 2 mogućnosti, jedna je SDIO i SPI. Gotovo sve SD kartice dijele mnoge standardne značajke i imaju iste fizičke i električne specifikacije. Stvarne razlike između SPI -a i SDIO -a uglavnom su na razini softvera. Više o tome možete pročitati na ovoj poveznici.

Zasad recimo da je SDIO brži, ali teži za implementaciju, a SPI sporiji, ali lakši za implementaciju. Budući da većina mikrokontrolera prema zadanim postavkama podržava SPI, zadržat ćemo se toga.

Isključivanje SD kartice za SPI

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

Korak 2: Izmjena adaptera SD kartice

Izmjena adaptera SD kartice
Izmjena adaptera SD kartice
Izmjena adaptera SD kartice
Izmjena adaptera SD kartice
Izmjena adaptera SD kartice
Izmjena adaptera SD kartice
Izmjena adaptera SD kartice
Izmjena adaptera SD kartice

Možete koristiti bilo koji modul SD kartice koji podržava Arduino i esp8266, ali za potrebe ovog projekta koristit ćemo adapter za microSD karticu i izmijenit ćemo ga na takav način da ga možemo koristiti umjesto modula.

Prvo očistite kontakte adaptera SD kartice. Zatim upotrijebite zaglavljene klinove zaglavlja i zalemite pinove izravno na kontakte adaptera. Nakon lemljenja provjerite kontakte između pinova zaglavlja kako biste provjerili ima li kratkog spoja. Uklonite crni separator jedan po jedan kako bi se, kad ga vratimo, ispirao s tiskanom pločom.

Izrežite PCB na takav način da savršeno pristaje uz adapter SD kartice i ima malo više prostora za dodavanje muškog USB priključka.

Isti postupak možete učiniti i sa SD karticom umjesto adapterom, ali prilično je rizično ako je oštetite.

Korak 3: USB veza

USB priključak
USB priključak
USB priključak
USB priključak
USB priključak
USB priključak

Moramo napajati SD karticu. Za to ćemo koristiti sam USB prijemnik. Zato ćemo koristiti muški USB priključak. Obično ima 4 pina, pri čemu se 2 srednja pina koriste za prijenos podataka, a 2 ekstremna pina za napajanje i masu. Budući da nam samo treba napajanje, izrezat ću podatkovne pinove i zadržati samo GND i VCC.

Zatim ste postavili muški USB priključak ispred SD kartice gdje smo ranije napravili malo prostora, a zatim ga lemite na mjesto. Ovo još nije riješilo problem s napajanjem! Budući da SD kartica zahtijeva 3,3 V, ali USB opskrba je standardnih 5 V, ako je samo uključite u napajanje, vjerojatno ćete ispržiti SD karticu (ali adapter za microSD neće oštetiti).

Da bismo to riješili, upotrijebit ćemo 3.3V regulator i spojiti ulaz USB napajanja na 3.3V regulator, tj. Spojiti GND USB -a na pin 1 regulatora i spojiti pin 3 regulatora na +5V regulatora. Na kraju, lemite pin 3 (izlazni pin) i uzemljenje regulatora na SD karticu.

Ovo će postaviti napajanje za SD karticu. Za detaljniju vezu možete provjeriti dijagram kruga.

Korak 4: Spajanje svega s ESP-12E

Spajanje svega s ESP-12E
Spajanje svega s ESP-12E
Spajanje svega s ESP-12E
Spajanje svega s ESP-12E
Spajanje svega s ESP-12E
Spajanje svega s ESP-12E
Spajanje svega s ESP-12E
Spajanje svega s ESP-12E

Sada ćemo za čitanje i pisanje podataka sa SD kartice upotrijebiti WiFi modul Esp12E, iako je sporiji od esp32. Ali doista nije važno koji ćete izabrati, reći ću razlog u posljednjim koracima.

Prvo lemite EN (pin za omogućavanje) na VCC esp12E, to će uključiti IC. Ako ovo nije spojeno na HIGH signal, IC se neće uključiti. Zatim postavite esp12E na stražnju stranu PCB ploče i lemite SPI pinove esp12E u SPI pinove na SD kartici. Za pojedinosti, veza provjerava shemu strujnog kruga.

Korak 5: HTTP VS FTP

Prije programiranja istraživao sam kako funkcioniraju preuzimanja i učitavanja, tada sam naletio na riječ FTP. U osnovi FTP znači protokol prijenosa datoteka, ovaj protokol se koristi za prijenos datoteka između poslužitelja i klijenta i potpuno se razlikuje od običnog HTTP -a gdje klijent i poslužitelj šalju i primaju zahtjeve/odgovore vrlo male veličine.

FTP je brži od HTTP -a u prijenosu datoteka jer je za to posebno napravljen. Dakle, htio sam to implementirati u ovaj projekt. Tamo gdje na esp-12E radi FTP poslužitelj i možemo gurnuti i dohvatiti podatke putem ovog FTP-a na SD karticu.

Korak 6: Pronalaženje FTP knjižnice

Otkrivanje FTP knjižnice
Otkrivanje FTP knjižnice
Otkrivanje FTP knjižnice
Otkrivanje FTP knjižnice

Nisam mogao pronaći nijednu FTP biblioteku koja je vrlo aktivno razvijena ili posebno izrađena za esp8266. No, s malo kopanja naišao sam na Davida Paivu koji je prenio Arduino verziju FTP poslužitelja na esp8266, ali sa SPIFFS podrškom, a ne SD karticom.

No, uz malo više napora, pronašao sam nekoga tko je radio na biblioteci Davida Paive kako bi pretvorio SPIFFS na SD karticu. Ali kad sam pokušao ovo koristiti, naišao sam na 2 problema. Prvo, stranica na kojoj sam to otkrio bila je na korejskom, pa sam morao doslovno sjesti i prevesti sve kako bih znao što se događa prije nego što sam s tim mogao učiniti bilo što. Drugi problem je bio, morao sam izmijeniti postojeću biblioteku SD -a kako bi podržao promjene koje je napravio, ali to se činilo vrlo nespretnim.

Dakle, usporedio sam obje ove biblioteke, jednu od Davida Paive, a drugu s korejske web stranice, zatim napravio neke manje izmjene i cijelu stvar napravio u jedan projekt tako da nema potrebe za instaliranjem bilo koje knjižnice bilo koje vrste. Kôd možete provjeriti na mom Github računu.

Korak 7: Programiranje ESP-12E

Programiranje ESP-12E
Programiranje ESP-12E
Programiranje ESP-12E
Programiranje ESP-12E
Programiranje ESP-12E
Programiranje ESP-12E

ESP-12E ne dolazi s ugrađenim programatorom, pa moramo koristiti vanjski programator poput FDTI modula. Tako sam napravio adapter s nekoliko žica i ženskim iglama zaglavlja. S tim možemo privremeno lemiti esp12E i programirati ga pomoću FTDI modula.

Spojite GND [esp12E] na GND, Rx [esp12E] na Tx, Tx [esp12E] na Rx, GPIO15 [esp12E] na GND, GPIO0 [esp12E] na GND, VCC [esp12E] na VCC FDTI modula.

Zatim prenesite kôd s Githuba pomoću Arduino IDE -a.

Nakon što se program učita, možete odspojiti žice koje su spojene na program esp12E.

Korak 8: Završite projekt

Završetak projekta!
Završetak projekta!
Završetak projekta!
Završetak projekta!
Završetak projekta!
Završetak projekta!

Samo umetnite bilo koju microSD karticu (maksimalno 32 GB) u adapter i priključite cijeli uređaj u bilo koji USB kompatibilan uređaj. To bi trebalo pojačati stvar! No, potrebno je uzeti u obzir nekoliko stvari. Provjerite je li izlazna struja USB priključka veća od 1 ampera, samo da biste bili na sigurnijoj strani. Budući da modul Esp12E troši više struje prilikom prijenosa datoteka.

Korak 9: Korištenje uređaja

Korištenje uređaja
Korištenje uređaja
Korištenje uređaja
Korištenje uređaja
Korištenje uređaja
Korištenje uređaja

Čim se uređaj napaja, uređaj stvara pristupnu točku pod nazivom SD čitač. Povežite se s ovom pristupnom točkom pomoću lozinke koja se nalazi na kodu. Zatim, ovisno o tome koji uređaj koristite za povezivanje s 12E, preuzmite odgovarajući softver FTP klijenta ako koristite računalo za preuzimanje WinSCP ili Filzella i ako koristite Android uređaj, preuzmite AndFTP.

Kada instalacija završi, otvorite AndFTP i ispunite vjerodajnice za postavljanje FTP klijenta. U mom slučaju, ostavio sam korisničko ime i lozinku na zadano "esp8266" u kodu. Dakle, upotrijebite to za korisničke podatke, a za host 192.168.12.7. Na kraju, povežite se s FTP poslužiteljem.

Nakon što to učinite, možete preuzeti sve datoteke sa SD kartice, kao i datoteke s telefona na SD karticu.

Video možete vidjeti kako biste saznali kako to funkcionira!

Korak 10: Završne misli

Završne misli
Završne misli
Završne misli
Završne misli

No, prije nego što zaključimo kako je to vrlo zgodan uređaj, napravimo korak unatrag.

Iako radi ono što želim, krajnje je sporo! Za samo 4 datoteke (svaka ~ 100 KB) potrebno je otprilike 30 sekundi, a ako pokušate s većom datotekom poput 10 MB, dovršit će se oko 3-4 minute. Postoje načini da se to optimizira, a sa stranice na koju sam naveo uspio je dobiti otprilike 450 KB brzine čitanja. (S Esp32 i SD_MMC knjižnicom brzina prijenosa može biti oko 1 MB/s)

Razlog zašto sam ovdje zaustavio projekt i nisam ga pokušao optimizirati su dva razloga. Prvi razlog, zaista želim, zajedno s FTP poslužiteljem i dalje bih mogao koristiti USB podatkovnu liniju za prijenos podataka, ali to nije podržano u esp8266 ili esp32. A drugi razlog je taj što nisam mogao dobiti dovoljno brzine za prijenos datoteka putem FTP -a. To su također isti razlozi zašto se nisam potrudio koristiti esp32 umjesto esp12E.

Ali mislim da se neki od ovih problema mogu riješiti ako možemo koristiti ploče esp32 S2 koje podržavaju punu brzinu na USB -u u pokretu. Možda to mogu učiniti za još jedan XD s poukom.

Preporučeni: