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了,但还是离线