Obsah:

Bezdrôtová čítačka kariet SD [ESP8266]: 10 krokov (s obrázkami)
Bezdrôtová čítačka kariet SD [ESP8266]: 10 krokov (s obrázkami)

Video: Bezdrôtová čítačka kariet SD [ESP8266]: 10 krokov (s obrázkami)

Video: Bezdrôtová čítačka kariet SD [ESP8266]: 10 krokov (s obrázkami)
Video: RNS 850 Проблемы с подключением Bluetooth и SD карты (мультимедиа) 2024, November
Anonim
Image
Image

USB malo byť univerzálne a hlavným cieľom bolo vytvoriť hot-swap, super ľahké rozhranie s inými zariadeniami, ale v priebehu rokov sa táto myšlienka pokazila. Existuje toľko rôznych variantov týchto portov USB, čo je niekedy veľmi frustrujúce a spôsob, akým tieto funkcie fungujú, je v úplnom rozpore s ich názvom [USB - univerzálna sériová zbernica], pretože každý prijímač USB by mal byť kompatibilný s akýmkoľvek zariadením USB! Nemôžete zapojiť USB kľúč alebo klávesnicu do nabíjačky a očakávať, že bude fungovať.

Ale koncept znie príliš dobre! Preto som začal s koncepciou „univerzálneho portu“a začal som s jednoduchým projektom „Bezdrôtová čítačka kariet“

Toto splnilo všetky moje priania. Jediné, čo musím urobiť, je zapojiť ho do akéhokoľvek USB prijímača, bez ohľadu na to!

Hneď ako ho zapojíte, vytvorí sa prístupový bod, ku ktorému sa môžeme pripojiť a potom sa pripojiť k prístupovému bodu a jednoducho otvoriť ľubovoľnú klientsku aplikáciu FTP v ľubovoľnom kompatibilnom zariadení. S týmto nastavením môžeme bezdrôtovo kopírovať a ukladať súbory na kartu SD!

Zásoby

Toto je zoznam produktov, ktoré vám môžu pomôcť ľahko vykonať tento projekt

(Affiliate Link)

  • Esp12E:
  • Karta SD:
  • Micro SD adaptér:
  • HeaderPins:
  • Šikmé kolíkové hlavičky:
  • Drôty:
  • FTDI:
  • Drôt programátora Arduino nano +:
  • Mužské USB:
  • DPS:
  • Spájkovacia pištoľ:
  • Spájkovacie vedenie:

Krok 1: Karta SD (Secure Digital)

Karta SD (Secure Digital)
Karta SD (Secure Digital)

SD znamená Secure Digital, je podobný vášmu Pendrive, ale má menšiu stopu a oveľa nižšiu cenu.

Keď to musíme použiť s ktorýmkoľvek z mikrokontrolérov, existujú 2 možnosti, jedna je SDIO a SPI. Takmer všetky karty SD zdieľajú mnoho štandardných funkcií a majú rovnaké fyzické a elektrické špecifikácie. Skutočné rozdiely medzi SPI a SDIO sú hlavne na softvérovej úrovni. Viac si o tom môžete prečítať v tomto odkaze.

V tejto chvíli povedzme, že SDIO je rýchlejšie, ale ťažšie implementovateľné, a SPI je pomalšie, ale jednoduchšie na implementáciu. Pretože väčšina mikrokontrolérov štandardne podporuje SPI, budeme sa ho držať.

Vývod na SD kartu pre SPI

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

Krok 2: Úprava adaptéra karty SD

Úprava adaptéra karty SD
Úprava adaptéra karty SD
Úprava adaptéra karty SD
Úprava adaptéra karty SD
Úprava adaptéra karty SD
Úprava adaptéra karty SD
Úprava adaptéra karty SD
Úprava adaptéra karty SD

Môžete použiť akékoľvek moduly karty SD, ktoré podporujú Arduino a esp8266, ale na účely tohto projektu použijeme adaptér karty microSD a upravíme ho tak, aby sme ho mohli použiť namiesto modulu.

Najprv vyčistite kontakty adaptéra karty SD. Potom použite šikmé kolíkové kolíky a kolíky spájajte priamo s kontaktmi adaptéra. Akonáhle je spájkovanie hotové, skontrolujte kontakty medzi kolíkmi záhlavia a skontrolujte prípadný skrat. Odstráňte čierny oddeľovač jeden po druhom, takže keď ho umiestnime späť, zarovná sa s DPS.

Dosku plošných spojov nastrihajte tak, aby sa perfektne hodila k adaptéru karty SD a mala dostatok miesta na disku, a aby ste k nej pridali aj port USB.

