Tabla de contenido:

Lector de tarjetas SD inalámbrico [ESP8266]: 10 pasos (con imágenes)
Lector de tarjetas SD inalámbrico [ESP8266]: 10 pasos (con imágenes)

Video: Lector de tarjetas SD inalámbrico [ESP8266]: 10 pasos (con imágenes)

Video: Lector de tarjetas SD inalámbrico [ESP8266]: 10 pasos (con imágenes)
Video: Dame - Auf die guten alten Zeiten [Official HD Video] 2024, Mes de julio
Anonim
Image
Image

Se suponía que el USB era universal, y el objetivo principal era hacer una interfaz intercambiable en caliente y súper fácil de conectar con otros dispositivos, pero con el paso de los años la idea se volvió loca. Hay tantas variantes diferentes de estos puertos USB que es tan frustrante a veces y la forma en que funcionan contradice totalmente su nombre [USB - Universal Serial Bus] porque cada receptor USB debe ser compatible con cualquier dispositivo USB. No puede conectar su memoria USB o un teclado dentro de un cargador y esperar que funcione.

¡Pero el concepto suena demasiado bien! Es por eso que para iniciar este concepto de "Puerto Universal" comencé con un proyecto simple "Lector de tarjetas inalámbrico"

Esto cumplió todos mis deseos, todo lo que tengo que hacer es simplemente enchufarlo dentro de cualquier receptor USB, ¡no importa cuál!

Tan pronto como lo conecte, crea un punto de acceso donde podemos conectarnos y luego conectarnos al punto de acceso y simplemente abrir cualquier aplicación de cliente FTP en cualquier dispositivo compatible. Con esta configuración, podemos copiar y guardar archivos en la tarjeta SD de forma inalámbrica.

Suministros

Esta es la lista de productos que pueden ayudarlo a realizar este proyecto con facilidad.

(Enlace de afiliado)

  • Esp12E:
  • Tarjeta SD:
  • Adaptador Micro SD:
  • HeaderPins:
  • Pines de encabezado en ángulo:
  • Cables:
  • FTDI:
  • Cable del programador Arduino nano +:
  • USB macho:
  • PCB:
  • Pistola de soldar:
  • Plomo de soldadura:

Paso 1: Tarjeta SD (Secure Digital)

Tarjeta SD (Secure Digital)
Tarjeta SD (Secure Digital)

SD significa Secure Digital, es similar a su Pendrive pero con una huella más pequeña y un precio mucho más económico.

Cuando tenemos que usar esto con cualquiera de los microcontroladores hay 2 opciones, una es SDIO y SPI. Casi todas las tarjetas SD comparten muchas características estándar y tienen las mismas especificaciones físicas y eléctricas. Las diferencias reales entre SPI y SDIO se encuentran principalmente a nivel de software. Puedes leer más sobre esto en este enlace.

Por ahora, digamos que SDIO es más rápido pero más difícil de implementar y SPI es más lento pero más fácil de implementar. Dado que la mayoría de los microcontroladores son compatibles con SPI de forma predeterminada, nos quedaremos con él.

Pinout de la tarjeta SD para SPI

Pin-1 - CS (selección de chip) Pin-2 - DI (MOSI) Pin-3 - GNDPin-4 - VCCPin-5 - SCLKPin-6 - GNDPin-7 - DO (MISO) Pin-8 - NCPin-9 - NC

Paso 2: Modificación del adaptador de tarjeta SD

Modificación del adaptador de tarjeta SD
Modificación del adaptador de tarjeta SD
Modificación del adaptador de tarjeta SD
Modificación del adaptador de tarjeta SD
Modificación del adaptador de tarjeta SD
Modificación del adaptador de tarjeta SD
Modificación del adaptador de tarjeta SD
Modificación del adaptador de tarjeta SD

Puede usar cualquier módulo de tarjeta SD que admita Arduino y esp8266, pero para el propósito de este proyecto, usaremos el adaptador de tarjeta microSD y lo modificaremos de tal manera que podamos usarlo en lugar del módulo.

Primero, limpie los contactos del adaptador de tarjeta SD. Luego use pines de cabezal en ángulo y suelde los pines directamente a los contactos del adaptador. Una vez que haya terminado de soldar, verifique los contactos entre los pines del cabezal para verificar si hay algún cortocircuito. Retire el separador negro uno por uno, para que cuando lo coloquemos de nuevo, quede al ras con la PCB.

Corta la PCB de tal forma que encaje perfectamente con el adaptador de tarjeta SD y tenga algo de espacio extra, para añadir el puerto USB macho.

También puede hacer el mismo proceso con la tarjeta SD en lugar del adaptador, pero es bastante arriesgado si la daña.

Paso 3: Conexión USB

Conexión USB
Conexión USB
Conexión USB
Conexión USB
Conexión USB
Conexión USB

Necesitamos alimentar la tarjeta SD, para eso, usaremos el puerto de recepción USB en sí. Entonces usaremos un puerto USB macho. Esto generalmente tiene 4 pines, donde se usan 2 pines intermedios para la transferencia de datos y 2 pines extremos para alimentación y tierra. Como solo necesitamos energía, cortaré los pines de datos y solo mantendré GND y VCC.

Luego coloque el puerto USB macho frente a la tarjeta SD donde hicimos un poco de espacio antes, luego suéldelo en su lugar. ¡Esto todavía no solucionó ningún problema de energía! Debido a que la tarjeta SD requiere 3.3v, pero el suministro USB es estándar de 5V, si simplemente lo conecta al suministro, probablemente fríe la tarjeta SD (pero el adaptador microSD no sufrirá daños).

Para resolver esto usaremos un regulador de 3.3V y conectaremos la entrada de la fuente USB al regulador de 3.3V, es decir, conectaremos GND del USB al pin 1 del regulador y conectaremos el pin 3 del regulador a + 5V del regulador. Finalmente, suelde el pin 3 (pin de salida) y tierra del regulador a la tarjeta SD.

Esto configurará la energía para la tarjeta SD. Puede consultar el diagrama del circuito para obtener una conexión más detallada.

Paso 4: Uniendo todo con ESP-12E

Uniendo todo con ESP-12E
Uniendo todo con ESP-12E
Uniendo todo con ESP-12E
Uniendo todo con ESP-12E
Uniendo todo con ESP-12E
Uniendo todo con ESP-12E
Uniendo todo con ESP-12E
Uniendo todo con ESP-12E

Ahora para leer y escribir los datos de la tarjeta SD usaremos el módulo wifi Esp12E, aunque es más lento que el esp32. Pero realmente no importa cuál elijas, diré la razón en los últimos pasos.

Primero suelde el EN (pin de habilitación) al VCC del esp12E, esto encenderá el IC. Si esto no está conectado a la señal HIGH, el IC no se encenderá. Luego coloque el esp12E en la parte posterior de la placa PCB y suelde los pines SPI del esp12E a los pines SPI de la tarjeta SD. Para el detalle, la conexión comprueba el diagrama del circuito.

Paso 5: HTTP VS FTP

Antes de programar, investigué un poco sobre cómo funcionan las descargas y cargas, fue entonces cuando encontré la palabra FTP. Básicamente, FTP significa protocolo de transferencia de archivos, este protocolo se utiliza para transferir archivos entre servidores y clientes y es totalmente diferente del HTTP normal donde el cliente y el servidor envían y reciben solicitudes / respuestas que son de tamaño muy pequeño.

FTP es más rápido que HTTP en la transferencia de archivos porque fue diseñado específicamente para él. Entonces, quería implementar esto en este proyecto. Donde se ejecuta un servidor FTP en el esp-12E y podemos enviar y obtener datos a través de este FTP a la tarjeta SD.

Paso 6: averiguar la biblioteca FTP

Descubriendo la biblioteca FTP
Descubriendo la biblioteca FTP
Averiguar la biblioteca FTP
Averiguar la biblioteca FTP

No pude encontrar ninguna biblioteca de FTP que se haya desarrollado de manera muy activa o que esté hecha específicamente para esp8266. Pero con un poco de investigación me encontré con David Paiva, que portó una versión Arduino del servidor FTP a esp8266 pero con el soporte SPIFFS y no la tarjeta SD.

Pero con un poco más de esfuerzo, encontré a alguien que trabajó en la biblioteca de David Paiva para convertir el SPIFFS a la tarjeta SD. Pero cuando intenté usar esto, enfrenté 2 problemas. Primero, la página donde descubrí esto estaba en coreano, así que tuve que sentarme literalmente y traducir todo para saber qué estaba pasando antes de poder hacer algo con eso. Luego, el segundo problema fue que tuve que modificar la biblioteca SD existente para admitir los cambios que hizo, pero eso se sintió muy torpe.

Entonces, comparé esta biblioteca, una de David Paiva y la otra del sitio web coreano. Luego hice algunos cambios menores e hice todo en un solo proyecto, por lo que no hay necesidad de instalar ninguna biblioteca de ningún tipo. Puede consultar el código de mi cuenta de Github.

Paso 7: Programación del ESP-12E

Programando el ESP-12E
Programando el ESP-12E
Programando el ESP-12E
Programando el ESP-12E
Programando el ESP-12E
Programando el ESP-12E

ESP-12E no viene con un programador incorporado, por lo que necesitamos usar un programador externo como el módulo FDTI. Así que hice un adaptador con algunos cables y pines hembra. Con esto, podemos soldar temporalmente el esp12E y programarlo usando el módulo FTDI.

Conecte GND [esp12E] a GND, Rx [esp12E] a Tx, Tx [esp12E] a Rx, GPIO15 [esp12E] a GND, GPIO0 [esp12E] a GND, VCC [esp12E] a VCC del módulo FDTI.

Luego cargue el código de Github usando el IDE de Arduino.

Una vez cargado el programa, puede desoldar los cables que estaban conectados para programar el esp12E.

Paso 8: ¡Terminando el Proyecto

¡Terminando el proyecto!
¡Terminando el proyecto!
¡Terminando el proyecto!
¡Terminando el proyecto!
¡Terminando el proyecto!
¡Terminando el proyecto!

Simplemente coloque cualquier tarjeta microSD [32 GB máx.] Dentro del adaptador y conecte todo el dispositivo a cualquier dispositivo compatible con USB. ¡Eso debería encender las cosas! Pero hay algunas cosas a considerar, asegúrese de que la corriente de salida del puerto USB sea superior a 1 amperio, solo para estar más seguro. Porque el módulo Esp12E consume más corriente cuando transfiere archivos.

Paso 9: uso del dispositivo

Usando el dispositivo
Usando el dispositivo
Usando el dispositivo
Usando el dispositivo
Usando el dispositivo
Usando el dispositivo

Tan pronto como el dispositivo se enciende, el dispositivo crea un punto de acceso llamado SD Reader. Conéctese a este punto de acceso usando la contraseña que está en el código. Luego, dependiendo del dispositivo que esté usando para conectarse al 12E, descargue el software de cliente FTP respectivo, si está usando una PC, descargue WinSCP o Filzella y si está usando un dispositivo Android, descargue AndFTP.

Una vez realizada la instalación, abra AndFTP y complete las credenciales para configurar el cliente FTP. En mi caso, dejé el nombre de usuario y la contraseña por defecto "esp8266" en el código. Entonces, utilícelo para la información del usuario y para el host use 192.168.12.7. Finalmente, conéctese al servidor FTP.

Una vez hecho esto, puede descargar cualquier archivo de la tarjeta SD y también puede cargar archivos desde su teléfono a la tarjeta SD.

¡Puedes ver el video para saber cómo funciona!

Paso 10: Pensamientos finales

Pensamientos finales
Pensamientos finales
Pensamientos finales
Pensamientos finales

Pero antes de llegar a la conclusión de que es un dispositivo muy útil, demos un paso atrás.

Aunque hace lo que quiero, ¡es completamente lento! Para solo 4 archivos (cada uno ~ 100 Kb), toma aproximadamente 30 segundos, y si lo intentas con un archivo más grande, como 10 MB, tardará entre 3 y 4 minutos en completarse. Hay formas de optimizar esto, y desde la página a la que me referí, pudo obtener una velocidad de lectura de aproximadamente 450 kbs. (Con Esp32 y SD_MMC, la velocidad de transferencia de la biblioteca puede ser de alrededor de 1 MB / seg.)

La razón por la que detuve el proyecto aquí y no intenté optimizarlo fue por 2 razones. Primera razón, realmente desearía que, junto con el servidor FTP, pudiera usar la línea de datos USB para transferir datos, pero no es compatible con esp8266 o esp32. Y la segunda razón es que no pude obtener la velocidad suficiente para transferir los archivos a través de FTP. Estas son también la misma razón por la que no me molesté en usar el esp32 en lugar del esp12E.

Pero creo que algunos de estos problemas pueden resolverse si podemos usar las placas esp32 S2 que admiten USB a máxima velocidad sobre la marcha. Tal vez pueda hacer eso para otro XD instructable.

Recomendado: