求助:两个设备,只有一个设备显示历史图表数据-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3420|回复: 13

求助:两个设备,只有一个设备显示历史图表数据

[复制链接]
发表于 2020-8-19 08:03 | 显示全部楼层 |阅读模式
本帖最后由 Nicetrip 于 2020-8-19 08:05 编辑

两个相同的8266设备,程序都一样,只是设备密钥不同。程序带数据存储功能 ,目前两个设备的实时数据都正常,现在的问题是只有一个设备显示历史图表数据,另一个不显示历史图表数据。核对过APP的KEY,没有错误。问题到底出在哪里?另外自己可以查看后台的设备数据吗?
微信图片_20200819074513.jpg 微信图片_20200819072427.jpg 微信图片_20200819072434.jpg


微信图片_20200819072417.jpg
发表于 2020-8-19 08:45 | 显示全部楼层
我在后台看到你第二设备里,没有数据,不是不能显示,而是设备没有存储数据。
如果您确认程序有存储,那您看看串口调试信息,是否有存储失败的提示。
免费用户只有5个存储key,可能是你除了图上5个外还在创建新的key导致存储失败了
 楼主| 发表于 2020-8-19 10:23 来自手机 | 显示全部楼层
奈何col,你好!是这样,这两个key都是新申请的,一个好用,一个不好用

点评

调试信息  详情 回复 发表于 2020-8-19 13:14
发表于 2020-8-19 13:14 | 显示全部楼层
Nicetrip 发表于 2020-8-19 10:23
奈何col,你好!是这样,这两个key都是新申请的,一个好用,一个不好用

调试信息
 楼主| 发表于 2020-8-19 18:33 | 显示全部楼层
管理员辛苦了.两个设备的程序是一样的,只是密钥不同,其中一个可以存储数据的,所以程序应该问题不大。下面的图串口信息出现问题。什么原因??我只有两个设备啊?如何解决!
未命名_副本.jpg
未命名_副本2.jpg
未命名_副本3.jpg
发表于 2020-8-19 18:53 | 显示全部楼层
触发存储限制了
你第二个设备还在向其他key存数据吧
 楼主| 发表于 2020-8-19 19:09 | 显示全部楼层

ERROR : max device data key size limit
 楼主| 发表于 2020-8-19 19:34 | 显示全部楼层
本帖最后由 Nicetrip 于 2020-8-19 19:42 编辑
奈何col 发表于 2020-8-19 18:53
触发存储限制了
你第二个设备还在向其他key存数据吧

奈何col你好,  你所说的向其他KEY存数据我没能理解。所谓的5个《数据存储        独立设备 共计5个Key》 是账号下所有设备的数据字段数量之和不能超过5个还是  每个设备的数据字段数量不能超过5个?  
奈何col 发表于 2020-8-19 18:53
触发存储限制了
你第二个设备还在向其他key存数据吧

奈何col你好,  你所说的向其他KEY存数据我没能理解。所谓的5个《数据存储        独立设备 共计5个Key》 是账号下所有设备的数据字段数量之和不能超过5个还是  每个设备的数据字段数量不能超过5个?  下边的代码除了密钥不同外,被刷入连个相同的设备,这样会引起数据存储冲突吗?
/*
*/
#define BLINKER_WIFI
#define BLINKER_ALIGENIE_SENSOR
#define BLINKER_PRINT Serial
#include <Blinker.h>
#include <DHT.h>

char auth[] = "xxxxxxxx";//
char ssid[] = "xxxxxxxx";
char pswd[] = "xxxxxxxx";

BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
BlinkerNumber GZ("sv");
BlinkerNumber TR("turang");


BlinkerButton Button1("btn-01");
BlinkerNumber Number1("num-01");

BlinkerButton Button2("btn-02");
BlinkerNumber Number2("num-02");//blinker-APP按键要与引号中的字符相同

