用 ESP32-S3 打造多功能 USB Dongle

ESP-Dongle 是一款基于 ESP32-S3 芯片开发的多功能 USB Device 解决方案。它不仅外形小巧,功能齐全,更集成了无线 U 盘、SD 卡读取以及 USB 无线网卡等多项功能。

ESP-Dongle 简介

ESP-Dongle 是一款基于 ESP32-S3 芯片开发的多功能 USB Device 解决方案。它不仅外形小巧,功能齐全,更集成了无线 U 盘、SD 卡读取以及 USB 无线网卡等多项功能;同时,通过便捷的滑动开关,ESP-Dongle 可以灵活地切换不同的工作模式以适应多样化的应用需求。

视频展示

用 ESP32-S3 打造多功能 USB Dongle

功能演示

1. 普通 U 盘 & 读卡器功能

ESP-Dongle 支持标准 U 盘和读卡器功能。用户只需将一个 SD 卡插入卡槽,并通过 ESP-Dongle 上的 USB Type-C 接口连接到手机,即可实现手机文件向 SD 卡的传输,或在手机端快速读取 SD 卡上的所有文件,同时支持将 SD 卡里的文件直接保存到手机上。

用 ESP32-S3 打造多功能 USB Dongle

2. 无线 U 盘功能

ESP-Dongle 也可以作为无线 U 盘使用。用户可以使用充电宝为 ESP-Dongle 供电,并通过滑动开关切换到无线 U 盘模式。在此工作模式下,ESP-Dongle 将开启一个名为 “ESP-Wireless-Disk” 的 Wi-Fi 热点,并基于此热点创建了一个 HTTP File Server 以支持在局域网内实现文件的上传和下载功能。此时,ESP-Dongle 允许使用多部手机或电脑连接至 “ESP-Wireless-Disk” 的 Wi-Fi 热点上,用户可直接在浏览器端访问 HTTP File Server(局域网 IP 地址是 :192.168.4.1),然后将文件上传到 HTTP File Server 中。

用 ESP32-S3 打造多功能 USB Dongle


此功能可以适应在户外场景下与多设备通过局域网内的 Wi-Fi 共享文件的应用需求,同时对大文件的共享提供了更稳定、更高效的数据传输。 此功能还可以将传统打印机升级为无线打印机。用户只需要将 ESP-Dongle 插入打印机,用手机或笔记本电脑连接 ESP-Dongle 的 Wi-Fi 热点,在 HTTP File Server 操作界面下,将手机或电脑上的文件上传到 HTTP File Server 中,打印机就可以直接读取文件进行打印。

3. USB 无线网卡功能

ESP-Dongle 也可以作为一个 Wi-Fi 或 BLE 适配器,为 USB 主机设备提供无线上网或 BLE 传输的功能。 用户只需在 ESP-Dongle 的固件中 (即 bin 文件) 设置外部路由器的 SSID 和 Password ,当 ESP-Dongle 插上 USB 主机设备时即可自动连接到 Wi-Fi 网络上。此功能可为台式电脑提供无线上网功能,并且支持 USB 热插拔,以快速检测 ESP-Dongle 的连接和移除。

用 ESP32-S3 打造多功能 USB Dongle


电源选项

ESP-Dongle 通过 USB Type-C 接口进行供电,以支持适配多种设备的接入。

ESP-Dongle 硬件设计

ESP-Dongle 完整硬件开源资料可在 【嘉立创-乐鑫小铁匠】ESP-Dongle 获取,ESP 硬件设计指南请参考 "ESP 硬件设计指南".

用 ESP32-S3 打造多功能 USB Dongle

