一,写在前面
前一篇已经完成之后RW007已经可以连接到互联网了,剩下的就是把数据如何上传到ONENET云并展示出来。
二,注册ONENET
-
注册用户账号,OneNET 云平台地址:https://open.iot.10086.cn
-
创建一个自己的产品
填写产品信息。(吐槽一下,操作系统没有RT-Thread选项)
-
查找连接到onenet的设备信息
点击创建的产品
这里就获取到了产品ID,和MASTER_APIKEY,设备接入协议是MQTT。
设备列表来添加一个设备。
这里有3个必填项,其中鉴权信息一定要注意不要和你的其他设备写一样,避免发生奇奇怪怪的问题。
设备ID 鉴权信息 APIKEY 都已经有了,龙珠已集齐可以准备召唤神龙了。 -
修改rtconfig.h
可以通过ENV修改,也可以直接通过修改rtconfig.h把ONENET信息写入工程。
三,设置数据流
-
设置ONENET的数据流
打开数据流展示 选择数据流模板管理 增加一个temperature
选择设备列表 相关应用 点击设备,开始编辑
选择折线图,对折线图设置属性
-
查看onenet_sample.c
static void onenet_upload_entry(void *parameter)
{
int value = 0;
while (1)
{
value = rand() % 100;
if (onenet_mqtt_upload_digit("temperature", value) < 0)
{
LOG_E("upload has an error, stop uploading");
break;
}
else
{
LOG_D("buffer : {\"temperature\":%d}", value);
}
rt_thread_delay(rt_tick_from_millisecond(5 * 1000));
}
}
这个任务很简单每次间隔5s上传一个随机数;onenet_mqtt_upload_digit(“temperature”, value) 中的"temperature"要和onenet的数据名字对应上,value就是要发送的值。
四,数据上传
- 编译下载
- 启动传输
首先输入命令行:onenet_mqtt_init 连接至ONENET云
然后输入命令行:onenet_upload_cycle开始传输数据
\ | /
- RT - Thread Operating System
/ | \ 4.0.2 build Jun 15 2019
2006 - 2019 Copyright by rt-thread team
[I/sal.skt] Socket Abstraction Layer initialize success.
[I/at.clnt] AT client(V1.3.0) on device uart6 initialize success.
msh />[I/at.dev] rw007 device(r0) network initialize successfully.
onenet_mqtt_init
[D/onenet.mqtt] Enter mqtt_connect_callback!
[D/mqtt] ipv4 address port: 6002
[D/mqtt] HOST = '183.230.40.39'
[I/onenet.mqtt] RT-Thread OneNET package(V1.0.0) initialize success.
msh />[I/mqtt] MQTT server connect success.
[D/onenet.mqtt] Enter mqtt_online_callback!
onenet_upload_cycle
[D/onenet.sample] buffer : {"temperature":68}
msh />[D/onenet.sample] buffer : {"cpuuseage":67}
[D/onenet.sample] buffer : {"temperature":9}
能看到temperature 的数据已经在上传了。
可以看到设备已经显示在线了。进入设备就能刚开的折线图已经能收到数据了。
五,写在最后
- 官网也有很详细的ONENET说明:https://www.rt-thread.org/document/site/submodules/onenet/docs/samples/
- 此次未实现数据下发,有兴趣的可以自己尝试做一下控制LED。
- 本文由我个人编辑并整理,难免存在一些错误;
- 仅供个人学习使用。