查看: 132|回复: 0

[高级教程] 将数据上传到OneNET云平台

[复制链接]
在了解了怎么用TinkerNode下发指令后,我们来学习如何上传数据到云平台

所需硬件
所需软件
TinkerNode开发板驱动,具体安装方法参考TinkerNode Wiki

1、创建产品
协议选择MQTT(旧版),然后点击右上角的 添加产品,在弹出页面中,按照提示填写产品的基本信息,进行产品创建。
请您按照提示尽可能完整、全面地填写相应内容,这样更方便您后期对产品进行管理
202010202205..png
点击 确定,完成产品创建。

2、添加设备
接下来点击我们新建的产品,进入产品详情
202010202890..png
点击左侧 设备列表,进入设备列表,点击右侧 添加设备
202010201866..png
我们选用的空气质量传感器是DFRobot出品的最新款CCS811空气质量传感器,
它能准确的测量二氧化碳浓度和TVOC(Total Volatile Organic Compounds,总挥发性有机物),而且具有较短的加热时间,使用比较方便。
在使用这个传感器之前,我们也需要阅读它的Wiki,并下载它的Arduino

3、添加数据流
点击左侧的数据流模板,再点击右侧的添加数据流模板
分别添加两个数据流模板,名字分别为CO2和TVOC,单位分别为ppm和ppb
202010203259..png 202010208454..png
4、编写代码
1、修改参数
在示例>DFRobot_NBIOT>BC20_MQTT>OneNET>Publish_Topic路径运行demo
将代码中的参数修改为产品概况中的参数。
202010206322..png
WIFI_SSID和WIFI_PASSWORD分别是室内的wifi名和密码
202010206531..png
其中ProductID是产品概况中的产品ID,ApiKey是Master-APIkey
202010203902..png
DeviceId是设备列表中的设备ID,pubTopic改为$dp,这是OneNET官方Topic。
202010207637..png
2、添加传感器代码
接着,我们将CCS811读取数据的代码加进这个程序中
[C++] 纯文本查看 复制代码
#include "DFRobot_CCS811.h"
这段代码加在开头
[C++] 纯文本查看 复制代码
DFRobot_CCS811 sensor;
这段代码加在图中的位置
202010208333..png
[C++] 纯文本查看 复制代码
  while(sensor.begin() != 0){
      Serial.println("failed to init chip, please check if the chip connection is fine");
      delay(1000);
  }
  sensor.setMeasCycle(sensor.eCycle_250ms);
这段代码加在void setup()中
[C++] 纯文本查看 复制代码
  while(sensor.checkDataReady() != true){delay(500);}[/align]  Serial.print("CO2: ");
  Serial.print(sensor.getCO2PPM());
  Serial.print("ppm, TVOC: ");
  Serial.print(sensor.getTVOCPPB());
  Serial.println("ppb");
这段代码加在void loop()中
3、包装数据
为了将代码上传到云端,我们需要对上传的数据进行一些处理
我们上传的数据是一段Jason字符串,需要按照一定的格式上传,并且还有OneNET自身的协议的限制,因此我们需要将数据做一定的“包装”。
[C++] 纯文本查看 复制代码
String str = "";
String str2 = "";
  str2 += "{\"CO2\":";
  str2 += sensor.getCO2PPM();
str2 += ",\"TVOC\":";
  str2 += sensor.getTVOCPPB();
  str2 += "}";
  str += (char)0x03;
  str += (char)(str2.length()>>8);
  str += (char)str2.length();
  str += str2;
将这段代码加入到上一段代码的后面

4、上传数据
client.publish(pubTopic,(uint8_t *) str.c_str(),str.length());
最后将上传的代码改为上方的代码
上传代码到TinkerNode中,连接成功后设备显示为上线状态

5、应用开发
和上一篇文章中的LED一样,在应用管理中选择添加应用,命名为空气质量监测
202010204407..png
点击进入应用详情,再点击编辑应用
202010206708..png
为应用添加两个折线图,分别命名为CO2和TVOC
202010208357..png
为两个折线图关联设备和数据流
202010204873..png
点击右侧的样式,还可以修改图表的颜色,参数等信息
202010207406..png
然后,我们可以点击预览查看数据
202010202026..png
最后点击保存>发布即可完成应用

这次的教程主要难点在于上传数据的封装,OneNET只能识别固定格式的上传数据,如果大家还想深入学习上传数据
可以到OneNET的开发文档中查阅资料

感谢大家的阅读
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail