[Arduino物联网开发实战5]云端历史数据存储与查看
blinker提供了历史数据存储与图表查看数据的功能。设备端开发
在blinker的设计下,设备端数据存储极其简单易用的,只需两步,即可开启历史数据存储功能。
1.关联回调函数,开启历史数据存储功能
Blinker.attachDataStorage(dataStorage);
2.在回调函数中,设定要存储的键名和值
void dataStorage() {
Blinker.dataStorage(key, value);
}
完成以上设定后,设备将每分钟存储一次数据。
你可以通过Arduino IDE>示例>blinker>CLOUDDATA_WiFi查看上传随机数的示例。
这里提供一个集成了天猫精灵的温湿度传感器示例:
#define BLINKER_WIFI
#define BLINKER_ALIGENIE_SENSOR
#include <Blinker.h>
#include <DHT.h>
char auth[] = "xxxxxxxxxxxx";
char ssid[] = "xxxxxx";
char pswd[] = "xxxxxx";
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
#define DHTPIN D7
//#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;
void heartbeat()
{
HUMI.print(humi_read);
TEMP.print(temp_read);
}
void dataStorage()
{
Blinker.dataStorage("temp", temp_read);
Blinker.dataStorage("humi", humi_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);
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 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();
}
void loop()
{
Blinker.run();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
BLINKER_LOG("Failed to read from DHT sensor!");
}
else
{
BLINKER_LOG("Humidity: ", h, " %");
BLINKER_LOG("Temperature: ", t, " *C");
humi_read = h;
temp_read = t;
}
Blinker.delay(2000);
}
App端查看
在blinker App 2.2.0版本起,增加了历史数据图表组件。
添加组件后,将键名设置为程序中设定的键名,即可显示该键名对应的历史数据。
效果如下:
扩展阅读: 图表显示实时数据曲线
坐等更新 好像很厉害的样子 blinker App 2.2.0在哪下载呀 ok000com 发表于 2019-4-17 10:10
blinker App 2.2.0在哪下载呀
https://www.arduino.cn/thread-85656-1-1.html 能在线升级吗,我的是2.1.5 nyx 发表于 2019-4-26 11:25
能在线升级吗,我的是2.1.5
https://www.arduino.cn/thread-85656-1-1.html 请问下 程序里面dht.h库您这里有吗 牛小顿 发表于 2019-5-5 20:00
请问下 程序里面dht.h库您这里有吗
https://www.arduino.cn/thread-83176-1-1.html 奈何col 发表于 2019-5-5 20:09
https://www.arduino.cn/thread-83176-1-1.html
非常感谢:handshake