Inhoudsopgave:

Draadloze SD-kaartlezer [ESP8266] - Ajarnpa
Draadloze SD-kaartlezer [ESP8266] - Ajarnpa

Video: Draadloze SD-kaartlezer [ESP8266] - Ajarnpa

Video: Draadloze SD-kaartlezer [ESP8266] - Ajarnpa
Video: The COOLEST SD card reader case 🤯 2024, Juli-
Anonim
Image
Image

USB moest universeel zijn en het belangrijkste doel was om een hot-swappable, supergemakkelijke interface met andere apparaten te maken, maar in de loop der jaren raakte het idee in de war. Er zijn zoveel verschillende varianten van deze USB-poorten, wat soms zo frustrerend is en de manier waarop deze werken volledig in tegenspraak met hun naam [USB - Universal Serial Bus] omdat elke USB-ontvanger compatibel moet zijn met elk USB-apparaat! Je kunt je USB-stick of een toetsenbord niet in een oplader steken en verwachten dat het werkt.

Maar het concept klinkt te goed! Daarom ben ik, om dit "Universal-Port"-concept te starten, begonnen met een eenvoudig project "Draadloze kaartlezer"

Dit voldeed aan al mijn wensen, ik hoef hem alleen maar in een USB-ontvanger aan te sluiten, het maakt niet uit welke!

Zodra je het aansluit, creëert het een toegangspunt waar we verbinding kunnen maken en vervolgens verbinding kunnen maken met het toegangspunt en gewoon elke FTP-clienttoepassing op elk compatibel apparaat kunnen openen. Met deze opstelling kunnen we zowel draadloos bestanden kopiëren als opslaan op de SD-kaart!

Benodigdheden

Dit is de lijst met producten die u kunnen helpen dit project met gemak te doen

(Partnerlink)

  • Esp12E:
  • SD-kaart:
  • Micro SD-adapter:
  • HeaderPins:
  • Hoekige header-pinnen:
  • Draden:
  • FTDI:
  • Arduino nano + programmeerdraad:
  • Mannelijke USB:
  • PCB:
  • Soldeerpistool:
  • Soldeerkabel:

Stap 1: SD-kaart (Secure Digital)

SD-kaart (veilig digitaal)
SD-kaart (veilig digitaal)

SD staat voor Secure Digital, het is vergelijkbaar met uw Pendrive, maar met een kleinere voetafdruk en een veel goedkopere prijs.

Als we dit met een van de microcontrollers moeten gebruiken, zijn er 2 opties, één is SDIO en SPI. Bijna alle SD-kaarten delen veel standaardfuncties en hebben dezelfde fysieke en elektrische specificaties. De werkelijke verschillen tussen de SPI en SDIO liggen voornamelijk op softwareniveau. In deze link lees je er meer over.

Laten we voorlopig zeggen dat SDIO sneller maar moeilijker te implementeren is en dat SPI langzamer maar gemakkelijker te implementeren is. Aangezien de meeste microcontrollers standaard SPI ondersteunen, houden we het er gewoon bij.

SD-kaart pinout voor SPI

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

Stap 2: Wijziging SD-kaartadapter

Wijziging SD-kaartadapter
Wijziging SD-kaartadapter
Wijziging SD-kaartadapter
Wijziging SD-kaartadapter
Wijziging SD-kaartadapter
Wijziging SD-kaartadapter
Wijziging SD-kaartadapter
Wijziging SD-kaartadapter

Je kunt alle SD-kaartmodules gebruiken die Arduino en esp8266 ondersteunen, maar voor dit project gebruiken we de microSD-kaartadapter en zullen deze zodanig aanpassen dat we die kunnen gebruiken in plaats van de module.

Reinig eerst de contacten van de SD-kaartadapter. Gebruik vervolgens gehoekte header-pinnen en soldeer de pinnen rechtstreeks op de adaptercontacten. Nadat het solderen is voltooid, controleert u de contacten tussen de koppennen om te controleren op kortsluiting. Verwijder de zwarte scheider één voor één, zodat wanneer we deze terugplaatsen, deze gelijk zou liggen met de PCB.

Snijd de print zo dat deze perfect past bij de SD-kaartadapter en wat extra ruimte heeft om de mannelijke USB-poort toe te voegen.

Je kunt hetzelfde proces ook doen met de SD-kaart in plaats van met de adapter, maar het is behoorlijk riskant als je deze beschadigt.

Stap 3: USB-verbinding

USB-verbinding
USB-verbinding
USB-verbinding
USB-verbinding
USB-verbinding
USB-verbinding

