最近一个工控项目中,有一个需求:
通过传感器采集一个设备的温度,传感器每隔 1 秒采集一次。需要在一个安卓平板上显示实时数据和历史 24 小时的数据。局域网中的其他手机也可以查询这些数据。
目前我想要的做法是:
- 温度传感器接到 esp32 WiFi 模块,通过 mqtt 将温度值发布出来。
- 在安卓平板上建立 mqtt server 并订阅数据,并将数据存入 sqlite。
- 在安卓上开启 web server,想局域网提供 RESTful 接口查询数据(连接设备不会太多性能应该足够)。
- 安卓上显示一个 UI 界面显示温度数据。
目前,使用安卓平板作为显示终端是客户要求的。其他部分还可以改。
我本人做过简单的安卓 App 开发。但是对于安卓作为这样的 server 运行的场景,没有相关经验。我目前能想到的坑是安卓作为 server 需要长期唤醒,和作为 web server 后台运行保活的问题。是否有做过类似项目的小伙伴提供些建议。
如果这个方案不靠谱,我个人趋向于再增加一个小型的 ARM 单板,在上面安装 Ubuntu,专门用于运行 mqtt server 和 web server 和数据库 server。安卓平板只做显示。