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

4560335 发表于 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"},设备仍然显示离线。。。。

奈何col 发表于 2021-3-17 09:26

4560335 发表于 2021-3-17 09:11
说的app设备离线的问题,文档内容:
blinker App在 App打开时、进入设备页面时、在设备页面中每隔一定时 ...
您好,文档无误,您上面不是输出调试信息看了么

4560335 发表于 2021-3-17 21:17

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

文档只说硬件收到{"get":"state"},返回{"state":"online"}就会显示在线,但是在烧录Arduino例程后的调试信息来看,硬件返回的确是:{"state":"online","timer":"000","version":"0.1.0"},这与文档描述严重不符。


parse data: {"get":"state"}
defined BLINKER_ARDUINOJSON
autoManager begin: 0 0
autoFormatData key: state, json: "state":"online"
new.
timer codes: 000
autoFormatData key: timer, json: "timer":"000"
add.
autoFormatData key: version, json: "version":"0.1.0"
add.
print: {"state":"online","timer":"000","version":"0.1.0"}
Proto print...
Freeheap: 35000
isJson: {"data":{"state":"online","timer":"000","version":"0.1.0"},"fromDevice":"10B79FA0YSGCHQKAE0B3KV9R","toDevice":"edde88f5828711eb89785254","deviceType":"OwnApp"}
MQTT Publish...
Freeheap: 35000
{"data":{"state":"online","timer":"000","version":"0.1.0"},"fromDevice":"10B79FA0YSGCHQKAE0B3KV9R","toDevice":"edde88f5828711eb89785254","deviceType":"OwnApp"}
...OK!

奈何col 发表于 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

4560335 发表于 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楼的截图中就已经可以发现问题了。。。


kwet 发表于 2021-6-3 09:07

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

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10944
load:0x40080400,len:6388
entry 0x400806b4


__       __                __
/\ \   /\ \    __      /\ \            v0.3.70210426
\ \ \___ \ \ \/\_\    ___\ \ \/'\      __   _ __   
\ \ '__`\\ \ \ \/\ \ /' _ `\ \ , <    /'__`\/\`'__\
\ \ \L\ \\ \ \_\ \ \/\ \/\ \ \ \\`\ /\__/\ \ \./
   \ \_,__/ \ \__\\ \_\ \_\ \_\ \_\ \_\ \____\\ \_\
    \/___/   \/__/ \/_/\/_/\/_/\/_/\/_/\/____/ \/_/
    To better use blinker with your IoT project!
    Download latest blinker library here!
    => https://github.com/blinker-iot/blinker-library

_aliType:
_duerType:
_miType:
_authKey: 41e056218413
Connecting to 302a-1
⸮h⸮⸮B⸮⸮5Ąi!!Va⸮3u⸮Є⸮R⸮`TP#w⸮i⸮⸮oT project!
    Download latest blinker library here!
    => https://github.com/blinker-iot/blinker-library






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

奈何col 发表于 2021-6-3 09:51

kwet 发表于 2021-6-3 09:07
你好 我上传了第一个点灯例程以后,设备显示离线并且串口感觉在不停发送数据,led灯会不正常的闪烁,想问下 ...

提供的信息无法判断问题

kwet 发表于 2021-6-3 16:29

kwet 发表于 2021-6-3 09:07
你好 我上传了第一个点灯例程以后,设备显示离线并且串口感觉在不停发送数据,led灯会不正常的闪烁,想问下 ...

怎么样才能判断,我之前连过一次,这次就连不上了,不知道为什么。需要提供什么信息吗

kwet 发表于 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



__       __                __
/\ \   /\ \    __      /\ \            v0.3.80210527
\ \ \___ \ \ \/\_\    ___\ \ \/'\      __   _ __   
\ \ '__`\\ \ \ \/\ \ /' _ `\ \ , <    /'__`\/\`'__\
\ \ \L\ \\ \ \_\ \ \/\ \/\ \ \ \\`\ /\__/\ \ \./
   \ \_,__/ \ \__\\ \_\ \_\ \_\ \_\ \_\ \____\\ \_\
    \/___/   \/__/ \/_/\/_/\/_/\/_/\/_/\/____/ \/_/
    To better use blinker with your IoT project!
    Download latest blinker library here!
    => https://github.com/blinker-iot/blinker-library

_aliType:
_duerType:
_miType:
_authKey: 97a50c8471b3
Connecting to ai
ESP32_MQTT initialized...

===========================================================
================== Blinker Timer loaded! ==================
   EEPROM address 1536-2431 is used for Blinker Timer!
========= PLEASE AVOID USING THESE EEPROM ADDRESS! ========
===========================================================

countdown state: false
_cdRunState: 0
_totalTime: 0
_runTime: 0
_action:
loop state: false
_lpRunState: 0
_times: 0
_tri_times: 0
_time1: 0
_action1:
_time2: 0
_action2:
_lpData: 0
checkNum count: 1
WiFi Connected.
IP Address:
192.168.43.113
HTTPS begin: https://iot.diandeng.tech/api/v1/user/device/diy/auth?authKey=97a50c8471b3&version=0.1.0&protocol=mqtts
GET... code: 200
reply was:
==============================
{"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}
==============================
_num: 5
====================
DEVICE_NAME_MQTT: FBAE6284BLH7K28HIYMEW35Q
MQTT_PRODUCTINFO_MQTT: JgCGbHlndgz
MQTT_ID_MQTT: FBAE6284BLH7K28HIYMEW35Q
MQTT_NAME_MQTT: Fp2AHzt35zlHJTVTrPln000000
MQTT_KEY_MQTT: ^1^1622983042066^0189b3b750bedf6
MQTT_BROKER: aliyun
HOST: public.iot-as-mqtt.cn-shanghai.aliyuncs.com
PORT: 1883
HOST: public.iot-as-mqtt.cn-shanghai.aliyuncs.com
PORT: 1883
UUID_MQTT: 18baa454817f11eb89785254
====================
BLINKER_PUB_TOPIC_MQTT: /JgCGbHlndgz/FBAE6284BLH7K28HIYMEW35Q/s
BLINKER_SUB_TOPIC_MQTT: /JgCGbHlndgz/FBAE6284BLH7K28HIYMEW35Q/r
Freeheap: 199888
mDNS responder started
webSocket_MQTT server started
ws://FBAE6284BLH7K28HIYMEW35Q.local:81
这是为啥,连上WiFi了,但还是离线
页: 1 2 3 [4] 5 6
查看完整版本: 为什么esp8266/esp32 wifi接入app显示设备离线