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, Novembar
Anonim
Image
Image

USB je trebao biti univerzalan, a glavni cilj je bio učiniti zamjenjivim, super lakim za sučeljavanje s drugim uređajima, ali s godinama je ideja krenula naopako. Postoji toliko različitih varijanti ovih USB priključaka što je ponekad frustrirajuće i način na koji rade potpuno je u suprotnosti s njihovim imenom [USB - Univerzalna serijska sabirnica] jer bi svaki USB prijemnik trebao biti kompatibilan sa bilo kojim USB uređajem! Ne možete priključiti USB stick ili tastaturu 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 uključ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. Ovim podešavanjem možemo bežično kopirati, ali i spremati datoteke na SD karticu!

Supplies

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

(Affiliate Link)

  • Esp12E:
  • SD kartica:
  • Micro SD adapter:
  • Zaglavlja:
  • Igle zaglavlja pod uglom:
  • Ž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 Pendrive -u, ali s manjom površinom i mnogo jeftinijom cijenom.

Kada ovo moramo koristiti s bilo kojim od mikrokontrolera, postoje 2 opcije, 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 i SDIO uglavnom su na softverskom nivou. Više o tome možete pročitati na ovom linku.

Za sada, 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 standardno podržava SPI, mi ćemo se toga držati.

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

Modifikacija adaptera SD kartice
Modifikacija adaptera SD kartice
Modifikacija adaptera SD kartice
Modifikacija adaptera SD kartice
Modifikacija adaptera SD kartice
Modifikacija adaptera SD kartice
Modifikacija adaptera SD kartice
Modifikacija 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 zakrivljene igle zaglavlja i lemite iglice izravno na kontakte adaptera. Kad je lemljenje završeno, provjerite kontakte između pinova zaglavlja da biste provjerili ima li kratkog spoja. Uklonite crni separator jedan po jedan, pa će ga, kada ga vratimo, ispirati s PCB -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 je prilično rizično ako je oštetite.

Korak 3: USB veza

USB veza
USB veza
USB veza
USB veza
USB veza
USB veza

Moramo napajati SD karticu. Za to ćemo koristiti sam USB prijemni port. Zato ćemo koristiti muški USB port. 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 pinove podataka i zadržati samo GND i VCC.

Zatim postavite muški USB port ispred SD kartice gdje smo ranije napravili malo prostora, a zatim ga lemite na mjesto. Ovo još nije riješilo problem napajanja! Budući da SD kartica zahtijeva 3,3 V, ali USB napajanje je standardno 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 koristiti Esp12E wifi modul, iako je sporiji od esp32. Ali zaista nije važno koji ćete izabrati, reći ću razlog u posljednjim koracima.

Prvo lemite EN (pin za omogućavanje) na VCC esp12E, ovo ć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 detalje, povezivanje provjerava shemu spoja.

Korak 5: HTTP VS FTP

Prije programiranja istražio sam kako funkcioniraju preuzimanja i otpremanja, tada sam naišao na riječ FTP. U osnovi FTP znači protokol za prijenos 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 ovo implementirati u ovaj projekt. Tamo gdje FTP poslužitelj radi na esp-12E i možemo gurnuti i dohvatiti podatke putem ovog FTP-a na SD karticu.

Korak 6: Pronalaženje FTP biblioteke

Otkrivanje FTP biblioteke
Otkrivanje FTP biblioteke
Otkrivanje FTP biblioteke
Otkrivanje FTP biblioteke

Nisam mogao pronaći nijednu FTP biblioteku koja je vrlo aktivno razvijena ili posebno napravljena za esp8266. No, s malo kopanja naišao sam na Davida Paivu koji je prenio Arduino verziju FTP servera 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 u SD karticu. Ali kada sam pokušao ovo koristiti, naišao sam na 2 problema. Prvo, stranica na kojoj sam ovo otkrio bila je na korejskom, pa sam morao doslovno sjesti i prevesti sve kako bih znao šta se dešava prije nego što sam s tim mogao bilo što učiniti. Drugi problem je bio što sam morao izmijeniti postojeću SD biblioteku kako bih 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 biblioteke 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. Napravio sam adapter s nekoliko žica i ženskih pinova zaglavlja. S ovim 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 koristeći Arduino IDE.

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 na bilo koji USB kompatibilan uređaj. To bi trebalo pojačati stvari! 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. Zato što modul Esp12E troši više struje prilikom prijenosa datoteka.

Korak 9: Upotreba uređaja

Korišćenje uređaja
Korišćenje uređaja
Korišćenje uređaja
Korišćenje uređaja
Korišćenje uređaja
Korišćenje uređaja

Čim se uređaj uključi, uređaj stvara pristupnu točku koja se naziva 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 popunite 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 se povežite na FTP server.

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

Možete pogledati video 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 ovo optimizira, a sa stranice na koju sam spomenuo uspio je dobiti približno 450 KB brzine čitanja. (S Esp32 i SD_MMC bibliotekom 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. Ovo 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 neki drugi XD koji se može uputiti.

Preporučuje se: