Índice:

Leitor de cartão SD sem fio [ESP8266]: 10 etapas (com imagens)
Leitor de cartão SD sem fio [ESP8266]: 10 etapas (com imagens)
Anonim
Image
Image

O USB deveria ser universal, e o objetivo principal era fazer um hot-swappable e super fácil de fazer a interface com outros dispositivos, mas com o passar dos anos a ideia enlouqueceu. Existem tantas variantes diferentes dessas portas USB que às vezes são tão frustrantes e a forma como elas funcionam contradiz totalmente o seu nome [USB - Universal Serial Bus] porque todo receptor USB deve ser compatível com qualquer dispositivo USB! Você não pode conectar seu stick USB ou um teclado dentro de um carregador e esperar que funcione.

Mas o conceito parece bom demais! É por isso que para iniciar este conceito de "porta universal" eu comecei com um projeto simples "Leitor de cartão sem fio"

Isso atendeu a todos os meus desejos, tudo o que tenho a fazer é apenas conectá-lo em qualquer receptor USB, não importa qual!

Assim que você o conecta, ele cria um ponto de acesso onde podemos nos conectar e então conectar ao ponto de acesso e apenas abrir qualquer aplicativo cliente FTP em qualquer dispositivo compatível. Com esta configuração, podemos copiar e salvar arquivos no cartão SD sem fio!

Suprimentos

Esta é a lista de produtos que podem ajudá-lo a realizar este projeto com facilidade

(Link de afiliado)

  • Esp12E:
  • Cartão SD:
  • Adaptador Micro SD:
  • HeaderPins:
  • Alfinetes de cabeçalho angulares:
  • Wires:
  • FTDI:
  • Cabo do programador Arduino nano +:
  • USB masculino:
  • PCB:
  • Pistola de soldar:
  • Chumbo de solda:

Etapa 1: Cartão SD (Secure Digital)

Cartão SD (Secure Digital)
Cartão SD (Secure Digital)

SD significa Secure Digital, é semelhante ao seu Pendrive, mas com uma pegada menor e preço muito mais barato.

Quando temos que usar isso com qualquer um dos microcontroladores, existem 2 opções, uma é SDIO e SPI. Quase todos os cartões SD compartilham muitos recursos padrão e têm as mesmas especificações físicas e elétricas. As diferenças reais entre o SPI e o SDIO estão principalmente no nível do software. Você pode ler mais sobre isso neste link.

Por enquanto, vamos apenas dizer que o SDIO é mais rápido, mas mais difícil de implementar, e o SPI é mais lento, mas mais fácil de implementar. Uma vez que a maioria dos microcontroladores suporta SPI por padrão, vamos apenas mantê-lo.

Pinagem do cartão SD para SPI

Pin-1 - CS (seleção de chip) Pin-2 - DI (MOSI) Pin-3 - GNDPin-4 - VCCPin-5 - SCLKPin-6 - GNDPin-7 - DO (MISO) Pin-8 - NCPin-9 - NC

Etapa 2: modificação do adaptador do cartão SD

Modificação do adaptador de cartão SD
Modificação do adaptador de cartão SD
Modificação do adaptador de cartão SD
Modificação do adaptador de cartão SD
Modificação do adaptador de cartão SD
Modificação do adaptador de cartão SD
Modificação do adaptador de cartão SD
Modificação do adaptador de cartão SD

Você pode usar qualquer módulo de cartão SD que suporte Arduino e esp8266, mas para o propósito deste projeto, usaremos o adaptador de cartão microSD e o modificaremos de forma que possamos usá-lo em vez do módulo.

Primeiro, limpe os contatos do adaptador de cartão SD. Em seguida, use os pinos frontais em ângulo e solde os pinos diretamente nos contatos do adaptador. Assim que a solda estiver concluída, verifique os contatos entre os pinos da plataforma para verificar se há algum curto-circuito. Remova o separador preto um por um, então quando o colocarmos de volta, ele ficará nivelado com o PCB.

Corte o PCB de forma que ele se encaixe perfeitamente no adaptador de cartão SD e tenha algum espaço extra, para adicionar a porta USB macho.

Você também pode fazer o mesmo processo com o cartão SD em vez do adaptador, mas é muito arriscado se você danificá-lo.

Etapa 3: Conexão USB