We moeten de SD-kaart van stroom voorzien. Daarvoor gebruiken we de USB-ontvangstpoort zelf. We gebruiken dus een mannelijke USB-poort. Deze heeft meestal 4 pinnen, waarbij 2 middelste pinnen worden gebruikt voor gegevensoverdracht en 2 extreme pinnen voor stroom en aarde. Omdat we alleen stroom nodig hebben, snij ik de datapinnen door en bewaar ik gewoon de GND en VCC.

Vervolgens de mannelijke USB-poort voor de SD-kaart geplaatst waar we eerder wat ruimte hadden gemaakt, en vervolgens op zijn plaats gesoldeerd. Dit heeft nog geen stroomprobleem opgelost! Omdat de SD-kaart 3.3v vereist, maar de USB-voeding standaard 5V is, als je deze gewoon in de voeding steekt, zul je waarschijnlijk de SD-kaart uitbakken (maar de microSD-adapter zal geen schade oplopen).

Om dit op te lossen gebruiken we een 3.3V-regelaar en verbinden we de ingang van de USB-voeding met de 3.3V-regelaar, d.w.z. sluit GND van de USB aan op pin 1 van de regelaar en sluit pin 3 van de regelaar aan op +5V van de regelaar. Soldeer tot slot pin 3 (uitgangspin) en massa van de regelaar aan de SD-kaart.

Hiermee wordt de stroom voor de SD-kaart ingesteld. Voor een meer gedetailleerde aansluiting kunt u het schakelschema raadplegen.

Stap 4: Alles samenvoegen met ESP-12E

Alles samenvoegen met ESP-12E
Alles samenvoegen met ESP-12E
Alles samenvoegen met ESP-12E
Alles samenvoegen met ESP-12E
Alles samenvoegen met ESP-12E
Alles samenvoegen met ESP-12E
Alles samenvoegen met ESP-12E
Alles samenvoegen met ESP-12E

Om nu de gegevens van de SD-kaart te lezen en te schrijven, gebruiken we de Esp12E wifi-module, ook al is deze langzamer dan esp32. Maar het maakt echt niet uit welke je kiest, ik zal de reden in de laatste stappen vertellen.

Soldeer eerst de EN (enable pin) aan de VCC van de esp12E, hierdoor wordt het IC ingeschakeld. Als deze niet op het HIGH-signaal is aangesloten, gaat het IC niet aan. Plaats vervolgens de esp12E op de achterkant van de printplaat en soldeer de SPI-pinnen van de esp12E aan de SPI-pinnen op de SD-kaart. Voor de details controleert de verbinding het schakelschema.

Stap 5: HTTP VS FTP

Voordat ik programmeerde, deed ik wat onderzoek naar hoe downloads en uploads werken, toen kwam ik het woord FTP tegen. In feite staat FTP voor bestandsoverdrachtsprotocol, dit protocol wordt gebruikt om bestanden tussen servers en client over te dragen en het is totaal anders dan de reguliere HTTP waarbij de client en server verzoeken/antwoorden verzenden en ontvangen die erg klein zijn.

FTP is sneller dan HTTP bij het overbrengen van bestanden omdat het er speciaal voor is gemaakt. Dus ik wilde dit in dit project implementeren. Waar een FTP-server op de esp-12E draait en we gegevens via deze FTP naar de SD-kaart kunnen pushen en ophalen.

Stap 6: De FTP-bibliotheek uitzoeken

De FTP-bibliotheek uitzoeken
De FTP-bibliotheek uitzoeken
De FTP-bibliotheek uitzoeken
De FTP-bibliotheek uitzoeken

Ik kon geen FTP-bibliotheek vinden die zeer actief is ontwikkeld of specifiek is gemaakt voor esp8266. Maar met wat speurwerk kwam ik David Paiva tegen die een Arduino-versie van de FTP-server naar esp8266 porteerde, maar met de SPIFFS-ondersteuning en niet de SD-kaart.

Maar met wat meer moeite vond ik iemand die wat werk aan de David Paiva-bibliotheek had gedaan om de SPIFFS naar de SD-kaart te converteren. Maar toen ik dit probeerde te gebruiken, kreeg ik te maken met 2 problemen. Ten eerste was de pagina waar ik dit ontdekte in het Koreaans, dus ik moest letterlijk alles vertalen om te weten wat er aan de hand was voordat ik er iets mee kon doen. Het tweede probleem was dat ik de bestaande SD-bibliotheek moest aanpassen om de wijzigingen die hij maakte te ondersteunen, maar dat voelde erg onhandig aan.

Dus ik vergeleek deze beide bibliotheek, een van David Paiva en de andere van de Koreaanse website. Daarna maakte ik een paar kleine wijzigingen en maakte het hele ding in een enkel project, dus het is niet nodig om een bibliotheek van welke soort dan ook te installeren. Je kunt de code bekijken via mijn Github-account.

