物联网专题35:数据可视化
物联网云平台 — 数据可视化
目标:将ESP8266上报到云端的温湿度数据,在网页上显示出来,我们可以随时查看环境的温湿度数据
方法1:将温湿度数据上报到【物接入】,通过规则引擎将温湿度数据发送到 【数据库】 / 【云主机】
之后,我们可以在主机上进行 【前端+后端】开发,从而在网页上显示温湿度,实现【数据可视化】
方法2:百度云提供【物可视】等物联网组件
使我们无需购买【云主机】,也无需进行【前端+后端】开发,就可以在网页上显示温湿度,实现【数据可视化】
如下图所示:
物可视的数据源,可以是物管理和物接入。设备将数据上传到物管理,物管理再将上报的数据作为物可视的数据源;或者设备将数据上报到物接入,通过规则引擎发往时序数据库,将时序数据库作为物可视的数据源。
【物管理】注意:
1 【物管理】接入协议:MQTT、HTTP,可与物引擎、告警服务、物可视等产品无缝对接;
2 【物模型】:由一个或多个属性构成的,可以用来表示一类设备;
3 【物影子】:对应着现实世界中的一台真实设备。【物可视】数据源之一,就是【物影子】;
添加物模型
1 在物接入中,选择设备型项目;
创建物模型,如下所示:
然后选择添加属性,属性就是之后设备上报数据时需要使用的键值对;
分别添加温度和湿度属性:
【物模型】创建成功;
2 创建物影子;
【物影子】创建成功,可以看到,当前处于离线状态,因为设备没有向【物影子】上报数据;
我们该如何向【物影子】上报数据?
在交互文档中,百度云提供了 MQTT SDK,提供了默认主题来对【物影子】进行操作;
第一条SDK主题指令,只要设备向这个主题发布消息,就可以上报到物影子;
如下为规定的发布消息的格式:
我们必须按照百度云规定的格式来上报数据,这些数据和物影子时是相对应的;
ESP8266连接物影子
1 参考上一节分析的 MQTT 工程,设置 MQTT 服务器域名 + 端口号、物影子名称、MQTT用户名+密码、WiFi 用户名+密码,以及更新持有人标识。
2 定义与物影子通信的 JSON 字符串
// 与物影子通信的JSON字符串【键值对:Temperature、Humidity】
#define Format_JSON_TH_ESP8266_JX "{\"requestId\":\"{%d}\", \"reported\":{\"Temperature\":%d.%d,\"Humidity\":%d.%d}}"
3 在 MQTT 定时器中,每5s上报一次温湿度数据,
注意,主题名一定要保持一致;
编译下载工程,串口打印如下所示:
这说明8266成功连接到了【物影子】,在百度云上物影子状态显示为在线:
【物影子】中显示了当前实时的温湿度数据:
8266成功的将温湿度上报到【物影子】
物可视
1 物可视->创建工作区
然后创建仪表盘;
2 创建画布;
设置一些文本,如下所示:
3 设置数据来源,点击数据:
设置数据表;
单击下一步,其中属性温度和属性湿度都使用,如下所示
数据表创建成功;
4 绑定数据;
选定数据表
预览一下:
5 发布仪表盘:
生成链接
数据可视化完成。
以后就可以通过这个链接,来获取实时温湿度数据
https://viz.baidubce.com/prod/sharing/dashboard/69fce520029465e1c27ac57653ff7757