(已解决)APP 显示离线 点进去操作两下就显示在线 刷新...-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3514|回复: 2

(已解决)APP 显示离线 点进去操作两下就显示在线 刷新...

[复制链接]
发表于 2019-2-15 10:56 | 显示全部楼层 |阅读模式
本帖最后由 ecstart 于 2019-2-15 16:22 编辑

组合了一个程序,可以工作,就是APP的界面老是显示不在线,点进去操作几下继电器按钮就又上线了,但是主页去刷新也不显示在线,不知道错在哪里了,大神指正下。
IMG_0002.PNG

点击去操作几下就是显示上线了。

QQ截图20190215105024.png

如果不操作就一直离线状态。
QQ截图20190215105049.png




#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "XXXXXXX";
char ssid[] = "XXXXXX";
char pswd[] = "XXXXX";

BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
BlinkerNumber HEAT("heat");
BlinkerNumber Kong("kong");
#define BT_1 "lb"
BlinkerButton BT1(BT_1);
// Download Adafruit DHT-sensor-library library here:
// https://github.com/adafruit/DHT-sensor-library
#include <DHT.h>

#define DHTPIN 2
#define kong A0

#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

DHT dht(DHTPIN, DHTTYPE);

void BT1_callback(const String & state) {
  if (state == BLINKER_CMD_OFF){
    digitalWrite(15, HIGH);
    BT1.text("", "已关闭");
    BT1.print("off");
    }
  else if (state == BLINKER_CMD_ON) {
    digitalWrite(15, LOW);
    BT1.text("", "已打开");
    BT1.print("on");
  }
}
uint32_t read_time = 0;

float humi_read, temp_read, heat_read, kong_read;

void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();

    uint32_t BlinkerTime = millis();
    Blinker.print(BlinkerTime);
    Blinker.print("millis", BlinkerTime);
}

void heartbeat()
{
    HUMI.print(humi_read);
    TEMP.print(temp_read);
    HEAT.print(heat_read);
    Kong.print(kong_read);
  }

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);
    pinMode(kong,INPUT);
    pinMode(15, OUTPUT);
    digitalWrite(15, HIGH);
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Blinker.attachHeartbeat(heartbeat);
    BT1.attach(BT1_callback);
    dht.begin();
    delay(100);
    Blinker.notify("!8FC6传感器上线了!");
}

void loop()
{
         float h = dht.readHumidity();
        float t = dht.readTemperature();
        float c = dht.computeHeatIndex(t, h, false);
        float k = analogRead(A0);   

        humi_read = h;
        temp_read = t;
        heat_read = c;
        kong_read = k;

        BLINKER_LOG("Humidity: ", h, " %");
        BLINKER_LOG("Temperature: ", t, " *C");
        BLINKER_LOG("Heat index: ", c, " *C");
        BLINKER_LOG("Kong Qi: ", k, " /1024");
        Blinker.run();
               }

 楼主| 发表于 2019-2-15 14:52 | 显示全部楼层
本帖最后由 ecstart 于 2019-2-15 14:54 编辑

找到原因了  因为为了调试方便,原始的代码有一段检测DHT11传感器是否连接OK的代码,我在做模拟设备测试时候有时候懒得接DHT11,就会串口出现一堆提示 “Failed to read from DHT sensor!”我就把它删除了,程序不报错 串口也正常,就是APP会有设备在线不稳定的问题,把这段代码添加回去一切又正常了。具体原因不理解,还在分析中。。。 QQ截图20190215144917.png


发表于 2020-2-17 22:13 | 显示全部楼层
我显示不了温度湿度
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 05:44 , Processed in 0.104612 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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