Obsah:

Bezdrátová čtečka karet SD [ESP8266]: 10 kroků (s obrázky)
Bezdrátová čtečka karet SD [ESP8266]: 10 kroků (s obrázky)

Video: Bezdrátová čtečka karet SD [ESP8266]: 10 kroků (s obrázky)

Video: Bezdrátová čtečka karet SD [ESP8266]: 10 kroků (s obrázky)
Video: Když je čtečka tak rychlá, že si z ní uděláte externí disk (Alisczech vol. 847) 2024, Červenec
Anonim
Image
Image

USB mělo být univerzální a hlavním cílem bylo vytvořit hot-swap, super snadné rozhraní s jinými zařízeními, ale v průběhu let se tento nápad rozpadl. Existuje tolik různých variant těchto USB portů, což je někdy tak frustrující a způsob, jakým tyto funkce fungují, je zcela v rozporu s jejich názvem [USB - Universal Serial Bus], protože každý USB přijímač by měl být kompatibilní s jakýmkoli USB zařízením! Nemůžete zapojit USB klíčenku nebo klávesnici do nabíječky a očekávat, že bude fungovat.

Ale koncept zní příliš dobře! Proto jsem zahájil koncept „Universal-Port“a začal jsem s jednoduchým projektem „Bezdrátová čtečka karet“

Tím byla splněna všechna má přání, vše, co musím udělat, je zapojit jej do jakéhokoli USB přijímače, na kterém nezáleží!

Jakmile jej připojíte, vytvoří přístupový bod, kde se můžeme připojit a poté se připojit k přístupovému bodu a otevřít libovolnou klientskou aplikaci FTP v libovolném kompatibilním zařízení. S tímto nastavením můžeme bezdrátově kopírovat i ukládat soubory na kartu SD!

Zásoby

Toto je seznam produktů, které vám mohou pomoci snadno provést tento projekt

(Affiliate Link)

  • Esp12E:
  • Karta SD:
  • Micro SD adaptér:
  • HeaderPins:
  • Šikmé kolíkové hlavičky:
  • Dráty:
  • FTDI:
  • Drát programátoru Arduino nano +:
  • Mužské USB:
  • PCB:
  • Pájecí pistole:
  • Pájecí kabel:

Krok 1: Karta SD (Secure Digital)

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

SD znamená Secure Digital, je podobný vašemu Pendrive, ale s menší stopou a mnohem levnější cenou.

Když to musíme použít s kterýmkoli z mikrokontrolérů, existují 2 možnosti, jedna je SDIO a SPI. Téměř všechny karty SD sdílejí mnoho standardních funkcí a mají stejné fyzické a elektrické specifikace. Skutečné rozdíly mezi SPI a SDIO jsou hlavně na softwarové úrovni. Více si o tom můžete přečíst v tomto odkazu.

Prozatím řekněme, že SDIO je rychlejší, ale těžší implementovat a SPI je pomalejší, ale snadněji implementovatelný. Protože většina mikrokontrolérů ve výchozím nastavení podporuje SPI, budeme se ho držet.

Pinout SD karty pro 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

Krok 2: Úprava adaptéru karty SD

Úprava adaptéru karty SD
Úprava adaptéru karty SD
Úprava adaptéru karty SD
Úprava adaptéru karty SD
Úprava adaptéru karty SD
Úprava adaptéru karty SD
Úprava adaptéru karty SD
Úprava adaptéru karty SD

Můžete použít libovolné moduly karty SD, které podporují Arduino a esp8266, ale pro účely tohoto projektu použijeme adaptér karty microSD a upravíme tak, abychom to mohli použít místo modulu.

Nejprve očistěte kontakty adaptéru karty SD. Poté použijte kolíkové kolíkové záhlaví a pájejte kolíky přímo na kontakty adaptéru. Jakmile je pájení hotové, zkontrolujte kontakty mezi kolíky záhlaví a zkontrolujte, zda nedošlo ke zkratu. Odstraňte černý separátor jeden po druhém, takže když jej umístíme zpět, zarovná se s DPS.

Řezejte desku plošných spojů tak, aby se perfektně hodila k adaptéru karty SD a měla místo navíc, a přidejte port USB pro muže.

