耗时半年,我打造了一款智能咖啡机控制系统(附完整架构)

耗时半年,我打造了一款智能咖啡机控制系统(附完整架构)
从硬件到软件,从串口到云端,一套完整的物联网Android解决方案写在前面半年前,朋友找到我,说他们公司有一批商用咖啡机需要做智能化改造。原来只能通过按键操作的机器,现在要用平板来控制,还要支持远程管理、扫码点单、自动烧水、标签打印……听完需求,我的第一反应是:这不就是一个典型的物联网Android项目吗?真正上手之后,发现坑比想象中多得多。串口通信不稳定、MQTT重连机制要自己撸、离线缓存策略得设计好、蓝牙打印机各种兼容性问题……好在,熬了无数个夜之后,总算稳定上线了。今天就把这套系统的完整架构分享出来,希望能给做物联网Android开发的朋友一些参考。先看看整体效果系统跑在一台12寸的Android平板上,安装在咖啡机正面。主要功能包括:点单下单(支持扫码器扫码点单)设备控制(开关机、温度设置、萃取控制)自动烧水(定时任务调度)标签打印(连接蓝牙打印机)设备状态实时监控远程运维(云端控制台统一管理)用户界面用的是Material Design组件,配了一些图表展示数据趋势。整体响应速度还不错,毕竟硬件直连,延迟都在毫秒级。核心架构:四层分离,各司其职架构这块我花的时间最多。物联网项目和普通App最大的区别在于——硬件通信的不确定性。串口发出去的指令,设备可能没收到,可能收到了但没执行,可能执行了但返回的数据丢了。所以从一开始我就决定把硬件层彻底隔离出来,这样即使底层协议变更,业务层也不用大改。最终确定的架构是这样的:┌─────────────────────────────────────┐│ 表现层(UI) ││ Activity / Fragme