Conexão USB
Conexão USB
Conexão USB
Conexão USB
Conexão USB
Conexão USB

Precisamos alimentar o cartão SD. Para isso, usaremos a própria porta de recepção USB. Portanto, usaremos uma porta USB macho. Isso geralmente tem 4 pinos, onde 2 pinos do meio são usados para transferência de dados e 2 pinos extremos são usados para alimentação e aterramento. Como só precisamos de energia, cortarei os pinos de dados e apenas manteremos o GND e o VCC.

Em seguida, coloque a porta USB macho na frente do cartão SD, onde abrimos algum espaço antes, e solde-a no lugar. Isso não resolveu nenhum problema de energia ainda! Como o cartão SD requer 3,3v, mas a fonte USB é 5V padrão, se você apenas conectá-lo à fonte, provavelmente irá fritar o cartão SD (mas o adaptador microSD não sofrerá nenhum dano).

Para resolver isso, usaremos um regulador de 3,3 V e conectaremos a entrada da fonte USB ao regulador de 3,3 V, ou seja, conecte o GND do USB ao pino 1 do regulador e conecte o pino 3 do regulador a + 5 V do regulador. Por fim, solde o pino 3 (pino de saída) e o aterramento do regulador no cartão SD.

Isso configurará a alimentação do cartão SD. Você pode verificar o diagrama de circuito para uma conexão mais detalhada.

Etapa 4: juntando tudo com ESP-12E

Juntando Tudo Com ESP-12E
Juntando Tudo Com ESP-12E
Juntando Tudo Com ESP-12E
Juntando Tudo Com ESP-12E
Juntando Tudo Com ESP-12E
Juntando Tudo Com ESP-12E
Juntando Tudo Com ESP-12E
Juntando Tudo Com ESP-12E

Agora para ler e gravar os dados do cartão SD usaremos o módulo wi-fi Esp12E, embora seja mais lento que o esp32. Mas realmente não importa qual você escolher, contarei a razão nas etapas posteriores.

Primeiro solde o EN (habilite o pino) ao VCC do esp12E, isso ligará o IC. Se não estiver conectado ao sinal HIGH, o IC não ligará. Em seguida, coloque o esp12E na parte traseira da placa PCB e solde os pinos SPI do esp12E aos pinos SPI no cartão SD. Para obter os detalhes, a conexão verifica o diagrama de circuito.

Etapa 5: HTTP VS FTP

Antes de programar, fiz algumas pesquisas sobre como funcionam os downloads e uploads, foi quando me deparei com a palavra FTP. Basicamente, FTP significa protocolo de transferência de arquivos, este protocolo é usado para transferir arquivos entre servidores e cliente e é totalmente diferente do HTTP normal, onde o cliente e o servidor enviam e recebem solicitações / respostas de tamanho muito pequeno.

O FTP é mais rápido que o HTTP na transferência de arquivos porque foi feito especificamente para ele. Então, eu queria implementar isso neste projeto. Onde um servidor FTP é executado no esp-12E e podemos enviar e buscar dados através deste FTP para o cartão SD.

Etapa 6: descobrindo a biblioteca FTP

Descobrindo a Biblioteca FTP
Descobrindo a Biblioteca FTP
Descobrindo a Biblioteca FTP
Descobrindo a Biblioteca FTP

Não consegui encontrar nenhuma biblioteca de FTP desenvolvida de forma muito ativa ou feita especificamente para esp8266. Mas com alguma escavação, encontrei David Paiva, que portou uma versão do Arduino do servidor FTP para esp8266, mas com suporte a SPIFFS e não o cartão SD.

Mas com um pouco mais de esforço, encontrei alguém que fez alguns trabalhos na biblioteca do David Paiva para converter o SPIFFS para o cartão SD. Mas quando tentei usar isso, encontrei 2 problemas. Primeiro, a página onde descobri isso estava em coreano, então eu tive que literalmente sentar e traduzir tudo para saber o que estava acontecendo antes que pudesse fazer qualquer coisa com isso. Então, o segundo problema foi, eu tive que modificar a biblioteca SD existente para suportar as mudanças que ele fez, mas isso parecia muito desajeitado.

Então, comparei essa biblioteca, uma do David Paiva e a outra do site coreano, então fiz algumas pequenas alterações e transformei tudo em um único projeto para que não haja necessidade de instalar qualquer tipo de biblioteca. Você pode verificar o código da minha conta Github.

Etapa 7: Programação do ESP-12E

Programando o ESP-12E
Programando o ESP-12E
Programando o ESP-12E
Programando o ESP-12E
Programando o ESP-12E
Programando o ESP-12E

ESP-12E não vem com um programador embutido, então precisamos usar um programador externo como o módulo FDTI. Então fiz um adaptador com alguns fios e pinos fêmea, com isso podemos soldar temporariamente o esp12E e programá-lo usando o módulo FTDI.

Conecte o GND [esp12E] ao GND, Rx [esp12E] ao Tx, Tx [esp12E] ao Rx, GPIO15 [esp12E] ao GND, GPIO0 [esp12E] ao GND, VCC [esp12E] ao VCC do módulo FDTI.

Em seguida, carregue o código do Github usando o IDE Arduino.

Depois de fazer o upload do programa, você pode dessoldar os fios que foram conectados para programar o esp12E.

Etapa 8: Concluindo o projeto

Finalizando o Projeto!
Finalizando o Projeto!
Finalizando o Projeto!
Finalizando o Projeto!
Finalizando o Projeto!
Finalizando o Projeto!

Basta inserir qualquer cartão microSD [máximo de 32 GB] dentro do adaptador e conectar o dispositivo inteiro em qualquer dispositivo compatível com USB, isso deve ligar as coisas! Mas há algumas coisas a considerar, certifique-se de que a corrente de saída da porta USB seja maior que 1 ampère, apenas para ficar mais seguro. Porque o módulo Esp12E consome mais corrente quando está transferindo arquivos.

Etapa 9: usando o dispositivo

Usando o dispositivo
Usando o dispositivo
Usando o dispositivo
Usando o dispositivo
Usando o dispositivo
Usando o dispositivo

Assim que o dispositivo é ligado, o dispositivo cria um ponto de acesso chamado SD Reader. Conecte-se a este ponto de acesso usando a senha que está no código. Então, dependendo de qual dispositivo você está usando para se conectar ao 12E, baixe o respectivo software cliente de FTP se estiver usando WinSCP ou Filzella para PC e se estiver usando um dispositivo Android baixe AndFTP.

Assim que a instalação for concluída, abra o AndFTP e preencha as credenciais para configurar o cliente FTP. No meu caso, deixei o nome de usuário e a senha como padrão "esp8266" no código. Então, use isso para as informações do usuário e para o host use 192.168.12.7. Finalmente, conecte-se ao servidor FTP.

Uma vez feito isso, você pode baixar quaisquer arquivos do cartão SD, bem como você pode fazer upload de arquivos do seu telefone para o cartão SD.

Você pode ver o vídeo para saber como funciona!

Etapa 10: Reflexões Finais

Pensamentos finais
Pensamentos finais
Pensamentos finais
Pensamentos finais

Mas antes de chegar à conclusão de que é um dispositivo muito útil de se ter, vamos dar um passo para trás.

Mesmo que faça o que eu quero, é extremamente lento! Para apenas 4 arquivos (cada ~ 100Kb), leva cerca de 30 segundos e, se você tentar com um arquivo maior, como 10 MB, levará cerca de 3-4 minutos para ser concluído. Existem maneiras de otimizar isso e, a partir da página a que me referi, ele conseguiu obter uma velocidade de leitura de aproximadamente 450kbs. (Com Esp32 e SD_MMC a velocidade de transferência da biblioteca pode ser em torno de 1 MB / s)

O motivo pelo qual parei o projeto aqui e não tentei otimizá-lo foi por 2 motivos. Primeiro motivo, eu realmente gostaria, junto com o servidor FTP, eu ainda poderia usar a linha de dados USB para transferir dados, mas não é compatível com esp8266 ou esp32. E o segundo motivo é que não consegui velocidade suficiente para transferir os arquivos por FTP. Esses também são os mesmos motivos pelos quais não me preocupei em usar o esp32 em vez do esp12E.

Mas eu acho que alguns desses problemas podem ser resolvidos se pudermos usar as placas esp32 S2 que suportam USB de velocidade total em movimento. Talvez eu possa fazer isso para outro XD instrutível.

Recomendado: