1. 项目介绍
受B站大佬启发,兴趣使然,期望制作出一款功能丰富的小体积便携服务器,此服务器受硬件限制,读写速度较慢,在500KB以下,故不期望代替U盘类存储设备,同时由于使用库函数限制,TF卡大小限制为32G(FAT32),不过支持中文(部分支持,如上传下载)。同时ESP32-P4(还未推出)目测性能强悍,功能丰富,后期预计会推出升级版采用P4芯片。目前**本项目成本在20以内**,esp32本人是花费9元(第三方买的,官方的真的贵,买不起),其他小元件最多算2元吧,外壳嘉立创报价4.77,运费5元,支付宝手续费0.03,外壳如果自己有设备相信成本极低。32GTF卡本人花费20好几,但感觉TF卡可以不算进本项目吧,毕竟TF卡用途很广,另作他用也没有问题,有多余的甚至不需要购买。
项目地址(github):https://github.com/Hehao666/esp32SDCard/tree/main
项目地址(gitee):
立创EDA开源广场:
哔哩哔哩视频地址:
哔哩哔哩视频地址(进阶教程):
电路板尺寸为22*30*1.6mm,包含外壳的整体尺寸为4*3(3.1)*1.18cm,非常小巧精悍,同时在c口部分做了下凹设计,方便插拔。
2. 硬件介绍
硬件选择:
引脚部分:
Type-C可以看到选择了6Pin,最开始设计其实是全功能c口,但考虑到体积和**成本**(省了个CH340,6脚也便宜点),同时程序也不需要频繁下载,最后采用引出下载引脚的方式(我才不会说是c口引脚太多焊不上才换的😋),6脚还有一点好处,可以不用担心中毒,因为压根就没数据线,病毒跑不进来✔️。
AMS1117这个芯片真的简单方便又实惠,缺点是发热大了点,淘宝4毛一个大就大吧,同时我这个东西功耗也确实不高,用这个也挺好,买的是3.3V的版本就只需要外接2个电容就能正常使用,好东西真省事。
我这里其实还加了一个0.3mm单面背胶的散热硅胶片,但是感觉散热作用不大没有写上(无背胶应该可以上0.6mm,不过没有测试,理论可行),不过这里发现了另一种用途,硅胶片有一定粘性,可以帮助固定板子,不容易晃动,推荐使用。
NFC是淘宝购买的小米碰碰贴215,直径25mm,换成其他尺寸较大的可能放不下,需要粘到外壳表面,目前是内置在外壳下面,表面是送的贴纸。
3. 软件功能介绍
功能包含:文件总管理,文件快传,开机自连WIFI,网页游戏,在线影院,剪切板,模式转换,设置(含OTA,域名前缀修改)
主推功能:文件总管理,设置(含OTA,域名前缀修改),开机自连WIFI
文件总管理:功能包含新建文件夹、文件下载、文件批量上传、访问TF卡内各级目录,删除(批量删除)、重命名以及在线编辑TXT和HTML文件,该功能旨在使该设备脱离读卡器完全管理TF卡,免去插拔以及频繁更换设备的烦恼。
文件快传:该功能为文件总管理青春版,精简部分功能,跳转至上传文件夹,方便新手使用。
设置:设置界面可以更改头像、背景和网页样式(需要有一定能力,自己制作后替换)。以及查看当前固件版本号,在线OTA升级系统固件(本地上传固件包,同时需要能联网,意思是需要STA模式,AP不行。感觉弄个服务器放固件包,然后检查更新自己升级更方便,但是服务器搞不起,第三方服务怕不稳定,还是自己上传算了)。最后是域名前缀修改,我们可以修改成自己喜欢的域名(长度需要小于19),重启后生效,同时也需要注意将nfc重新写入。
开机自连WIFI:可以存储多个WIFI信息,开机后依次自动连接,均未连接上则开启AP模式。可以设置单个WIFI最长连接时间,连接的WIFI数量(下限1,上限9)。
!
4. 制作流程
1. 通过嘉立创下单电路板,购买BOM表上所需零件,下单3d打印外壳和nfc贴纸,下载好程序代码(Arduino)。(不包括各种工具,需自备)
2. 电路板上焊接元件,最好先焊接esp32部分,连接串口测试功能,正常后焊接外围部分。
3. 组装外壳,M2螺丝及其对应螺帽*3个,nfc贴纸1张(手机上下载NFC标签助手),通过NFC标签助手写入URL(`http://esp32.local/`)后贴在下壳内侧。
4. 接通电源,第一次使用需要稍作等待,连接上该设备的热点(HAHASDCARD,默认密码333444555),连接后手机开启NFC碰一碰贴纸即可进入后台,或者浏览器输入`esp32.local/`进入后台。
5. 使用技巧
很多功能已经尽可能开放,也希望有充足的DIY空间,但有部分操作因为大大小小的问题不好直接给出。在根目录下的`config.txt`文件中可以看到最后3行并没有给出快捷s设置。`CPUFfrequency`是设置CPU的运行频率(别问我为什么多了一个f,输错了,程序烧了不想改了,好几个送了朋友,要改是真的麻烦),这里设置80算低频了,主要是发热的考虑,可以自行改为240,觉得烫再改回来,其他挡位没有测试,出事概不负责(所以我没有把这个选项放到设置界面)。`gameWidth`和`gameHeight`分别是flash游戏的窗口宽度和高度(主要觉得没多少人用,懒得拿出来)。最后注意这两项修改后需要重启才能生效。
6. 注意事项
焊接外围部分时需注意:R5和R8必须在下载程序后焊接,因为这两个电阻连接的是下载相关引脚,其中R5可以不进行焊接。
电源问题:
1. 该设备没有设计指示灯,接通电源后无法知道是否启动,只能自己看着办,同时6脚C口焊接时需要注意不要虚焊,不然只能单面使用。
2. AMS1117的输出端应该使用钽电容,如果是陶瓷电容容易产生更大的电压波动,但个人使用看来陶瓷电容也可以(可能负载真的很小,毕竟没接什么) ,没出现什么明显问题。
不成熟的小技巧:最开始的时候可以看到,2.54排插可以不用焊接,亲测连接好转串后把排插斜向插入,确保接触良好即可下载程序(损失了巨多之后发现的,亏麻了)。
使用须知:网页视频功能需要注意,单片机发热较大会导致卡死,不推荐拿来看视频,同时也注意频繁读写文件。由于该设备速度较慢,推荐存储文件在几M的大小,几十M算作上限。(可以期待esp32 P4,暂不清楚读写能力)
上传各级页面需要注意,不能在当前页面上传当前页面的文件。
7. 未来计划
本项目会不定期地长期更新,期望将界面优化成阿里网盘那样的(感觉很高级,用起来也会很有感觉),同时该项目也将改名为ESP32随身网盘,硬件和软件方面存在不少升级点,值得期待。
1. 硬件上增加2颗单片机控制的LED灯用作状态显示,开机2颗点亮,进入STA模式亮一颗,AP模式亮另一颗,没上电熄灭。(原本计划采用0.96寸OLED,考虑到成本以及实用性放弃,主要是域名和nfc贴纸的解决从而导致不需要使用屏幕显示ip进入后台),拟增加一个c口的公口,方便没有数据线使用,同时布局也要好好规划,这一版本可以看到螺柱并没有穿过电路板(其实是考虑不周),导致固定没那么稳妥,体积也大上了一圈。
2. 软件上拟采用`SdFat`库(现在是官方的`FS`库,不支持32G以上及中文)兼容大容量的TF卡的同时完美支持中文(现版本兼容性还是存在一定的不足)。`WebServer`库也将替换为`AsyncWebServer`库,采用异步的方式运行(同步意味着当前页面不加载完不会加载下一个界面),以及一些常规优化提升使用体验。