BlinkerButton Button3("btn-03");
BlinkerNumber Number3("num-03");//blinker-APP按键要与引号中的字符相同
int counter = 0;
// 按下按键即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
void button2_callback(const String & b) {
  BLINKER_LOG("get button state: ", b);
    digitalWrite(21, !digitalRead(21));  
}

void button3_callback(const String & aaa) {
  BLINKER_LOG("get button state: ", aaa);
    digitalWrite(22, !digitalRead(22));  
}
#define DHTPIN 17    //ARDUINO D1板直接接到 D9
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

DHT dht(DHTPIN, DHTTYPE);

float humi_read = 0, temp_read = 0,sv_read = 0,turang_read=0;

void heartbeat()
{
    HUMI.print(humi_read);
    TEMP.print(temp_read);
    GZ.print(sv_read);
    TR.print(turang_read);
}

void dataStorage()
{
    Blinker.dataStorage("temp", temp_read);
    Blinker.dataStorage("humi", humi_read);
    Blinker.dataStorage("sv",sv_read);
    Blinker.dataStorage("turang",turang_read);  
}

void aligenieQuery(int32_t queryCode)
{
    switch (queryCode)
    {
        case BLINKER_CMD_QUERY_ALL_NUMBER :
            BLINKER_LOG("AliGenie Query All");
            BlinkerAliGenie.temp(temp_read);
            BlinkerAliGenie.humi(humi_read);
           // Blinker.dataStorage(sv_read);
            BlinkerAliGenie.print();
            break;
        case BLINKER_CMD_QUERY_TEMP_NUMBER :
            BlinkerAliGenie.temp(temp_read);
            BlinkerAliGenie.print();
            break;
        case BLINKER_CMD_QUERY_HUMI_NUMBER :
            BlinkerAliGenie.humi(humi_read);
            BlinkerAliGenie.print();
            break;


        default :
            BlinkerAliGenie.temp(20);
            BlinkerAliGenie.humi(20);
            BlinkerAliGenie.print();
            break;
    }
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
}
void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachHeartbeat(heartbeat);
    BlinkerAliGenie.attachQuery(aligenieQuery);
    Blinker.attachDataStorage(dataStorage);
    dht.begin();

        #if defined(BLINKER_PRINT)
        BLINKER_DEBUG.stream(BLINKER_PRINT);
        #endif

    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
    pinMode(21, OUTPUT);
    pinMode(22, OUTPUT);

    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback);
    Button2.attach(button2_callback);
    Button3.attach(button3_callback);
}

void loop()
{
    Blinker.run();

    float h = dht.readHumidity();
    float t = dht.readTemperature();
    int tr = analogRead(A3);
    int s = analogRead(A0);

    s=2600-s;

    if (isnan(h) || isnan(t))
    {
        BLINKER_LOG("Failed to read from DHT sensor!");
    }
    else
    {
        BLINKER_LOG("Humidity: ", h, " %");
        BLINKER_LOG("Temperature: ", t, " *C");
        BLINKER_LOG("RG: ", s);
        BLINKER_LOG("TR: ", tr);
        humi_read = h;
        temp_read = t;
        sv_read=s;
        turang_read=tr;
    }

    Blinker.delay(2000);
}


点评

所有设备总共5个  详情 回复 发表于 2020-8-19 19:47
发表于 2020-8-19 19:47 | 显示全部楼层
Nicetrip 发表于 2020-8-19 19:34
奈何col你好,  你所说的向其他KEY存数据我没能理解。所谓的5个《数据存储        独立设备 共计5个Key》  ...

所有设备总共5个
 楼主| 发表于 2020-8-19 20:06 | 显示全部楼层

好的!那按照的的说法,我第1个设备有4组需要存贮的数据,第2组设备上应该还可以存储1组数据,但为何第2个设备的图表都显示暂无数据呢

点评

你第二个设备还在存其他的key,直接触发限制了,你可以把其他key的程序删了,只存一个试试  详情 回复 发表于 2020-8-19 21:39
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 11:37 , Processed in 0.226193 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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