查看: 13379|回复: 34

[使用文档] 为什么esp8266/esp32 wifi接入app显示设备离线

[复制链接]

该用户从未签到

发表于 2020-3-26 20:18 | 显示全部楼层 |阅读模式
blinker会自动获取设备状态,通常用户不需要做任何处理,但当你错误编写程序时,可能会造成状态反馈失败或者不及时的问题,这时blinker App就会显示该设备 离线。为了帮助开发者更好的调试程序,这里我对blinker app的判断逻辑,及调试方法做一些讲解。

blinker App如何判断设备是否在线?  
blinker App在 App打开时、进入设备页面时、在设备页面中每隔一定时间 会向设备发送心跳请求,内容为{"get":"state"}。  
设备收到请求后,会返回{"state":"online"},app接收到这个返回,即会显示设备在线。

app中显示设备离线,并不等于设备没有连接上mqtt,但可以肯定的是:你的设备没有响应或者错误响应了app发出的心跳请求。


哪些情况可能造成显示离线?
1. 程序没有成功上传到开发板  
解决办法:重新上传,上传后打开串口监视器,确认程序正确运行  

2. 程序中没有设置正确的ssid和密码,导致没有连接上网络  
解决办法:设置后再重新上传程序,上传后打开串口监视器,确认程序正确运行  

3. 程序错误,导致程序运行不正确  
解决办法:先使用并理解blinker例程,再自由发挥  

4. 开发板供电不足   
解决办法:换电源、换USB口 或者 在vcc和gnd间并电容

对于程序错误造成的离线,如何调试?
在程序初始化时添加debugAll,获取更详细的调试信息。
arduino程序如下:

  1. void setup()
  2. {
  3.     Serial.begin(115200);
  4.     BLINKER_DEBUG.stream(Serial);
  5.     BLINKER_DEBUG.debugAll();
  6. }
复制代码

然后通过串口调试,查看设备是否正确接收到{"get":"state"}并响应{"state":"online"}

如何修复错误?
笨办法:逐句注释掉自己写的代码,看看是那一句造成的反馈错误  
正常的办法:理解blinker程序逻辑,通过调试信息,分析程序哪里造成了反馈错误或不及时  

该用户从未签到

发表于 2020-3-28 22:46 | 显示全部楼层
学习一下,我的舵机开门,偶尔会不在线,但有时一周也都不断

点评

4. 开发板供电不足 解决办法:换电源 或 换USB口 可能是这个原因,舵机一定要独立供电  详情 回复 发表于 2020-3-29 00:54

该用户从未签到

 楼主| 发表于 2020-3-29 00:54 | 显示全部楼层
ebeeb 发表于 2020-3-28 22:46
学习一下,我的舵机开门,偶尔会不在线,但有时一周也都不断

4. 开发板供电不足   
解决办法:换电源 或 换USB口  

可能是这个原因,舵机一定要独立供电

该用户从未签到

发表于 2020-3-29 07:33 | 显示全部楼层
补充一点就是网络环境

该用户从未签到

发表于 2020-3-29 09:20 来自手机 | 显示全部楼层
奈何col 发表于 2020-3-29 00:54
4. 开发板供电不足   
解决办法:换电源 或 换USB口  


我是从nodemcu板上接的5v

该用户从未签到

发表于 2020-3-29 09:21 来自手机 | 显示全部楼层
试下单独供电

该用户从未签到

发表于 2020-4-8 20:01 来自手机 | 显示全部楼层
esp01s直接插在继电器上控制灯泡,超过二十四小时待机app段就会显示设备离线,wifi是在线的,请问这是怎么回事?

点评

请看一楼  详情 回复 发表于 2020-4-8 23:09

该用户从未签到

 楼主| 发表于 2020-4-8 23:09 | 显示全部楼层
xue886 发表于 2020-4-8 20:01
esp01s直接插在继电器上控制灯泡,超过二十四小时待机app段就会显示设备离线,wifi是在线的,请问这是怎么 ...

请看一楼

该用户从未签到

发表于 2020-4-9 15:08 | 显示全部楼层

继电器是5V的直接插在5V手机充电器,esp01s是插在继电器上的。不应该供电不足吧?

该用户从未签到

发表于 2020-5-9 12:48 | 显示全部楼层
csum 0xd0
v3d128e5c
~ld

ets Jan  8 2013,rst cause:4, boot mode3,6)

wdt reset
load 0x4010f000, len 1392, room 16
tail 0
chksum 0xd0
csum 0xd0
v3d128e5c
~ld

ets Jan  8 2013,rst cause:4, boot mode3,6)

wdt reset
load 0x4010f000, len 1392, room 16
tail 0
chksum 0xd0
csum 0xd0
v3d128e5c
~ld
Opening port
Port open
��[4074]
[4074]
__       __                __
/\ \     /\ \    __        /\ \              v0.3.4
\ \ \___ \ \ \  /\_\    ___\ \ \/'\      __   _ __   
\ \ '__`\\ \ \ \/\ \ /' _ `\ \ , <    /'__`\/\`'__\
  \ \ \L\ \\ \ \_\ \ \/\ \/\ \ \ \\`\ /\  __/\ \ \./
   \ \_,__/ \ \__\\ \_\ \_\ \_\ \_\ \_\ \____\\ \_\  
    \/___/   \/__/ \/_/\/_/\/_/\/_/\/_/\/____/ \/_/  
    To better use blinker with your IoT project!
    Download latest blinker library here!
    => https://github.com/blinker-iot/blinker-library

[4108] Connecting to MIWIFI
[4219] ESP8266_MQTT initialized...
[4220]
===========================================================
================== Blinker Timer loaded! ==================
Warning!EEPROM address 1536-2431 is used for Blinker Timer!
============= DON'T USE THESE EEPROM ADDRESS! =============
===========================================================

[10567] WiFi Connected.
[10567] IP Address:
[10567] 192.168.1.34
[11952] Freeheap: 10280
[11955] mDNS responder started
[11955] webSocket_MQTT server started
[11956] ws://3F28F7669O8UPBBGSZBHKVM2.local:81
[14124] Connecting to MQTT...
[15470] MQTT Connected!
[15470] Freeheap: 9952
[15470] =======================================================
[15470] =========== Blinker Auto Control mode init! ===========
[15474] Warning!EEPROM address 0-1279 is used for Auto Control!
[15480] =========== DON'T USE THESE EEPROM ADDRESS! ===========
[15486] =======================================================

Port closed
Opening port
Port open

ets Jan  8 2013,rst cause:4, boot mode3,6)

wdt reset
load 0x4010f000, len 1392, room 16
tail 0
chksum 0xd0
csum 0xd0
v3d128e5c
~ld
大佬可以帮忙看看为什么连上了服务器但是app不显示吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

arduino程序设计基础 blinker物联网解决方案

热门推荐

做了些ESP8266/ESP01/01S WIFI 220V供电开关模块
做了些ESP8266/ESP01/01S
单路开关模块ESP8266/ESP01/01S模块IO0作为信号输出 两路开关模块ESP8266/ESP01/01S模
新手求解,实在不会了
新手求解,实在不会了
Arduino:1.8.13 (Windows 10), 开发板:"Generic ESP8266 Module, 80 MHz, Flash, Leg
自动灌溉
自动灌溉
简介[hr] 农业是用水大户,近年来农业用水量约占经济社会用水总量的62%,部分地区高达
字反了??求助!!
字反了??求助!!
各位大佬们,小白求助,为什么字会反了?? 代码: /*****************************
下载失败,求解!!
下载失败,求解!!
开发板管理库最近总是下载失败,求求大神问一下怎么回事,怎么解决?谢谢!!!
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表