养猫的人可能都有过这种体验:出差第三天,打开手机想看看智能喂食器有没有正常出粮,结果 App 上一行“设备离线”,家里那位祖宗正在用爪子扒空碗,甚至开始啃路由器。为了让自家猫不再饿肚子,我决定用 Flutter + OpenHarmony 自己造一台智能喂食器,把远程控制和定时任务缓存这两个养宠痛点一次解决掉。这不是危言耸听,我家的橘猫真的把我网线咬断过。
前后买过三台“智能”喂食器,每一台都有让我无语的地方。第一台只支持蓝牙,人在高铁上根本够不着;第二台把所有定时逻辑放在云端,家里 Wi-Fi 一抖动,今天这顿就黄了;第三台更离谱,从换电池那一刻起就开始随机出粮。三台加起来一千多块,够买好几套开发板了。所以去年年底我下定决心,用 Flutter 写手机端,用 OpenHarmony 开发板做设备端,做一台既能远程控制、又能断网按时出粮的智能喂食器。
这篇文章是完整项目复盘,内容包括技术选型、整体架构、App 端实现、OpenHarmony 开发板适配、定时任务缓存设计,以及联调阶段踩过的一堆坑。如果你也准备做类似的物联网小项目,或者正在 Flutter + OpenHarmony 这套组合的门口张望,这篇应该能帮你省掉不少弯路。
1. 不是所有“智能”喂食器都叫智能:这个项目的起点
1.1 我为什么放着现成的智能喂食器不买
真正动手之前,我把市面上主流的自动喂食器都研究了一遍,发现所谓的“智能”基本可以分成三档。
第一档是纯机械定时器。旋钮设定时间,到点转一圈,没有任何外界交互。这个好处是便宜、稳定,但坏处是你不能远程改,也不能判断碗里还有没有粮。出差前如果设错了,只能干瞪眼。
第二档是蓝牙控制。手机靠近才能连,典型场景是你站在喂食器旁边用手机按一下,跟手动拧旋钮的区别
