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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 奈何col

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

[复制链接]
发表于 2021-3-17 09:11 | 显示全部楼层
奈何col 发表于 2021-3-16 22:18
相关内容文档中都有,如果您说的是和组件的交互,请看:https://diandeng.tech/doc/cmd ...

说的app设备离线的问题,文档内容:
blinker App在 App打开时、进入设备页面时、在设备页面中每隔一定时间 会向设备发送心跳请求,内容为**{"get":"state"}**。
设备收到请求后,会返回 **{"state":"online"}**,app接收到这个返回,即会显示设备在线。

通过使用MQTT客户端调试,返回{"state":"online"},设备仍然显示离线。。。。

点评

您好,文档无误,你可以使用我们的lib开启debugall功能,通过调试信息验证  详情 回复 发表于 2021-3-17 09:26
 楼主| 发表于 2021-3-17 09:26 | 显示全部楼层
4560335 发表于 2021-3-17 09:11
说的app设备离线的问题,文档内容:
blinker App在 App打开时、进入设备页面时、在设备页面中每隔一定时 ...

您好,文档无误,您上面不是输出调试信息看了么
发表于 2021-3-17 21:17 | 显示全部楼层
奈何col 发表于 2021-3-17 09:26
您好,文档无误,您上面不是输出调试信息看了么

文档只说硬件收到{"get":"state"},返回{"state":"online"}就会显示在线,但是在烧录Arduino例程后的调试信息来看,硬件返回的确是:{"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!

点评

再次声明,文档无误。 version是设备版本号,应该不用解释吧。timer只是为了app显示下定时任务那个红点用的。这些内容返回与否都不会影响其他功能。如果你看过我在社区发的物联网教程,就会知道,其中还可以添加更新  详情 回复 发表于 2021-3-17 21:50
 楼主| 发表于 2021-3-17 21:50 | 显示全部楼层
4560335 发表于 2021-3-17 21:17
文档只说硬件收到{"get":"state"},返回{"state":"online"}就会显示在线,但是在烧录Arduino例程后的调试 ...

再次声明,文档无误。
version是设备版本号,应该不用解释吧。timer只是为了app显示下定时任务那个红点用的。这些内容返回与否都不会影响其他功能。如果你看过我在社区发的物联网教程,就会知道,其中还可以添加更多信息,用于和app同步数据,但这些都和app是否显示在线无关。
附教程https://www.arduino.cn/thread-83176-1-1.html
发表于 2021-3-18 00:43 | 显示全部楼层
本帖最后由 4560335 于 2021-3-18 01:00 编辑
奈何col 发表于 2021-3-17 21:50
再次声明,文档无误。
version是设备版本号,应该不用解释吧。timer只是为了app显示下定时任务那个红点用 ...

感谢您耐心答复,终于搞明白了为什么用MQTT客户端模拟硬件时APP显示设备离线了:

设备上线步骤如下:
1、MQTT客户端连接到服务器后,以自己的设备ID订阅消息:
topic /device/3C81061CM6FDYDJ5S27OMTB6/r

2、APP会定时向MQTT客户端发送心跳请求{"get":"state"},并带有APP的“设备”ID:
{"fromDevice":"edde88f5828711eb89785254","data":{"get":"state"}}

3、MQTT客户端向APP返回{"state":"online"},需要向自己的设备ID发布消息,消息内容的设备IDAPP的“设备”ID:
{"toDevice":"edde88f5828711eb89785254","data":{"state":"online"}}

4、APP收到{"state":"online"}应答,显示设备在线。

我错就错在这第3步上了,MQTT客户端发布消息时,消息内容的设备ID使用了本身设备ID,等于是向自己的设备ID发布消息,导致APP收不到订阅信息,其实在我27楼的截图中就已经可以发现问题了。。。


发表于 2021-6-3 09:07 | 显示全部楼层
你好 我上传了第一个点灯例程以后,设备显示离线并且串口感觉在不停发送数据,led灯会不正常的闪烁,想问下这是什么原因吗?而且我之前还连接上过一次的。
  1. ⸮h⸮BB⸮⸮Ąi!!va⸮3⸮İB⸮!⸮k6e3#⸮⸮ets Jun  8 2016 00:22:57

  2. rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
  3. configsip: 0, SPIWP:0xee
  4. clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
  5. mode:DIO, clock div:1
  6. load:0x3fff0018,len:4
  7. load:0x3fff001c,len:1216
  8. ho 0 tail 12 room 4
  9. load:0x40078000,len:10944
  10. load:0x40080400,len:6388
  11. entry 0x400806b4
  12. [29]
  13. [29]
  14. __       __                __
  15. /\ \     /\ \    __        /\ \              v0.3.70210426
  16. \ \ \___ \ \ \  /\_\    ___\ \ \/'\      __   _ __   
  17. \ \ '__`\\ \ \ \/\ \ /' _ `\ \ , <    /'__`\/\`'__\
  18.   \ \ \L\ \\ \ \_\ \ \/\ \/\ \ \ \\`\ /\  __/\ \ \./
  19.    \ \_,__/ \ \__\\ \_\ \_\ \_\ \_\ \_\ \____\\ \_\  
  20.     \/___/   \/__/ \/_/\/_/\/_/\/_/\/_/\/____/ \/_/  
  21.     To better use blinker with your IoT project!
  22.     Download latest blinker library here!
  23.     => https://github.com/blinker-iot/blinker-library

  24. [63] _aliType:
  25. [64] _duerType:
  26. [66] _miType:
  27. [67] _authKey: 41e056218413
  28. [70] Connecting to 302a-1
  29. ⸮h⸮⸮B⸮⸮5Ąi!!Va⸮3u⸮Є⸮R⸮`TP#w⸮i⸮⸮oT project!
  30.     Download latest blinker library here!
  31.     => https://github.com/blinker-iot/blinker-library

复制代码





以上是串口监视器发来的消息

点评

提供的信息无法判断问题  详情 回复 发表于 2021-6-3 09:51
 楼主| 发表于 2021-6-3 09:51 | 显示全部楼层
kwet 发表于 2021-6-3 09:07
你好 我上传了第一个点灯例程以后,设备显示离线并且串口感觉在不停发送数据,led灯会不正常的闪烁,想问下 ...

提供的信息无法判断问题
发表于 2021-6-3 16:29 | 显示全部楼层
kwet 发表于 2021-6-3 09:07
你好 我上传了第一个点灯例程以后,设备显示离线并且串口感觉在不停发送数据,led灯会不正常的闪烁,想问下 ...

怎么样才能判断,我之前连过一次,这次就连不上了,不知道为什么。需要提供什么信息吗
发表于 2021-6-4 16:49 | 显示全部楼层
奈何col 发表于 2021-6-3 09:51
提供的信息无法判断问题

E (336) phy_init: load_cal_data_from_nvs_handle: failed to get cal_data(0x1102)


你好这是我出现的错误代码,想问下是那里的问题
发表于 2021-6-6 20:40 | 显示全部楼层
[878]
[878]
__       __                __
/\ \     /\ \    __        /\ \              v0.3.80210527
\ \ \___ \ \ \  /\_\    ___\ \ \/'\      __   _ __   
\ \ '__`\\ \ \ \/\ \ /' _ `\ \ , <    /'__`\/\`'__\
  \ \ \L\ \\ \ \_\ \ \/\ \/\ \ \ \\`\ /\  __/\ \ \./
   \ \_,__/ \ \__\\ \_\ \_\ \_\ \_\ \_\ \____\\ \_\  
    \/___/   \/__/ \/_/\/_/\/_/\/_/\/_/\/____/ \/_/  
    To better use blinker with your IoT project!
    Download latest blinker library here!
    => https://github.com/blinker-iot/blinker-library

[912] _aliType:
[914] _duerType:
[916] _miType:
[917] _authKey: 97a50c8471b3
[920] Connecting to ai
[1081] ESP32_MQTT initialized...
[1081]
===========================================================
================== Blinker Timer loaded! ==================
     EEPROM address 1536-2431 is used for Blinker Timer!
========= PLEASE AVOID USING THESE EEPROM ADDRESS! ========
===========================================================

[1124] countdown state: false
[1124] _cdRunState: 0
[1124] _totalTime: 0
[1124] _runTime: 0
[1125] _action:
[1137] loop state: false
[1137] _lpRunState: 0
[1137] _times: 0
[1137] _tri_times: 0
[1137] _time1: 0
[1137] _action1:
[1137] _time2: 0
[1138] _action2:
[1140] _lpData: 0
[1141] checkNum count: 1
[3693] WiFi Connected.
[3694] IP Address:
[3694] 192.168.43.113
[3704] HTTPS begin: https://iot.diandeng.tech/api/v1/user/device/diy/auth?authKey=97a50c8471b3&version=0.1.0&protocol=mqtts
[5725] [HTTP] GET... code: 200
[5728] reply was:
[5728] ==============================
[5728] {"detail": {"broker": "aliyun", "deviceName": "FBAE6284BLH7K28HIYMEW35Q", "host": "mqtts://public.iot-as-mqtt.cn-shanghai.aliyuncs.com", "iotId": "Fp2AHzt35zlHJTVTrPln000000", "iotToken": "^1^1622983042066^0189b3b750bedf6", "port": "1883", "productKey": "JgCGbHlndgz", "uuid": "18baa454817f11eb89785254"}, "message": 1000}
[5751] ==============================
[5755] _num: 5
[5756] ====================
[5758] DEVICE_NAME_MQTT: FBAE6284BLH7K28HIYMEW35Q
[5762] MQTT_PRODUCTINFO_MQTT: JgCGbHlndgz
[5766] MQTT_ID_MQTT: FBAE6284BLH7K28HIYMEW35Q
[5770] MQTT_NAME_MQTT: Fp2AHzt35zlHJTVTrPln000000
[5775] MQTT_KEY_MQTT: ^1^1622983042066^0189b3b750bedf6
[5779] MQTT_BROKER: aliyun
[5782] HOST: public.iot-as-mqtt.cn-shanghai.aliyuncs.com
[5787] PORT: 1883
[5789] HOST: public.iot-as-mqtt.cn-shanghai.aliyuncs.com
[5794] PORT: 1883
[5795] UUID_MQTT: 18baa454817f11eb89785254
[5799] ====================
[5802] BLINKER_PUB_TOPIC_MQTT: /JgCGbHlndgz/FBAE6284BLH7K28HIYMEW35Q/s
[5808] BLINKER_SUB_TOPIC_MQTT: /JgCGbHlndgz/FBAE6284BLH7K28HIYMEW35Q/r
[5814] Freeheap: 199888
[5821] mDNS responder started
[5824] webSocket_MQTT server started
[5824] ws://FBAE6284BLH7K28HIYMEW35Q.local:81
这是为啥,连上WiFi了,但还是离线
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-29 04:53 , Processed in 0.113855 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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