查看: 20886|回复: 57

[使用文档] [Arduino物联网开发实战5]云端历史数据存储与查看

[复制链接]

该用户从未签到

发表于 2019-4-12 11:23 | 显示全部楼层 |阅读模式
blinker提供了历史数据存储与图表查看数据的功能。
设备端开发
在blinker的设计下,设备端数据存储极其简单易用的,只需两步,即可开启历史数据存储功能。
1.关联回调函数,开启历史数据存储功能
  1. Blinker.attachDataStorage(dataStorage);
复制代码


2.在回调函数中,设定要存储的键名和值
  1. void dataStorage() {
  2.     Blinker.dataStorage(key, value);
  3. }
复制代码

完成以上设定后,设备将每分钟存储一次数据。

你可以通过Arduino IDE>示例>blinker>CLOUDDATA_WiFi查看上传随机数的示例。

这里提供一个集成了天猫精灵的温湿度传感器示例:
  1. #define BLINKER_WIFI
  2. #define BLINKER_ALIGENIE_SENSOR

  3. #include <Blinker.h>
  4. #include <DHT.h>

  5. char auth[] = "xxxxxxxxxxxx";
  6. char ssid[] = "xxxxxx";
  7. char pswd[] = "xxxxxx";

  8. BlinkerNumber HUMI("humi");
  9. BlinkerNumber TEMP("temp");

  10. #define DHTPIN D7
  11. //#define DHTTYPE DHT11   // DHT 11
  12. #define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
  13. //#define DHTTYPE DHT21   // DHT 21 (AM2301)

  14. DHT dht(DHTPIN, DHTTYPE);

  15. float humi_read = 0, temp_read = 0;

  16. void heartbeat()
  17. {
  18.     HUMI.print(humi_read);
  19.     TEMP.print(temp_read);
  20. }

  21. void dataStorage()
  22. {
  23.     Blinker.dataStorage("temp", temp_read);
  24.     Blinker.dataStorage("humi", humi_read);
  25. }

  26. void aligenieQuery(int32_t queryCode)
  27. {
  28.     switch (queryCode)
  29.     {
  30.         case BLINKER_CMD_QUERY_ALL_NUMBER :
  31.             BLINKER_LOG("AliGenie Query All");
  32.             BlinkerAliGenie.temp(temp_read);
  33.             BlinkerAliGenie.humi(humi_read);
  34.             BlinkerAliGenie.print();
  35.             break;
  36.         case BLINKER_CMD_QUERY_TEMP_NUMBER :
  37.             BlinkerAliGenie.temp(temp_read);
  38.             BlinkerAliGenie.print();
  39.             break;
  40.         case BLINKER_CMD_QUERY_HUMI_NUMBER :
  41.             BlinkerAliGenie.humi(humi_read);
  42.             BlinkerAliGenie.print();
  43.             break;
  44.         default :
  45.             BlinkerAliGenie.temp(20);
  46.             BlinkerAliGenie.humi(20);
  47.             BlinkerAliGenie.print();
  48.             break;
  49.     }
  50. }

  51. void setup()
  52. {
  53.     Serial.begin(115200);
  54.     BLINKER_DEBUG.stream(Serial);
  55.     BLINKER_DEBUG.debugAll();
  56.     pinMode(LED_BUILTIN, OUTPUT);
  57.     digitalWrite(LED_BUILTIN, LOW);

  58.     Blinker.begin(auth, ssid, pswd);
  59.     Blinker.attachHeartbeat(heartbeat);
  60.     BlinkerAliGenie.attachQuery(aligenieQuery);
  61.     Blinker.attachDataStorage(dataStorage);
  62.     dht.begin();
  63. }

  64. void loop()
  65. {
  66.     Blinker.run();

  67.     float h = dht.readHumidity();
  68.     float t = dht.readTemperature();

  69.     if (isnan(h) || isnan(t))
  70.     {
  71.         BLINKER_LOG("Failed to read from DHT sensor!");
  72.     }
  73.     else
  74.     {
  75.         BLINKER_LOG("Humidity: ", h, " %");
  76.         BLINKER_LOG("Temperature: ", t, " *C");
  77.         humi_read = h;
  78.         temp_read = t;
  79.     }

  80.     Blinker.delay(2000);
  81. }
复制代码


App端查看
在blinker App 2.2.0版本起,增加了历史数据图表组件。
QQ截图20190414122725.jpg

添加组件后,将键名设置为程序中设定的键名,即可显示该键名对应的历史数据。
效果如下:
QQ截图20190414121239.jpg






该用户从未签到

发表于 2019-4-14 10:57 | 显示全部楼层
好像很厉害的样子

该用户从未签到

发表于 2019-4-17 10:10 | 显示全部楼层
blinker App 2.2.0在哪下载呀

点评

https://www.arduino.cn/thread-85656-1-1.html  详情 回复 发表于 2019-4-17 11:43

该用户从未签到

 楼主| 发表于 2019-4-17 11:43 | 显示全部楼层

该用户从未签到

发表于 2019-4-26 11:25 | 显示全部楼层
能在线升级吗,我的是2.1.5

点评

https://www.arduino.cn/thread-85656-1-1.html  详情 回复 发表于 2019-4-26 11:55

该用户从未签到

 楼主| 发表于 2019-4-26 11:55 | 显示全部楼层

该用户从未签到

发表于 2019-5-5 20:00 | 显示全部楼层
请问下 程序里面dht.h库您这里有吗

点评

https://www.arduino.cn/thread-83176-1-1.html  详情 回复 发表于 2019-5-5 20:09

该用户从未签到

 楼主| 发表于 2019-5-5 20:09 | 显示全部楼层

该用户从未签到

发表于 2019-5-6 19:32 | 显示全部楼层
奈何col 发表于 2019-5-5 20:09
https://www.arduino.cn/thread-83176-1-1.html

非常感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

【Arduino】108种传感器模块系列实验(52)---Micro SD卡读写模块
【Arduino】108种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
DIY炫彩灯带,竟如此简单,更有硬件开发工具免费领!
DIY炫彩灯带,竟如此简单
什么是涂鸦Arduino SDK? Arduino 是全球最流行的开源硬件平台,涂鸦官方推出的 Ardui
步进电机播放音乐
步进电机播放音乐
硬件:使用arduino uno板子与步进电机驱动器TB6600实物图 因为我这里用的是方波,才
esp32控制ws2812灯条会有闪烁
esp32控制ws2812灯条会有
把亮度调为0后第一个灯会一直亮其余一些会闪烁,把亮度调高以后就不会闪烁。之前用esp
想在原有的项目上加上一个呼吸灯怎么做才不影响原程序
想在原有的项目上加上一个
如题,想在原来的程序上加上一个呼吸灯,但是程序中的delay会影响到程序的其他部分,
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表