事情是这样的。
我本身就想做一套适合嵌入式小白的入门级开发文档。
碰巧赶上了个开源活动(立创开源硬件平台_星火计划),能出开发物料,还有奖金……于是就有了这个NAS服务器主机+APP。
今天会分享我做NAS服务器的学习资源+开发经验。
项目简介用泰山派开发板DIY了一个NAS服务器小主机。专用于存储、管理和共享数据。
![](http://image.uc.cn/s/wemedia/s/upload/2024/6ea4164e416bb90a8e0acf6a7b514307.gif)
![](http://image.uc.cn/s/wemedia/s/upload/2024/2ddae05adc295c8f2d011d03b5203172.jpg)
开源网址:https://oshwhub.com/yc_chen/taishan-nas-server
可以理解为:这是我手搓了一套“百度网盘”服务器+APP,无需会员费,无传输速率限制……
一、项目 功能/亮点?由于功能太多,这里分3大类说明!包含—拓展功能、TSPINAS服务器、数据同步与管理
1.扩展功能
含:储存拓展、系统监控、桌面时钟、拓展接口、百兆以太网功能。基于外设PCB实现,使用泰山派设计。
①存储扩展:扩展SSD (mSATA)固态硬盘。
②支持系统监控:把主机利用起来~可以上下行网速监控,查看存储大小及使用率、CPU温度、CPU使用率、内存使用率
③桌面时钟 (辐射-避难所)游戏风格UI主题
④引出4个USBA口,1个普通C口、1个OTG功能C口、1个MiniHDML、1个PD快充C口。
⑤支持10/100M以太网,可同时使用网口+WiFi。
2.TSPINAS服务器
含:私有云盘、权限管理、文件分享、分段下载与断电续传功能。
①私有云盘:自研了TSPINAS服务器,搭配专用APP,实现远程文件和媒体管理,打造属于你的私有云盘。
②APP权限管理:权限管理机制自由且安全。通过后台管理资源、用户组、用户、存储。用户可以灵活配置/访问控制列表 (ACL),实现操作、读写、删除等控制。
③文件分享:支持文件自由分享,支持查看权限设置,类似百度网盘。
④分段下载与断点续传:所有文件均支持主流的分段下载(多点下载),并且支持断点续传。
![](http://image.uc.cn/s/wemedia/s/upload/2024/1720bda71d8d5b8074fc7ad3647150b4.jpg)
后台管理界面1
![](http://image.uc.cn/s/wemedia/s/upload/2024/8fd391d9f3ebc2c08cc6fa3bc8ed1f6b.jpg)
后台管理界面2
3.数据同步与管理
含:差异文件扫描、实时文件同步功能。
①差异文件扫描:服务启动时会自动扫描差异文件,确保本地数据库与物理文件夹内的数据文件保持一致。
②实时文件同步:实现多端实时文件同步,物理磁盘内的操作会实时同步到系统内(目前在Ubuntu下测试存在问题,暂时关闭此功能)。
想实现扩展部分的功能,如何设计硬件?想实现私有云盘的功能,如何设计软件?
二、硬件设计部分此电路为NAS主机PCB,支持免费打样。
![](http://image.uc.cn/s/wemedia/s/upload/2024/c2b851856f7cdeb46135d4587a18d362.jpg)
这里主要实现扩展部分的功能,包含:百兆以太网、PD供电、mSATA硬盘插座接口、USB拓展、IO拓展。
![](http://image.uc.cn/s/wemedia/s/upload/2024/5026138314a1d36a7ab3008d3a48c190.jpg)
![](http://image.uc.cn/s/wemedia/s/upload/2024/a0dabeb6fd064e6fe019aa3e4c33d9b7.jpg)
![](http://image.uc.cn/s/wemedia/s/upload/2024/143af3445b768be03ff5c3603d24d19c.jpg)
![](http://image.uc.cn/s/wemedia/s/upload/2024/e162182027aaa72e14c8feb5ed79110d.jpg)
![](http://image.uc.cn/s/wemedia/s/upload/2024/6d28104d0439a6e7a99e0f0b74a153a7.jpg)
![](http://image.uc.cn/s/wemedia/s/upload/2024/85a6e6b78343df2595714001dbfc6201.jpg)
![](http://image.uc.cn/s/wemedia/s/upload/2024/51bbb9bd89456ca2341faa8c042a6667.jpg)
想打造自己的私有云盘,如何设计?
我选择泰山派作为主控,开发了一整套解决方案。
![](http://image.uc.cn/s/wemedia/s/upload/2024/b6c9759c0eab430708fa78ea408191a9.jpg)
这里主要介绍软件开发环境。具体开发教程十分详细,可以前往开源原文查看【https://oshwhub.com/yc_chen/taishan-nas-server】。
想知道开发教程包含什么就看【第4章】。
1.后端
开发语言:Java环境:JDK17系统:Ubuntu 20,WIN11核心框架: SpringBoot3数据库:mysql82.前端
开发语言:JS+HTML+TS+CSS核心框架:Vue3 + Vite包管理:pnpmUI框架:Element UI Plus3.APP端
语言:Dart框架:Flutter跨平台适配Android + IOS4.系统监视器
系统监视器语言:C核心框架:LVGL9.1四、作者有话说本项目主打一个教程向,有超详细的开发笔记。
授人以鱼不如授人以渔!
如果你刚刚接触Linux开发,期望你看了本教程后,能少走些弯路,独立设计出专属于自己的项目。
你可以从此笔记中学到什么?
①原理图、PCB设计、布线注意事项。
②百兆以太网RMII的PCB布线经验
③千兆以太网RGMII的及PCB布线经验和一些坑
④如何修改dts设备树文件,实现SATA、gmac百兆以太网的适配。
⑤调试gmac的经验分享
⑥调试SATA的经验分享
⑦如何构建自己的Ubuntu定制化系统(二开修改方式)。
⑧update.img 如何分包和分包后修改里面的镜像文件在重打包。
⑨如何驱动标准SPI协议的TFT屏幕
⑩如何驱动带电容触摸屏的TFT屏幕中触摸部分
⑪如何使用GPIO模拟I2C (扩展知识点)
⑫如何使用GPIO模拟SPI (扩展知识点)
⑬模拟SPI和硬件SPI驱动屏幕的区别
⑭LVGL9.1集成实现屏幕监视器和小时钟的实现教程
⑮如何配置使用:SMB、FTP、WebDav
⑯Ubuntu下如何连接配置WIFI链接
TODO......
小编OS正如网友所说,这位NAS主机的开源作者,正在做很有意义的事情呀~
![](http://image.uc.cn/s/wemedia/s/upload/2024/0d457e23f6586c64d6e83de71e5d6b62.jpg)
另外前面说了,本项目参加了个活动,简单说明一下。
活动名为【星火计划活动_悬赏赛道】,是一个开源活动,作者获得了【6000】元活动奖金。
可喜可贺~
![](http://image.uc.cn/s/wemedia/s/upload/2024/dd934d1d88a5f2963b6a7dc6f1bd13dc.jpg)
这个活动适合正好想做开源项目练手的小伙伴,报名后做项目不花钱(报销最高2W元耗材物料)!做完还有奖金~
![](http://image.uc.cn/s/wemedia/s/upload/2024/847b0ff86f20b4c874f1cd9a7133196d.jpg)
截图来源于:https://oshwhub.com/activities/spark/fp/list
【正文完】
关注我,看一手优质开源项目