|
本帖最后由 4560335 于 2021-3-16 20:58 编辑
虽然通过下载你们Arduino实例程序改了三行数据直接就成功了,但是通过串口打印数据可以发现,文档并未对通信协议完全公开,MQTT客户端无法模拟硬件设备与APP进行通信,希望公开捂手协议,这样可以使其它MCU或者计算机应用程序通过以太网与APP进行通信。
关于设备显示离线文档内容:
blinker App在 App打开时、进入设备页面时、在设备页面中每隔一定时间 会向设备发送心跳请求,内容为**{"get":"state"}**。
设备收到请求后,会返回 **{"state":"online"}**,app接收到这个返回,即会显示设备在线。
但是从串口打印数据可以发现,硬件收到{"get":"state"}后,返回的数据不仅仅只有{"state":"online"},还有:"timer":"000"、"version":"0.1.0"
[287408] parse data: {"get":"state"}
[287408] defined BLINKER_ARDUINOJSON
[287409] autoManager begin: 0 0
[287410] autoFormatData key: state, json: "state":"online"
[287415] new.
[287417] timer codes: 000
[287419] autoFormatData key: timer, json: "timer":"000"
[287424] add.
[287425] autoFormatData key: version, json: "version":"0.1.0"
[287431] add.
[287432] print: {"state":"online","timer":"000","version":"0.1.0"}
[287438] Proto print...
[287440] Freeheap: 35000
[287442] isJson: {"data":{"state":"online","timer":"000","version":"0.1.0"},"fromDevice":"10B79FA0YSGCHQKAE0B3KV9R","toDevice":"edde88f5828711eb89785254","deviceType":"OwnApp"}
[287458] MQTT Publish...
[287460] Freeheap: 35000
[287464] {"data":{"state":"online","timer":"000","version":"0.1.0"},"fromDevice":"10B79FA0YSGCHQKAE0B3KV9R","toDevice":"edde88f5828711eb89785254","deviceType":"OwnApp"}
[287477] ...OK!
|
|