Stap 7: Programmeren van de ESP-12E

Programmeren van de ESP-12E
Programmeren van de ESP-12E
Programmeren van de ESP-12E
Programmeren van de ESP-12E
Programmeren van de ESP-12E
Programmeren van de ESP-12E

ESP-12E wordt niet geleverd met een ingebouwde programmer, dus we moeten een externe programmer gebruiken, zoals de FDTI-module. Dus ik heb een adapter gemaakt met een paar draden en vrouwelijke header-pinnen, hiermee kunnen we de esp12E tijdelijk solderen en programmeren met behulp van de FTDI-module.

Sluit de GND[esp12E] aan op GND, Rx[esp12E] aan Tx, Tx[esp12E] aan Rx, GPIO15[esp12E] aan GND, GPIO0 [esp12E] aan GND, VCC[esp12E] aan VCC van de FDTI-module.

Upload vervolgens de code van Github met behulp van de Arduino IDE.

Zodra het programma is geüpload, kunt u de draden lossolderen die zijn aangesloten om de esp12E te programmeren.

Stap 8: Het project afronden

Afronden van het project!
Afronden van het project!
Afronden van het project!
Afronden van het project!
Afronden van het project!
Afronden van het project!

Plaats gewoon een microSD-kaart [32 GB max] in de adapter en sluit het hele apparaat aan op een USB-compatibel apparaat. Dat zou de boel op scherp moeten zetten! Maar er zijn weinig dingen om te overwegen, zorg ervoor dat de uitgangsstroom van de USB-poort groter is dan 1 ampère, alleen maar om aan de veilige kant te zijn. Omdat de Esp12E-module meer stroom verbruikt bij het overzetten van bestanden.

Stap 9: Het apparaat gebruiken

Het apparaat gebruiken
Het apparaat gebruiken
Het apparaat gebruiken
Het apparaat gebruiken
Het apparaat gebruiken
Het apparaat gebruiken

Zodra het apparaat van stroom wordt voorzien, maakt het apparaat een toegangspunt aan met de naam SD Reader. Maak verbinding met dit toegangspunt met het wachtwoord dat op de code staat. Afhankelijk van het apparaat dat u gebruikt om verbinding te maken met de 12E, downloadt u de respectievelijke FTP-clientsoftware als u een pc-download WinSCP of Filzella gebruikt en als u een Android-apparaat gebruikt, download AndFTP.

Zodra de installatie is voltooid, opent u de AndFTP en vult u de gegevens in om de FTP-client in te stellen. In mijn geval heb ik de gebruikersnaam en het wachtwoord op standaard "esp8266" in de code gelaten. Gebruik dat dus voor de gebruikersinformatie en voor de host 192.168.12.7. Maak tot slot verbinding met de FTP-server.

Zodra dat is gebeurd, kunt u alle bestanden van de SD-kaart downloaden en kunt u bestanden van uw telefoon naar de SD-kaart uploaden.

Je kunt de video bekijken om te zien hoe het werkt!

Stap 10: Laatste gedachten

Laatste gedachten
Laatste gedachten
Laatste gedachten
Laatste gedachten

Maar voordat we tot de conclusie komen dat het een erg handig apparaat is om te hebben, laten we een stapje terug doen.

Ook al doet het wat ik wil, het is volkomen traag! Voor slechts 4 bestanden (elk ~ 100Kb) duurt het ongeveer 30 seconden, en als je het probeert met een groter bestand, zoals 10 MB, duurt het ongeveer 3-4 minuten om te voltooien. Er zijn manieren om dit te optimaliseren, en vanaf de pagina waar ik naar verwees, kon hij een leessnelheid van ongeveer 450 kbs halen. (Met Esp32 en SD_MMC kan de overdrachtssnelheid ongeveer 1 MB/sec zijn)

De reden waarom ik het project hier stopte en niet probeerde het te optimaliseren, was om 2 redenen. Om de eerste reden zou ik heel graag willen dat ik, samen met de FTP-server, nog steeds de USB-datalijn zou kunnen gebruiken om gegevens over te dragen, maar het wordt niet ondersteund in esp8266 of esp32. En de tweede reden is dat ik niet genoeg snelheid kon krijgen om de bestanden via FTP over te zetten. Dit zijn ook dezelfde redenen waarom ik niet de moeite nam om de esp32 te gebruiken in plaats van de esp12E.

Maar ik denk dat sommige van deze problemen kunnen worden opgelost als we de esp32 S2-kaarten kunnen gebruiken die USB op volle snelheid ondersteunen. Misschien kan ik dat doen voor een andere instructable XD.

Aanbevolen: