查看: 10160|回复: 35

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

[复制链接]
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 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






  • TA的每日心情
    开心
    2019-4-14 10:55
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 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
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2019-4-17 11:43 | 显示全部楼层
  • TA的每日心情
    擦汗
    2019-4-11 23:26
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    点评

    https://www.arduino.cn/thread-85656-1-1.html  详情 回复 发表于 2019-4-26 11:55
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2019-4-26 11:55 | 显示全部楼层
  • TA的每日心情
    开心
    2018-11-3 16:10
  • 签到天数: 2 天

    [LV.1]初来乍到

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

    点评

    https://www.arduino.cn/thread-83176-1-1.html  详情 回复 发表于 2019-5-5 20:09
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2019-5-5 20:09 | 显示全部楼层
  • TA的每日心情
    开心
    2018-11-3 16:10
  • 签到天数: 2 天

    [LV.1]初来乍到

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

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

    本版积分规则

    热门推荐

    Arduino串口事件
    Arduino串口事件
    向各位大佬求助,学习了serialEvent(),按照书上的程序,我是直接使用的示例中的serial
    ps2遥控小车——uno实现
    ps2遥控小车——uno实现
    前几天在阁楼发现了好久以前3d打印,激光切割的底盘,于是决定做这个东西 正好手上又
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    最近几天通过连不上设备
    最近几天通过连不上设备
    最近几天不是在同一个网络下无法连接到设备,既不是连线也不是离线,但连接到同一网
    【Arduino】108种传感器模块系列实验(46)---电阻应变片传...
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表