ESP-Dongle 的硬件系统由以下部分组成:

  • 主控 MCU: ESP32-S3-MINI-1-N8。
  • USB Type-C 接口:通过 USB 连接器的差分信号线 D- 和 D+ 直接连接到 ESP32-S3 的 USB 接口,同时 D-、D+ 和 VUSB 引脚通过 ESD 保护器件进行静电保护,以防止静电放电对电路造成损害。需要注意,CC 引脚需要接 5.1K 电阻进行下拉,否则 USB-dongle 将无法被主机识别。
  • LDO(稳压电路):HE9073A33M5R 是一颗低压差稳压器 (LDO) 芯片,具有宽压输入的特性,支持的输入电压范围为 3.3V~7V, 然后将输入电压稳定在 3.3V 输出,为 ESP-Dongle 产品提供稳定的供电环境。
  • MicroSD Card(Micro SD 卡槽): SD 卡接口支持 1 线、4 线 SDIO 模式及 SPI 模式。此外,为确保信号稳定性,每个引脚都需要通过 10kΩ 电阻进行上拉,并使用 ESD 保护器件以防止静电放电的损害。
  • Button(轻触按键):使用一个简单的按钮电路,用于切换 ESP-Dongle 作为 Wi-Fi 或 BLE 适配器的工作模式
  • LED(指示灯):使用 2 个 LED 灯用于观察 ESP-Dongle 的配网状态
  • Switch(滑动开关):滑动开关的两个端点分别上拉和下拉,通过 ESP32-S3 的 GPIO4 读取开关的电平状态来切换 ESP-Dongle 的无线 U 盘和无线网卡的工作模式。

软件实现

基于 ESP-Dongle 的硬件系统构成,需要配套的软件开发以激活产品丰富的功能。 ESP-Dongle 的软件设计以深度集成的 ESP-IDF SDK 库为基础,并借助简洁高效的单任务组件为核心,将多个独立应用程序功能的代码进行融合,最终全面实现了 ESP-Dongle 产品多功能展示,为用户带来了高效且可靠的软件开发体验。

在软件实现上,ESP-Dongle 使用了 ESP32-S3 的 Wi-Fi 特性、USB 特性、SDIO 接口以及几个通用 GPIO 。

1. 普通 U 盘 & 读卡器功能

基于 ESP32-S3 的普通 U 盘应用例程可以参考 esp-idf/examples/peripherals/usb/device/tusb_msc 例程。

【技术解析】

  • 使用 ESP32-S3 的 USB 特性,将 ESP-Dongle 作为 USB Device 存储设备。更多软件编程指南参见 : USB 设备栈。
  • 使用 ESP32-S3 的 SDIO 接口提供 Miscro SD 卡槽,以支持读写 SD 卡。用户可以参考 esp-idf/examples/storage/sd_card 例程 ,支持使用 4-bit 或 1-bit SD 卡的读写,同时也提供了基于 SPI 接口连接 SD 卡的应用例程。更多软件编程指南参见:SD/SDIO/MMC 驱动程序。

2. 无线 U 盘功能

对于 ESP-Dongle 的无线 U 盘的功能实现,可以直接移植 esp-iot-solution/examples/usb/device/usb_msc_wireless_disk 例程,此例程已经将 Wi-Fi AP、HTTP File Server 、SD 卡读写和 USB Device 存储功能集成到同一个项目中。

【技术解析】

  • Wi-Fi 热点:ESP-Dongle 在 无线 U 盘模式下使用了 ESP32-S3 的 Wi-Fi 特性,通过启用 Wi-Fi AP 模式来创建无线热点的功能,以供多个外部设备通过 Wi-Fi 接入 ESP-Dongle。基于 ESP32-S3 启用 Wi-Fi AP 模式创建无线热点的应用例程可参考:esp-idf/examples/wifi/getting_started/softAP ,更多软件编程指南参见: Wi-Fi 驱动程序。
  • HTTP File Server : 基于 Wi-Fi AP 模式下,使用 HTTP 上层协议创建 HTTP File Server 来实现局域网内的文件上传和下载功能。HTTP File Server 应用例程可参考 esp-idf/examples/protocols/http_server/file_serving ;更多软件编程指南参见: HTTP 服务器。

3. 无线网卡功能

对于 USB 无线网卡应用,可以直接参考 esp-iot-solution/examples/usb/device/usb_dongle 例程。在软件上使用 tinyusb_dongle 组件以支持 USB Host 通过 USB-ECM/RNDIS 实现无线上网功能, 同时支持热插拔. 用户可参考 USB Device Stack 编程指南。

【技术解析】

  • Wi-Fi 连接:ESP-Dongle 在 无线网卡模式下是将 ESP32-S3 作为 Wi-Fi Station 模式,以连接无线 WiFi 热点,从而为 USB 主机设备提供上网能力。基于 ESP32-S3 启用 Wi-Fi Station 模式连接 WiFi 热点的应用例程可参考:esp-idf/examples/wifi/getting_started/Station,更多软件编程指南参见:Wi-Fi 驱动程序
  • USB 热插拔:热插拔功能允许用户在主机运行的情况下,随时插入或拔出 USB 设备(从机),而 USB 主机设备能够自动检测到 USB 从机设备的连接或移除,并做出相应的响应。
  • LED 指示灯:使用普通 GPIO 驱动两个 LED 指示灯,通过不同类型的闪烁来指示 ESP-Dongle 网络连接状态。对于 LED 指示灯应用,可以使用乐鑫提供的 espressif/led_indicator 组件,快速定义多组不同的 LED 闪烁类型。更多说明请阅读 LED 指示灯编程指南。
  • ESP-Dongle 使用轻触按键来切换 Wi-Fi 网卡和 BLE 调试器的工作模式,软件可使用 espressif/button 组件实现按键事件的注册。

总结

ESP-Dongle 以其卓越的多功能性,为我们的日常生活带来了极大的便利,在提升我们工作效率的同时,也丰富了我们的数字生活体验。无论是在家中、办公室还是旅途中,ESP-Dongle 都能成为我们可靠的数字伙伴。

- 本文内容来自网络,如有侵权,请联系本站处理。

2025-09   阅读(206)   评论(0)
 标签: 创客 ESP32 USB

涨知识
二进制

二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 。

评论:
相关文章
【ESP32 C++教程】Unit4-3 红外接收和遥控

本小节主要讲解红外接收和遥控器件,以及遥控操作LED。


【ESP32 C++教程】Unit4-2 模拟量传感器

本小节讲解模拟量传感器使用,旋转电位器,DHT11温湿度传感器和实现自定义传感器类。


【ESP32 C++教程】Unit4-1 数字量传感器

本小节讲解Sensor类及派生类、数字量传感器使用和传感器的推荐交互流程。


【ESP32 C++教程】Unit3-2 触摸输入

本小节讲解ESP32内置触摸引脚的用法,


【ESP32 C++教程】Unit3-1 按键输入

本小节主要介绍按键信号转换、Button类及派生类、和Button交互推荐流程。


【ESP32 C++教程】Unit2-2 Ws2812灯珠

本小节主要介绍Ws2812灯珠的使用、对父类进行扩展实现自定义功能,和指针向下强制转换的使用。


【ESP32 C++教程】Unit2-1 RGB三色LED

本小节主要介绍RGB三色LED的使用,以及多态的具体实现。


【ESP32 C++教程】Unit1-3 ESP32 Arduino 开发框架

ESP32 Arduino Framework是专门针对ESP32开发板的Arduino应用开发框架,为用户开发IOT应用、HMI应用提供一致的开发体验。


ESPConnect:基于浏览器的ESP32管理器

ESPConnect是一个基于现代浏览器的管理器,在你需要快速验证、调试、管理文件、检查状态的时候,它能帮你省下大量打开和切换重型工具的时间。


用ESP32做一个FM收音机

本文介绍两种使用TEA5767收音机模块实现FM收音机的方案,感兴趣的朋友可在此基础上实现更丰富的功能。