NAS、键盘、路由器······年轻就要多折腾。爱折腾的熊猫,今天又给大家分享最近折腾的内容了。关注是对我最大的支持,阿里嘎多~
怕错过熊猫的精彩分享?那就赶快关注下熊猫吧!
引言
起因是极空间的用户群大家都在想能不能做一个针对NAS的监控屏,毕竟现在AI非常好用,且什么开发板都比较便宜,既然现在各大NAS都流行搞个屏幕,极空间自己还没出,那么我们用户自己DIY一个呗。

上图为极空间用户群粉丝用AI做的渲染图,不得不说的确是挺好看的,不过熊猫没打算做这么小的,还是想做一个稍微大一点的,一方面屏幕大能显示的同屏信息更多,另一方面也为后续功能升级增加了可能性。当然,这都是我个人的审美和选择。
项目开发
首先需要计划如何来实现极空间信息的获取,不得不说极空间的用户还是挺厉害的,提供了非常多的想法。
其中Media Saber项目有NAS系统状态的skill,这个可以在Media Saber的WIKI中查到,能提供的信息也非常多了,比如设备名、CPU、内存、存储空间、磁盘、网络以及风扇等等。

不过这种方法需要的权限比较高,再一个skill的方式并不适合开发板用来读取信息,加上后续的扩展性也不大,所以如果只是用于Agent,那么skill的确非常好用,但我们想要的是最方便的方法。

再一个,为了能兼顾多设备,同时支持域名方式去轮询NAS的信息,于是熊猫最后还是采用了我最熟悉的Docker作为服务端的形式,ESP开发板仅作为前端去轮询Docker获取的json信息,然后显示到显示屏上。

为了让界面UI不显得拥挤,同时也好看一点,所以我做了多页分页显示,通过触摸屏进行滑动切换,同时也给项目做了web的后台,这样就能通过web来实现IP、域名以及端口设置,查看链接状态。
硬件选择上熊猫用了微雪的esp-s3,屏幕为5寸的LCD触控屏,至于外壳毕竟有详细的参数,直接3D打印就行了,板子价格差多150左右。

同时为了能脱离供电线,熊猫后续还买了个1.25端子的600mAh的电池,不过实际用了之后就后悔了,因为5寸的屏幕配上600mAh的电池待机最高亮度下其实也就一小时左右,属于是聊胜于无了,如果想要增加电池容量,那也就意味着电池的厚度会增加,那外壳设计也要增加了,我是觉得没必要。

项目需要的固件熊猫已经开源在Github上了,有需要的可以自行去查看,其中至少80%代码都是由AI完成。项目地址为:https://github.com/Panda-995/NASflow,同时在agent文件夹下也提供了NAS端的Compose。

首先说一下这个板子的大概参数,一共16MB的闪存,其中还有8MB的PSRAM,分辨率为1024x600,支持的接口非常多,这里直接上微雪官方的图,后续你可以接入的外部设备也很丰富,例如摄像头、麦克风、喇叭、马达等等。

通过C口连接电脑,将固件刷入ESP中就行,这时候直接启动会显示等待NAS数据,之后则是提示NAS离线等待数据,不过ESP会启动后台,通过设置界面中的信息可以看到它的IP,通过IP就能访问后台。

后台中可以设置NAS的主机地址以及端口,同时可以设置数据的刷新间隔以及测试连接状态。

这时候我们需要在极空间的NAS中去启动Docker的服务端来获取NAS的信息,在极空间Docker中选择Compose,随后输入以下代码,如果端口有冲突,记得修改端口。
`
services:`
`nasflow:`
`image: ghcr.milu.moe/panda-995/nasflow:latest`
`container_name: nasflow`
`restart: unless-stopped`
`network_mode: host`
`pid: host`
`privileged: true`
`environment:`
`NAS_AGENT_BIND_HOST: "0.0.0.0"`
`NAS_AGENT_PORT: "8088"`
`NAS_AGENT_ENABLE_SMART: "true"`
`NAS_AGENT_ENABLE_NVME: "true"`
`NAS_AGENT_ENABLE_DOCKER: "true"`
`NAS_AGENT_POLLING_INTERVAL_MS: "1000"`
`NAS_AGENT_SMART_INTERVAL_SEC: "120"`
`NAS_AGENT_NVME_INTERVAL_SEC: "30"`
`NAS_AGENT_DOCKER_INTERVAL_SEC: "10"`
`NAS_AGENT_STORAGE_INTERVAL_SEC: "15"`
`volumes:`
`- /var/run/docker.sock:/var/run/docker.sock:ro
随后我们在esp的后台界面中填入极空间的IP以及我们docker项目的端口就行,如果你有DDNS,也支持域名的方式,测试已连接之后就能看到esp的监控端有信息显示了。
信息展示
总览会显示当前设备的大概一些情况,例如运行时间、温度、网络、CPU以及内存等情况,同时熊猫给网络做了动态的波动图,这样好看一点。

随后则是每个页面有自己专门的内容展示,例如性能界面会显示CPU负载,内存占用以及SWAP存储等等。

硬盘界面则能读取硬盘的温度、时长以及坏道情况,同时也能看到M.2盘的磨损情况,这些都是通过极空间给到的信息。

同时监控屏也支持Docker容器的查看,能看到当前有哪些容器在运行,不过因为esp只是作为显示设备,所以并不支持操作运行和停止,熊猫个人也觉得没这个必要。

写在最后
整体的效果目前熊猫还是蛮满意的,因为受限于esp本身的存储空间有限,没办法做太多的美化,如果愿意插tf卡,那么还可以加更多的动效进去,后续熊猫也会一直更新该固件,更新功能,感兴趣的可以自制一个放在桌面,还是蛮不错的。
以上便是本次分享的全部内容了。如果你觉得还算有趣或对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

panda