Адаптер для microSD карт памяти c Wi-Fi интерфейсом на ESP8266

ESP8266 ESP-12E

Neutrino

Просто подключите адаптер с картой памяти microSD в любой USB порт. Устройство создаст FTP сервер и вы сможете считывать и записывать файлы на карту памяти по беспроводной сети

Предполагалось, что интерфейс USB будет универсальным, и главная цель заключалась в том, чтобы сделать его с поддержкой «горячего» отключения или замены и сверхлегким взаимодействием с другими устройствами, но с годами эта идея пошла наперекосяк. Существует так много различных вариантов этих USB портов, что порой это разочаровывает, и способ их работы полностью противоречит названию (USB – Universal Serial Bus), потому что каждый USB-приемник должен быть совместим с любым USB устройством! Вы не можете подключить USB-накопитель или клавиатуру к зарядному устройству и ожидать, что они будут работать.

Но концепция звучит слишком хорошо! Вот почему, чтобы инициировать концепцию «универсального порта», автор начал с простого проекта «Беспроводное устройство считывания карт памяти», который мы рассмотрим в статье.

Со слов автора, устройство выполнило все пожелания, все что нужно сделать – это просто подключить адаптер в любой USB-приемник, неважно какой. Как только вы его подключите, он создаст точку доступа, к которой мы можем подключиться и с помощью любого клиентского FTP приложения на любом совместимом устройстве можем копировать и сохранять файлы на карту памяти SD (microSD) по беспроводной сети (Рисунок 1).

Адаптер для microSD карт памяти c Wi-Fi интерфейсом на ESP8266.
Рисунок 1. Адаптер для microSD карт памяти c Wi-Fi
интерфейсом на ESP8266.

Для повторения проекта вам понадобятся:

  • Wi-Fi модуль ESP12E;
  • Карта памяти microSD;
  • Адаптер microSD;
  • Прямые и угловые штыревые разъемы
  • Адаптер USB-TTL для программирования ESP12E (на микросхеме FT232RL)
  • Разъем USB male
  • Монтажная плата
  • Провода
  • Клеевой пистолет

SD карта памяти и интерфейс

При использовании карты памяти SD (Secure Digital) с любым микроконтроллером есть два варианта режима работы: SDIO и SPI. Почти все SD карты памяти обладают многими стандартными функциями и имеют одинаковые физические и электрические характеристики. Фактическое различие между SDIO и SPI в основном на программном уровне. Подробнее об этом можно почитать в спецификации.

А пока давайте скажем, что интерфейс SDIO быстрее, но сложнее в реализации, интерфейс SPI медленнее, но проще в реализации. Поскольку большинство микроконтроллеров поддерживают SPI на аппаратном уровне мы будем использовать его.

Расположение сигнальных выводов карт памяти SD, miniSD, microSD указано на Рисунке 2.

Расположение контактов карты памяти SD, miniSD, microSD.
Рисунок 2. Расположение контактов карт
памяти SD, miniSD, microSD.

Назначение выводов карт памяти для режима SPI  указано в Таблице 1.

Таблица 1. Назначение выводов карт памяти SD,
miniSD, microSD для работы в режиме SPI.
№ вывода Назначение
1 CS (Chip Select)
2 DI (MOSI)
3 GND
4 GND
5 SCLK
6 GND
7 DO (MISO)
8 Не используется
9 Не используется

Модификация адаптера SD карты памяти

Вы можете использовать любые готовые модули SD карты памяти, которые поддерживаются Arduino и ESP8266, но для целей данного проекта мы применим адаптер microSD карты памяти, который модифицируем таким образом, чтобы его можно использовать вместо модуля.

Для начала очистите контакты адаптера microSD карты памяти, затем припаяйте угловой штыревой разъем непосредственно к контактам адаптера. После пайки проверьте контакты между каждым выводом на предмет короткого замыкания. Черный разделитель углового штыревого разъема необходимо удалить, чтобы модифицированный адаптер при установке был максимально близок к плате (Рисунок 3).

Модификация адаптера microSD карты памяти для подключения к модулю ESP-12E.
Модификация адаптера microSD карты памяти для подключения к модулю ESP-12E.
Модификация адаптера microSD карты памяти для подключения к модулю ESP-12E.
Модификация адаптера microSD карты памяти для подключения к модулю ESP-12E.
Рисунок 3. Модификация адаптера microSD карты памяти
для подключения к модулю ESP-12E.

Подготовьте кусочек монтажной платы небольшого размера, чтобы он идеально походила к адаптеру microSD карты памяти и имел дополнительное пространство для установки разъема USB. Такую модификацию можно провести непосредственно с SD картой памяти, однако в таком случае вы рискуете ее повредить без возможности восстановления.

Принципиальная схема, установка USB разъема, схема питания, подключение Wi-Fi модуля

Полная принципиальная схема проекта изображена на Рисунке 4. Далее мы поэтапно рассмотрим процесс сборки адаптера. Дополнительно в конце статьи доступно демонстрационное видео, в котором показана сборка устройства.

Принципиальная схема адаптера для microSD карт памяти c Wi-Fi интерфейсом на ESP8266.
Рисунок 4. Принципиальная схема адаптера для microSD карт памяти c Wi-Fi интерфейсом на ESP8266.

Нам необходимо обеспечить питание SD карты памяти и Wi-Fi модуля. Для этого мы будем использовать штекер USB (USB male). Данный тип разъема имеет 4 вывода: 2 средних вывода используются для передачи данных, а 2 крайних вывода – питание и «земля» (Рисунок 5). Поскольку нам нужно только питание, мы обрежем выводы передачи данных и задействуем только два крайних вывода VCC и GND.

Установка штекера USB и регулятора напряжения для питания устройства.
Установка штекера USB и регулятора напряжения для питания устройства.
Рисунок 5. Установка штекера USB и регулятора напряжения 
для питания устройства.

Штекер USB установите на монтажную плату (мы оставляли место для него на монтажной плате) перед microSD адаптером и припаяйте его. Напряжение питания стандартных USB устройств составляет 5 В, а для питания карты требуется напряжение питания 3.3 В. Для решения этой проблемы мы установим микросхему регулятор напряжения 3.3 В серии AMS1117 и подключим ее к USB штекеру и microSD адаптеру в соответствии со схемой на Рисунке 4.

Теперь для чтения и записи данных с SD карты памяти мы будем использовать Wi-Fi модуль ESP-12E, несмотря на то, что он медленнее чем ESP32. На самом деле, какой из них использовать не имеет значения; объясним этот момент в заключении.

На Wi-Fi модуле ESP-12E сначала припаяйте перемычку между выводом EN и VCC. Если не подать высокий уровень на вывод EN, модуль не включится. Далее поместите модуль на нижнюю сторону монтажной платы и припаяйте контакты интерфейса SPI Wi-Fi модуля к контактам SPI установленного адаптера SD карты (Рисунок 6). Проверьте подключение по принципиальной схеме (Рисунок 4).

Установка модуля ESP-12E на монтажную плату, подключение питания и адаптера SD карты памяти.
Установка модуля ESP-12E на монтажную плату, подключение питания и адаптера SD карты памяти.
Установка модуля ESP-12E на монтажную плату, подключение питания и адаптера SD карты памяти.
Рисунок 6. Установка модуля ESP-12E на монтажную
плату, подключение питания и адаптера SD
карты памяти.

Программная часть

Перед разработкой программной части проекта следует заметить, что для передачи файлов по сети используется FTP – протокол передачи файлов между серверами и клиентами, и он полностью отличается от HTTP, где клиент и сервер отправляют и получают запросы/ответы, которые имеют очень маленький размер.

FTP быстрее HTTP передает файлы, и был специально создан для этого.  Было принято решение реализовать это в проекте. На Wi-Fi модуле запускается FTP сервер, и через этот FTP мы можем обмениваться данными с SD картой памяти.

Библиотека FTP

Автору не удалось найти ни одной Arduino библиотеки FTP, которая бы очень активно разрабатывалась или специально создавалась для ESP8266. Но в сети Интернет был найден проект Дэвида Пайва, который портировал Arduino-версию библиотеки FTP-сервера на ESP8266, но с поддержкой файловой системы SPIFFS (файловая система встроенной Flash-памяти модуля), а не SD карты памяти.

Дальнейшие поиски привели к тому, что была найдена модификация портированной библиотеки с поддержкой SD карты памяти. Однако, при попытке использовать ее в своем проекте автор столкнулся с двумя проблемами. Во-первых, описание этой библиотеки было полностью на корейском языке. Во-вторых, с целью поддержки внесенных изменений в портированную библиотеку FTP требовалось модифицировать существующую библиотеку для работы с SD картами памяти.

В итоге, автор проработал две найденные библиотеки FTP-сервера, внес некоторые изменения и собрал все в один проект. Все необходимые файлы доступны для скачивания в разделе загрузок.

Программирование Wi-Fi модуля ESP-12E

Wi-Fi модули серии ESP-12E не снабжены встроенным программатором, поэтому нам потребуется внешний адаптер USB-UART TTL для программирования (на микросхеме FT232RL или аналогичный). Сигнальные линии (Rx, Tx, питание) такого адаптера с помощью нескольких проводов необходимо временно подключить к модулю ESP-12E согласно Таблице 2.

Таблица 2. Подключение адаптера USB-UART TTL к
модулю ESP-12E для программирования.
Сигнальные выводы
ESP-12E
Сигнальные выводы
USB-UART TTL адаптера
GND GND
Rx Tx
Tx Rx
GPIO15 GND
GPIO0 GND
VCC VCC

Загрузите скетч проекта с помощью среды Arduino IDE. После программирования модуля ESP-12E провода адаптера USB-UART TTL можно отключить.

Работа с устройством

Вставьте microSD карту памяти (макс. 32 ГБ) в установленный на монтажной плате адаптер и подключите все устройство к любому USB-совместимому порту (или источнику питания 5 В). Мы подали питание на устройство. Следует удостовериться, что выбранный USB порт способен обеспечить выходной ток 1 А, – модуль ESP-12E потребляет большой ток при передаче файлов.

Как только устройство получит питание, будет создана беспроводная Wi-Fi точка доступа с именем «SD Reader». Подключитесь к этой точке доступа, используя пароль, который указан в исходном коде (скетче). Затем, в зависимости от того, какое устройство вы используете для подключения к точке доступа, откройте соотвествующее приложение: если вы подключаетесь с ПК, можно использовать ПО FileZilla или WinSCP, если вы подключаетесь с Android-устройства, то можно использовать приложение AndFTP.

В приложении настройте учетные данные. Например, для AndFTP потребуется ввести имя пользователя и пароль (по умолчанию в исходном коде имя пользователя и пароль «esp8266») и адрес хоста – 192.168.12.7. После настройки подключитесь к FTP серверу; как только подключение будет установлено, вы сможете загружать любые файлы с SD-карты памяти, а также загружать файлы со своего телефона на SD-карту памяти (Рисунок 7).

Подключение к FTP серверу на ESP-12E с Android-смартфона.
Подключение к FTP серверу на ESP-12E с Android-смартфона.
Подключение к FTP серверу на ESP-12E с Android-смартфона.
Рисунок 7. Подключение к FTP серверу на ESP-12E с Android
-смартфона.

В видеоролике ниже вы можете посмотреть порядок сборки, настройки и работы устройства

Прежде чем прийти к выводу, что в целом такого типа устройства очень удобны, давайте сделаем шаг назад.

Несмотря на то, что устройство выполняет свою функцию, оно очень медленное. Для передачи четырех файлов (каждый примерно по 100 Кбайт) потребуется около 30 секунд. Если взять файл большего размера (около 10 Мбайт), то его передача займет около 3-4 минут. Есть некоторые способы  оптимизации и увеличения скорости обмена данными до 450 Кбит/с, а в случае применения Wi-Fi модуля на ESP32 – скорость обмена данными может достигать 1 Мбит/с.

Автор называет две основные причины, по которым он не пытался оптимизировать устройство. Во-первых, хотелось наряду с FTP-сервером иметь возможность использовать интерфейс USB для обмена данными, но данный интерфейс не поддерживается в ESP8266 или ESP32. Во-вторых, низкая скорость передачи данных по FTP. По этой же причине не имеет смысла использовать ESP32 вместо ESP-12E.

Тем не менее, вероятно, одну из проблем можно решить, если использовать Wi-Fi модуль ESP32 S2, который поддерживает полноскоростной USB интерфейс.

Загрузки

  1. Исходный код к проекту – скачать

hackster.io

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Wireless SD Card Reader on ESP8266

JLCPCP: 2USD 2Layer 5PCBs, 5USD 4Layer 5PCBs

ESP8266 Купить ЦенаКупить ESP8266 на РадиоЛоцман.Цены — от 10,18 до 784
39 предложений от 22 поставщиков
ESP8266-EVB &ndash отладочная плата для высокоинтегрированной WIFI системы на кристалле ESP8266 Плата рекомендована для начинающих освоение ESP8266 структуру микросхемы ESP8266EX входят...
Интерия
Россия и страны СНГ
ESP8266-EVB
Olimex
10 ₽
Элитан
Россия
ESP8266EX
Espressif
44 ₽
Берёзка Электронные Компоненты
Россия
ESP8266EX
Espressif
от 62 ₽
ДКО Электронщик
Россия
ESP8266-EVB
Olimex
784 ₽
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя