Cuprins:

Cititor de card SD fără fir [ESP8266]: 10 pași (cu imagini)
Cititor de card SD fără fir [ESP8266]: 10 pași (cu imagini)

Video: Cititor de card SD fără fir [ESP8266]: 10 pași (cu imagini)

Video: Cititor de card SD fără fir [ESP8266]: 10 pași (cu imagini)
Video: Carduri SD: Explicat 2024, Noiembrie
Anonim
Image
Image

USB ar fi trebuit să fie universal, iar obiectivul principal a fost de a face o interfață foarte ușor de interacționat cu alte dispozitive, dar de-a lungul anilor ideea a căzut. Există atât de multe variante diferite ale acestor porturi USB, ceea ce uneori este atât de frustrant, iar modul în care funcționează acestea le contrazic total numele [USB - Universal Serial Bus], deoarece fiecare receptor USB ar trebui să fie compatibil cu orice dispozitiv USB! Nu puteți conecta stick-ul USB sau tastatura în interiorul încărcătorului și așteptați-vă să funcționeze.

Dar conceptul sună prea bine! De aceea, pentru a iniția acest concept „Universal-Port”, am început cu un proiect simplu „Cititor de carduri wireless”

Acest lucru mi-a îndeplinit toate dorințele, tot ce trebuie să fac este să îl conectez în orice receptor USB, nu contează care!

De îndată ce îl conectați, acesta creează un punct de acces unde ne putem conecta și apoi ne conectăm la punctul de acces și deschidem orice aplicație client FTP pe orice dispozitiv compatibil. Cu această configurare, putem copia și salva fișiere pe cardul SD fără fir!

Provizii

Iată lista produselor care vă pot ajuta să realizați acest proiect cu ușurință

(Link de afiliere)

  • Esp12E:
  • Card SD:
  • Adaptor Micro SD:
  • HeaderPins:
  • Pinuri antet unghiulare:
  • Firele:
  • FTDI:
  • Sârmă programator Arduino nano +:
  • USB masculin:
  • PCB:
  • Arma de lipit:
  • Plumb de lipit:

Pasul 1: Card SD (Secure Digital)

Card SD (Secure Digital)
Card SD (Secure Digital)

SD înseamnă Secure Digital, este similar cu Pendrive, dar are o amprentă mai mică și un preț mult mai ieftin.

Când trebuie să folosim acest lucru cu oricare dintre microcontrolere, există 2 opțiuni, una este SDIO și SPI. Aproape toate cardurile SD au multe caracteristici standard și au aceleași specificații fizice și electrice. Diferențele reale dintre SPI și SDIO sunt în principal la nivel de software. Puteți citi mai multe despre aceasta în acest link.

Deocamdată, să spunem că SDIO este mai rapid, dar mai greu de implementat, iar SPI este mai lent, dar mai ușor de implementat. Deoarece majoritatea microcontrolerelor acceptă SPI în mod implicit, vom rămâne la ea.

Pinout card SD pentru 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

Pasul 2: Modificarea adaptorului cardului SD

Modificare adaptor card SD
Modificare adaptor card SD
Modificare adaptor card SD
Modificare adaptor card SD
Modificare adaptor card SD
Modificare adaptor card SD
Modificare adaptor card SD
Modificare adaptor card SD

Puteți utiliza orice module de card SD care acceptă Arduino și esp8266, dar în scopul acestui proiect, vom folosi adaptorul de card microSD și îl vom modifica în așa fel încât să îl putem folosi în locul modulului.

Mai întâi, curățați contactele adaptorului cardului SD. Apoi utilizați știfturi înclinate și lipiți știfturile direct la contactele adaptorului. După terminarea lipirii, verificați contactele dintre știfturile antetului pentru a verifica dacă există scurtcircuit. Îndepărtați separatorul negru unul câte unul, astfel încât, atunci când îl așezăm înapoi, s-ar spăla cu PCB.

Tăiați PCB-ul în așa fel încât să se potrivească perfect cu adaptorul cardului SD și să aibă spațiu suplimentar, pentru a adăuga portul USB masculin.

De asemenea, puteți face același proces cu cardul SD în locul adaptorului, dar este destul de riscant dacă îl deteriorați.

Pasul 3: Conexiune USB

Conexiune USB
Conexiune USB
Conexiune USB
Conexiune USB
Conexiune USB
Conexiune USB

Trebuie să alimentăm cardul SD, pentru asta vom folosi însăși portul de recepție USB. Deci vom folosi un port USB masculin. Acesta are de obicei 4 pini, unde 2 pini de mijloc sunt utilizați pentru transferul de date și 2 pini extremi sunt utilizați pentru alimentare și împământare. Deoarece avem nevoie doar de energie, voi tăia pinii de date și voi păstra doar GND și VCC.

Apoi așeză portul USB masculin în fața cardului SD unde am făcut mai puțin spațiu mai devreme, apoi l-am lipit în loc. Aceasta nu a rezolvat încă nicio problemă de putere! Deoarece cardul SD necesită 3,3 v, dar sursa USB este standard de 5 V dacă doar conectați aceasta la sursă, probabil că veți prăji cardul SD (dar nu va fi afectat niciunul de adaptorul microSD).

Pentru a rezolva acest lucru, vom folosi un regulator de 3,3V și vom conecta intrarea sursei USB la regulatorul de 3,3V, adică conectăm GND-ul USB la pinul 1 al regulatorului și conectăm pinul 3 al regulatorului la + 5V al regulatorului. În cele din urmă, lipiți pinul 3 (pinul de ieșire) și împământarea regulatorului pe cardul SD.

Aceasta va configura puterea cardului SD. Puteți verifica schema circuitului pentru o conexiune mai detaliată.

Pasul 4: Puneți totul împreună cu ESP-12E

Punând totul împreună cu ESP-12E
Punând totul împreună cu ESP-12E
Punând totul împreună cu ESP-12E
Punând totul împreună cu ESP-12E
Punând totul împreună cu ESP-12E
Punând totul împreună cu ESP-12E
Punând totul împreună cu ESP-12E
Punând totul împreună cu ESP-12E

Acum, pentru a citi și scrie datele de pe cardul SD, vom folosi modulul wifi Esp12E, chiar dacă este mai lent decât esp32. Dar chiar nu contează pe care o alegeți, voi spune motivul în ultimii pași.

Mai întâi lipiți EN (pinul de activare) la VCC-ul esp12E, acesta va porni IC-ul. Dacă acest lucru nu este conectat la semnalul HIGH, IC-ul nu se va porni. Apoi puneți esp12E pe spatele plăcii PCB și lipiți pinii SPI ai esp12E la pinii SPI de pe cardul SD. Pentru detalii, conexiunea verifică schema circuitului.

Pasul 5: HTTP VS FTP

Înainte de programare, am făcut câteva cercetări despre cum funcționează descărcările și încărcările, atunci am dat peste cuvântul FTP. Practic, FTP reprezintă protocolul de transfer de fișiere, acest protocol este utilizat pentru a transfera fișiere între servere și client și este complet diferit de HTTP-ul obișnuit în care clientul și serverul trimit și primesc cereri / răspunsuri de dimensiuni foarte mici.

FTP este mai rapid decât HTTP în transferul de fișiere, deoarece a fost special creat pentru el. Așadar, am vrut să implementez acest lucru în acest proiect. În cazul în care un server FTP rulează pe esp-12E și putem împinge și prelua date prin acest FTP pe cardul SD.

Pasul 6: Descoperiți biblioteca FTP

Descoperind biblioteca FTP
Descoperind biblioteca FTP
Descoperind biblioteca FTP
Descoperind biblioteca FTP

Nu am găsit nicio bibliotecă FTP care să fie dezvoltată foarte activ sau special creată pentru esp8266. Dar, cu câteva săpături, am dat peste David Paiva, care a portat o versiune Arduino a serverului FTP pe esp8266, dar cu suportul SPIFFS și nu cu cardul SD.

Dar cu puțin mai mult efort, am găsit pe cineva care a lucrat la biblioteca David Paiva pentru a converti SPIFFS în cardul SD. Dar când am încercat să folosesc acest lucru, m-am confruntat cu 2 probleme. În primul rând, pagina în care am aflat asta era în coreeană, așa că a trebuit să stau literalmente și să traduc totul pentru a ști ce se întâmplă înainte să pot face ceva cu ea. Apoi, a doua problemă a fost, a trebuit să modific biblioteca SD existentă pentru a susține modificările pe care le-a făcut, dar asta s-a simțit foarte stângace.

Deci, am comparat atât această bibliotecă, una de la David Paiva și cealaltă de pe site-ul coreean, apoi am făcut câteva modificări minore și am transformat totul într-un singur proiect, astfel încât nu este nevoie să instalați nicio bibliotecă de niciun fel. Puteți verifica codul din contul meu Github.

Pasul 7: Programarea ESP-12E

Programarea ESP-12E
Programarea ESP-12E
Programarea ESP-12E
Programarea ESP-12E
Programarea ESP-12E
Programarea ESP-12E

ESP-12E nu vine cu un programator încorporat, deci trebuie să folosim un programator extern, cum ar fi modulul FDTI. Așa că am făcut un adaptor cu câteva fire și pini antet feminin. Cu aceasta, putem lipi temporar esp12E și îl putem programa folosind modulul FTDI.

Conectați GND [esp12E] la GND, Rx [esp12E] la Tx, Tx [esp12E] la Rx, GPIO15 [esp12E] la GND, GPIO0 [esp12E] la GND, VCC [esp12E] la VCC al modulului FDTI.

Apoi încărcați codul de la Github folosind IDE-ul Arduino.

Odată ce programul este încărcat, puteți desolda firele care au fost conectate pentru a programa esp12E.

Pasul 8: Finalizarea proiectului

Finalizarea proiectului!
Finalizarea proiectului!
Finalizarea proiectului!
Finalizarea proiectului!
Finalizarea proiectului!
Finalizarea proiectului!

Pur și simplu introduceți orice card microSD [32 GB max] în interiorul adaptorului și conectați întregul dispozitiv la orice dispozitiv compatibil USB, care ar trebui să alimenteze lucrurile! Dar există câteva lucruri de luat în considerare, asigurați-vă că curentul de ieșire al portului USB este mai mare de 1amp, doar pentru a fi pe o parte mai sigură. Deoarece modulul Esp12E consumă mai mult curent atunci când transferă fișiere.

Pasul 9: Utilizarea dispozitivului

Utilizarea dispozitivului
Utilizarea dispozitivului
Utilizarea dispozitivului
Utilizarea dispozitivului
Utilizarea dispozitivului
Utilizarea dispozitivului

De îndată ce dispozitivul este alimentat, dispozitivul creează un punct de acces numit SD Reader. Conectați-vă la acest punct de acces folosind parola care se află pe cod. Apoi, în funcție de dispozitivul pe care îl utilizați pentru a vă conecta la 12E, descărcați respectivul software client FTP dacă utilizați PC descărcați WinSCP sau Filzella și dacă utilizați un dispozitiv Android descărcați AndFTP.

După instalare, deschideți AndFTP și completați acreditările pentru a configura clientul FTP. În cazul meu, am lăsat numele de utilizator și parola la codul „esp8266” implicit în cod. Deci, utilizați acest lucru pentru informațiile utilizatorului și pentru gazdă utilizați 192.168.12.7. În cele din urmă, conectați-vă la serverul FTP.

După ce ați terminat, puteți descărca orice fișier de pe cardul SD, precum și puteți încărca fișiere de pe telefon pe cardul SD.

Puteți vedea videoclipul pentru a afla cum funcționează!

Pasul 10: Gânduri finale

Gânduri finale
Gânduri finale
Gânduri finale
Gânduri finale

Dar, înainte de a ajunge la concluzia că este un dispozitiv foarte util, să facem un pas înapoi.

Chiar dacă face ceea ce vreau, este complet lent! Pentru doar 4 fișiere (fiecare ~ 100Kb) este nevoie de aproximativ 30 de secunde, iar dacă încercați cu un fișier mai mare, cum ar fi 10 MB, va dura aproximativ 3-4 minute. Există modalități de a optimiza acest lucru și, din pagina la care am făcut referire, a reușit să obțină o viteză de citire de aproximativ 450 kg. (Cu Esp32 și SD_MMC biblioteca viteza de transfer poate fi de aproximativ 1 MB / sec)

Motivul pentru care am oprit proiectul aici și nu am încercat să-l optimizez a fost din 2 motive. Primul motiv, chiar îmi doresc, împreună cu serverul FTP, să mai pot folosi linia de date USB pentru a transfera date, dar nu este acceptată în esp8266 sau esp32. Și al doilea motiv este că nu am putut obține suficientă viteză pentru a transfera fișierele prin FTP. Acestea sunt, de asemenea, același motiv pentru care nu m-am deranjat să folosesc esp32 în loc de esp12E.

Dar cred că unele dintre aceste probleme pot fi rezolvate dacă putem folosi plăcile esp32 S2 care acceptă viteza maximă pe drum USB. Poate pot face asta pentru un alt XD instructiv.

Recomandat: