为什么esp8266/esp32 wifi接入app显示设备离线-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 奈何col

[已解答] 为什么esp8266/esp32 wifi接入app显示设备离线

[复制链接]
 楼主| 发表于 2021-1-28 16:53 | 显示全部楼层
Crawford 发表于 2021-1-28 14:59
1.我用MQTT.fx调试的时候,连接之后session present返回了false,虽然连接了,但是并没有接收到关于get sta ...

mqtt客户端均可,没有限制
发表于 2021-1-28 17:03 | 显示全部楼层
在连接之后,打印出来的日志是这样的,app上的设备还是显示离线,按照前面您回复里所说的,是因为没有回复关于getstate的问题吗?
2021-01-28 16:55:18,279  INFO --- BrokerConnectorController      : onConnect
2021-01-28 16:55:18,280  INFO --- ScriptsController              : Clear console.
2021-01-28 16:55:18,283  INFO --- MqttFX ClientModel             : MqttClient with ID 41A7xxxxxxxZNS2AP7AB assigned.
2021-01-28 16:55:18,354  INFO --- MqttFX ClientModel             : session present: false
这种状态下发布和订阅设备自身,发布成功后没有收到订阅信息
发表于 2021-1-28 17:04 | 显示全部楼层
奈何col 发表于 2021-1-28 16:53
mqtt客户端均可,没有限制


在连接之后,打印出来的日志是这样的,app上的设备还是显示离线,按照前面您回复里所说的,是因为没有回复关于getstate的问题吗?
2021-01-28 16:55:18,279  INFO --- BrokerConnectorController      : onConnect
2021-01-28 16:55:18,280  INFO --- ScriptsController              : Clear console.
2021-01-28 16:55:18,283  INFO --- MqttFX ClientModel             : MqttClient with ID 41A7xxxxxxxZNS2AP7AB assigned.
2021-01-28 16:55:18,354  INFO --- MqttFX ClientModel             : session present: false
这种状态下发布和订阅设备自身,发布成功后没有收到订阅信息

点评

https://diandeng.tech/doc/api-mqtt 1.使用点灯broker 2.toDevice设为app deviceName  详情 回复 发表于 2021-1-28 18:41
 楼主| 发表于 2021-1-28 18:41 | 显示全部楼层
Crawford 发表于 2021-1-28 17:04
在连接之后,打印出来的日志是这样的,app上的设备还是显示离线,按照前面您回复里所说的,是因为没有回 ...

https://diandeng.tech/doc/api-mqtt
1.使用点灯broker
2.toDevice设为app deviceName
发表于 2021-3-13 14:40 | 显示全部楼层
请问下我用的手机热点是不可以吗
发表于 2021-3-16 18:00 | 显示全部楼层
Crawford 发表于 2021-1-28 14:59
1.我用MQTT.fx调试的时候,连接之后session present返回了false,虽然连接了,但是并没有接收到关于get sta ...


折腾了好几天,突然发现原来是这样订阅和发布消息的,这个和技新教程里说的貌似不大一样啊


1.png
2.png

点评

不太清除技新是什么,各家broker都有自己定义的部分,多少有所不同,关于点灯broker接入,请看我们的文档:https://diandeng.tech/doc/api-mqtt  详情 回复 发表于 2021-3-16 19:08
 楼主| 发表于 2021-3-16 19:08 | 显示全部楼层
4560335 发表于 2021-3-16 18:00
折腾了好几天,突然发现原来是这样订阅和发布消息的,这个和技新教程里说的貌似不大一样啊

不太清除技新是什么,各家broker都有自己定义的部分,多少有所不同,关于点灯broker接入,请看我们的文档:https://diandeng.tech/doc/api-mqtt
发表于 2021-3-16 20:46 | 显示全部楼层
本帖最后由 4560335 于 2021-3-16 20:58 编辑
奈何col 发表于 2021-3-16 19:08
不太清除技新是什么,各家broker都有自己定义的部分,多少有所不同,关于点灯broker接入,请看我们的文档 ...

虽然通过下载你们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!


无标题.png

点评

相关内容文档中都有,如果您说的是和组件的交互,请看:https://diandeng.tech/doc/cmd  详情 回复 发表于 2021-3-16 22:18
 楼主| 发表于 2021-3-16 22:18 | 显示全部楼层
4560335 发表于 2021-3-16 20:46
虽然通过下载你们Arduino实例程序改了三行数据直接就成功了,但是通过串口打印数据可以发现,文档并未对通 ...

相关内容文档中都有,如果您说的是和组件的交互,请看:https://diandeng.tech/doc/cmd
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-27 23:33 , Processed in 0.110570 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表