Rovnaký postup môžete vykonať aj s kartou SD namiesto adaptéra, ale je dosť riskantné, ak ho poškodíte.

Krok 3: Pripojenie USB

USB pripojenie
USB pripojenie
USB pripojenie
USB pripojenie
USB pripojenie
USB pripojenie

Potrebujeme napájať kartu SD, Na to použijeme samotný prijímací port USB. Použijeme teda mužský port USB. Spravidla má 4 piny, kde 2 stredné piny slúžia na prenos dát a 2 extrémne piny slúžia na napájanie a uzemnenie. Pretože potrebujeme iba napájanie, obídem dátové piny a ponechám iba GND a VCC.

Potom umiestnite mužský port USB pred kartu SD, kde sme predtým vytvorili priestor, a potom ho spájkujte na miesto. To ešte nevyriešilo žiadny problém s napájaním! Pretože karta SD vyžaduje 3,3 V, ale napájanie USB je štandardných 5 V, ak ju zapojíte do napájacieho zdroja, kartu SD pravdepodobne vysmažíte (adaptér microSD však nepoškodí).

Na vyriešenie tohto problému použijeme regulátor 3,3 V a zapojíme vstup napájania USB na regulátor 3,3 V, tzn. Pripojíme GND USB na kolík 1 regulátora a pin 3 regulátora pripojíme na +5 V regulátora. Nakoniec spájajte kolík 3 (výstupný kolík) a uzemnenie regulátora s kartou SD.

Tým sa nastaví napájanie karty SD. Podrobnejšie zapojenie môžete skontrolovať v schéme zapojenia.

Krok 4: Spojenie všetkého s ESP-12E

Kombinácia všetkého s ESP-12E
Kombinácia všetkého s ESP-12E
Kombinácia všetkého s ESP-12E
Kombinácia všetkého s ESP-12E
Kombinácia všetkého s ESP-12E
Kombinácia všetkého s ESP-12E
Kombinácia všetkého s ESP-12E
Kombinácia všetkého s ESP-12E

Teraz na čítanie a zápis údajov z karty SD použijeme wifi modul Esp12E, aj keď je pomalší ako esp32. Ale skutočne nezáleží na tom, ktorý si vyberiete, v posledných krokoch uvediem dôvod.

Najprv spájkujte EN (aktivačný kolík) s VCC na esp12E, čím sa zapne IC. Ak toto nie je pripojené k signálu HIGH, IC sa nezapne. Potom umiestnite esp12E na zadnú stranu dosky plošných spojov a spájkujte kolíky SPI esp12E s kolíkmi SPI na karte SD. Pripojenie podrobne kontroluje schému zapojenia.

Krok 5: HTTP VS FTP

Pred programovaním som urobil malý prieskum o tom, ako funguje sťahovanie a odosielanie, vtedy som narazil na slovo FTP. FTP v zásade znamená protokol na prenos súborov, tento protokol sa používa na prenos súborov medzi servermi a klientom a je úplne odlišný od bežného protokolu HTTP, kde klient a server odosielajú a prijímajú požiadavky/odpovede, ktoré majú veľmi malú veľkosť.

FTP je pri prenose súborov rýchlejší ako HTTP, pretože bol vyvinutý špeciálne pre tento účel. Preto som to chcel implementovať do tohto projektu. Kde je na serveri esp-12E spustený server FTP a my môžeme prostredníctvom tohto FTP tlačiť a načítavať údaje na kartu SD.

Krok 6: Zistenie knižnice FTP

Zistenie knižnice FTP
Zistenie knižnice FTP
Zistenie knižnice FTP
Zistenie knižnice FTP

Nenašiel som žiadnu FTP knižnicu, ktorá by bola veľmi aktívne vyvíjaná alebo špeciálne navrhnutá pre esp8266. Ale pri nejakom vykopávaní som narazil na Davida Paivu, ktorý portoval Arduino verziu FTP servera na esp8266, ale s podporou SPIFFS a nie SD karty.

Ale s trochou úsilia som našiel niekoho, kto pracoval na knižnici Davida Paivu na prevode SPIFFS na kartu SD. Keď som to však skúsil použiť, stretol som sa s 2 problémami. Stránka, kde som to zistil, bola najskôr v kórejčine, takže som musel doslova sedieť a prekladať všetko, aby som vedel, čo sa deje, než som s tým mohol čokoľvek urobiť. Potom druhým problémom bolo, že som musel upraviť existujúcu knižnicu SD, aby podporovala zmeny, ktoré vykonal, ale bolo to veľmi nemotorné.

Porovnal som teda túto knižnicu, jednu od Davida Paivu a druhú z kórejského webu, potom som urobil niekoľko drobných zmien a celú vec som prepracoval do jedného projektu, takže nie je potrebné inštalovať žiadnu knižnicu akéhokoľvek druhu. Kód si môžete pozrieť z môjho účtu Github.

Krok 7: Programovanie ESP-12E

Programovanie ESP-12E
Programovanie ESP-12E
Programovanie ESP-12E
Programovanie ESP-12E
Programovanie ESP-12E
Programovanie ESP-12E

ESP-12E nie je dodávaný so vstavaným programátorom, takže musíme použiť externý programátor, ako je modul FDTI. Preto som vyrobil adaptér s niekoľkými drôtmi a kolíkovými zásuvkami, pomocou ktorého môžeme esp12E dočasne spájkovať a programovať pomocou modulu FTDI.

Pripojte GND [esp12E] k GND, Rx [esp12E] k Tx, Tx [esp12E] k Rx, GPIO15 [esp12E] k GND, GPIO0 [esp12E] k GND, VCC [esp12E] k VCC modulu FDTI.

Potom nahrajte kód z Githubu pomocou Arduino IDE.

Po nahraní programu môžete odpojiť káble, ktoré boli pripojené k programu esp12E.

Krok 8: Dokončenie projektu

Dokončenie projektu!
Dokončenie projektu!
Dokončenie projektu!
Dokončenie projektu!
Dokončenie projektu!
Dokončenie projektu!

Stačí vložiť ľubovoľnú kartu microSD [max. 32 GB] do adaptéra a zapojiť celé zariadenie do akéhokoľvek zariadenia kompatibilného s rozhraním USB. To by malo zaistiť napájanie! Ale je tu niekoľko vecí, ktoré je potrebné zvážiť, uistite sa, že výstupný prúd portu USB je väčší ako 1amp. Pretože modul Esp12E spotrebúva pri prenose súborov viac prúdu.

Krok 9: Používanie zariadenia

Používanie zariadenia
Používanie zariadenia
Používanie zariadenia
Používanie zariadenia
Používanie zariadenia
Používanie zariadenia

Hneď ako je zariadenie napájané, zariadenie vytvorí prístupový bod s názvom SD Reader. Pripojte sa k tomuto prístupovému bodu pomocou hesla, ktoré je v kóde. Potom V závislosti od zariadenia, ktoré používate na pripojenie k 12E, stiahnite príslušný softvér FTP klienta, ak používate WinSCP alebo Filzella na stiahnutie z počítača a ak používate zariadenie Android, stiahnite si AndFTP.

Po dokončení inštalácie otvorte AndFTP a zadajte prihlasovacie údaje na nastavenie klienta FTP. V mojom prípade som v kóde ponechal užívateľské meno a heslo na predvolené „esp8266“. Použite to teda na informácie o používateľovi a na hostiteľskom serveri 192.168.12.7. Nakoniec sa pripojte k serveru FTP.

Akonáhle to bude hotové, môžete si stiahnuť všetky súbory z karty SD a tiež môžete nahrať súbory z telefónu na kartu SD.

Môžete vidieť video, aby ste vedeli, ako to funguje!

Krok 10: Záverečné myšlienky

Záverečné myšlienky
Záverečné myšlienky
Záverečné myšlienky
Záverečné myšlienky

Predtým, ako skočíme na záver, že je to veľmi praktické zariadenie, urobme krok späť.

Aj keď robí to, čo chcem, je úplne pomalý! Na iba 4 súbory (každý ~ 100 kB) to trvá zhruba 30 sekúnd a ak to skúsite s väčším súborom, ako je 10 MB, bude to trvať asi 3-4 minúty. Existujú spôsoby, ako to optimalizovať, a zo stránky, na ktorú som odkazoval, dokázal dosiahnuť rýchlosť čítania zhruba 450 kB. (Pri knižnici Esp32 a SD_MMC môže byť rýchlosť prenosu približne 1 MB/s)

Dôvod, prečo som tu zastavil projekt a nepokúsil sa ho optimalizovať, bol z 2 dôvodov. Prvý dôvod, naozaj si prajem, aby som spolu s serverom FTP mohol na prenos údajov stále používať dátovú linku USB, ale nie je podporovaná v jazykoch esp8266 alebo esp32. A druhým dôvodom je, že som nemohol dosiahnuť dostatočnú rýchlosť na prenos súborov cez FTP. To je tiež ten istý dôvod, prečo som sa neobťažoval používať esp32 namiesto esp12E.

Myslím si však, že niektoré z týchto problémov je možné vyriešiť, ak použijeme dosky esp32 S2, ktoré podporujú plnú rýchlosť na cestách USB. Možno to môžem urobiť pre ďalší inštruovateľný XD.

Odporúča: