Skip to content

Commit 98bf853

Browse files
committed
add one post
1 parent 085563f commit 98bf853

10 files changed

+160
-0
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#+OPTIONS: ^:nil
2+
#+BEGIN_EXPORT html
3+
---
4+
layout: default
5+
title: 一种基于ESP32丰富连接能力的移动存储设备 -- 大结局
6+
tags: [3D Print, ESP32S3, 移动存储, 创客]
7+
nav_order: {{ page.date }}
8+
sync_wexin: 1
9+
---
10+
#+END_EXPORT
11+
12+
* 一种基于ESP32丰富连接能力的移动存储设备 -- 大结局
13+
14+
** 前言
15+
16+
移动存储的样机终于做好了,本篇文章将整体介绍移动存储的外观和使用方法。从去年年底产生想法到现在,我一共投了4版PCB,尝试了2版软件方案,整个过程非常充实,也在这里总结一下过程中的经验和教训。
17+
18+
本系列其他文章
19+
1. [[https://paul356.github.io/2024/10/31/mobile-storage.html][一种基于ESP32丰富连接能力的的移动存储设备]]
20+
2. [[https://paul356.github.io/2024/12/12/mobile-storage-pcb.html][一种基于esp32丰富连接能力的移动存储设备 -- 电路设计]]
21+
3. [[https://paul356.github.io/2024/12/27/mobile-storage-sd-card-test.html][一种基于esp32丰富连接能力的移动存储设备 -- 测试sd卡读写]]
22+
4. [[https://paul356.github.io/2025/01/06/mobile-storage-display.html][一种基于esp32丰富连接能力的移动存储设备 -- 验证屏幕显示]]
23+
5. [[https://paul356.github.io/2025/02/07/mobile-storage-speed.html][一种基于ESP32丰富连接能力的移动存储设备 -- 测试TF卡读写速度]]
24+
6. [[https://paul356.github.io/2025/02/26/mobile-storage-http.html][一种基于ESP32丰富连接能力的移动存储设备 -- 改用HTTP协议]]
25+
26+
** 样机
27+
28+
*** 外观
29+
30+
[[/images/mobile-storage-on-palm.jpg]]
31+
32+
样机的壳子是用3D打印机打印的。因为我的打印机只支持单色,而且只有灰色的原料,外壳是灰色的。整体是一个扁扁的长方体,长宽高分别为61mm、55mm、9.6mm。
33+
34+
[[/images/mobile-storage-front-panel.jpg]]
35+
36+
样机正面中间是一个屏幕,可用来显示一些信息。屏幕的左上角是一个小的LED灯。屏幕下面有四个按钮,分别提供“重启”、”进入固件下载模式“、”关闭屏幕“、”恢复初始WiFi设置“功能。
37+
38+
[[/images/mobile-storage-top-panel.jpg]]
39+
40+
样机顶部有三个窗口,第一个窗口用于接1.25mm间距的2 Pin的电池盒端子,当你不想使用type-c口供电时,可以接一个电池盒;第二个窗口是type-c接口,主要用于给设备供电和升级程序;第三个窗口是tf插槽,设备本身没有存储空间,需要tf卡来提供存储空间。
41+
42+
接上电后屏幕和led指示灯会点亮。外观比较简单。如果要存取数据,需要通过浏览器来访问lcd上显示的网址。
43+
44+
[[/images/mobile-storage-power-on.jpg]]
45+
46+
*** Web UI
47+
48+
第一次使用时需要先配置网络。设备初始状态下会打开WiFi热点,WiFi热点的名称是esp32s3-storage,密码是nevertells。需要修改密码或者将移动存储接入本地WiFi网络。
49+
50+
[[/images/mobile-storage-default-hotspot.jpg]]
51+
52+
先连接这个默认的WiFi,然后点击导航栏的Config链接,在网络配置页面选择客户端工作模式,并输入本地WiFi的SSID和密码。
53+
54+
[[/images/mobile-storage-web-config.jpg]]
55+
56+
这样设置后,设备就可以接入我们的局域网了。需要提醒的是局域网里所有的人都可以访问你的设备,最好不要接入陌生的无线网络。另外你也可以在网络配置页面修改WiFi热点的密码,甚至关闭WiFi。如果忘记了密码,或者弄错了WiFi名称,可以按面板上最右边的按钮恢复初始设置。配置好网络之后,通过浏览器打开屏幕上上显示的网页地址。
57+
58+
[[/images/mobile-storage-web-ui.jpg]]
59+
60+
页面顶部显示当前目录,下面的列表是当前目录中的内容。需要下载文件,直接点击文件所在行最右边的链接。需要创建文件夹或上传文件,可以通过文件列表下面的两组按钮和输入框来操作。
61+
62+
*** 教训和经验
63+
64+
先说说教训。第一个教训是软件技术方案选型时,需要评估技术风险,一开始我使用了Rust语言异步编程框架,并没有测试异步编程在ESP32S3平台上的性能。后来在使用过程中发现在ESP32S3上运行异步编程风格的程序效率低,内存开销大,且动态内存很容易碎片化,不得不修改方案使用同步编程模式和HTTP协议。第二个教训是关于PCB设计的。我设计PCB时,因为未考虑外观因素,导致PCB的外形上做了两次修改。设计时还犯了一些错误,比如把LCD接口Pin的顺序,缺少上拉电阻等。最后一共投了4版PCB。设计PCB时如果能在一开始就结合外观一起设计,应该可以减少对PCB外形的修改。再者就是要仔细检查Pin的顺序,还要仔细阅读主要芯片的硬件设计指导。
65+
66+
[[/images/mobile-storage-pcb-v1-to-v4.jpg]]
67+
68+
讲完了教训,如果有经验的话就是要利用好AI工具,这个项目中有一些代码我是让AI先生成一个框架,然后再修改的,中间也遇到接口版本的问题,但比从头写代码要高效很多。还有就是查资料时可以先问问AI,会比使用搜索引擎更加便捷,还可以让AI帮忙看资料文档。
69+
70+
** 总结
71+
72+
从一开始有想法,到完成样机经过了半年的时间,整个过程还是非常有趣的,也学到很多东西。将过程记录下来,给自己提供一些可以回忆总结的线索,也希望能对大家有一些启发。如果大家对这个移动存储有兴趣,欢迎给我发消息。如果收到足够多的需求,我会尝试批量试制。最后附上整个项目的软件和硬件项目地址,欢迎大家给我点上小星星。
73+
74+
** 链接
75+
76+
1. 移动存储软件 - https://github.com/paul356/esp32s3_file_server
77+
2. 移动存储PCB设计 - https://github.com/paul356/esp32s3-storage
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
layout: default
3+
title: 一种基于ESP32丰富连接能力的移动存储设备 -- 大结局
4+
tags: [3D Print, ESP32S3, 移动存储, 创客]
5+
nav_order: {{ page.date }}
6+
sync_wexin: 1
7+
---
8+
9+
10+
# 一种基于ESP32丰富连接能力的移动存储设备 – 大结局
11+
12+
13+
## 前言
14+
15+
移动存储的样机终于做好了,本篇文章将整体介绍移动存储的外观和使用方法。从去年年底产生想法到现在,我一共投了4版PCB,尝试了2版软件方案,整个过程非常充实,也在这里总结一下过程中的经验和教训。
16+
17+
本系列其他文章
18+
19+
1. [一种基于ESP32丰富连接能力的的移动存储设备](https://paul356.github.io/2024/10/31/mobile-storage.html)
20+
2. [一种基于esp32丰富连接能力的移动存储设备 – 电路设计](https://paul356.github.io/2024/12/12/mobile-storage-pcb.html)
21+
3. [一种基于esp32丰富连接能力的移动存储设备 – 测试sd卡读写](https://paul356.github.io/2024/12/27/mobile-storage-sd-card-test.html)
22+
4. [一种基于esp32丰富连接能力的移动存储设备 – 验证屏幕显示](https://paul356.github.io/2025/01/06/mobile-storage-display.html)
23+
5. [一种基于ESP32丰富连接能力的移动存储设备 – 测试TF卡读写速度](https://paul356.github.io/2025/02/07/mobile-storage-speed.html)
24+
6. [一种基于ESP32丰富连接能力的移动存储设备 – 改用HTTP协议](https://paul356.github.io/2025/02/26/mobile-storage-http.html)
25+
26+
27+
## 样机
28+
29+
30+
### 外观
31+
32+
![img](/images/mobile-storage-on-palm.jpg)
33+
34+
样机的壳子是用3D打印机打印的。因为我的打印机只支持单色,而且只有灰色的原料,外壳是灰色的。整体是一个扁扁的长方体,长宽高分别为61mm、55mm、9.6mm。
35+
36+
![img](/images/mobile-storage-front-panel.jpg)
37+
38+
样机正面中间是一个屏幕,可用来显示一些信息。屏幕的左上角是一个小的LED灯。屏幕下面有四个按钮,分别提供“重启”、”进入固件下载模式“、”关闭屏幕“、”恢复初始WiFi设置“功能。
39+
40+
![img](/images/mobile-storage-top-panel.jpg)
41+
42+
样机顶部有三个窗口,第一个窗口用于接1.25mm间距的2 Pin的电池盒端子,当你不想使用type-c口供电时,可以接一个电池盒;第二个窗口是type-c接口,主要用于给设备供电和升级程序;第三个窗口是tf插槽,设备本身没有存储空间,需要tf卡来提供存储空间。
43+
44+
接上电后屏幕和led指示灯会点亮。外观比较简单。如果要存取数据,需要通过浏览器来访问lcd上显示的网址。
45+
46+
![img](/images/mobile-storage-power-on.jpg)
47+
48+
49+
### Web UI
50+
51+
第一次使用时需要先配置网络。设备初始状态下会打开WiFi热点,WiFi热点的名称是esp32s3-storage,密码是nevertells。需要修改密码或者将移动存储接入本地WiFi网络。
52+
53+
![img](/images/mobile-storage-default-hotspot.jpg)
54+
55+
先连接这个默认的WiFi,然后点击导航栏的Config链接,在网络配置页面选择客户端工作模式,并输入本地WiFi的SSID和密码。
56+
57+
![img](/images/mobile-storage-web-config.jpg)
58+
59+
这样设置后,设备就可以接入我们的局域网了。需要提醒的是局域网里所有的人都可以访问你的设备,最好不要接入陌生的无线网络。另外你也可以在网络配置页面修改WiFi热点的密码,甚至关闭WiFi。如果忘记了密码,或者弄错了WiFi名称,可以按面板上最右边的按钮恢复初始设置。配置好网络之后,通过浏览器打开屏幕上上显示的网页地址。
60+
61+
![img](/images/mobile-storage-web-ui.jpg)
62+
63+
页面顶部显示当前目录,下面的列表是当前目录中的内容。需要下载文件,直接点击文件所在行最右边的链接。需要创建文件夹或上传文件,可以通过文件列表下面的两组按钮和输入框来操作。
64+
65+
66+
### 教训和经验
67+
68+
先说说教训。第一个教训是软件技术方案选型时,需要评估技术风险,一开始我使用了Rust语言异步编程框架,并没有测试异步编程在ESP32S3平台上的性能。后来在使用过程中发现在ESP32S3上运行异步编程风格的程序效率低,内存开销大,且动态内存很容易碎片化,不得不修改方案使用同步编程模式和HTTP协议。第二个教训是关于PCB设计的。我设计PCB时,因为未考虑外观因素,导致PCB的外形上做了两次修改。设计时还犯了一些错误,比如把LCD接口Pin的顺序,缺少上拉电阻等。最后一共投了4版PCB。设计PCB时如果能在一开始就结合外观一起设计,应该可以减少对PCB外形的修改。再者就是要仔细检查Pin的顺序,还要仔细阅读主要芯片的硬件设计指导。
69+
70+
![img](/images/mobile-storage-pcb-v1-to-v4.jpg)
71+
72+
讲完了教训,如果有经验的话就是要利用好AI工具,这个项目中有一些代码我是让AI先生成一个框架,然后再修改的,中间也遇到接口版本的问题,但比从头写代码要高效很多。还有就是查资料时可以先问问AI,会比使用搜索引擎更加便捷,还可以让AI帮忙看资料文档。
73+
74+
75+
## 总结
76+
77+
从一开始有想法,到完成样机经过了半年的时间,整个过程还是非常有趣的,也学到很多东西。将过程记录下来,给自己提供一些可以回忆总结的线索,也希望能对大家有一些启发。如果大家对这个移动存储有兴趣,欢迎给我发消息。如果收到足够多的需求,我会尝试批量试制。最后附上整个项目的软件和硬件项目地址,欢迎大家给我点上小星星。
78+
79+
80+
## 链接
81+
82+
1. 移动存储软件 - <https://github.com/paul356/esp32s3_file_server>
83+
2. 移动存储PCB设计 - <https://github.com/paul356/esp32s3-storage>
16 KB
Loading
30.6 KB
Loading

images/mobile-storage-on-palm.jpg

41.5 KB
Loading
166 KB
Loading

images/mobile-storage-power-on.jpg

35.7 KB
Loading
17.9 KB
Loading
25.2 KB
Loading

images/mobile-storage-web-ui.jpg

52.3 KB
Loading

0 commit comments

Comments
 (0)