Stejný postup můžete provést i s kartou SD místo adaptéru, ale je to docela riskantní, pokud ji poškodíte.

Krok 3: Připojení USB

USB připojení
USB připojení
USB připojení
USB připojení
USB připojení
USB připojení

Potřebujeme napájet kartu SD. K tomu použijeme samotný přijímací port USB. Použijeme tedy mužský USB port. Obvykle má 4 piny, kde 2 střední piny slouží k přenosu dat a 2 extrémní piny slouží k napájení a uzemnění. Protože potřebujeme pouze napájení, omezím datové piny a ponechám GND a VCC.

Poté jsme umístili samčí port USB před kartu SD, kde jsme dříve udělali nějaké místo, a poté jej pájili na místo. To ještě nevyřešilo žádný problém s napájením! Protože karta SD vyžaduje 3,3 V, ale napájení USB je standardní 5 V, pokud ji zapojíte do zdroje, pravděpodobně kartu SD smažíte (adaptér microSD však nepoškodí).

K vyřešení tohoto problému použijeme regulátor 3,3 V a připojíme vstup zdroje USB k regulátoru 3,3 V, tj. Připojíme GND USB ke kolíku 1 regulátoru a připojíme kolík 3 regulátoru k +5 V regulátoru. Nakonec připájejte kolík 3 (výstupní kolík) a uzemnění regulátoru ke kartě SD.

Tím se nastaví napájení karty SD. Podrobnější zapojení můžete zkontrolovat ve schématu zapojení.

Krok 4: Spojení všeho s ESP-12E

Spojení všeho s ESP-12E
Spojení všeho s ESP-12E
Spojení všeho s ESP-12E
Spojení všeho s ESP-12E
Spojení všeho s ESP-12E
Spojení všeho s ESP-12E
Spojení všeho s ESP-12E
Spojení všeho s ESP-12E

Nyní pro čtení a zápis dat z karty SD použijeme wifi modul Esp12E, přestože je pomalejší než esp32. Ale ve skutečnosti nezáleží na tom, který z nich si vyberete, v posledních krocích řeknu důvod.

Nejprve připájejte EN (aktivační kolík) k VCC esp12E, tím se zapne IC. Pokud toto není připojeno k signálu HIGH, IC se nezapne. Poté umístěte esp12E na zadní stranu desky plošných spojů a připájejte piny SPI esp12E k vývodům SPI na kartě SD. Pro podrobnosti připojení kontroluje schéma zapojení.

Krok 5: HTTP VS FTP

Před programováním jsem provedl průzkum, jak stahování a nahrávání funguje, tehdy jsem narazil na slovo FTP. FTP v podstatě znamená protokol pro přenos souborů, tento protokol se používá k přenosu souborů mezi servery a klientem a je zcela odlišný od běžného HTTP, kde klient a server odesílají a přijímají požadavky/odpovědi, které mají velmi malou velikost.

FTP je při přenosu souborů rychlejší než HTTP, protože byl vytvořen speciálně pro něj. Chtěl jsem to tedy implementovat do tohoto projektu. Kde na esp-12E běží server FTP a my můžeme přes tento FTP tlačit a načítat data na kartu SD.

Krok 6: Zjištění knihovny FTP

Zjištění knihovny FTP
Zjištění knihovny FTP
Zjištění knihovny FTP
Zjištění knihovny FTP

Nemohl jsem najít žádnou FTP knihovnu, která by byla velmi aktivně vyvinuta nebo speciálně vytvořena pro esp8266. Ale při nějakém kopání jsem narazil na Davida Paivu, který portoval Arduino verzi FTP serveru na esp8266, ale s podporou SPIFFS a ne SD kartou.

Ale s trochou většího úsilí jsem našel někoho, kdo udělal nějakou práci na knihovně Davida Paivy, aby převedl SPIFFS na SD kartu. Ale když jsem se to pokusil použít, narazil jsem na 2 problémy. Za prvé, stránka, kde jsem to zjistil, byla v korejštině, takže jsem musel doslova sedět a překládat všechno, abych věděl, co se děje, než jsem s tím mohl něco udělat. Druhým problémem bylo, že jsem musel upravit stávající knihovnu SD, aby podpořil změny, které provedl, ale to bylo velmi nemotorné.

Porovnal jsem tedy tuto knihovnu, jednu od Davida Paivy a druhou z korejského webu, poté jsem provedl několik drobných změn a celou věc vytvořil do jednoho projektu, takže není třeba instalovat žádnou knihovnu jakéhokoli druhu. Kód si můžete prohlédnout z mého účtu Github.

Krok 7: Programování ESP-12E

Programování ESP-12E
Programování ESP-12E
Programování ESP-12E
Programování ESP-12E
Programování ESP-12E
Programování ESP-12E

ESP-12E není dodáván s vestavěným programátorem, takže musíme použít externí programátor, jako je modul FDTI. Udělal jsem tedy adaptér s několika dráty a kolíkovými zásuvkovými kolíky. Tímto můžeme esp12E dočasně pájet a programovat pomocí modulu FTDI.

Připojte 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.

Poté nahrajte kód z Githubu pomocí Arduino IDE.

Jakmile je program nahrán, můžete odpojit vodiče, které byly připojeny k programování esp12E.

Krok 8: Dokončení projektu

Dokončení projektu!
Dokončení projektu!
Dokončení projektu!
Dokončení projektu!
Dokončení projektu!
Dokončení projektu!

Jednoduše vložte libovolnou kartu microSD [max. 32 GB] do adaptéru a zapojte celé zařízení do jakéhokoli zařízení kompatibilního s rozhraním USB. Existuje však několik věcí, které je třeba zvážit, ujistěte se, že výstupní proud portu USB je větší než 1amp, jen pro jistotu. Protože modul Esp12E spotřebovává více proudu při přenosu souborů.

Krok 9: Používání zařízení

Používání zařízení
Používání zařízení
Používání zařízení
Používání zařízení
Používání zařízení
Používání zařízení

Jakmile je zařízení napájeno, zařízení vytvoří přístupový bod s názvem SD Reader. Připojte se k tomuto přístupovému bodu pomocí hesla, které je v kódu. Poté si v závislosti na tom, jaké zařízení používáte k připojení k 12E, stáhněte příslušný klientský software FTP, pokud používáte stahování WinSCP nebo Filzella z počítače a pokud používáte zařízení Android, stáhněte si AndFTP.

Po dokončení instalace otevřete AndFTP a vyplněním přihlašovacích údajů nastavte FTP klienta. V mém případě jsem v kódu nechal uživatelské jméno a heslo na výchozí „esp8266“. Použijte to tedy pro uživatelské informace a pro hostitele použijte 192.168.12.7. Nakonec se připojte k serveru FTP.

Jakmile to bude hotové, můžete si stáhnout libovolné soubory z karty SD a také můžete nahrávat soubory z telefonu na kartu SD.

Můžete vidět video, abyste věděli, jak to funguje!

Krok 10: Závěrečné myšlenky

Závěrečné myšlenky
Závěrečné myšlenky
Závěrečné myšlenky
Závěrečné myšlenky

Ale než uděláme závěr, že je to velmi praktické zařízení, udělejme krok zpět.

I když to dělá to, co chci, je to naprosto pomalé! Na pouhé 4 soubory (každý ~ 100 kB) to trvá zhruba 30 sekund, a pokud to zkusíte s větším souborem, například 10 MB, bude to trvat přibližně 3–4 minuty. Existují způsoby, jak to optimalizovat, a ze stránky, na kterou jsem odkazoval, dokázal dosáhnout rychlosti čtení zhruba 450 kB. (U knihoven Esp32 a SD_MMC může být rychlost přenosu kolem 1 MB/s)

Důvod, proč jsem projekt zastavil a nepokusil se jej optimalizovat, byl ze 2 důvodů. První důvod, opravdu si přeji, abych spolu s FTP serverem mohl stále používat USB datovou linku k přenosu dat, ale to není podporováno v esp8266 nebo esp32. A druhým důvodem je, že jsem nemohl dosáhnout dostatečné rychlosti pro přenos souborů přes FTP. To jsou také stejné důvody, proč jsem se neobtěžoval použít esp32 místo esp12E.

Myslím si však, že některé z těchto problémů lze vyřešit, pokud můžeme použít desky esp32 S2, které podporují plnou rychlost na cestách USB. Možná to mohu udělat pro další instruktážní XD.

Doporučuje: