【M5CoreS3评测】基于M5CoreS3的通知与状态中心
笔者打算使用M5Stack Core S3套件设计一个集中式的通知与状态中心,借助了开源的KDE Connect实现了设备信息互联,在Linux主机运行上位机:将主机的资源使用状态与汇总的通知利用Wi-Fi推送到设备上。

1 UI设计
使用UIFlow进行图形界面设计,我们需要为CPU、内存分别设计百分比指示器,为了显示更详尽的内存使用情况,预留了已使用内存与总内存的标签。


我们摘取生成的代码并进行一个简单的封装得到一个‘UI’类,通过‘load’可进行初始化,只需要在主循环中调用‘update’即可进行UI事件循环。





真机测试效果,感觉不错哦

2 设备协议API设计
接下来是设备API设计,我们让设备在Wi-Fi 链路上开启一个HTTP服务器,实现远程上报资源状态与汇总通知;这里借助了开源的`MicroPyServer`,并进行了一个额外的封装来适应我们之前的代码,实现了`/resources` 和`/notifications` 这两个接口,包含HTTP路由与Wi-FI AP 配置的代码部分如下:














可以通过‘curl’工具进行测试,这里随机设置了一些资源状况与通知内容。


3 通知上位机
接下来我们着手编写上位机了,上位机同样使用Python编写,为了之后接入KDE Connect,我们采用DBus接口读取系统发送的通知,并定期通过`psutil` Python库读取系统CPU利用率以及内存使用情况,将每条通知与资源状况通过HTTP接口发往设备,设备就可以显示了。





4 设备互联
KDE Connect是一个开源的设备互联套件,可以兼容Windows/Linux/macOS/Android/iOS,我们只需要在手机和PC上安装KDE Connect,连接到同一网络(或者也可以手动输入IP)后就可开始互联,手机上的首页可以看到PC 设备的名称。

因为KDE Connect是端到端加密的,接下来需要进行配对,为了防止中间人攻击,我们要确认双方设备的PIN码一致。


然后双方就配对成功了,可以执行各类操作。
5 效果展示
系统资源状况同步,运行了‘yes’命令用来增加CPU利用率以作比较;


微信通知同步,由于涉及到好友隐私故码去大部分信息;

邮箱通知同步,具体的内容取决于邮箱app;

iOS 设备也可以安装KDE Connect 达到类似的效果。
6 总结
基于M5Stack的这款Core S3套件,我们完成了一个好看又好用的交互小摆件,它能够根据手机通知时时刻刻提醒我们最近发生了什么,确保我们不会遗忘,同时也能方便地查看当前计算机的运行状况。
(本文来源于《EEPW》202510)


评论