Blinker 实时数据的Demo

有些情况下,我们需要查看即时数据,比如当前的加热温度。对于这种情况,可以使用 blinker 的“实时数据”功能。启用方法非常简单:在控件界面上选中“实时数据”即可。

下面是一个测试代码,每隔2秒生成一组温度湿度数据,显示在串口上同时发送到 Blinker 的服务器上。之后打开 Blinker 的APP 即可看到实时数值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#define BLINKER_WIFI
 
#include <Blinker.h>
 
char auth[] = "你的Key";
char ssid[] = "你家WIFI名";
char pswd[] = "你家WIFI密码";
 
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
 
 
uint32_t read_time = 0;
 
float Humidity=0, Temperature=0;
 
void rtData()
{
    Blinker.sendRtData("temp", Humidity);
    Blinker.sendRtData("humi", Temperature);
    Blinker.printRtData();
}
 
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.attachRTData(rtData);
     
}
 
void loop()
{
 
    Blinker.run();
 
    if (read_time == 0 || (millis() - read_time) >= 2000)
    {
        read_time = millis(); 
 
        BLINKER_LOG("Humidity: ", Humidity, " %");
        BLINKER_LOG("Temperature: ", Temperature, " *C");
 
        if (Temperature>50.0) {Temperature=0;} else {Temperature=Temperature+0.4;}
        if (Humidity>50.0) {Humidity=0;} else {Humidity=Humidity+0.9;}
    }
}

运行之后可以在 Blinker 上看到温湿度的实时变化: