Skip to main content Link Menu Expand (external link) Document Search Copy Copied

一种基于ESP32丰富连接能力的移动存储设备 – 大结局

前言

移动存储的样机终于做好了,本篇文章将整体介绍移动存储的外观和使用方法。从去年年底产生想法到现在,我一共投了4版PCB,尝试了2版软件方案,整个过程非常充实,也在这里总结一下过程中的经验和教训。

本系列其他文章

  1. 一种基于ESP32丰富连接能力的的移动存储设备
  2. 一种基于esp32丰富连接能力的移动存储设备 – 电路设计
  3. 一种基于esp32丰富连接能力的移动存储设备 – 测试sd卡读写
  4. 一种基于esp32丰富连接能力的移动存储设备 – 验证屏幕显示
  5. 一种基于ESP32丰富连接能力的移动存储设备 – 测试TF卡读写速度
  6. 一种基于ESP32丰富连接能力的移动存储设备 – 改用HTTP协议

样机

外观

img

样机的壳子是用3D打印机打印的。因为我的打印机只支持单色,而且只有灰色的原料,外壳是灰色的。整体是一个扁扁的长方体,长宽高分别为61mm、55mm、9.6mm。

img

样机正面中间是一个屏幕,可用来显示一些信息。屏幕的左上角是一个小的LED灯。屏幕下面有四个按钮,分别提供“重启”、”进入固件下载模式“、”关闭屏幕“、”恢复初始WiFi设置“功能。

img

样机顶部有三个窗口,第一个窗口用于接1.25mm间距的2 Pin的电池盒端子,当你不想使用type-c口供电时,可以接一个电池盒;第二个窗口是type-c接口,主要用于给设备供电和升级程序;第三个窗口是tf插槽,设备本身没有存储空间,需要tf卡来提供存储空间。

接上电后屏幕和led指示灯会点亮。外观比较简单。如果要存取数据,需要通过浏览器来访问lcd上显示的网址。

img

Web UI

第一次使用时需要先配置网络。设备初始状态下会打开WiFi热点,WiFi热点的名称是esp32s3-storage,密码是nevertells。需要修改密码或者将移动存储接入本地WiFi网络。

img

先连接这个默认的WiFi,然后点击导航栏的Config链接,在网络配置页面选择客户端工作模式,并输入本地WiFi的SSID和密码。

img

这样设置后,设备就可以接入我们的局域网了。需要提醒的是局域网里所有的人都可以访问你的设备,最好不要接入陌生的无线网络。另外你也可以在网络配置页面修改WiFi热点的密码,甚至关闭WiFi。如果忘记了密码,或者弄错了WiFi名称,可以按面板上最右边的按钮恢复初始设置。配置好网络之后,通过浏览器打开屏幕上上显示的网页地址。

img

页面顶部显示当前目录,下面的列表是当前目录中的内容。需要下载文件,直接点击文件所在行最右边的链接。需要创建文件夹或上传文件,可以通过文件列表下面的两组按钮和输入框来操作。

教训和经验

先说说教训。第一个教训是软件技术方案选型时,需要评估技术风险,一开始我使用了Rust语言异步编程框架,并没有测试异步编程在ESP32S3平台上的性能。后来在使用过程中发现在ESP32S3上运行异步编程风格的程序效率低,内存开销大,且动态内存很容易碎片化,不得不修改方案使用同步编程模式和HTTP协议。第二个教训是关于PCB设计的。我设计PCB时,因为未考虑外观因素,导致PCB的外形上做了两次修改。设计时还犯了一些错误,比如把LCD接口Pin的顺序,缺少上拉电阻等。最后一共投了4版PCB。设计PCB时如果能在一开始就结合外观一起设计,应该可以减少对PCB外形的修改。再者就是要仔细检查Pin的顺序,还要仔细阅读主要芯片的硬件设计指导。

img

讲完了教训,如果有经验的话就是要利用好AI工具,这个项目中有一些代码我是让AI先生成一个框架,然后再修改的,中间也遇到接口版本的问题,但比从头写代码要高效很多。还有就是查资料时可以先问问AI,会比使用搜索引擎更加便捷,还可以让AI帮忙看资料文档。

总结

从一开始有想法,到完成样机经过了半年的时间,整个过程还是非常有趣的,也学到很多东西。将过程记录下来,给自己提供一些可以回忆总结的线索,也希望能对大家有一些启发。如果大家对这个移动存储有兴趣,欢迎给我发消息。如果收到足够多的需求,我会尝试批量试制。最后附上整个项目的软件和硬件项目地址,欢迎大家给我点上小星星。

链接

  1. 移动存储软件 - https://github.com/paul356/esp32s3_file_server
  2. 移动存储PCB设计 - https://github.com/paul356/esp32s3-storage