OneNet是一款物联网平台,提供了海量的物联网设备接入、数据存储、云计算、数据分析等服务。OneNet的数据转发功能可以将设备上传的数据转发至指定的HTTP/HTTPS服务器或MQTT服务器上,方便设备数据的集中管理与处理。本文将介绍如何开发OneNet数据转发的小程序。
一、OneNet数据转发原理
OneNet数据转发的原理是通过设备数据上传接口上传的数据触发数据转发,将符合规则的数据按照指定的方式转发至其他平台。设备上传的数据经过OneNet的数据分析、规则匹配后,按照条件自动将数据发送至指定平台。
二、OneNet数据转发小程序开发步骤
1. 注册OneNet账号,获取APIKey和设备ID。
2. 开发数据上传接口。具体实现可参考OneNet提供的API文档,以下是一个PHP示例:
```
$apikey = 'xxxxxxxxxxxxxxxxxxxxx'; // OneNet平台提供的APIKey
$device_id = '123456'; // 设备ID
$datastreams = array(
array('id'=>'temperature', 'datapoints'=>array(array('value'=>rand(0, 50)))) // 数据流名称和数据值
);
$url = 'http://api.heclouds.com/devices/'.$device_id.'/datapoints';
$headers = array(
'Content-Type: application/json',
'api-key: '.$apikey
);
$data = array('datastreams'=>$datastreams);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true); // 设置为POST请求
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
curl_close($ch);
echo $res;
?>
```
以上示例实现了一个上传温度数据的接口,其中$apikey和$device_id分别为OneNet平台提供的APIKey和设备ID,$datastreams为一个数组,存储了数据流名称(例如:temperature)和数据值(例如:rand(0,50)随机生成0-50之间的数值)。
3. 配置数据转发规则。在OneNet平台上,选择对应的设备,进入“数据转发”页,创建数据转发规则。其中包含数据源、触发条件、目标平台等设置。例如:当接收到温度大于30℃的数据时,将数据转发至HTTP/HTTPS服务器的/api/temperature接口上。
4. 配置OneNet数据转发小程序。创建一个小程序,配置OneNet平台的API地址和APIKey,调用OneNet的数据转发API获取指定设备的最新一条数据并进行展示。以下是一个示例:
```
Page({
data: {
temperature: '--'
},
onLoad: function () {
this.getData();
},
getData: function () {
var that = this;
wx.request({
url: 'http://api.heclouds.com/devices/123456/datastreams/temperature/datapoints?limit=1',
header: {
'content-type': 'application/json',
'api-key': 'xxxxxxxxxxxxxxxxxxxxx'
},
success: function(res) {
if (res.data && res.data.data && res.data.data.length > 0) {
that.setData({
temperature: res.data.data[0].value
})
}
},
complete: function() {
// 每隔5秒请求一次数据
setTimeout(that.getData, 5000);
}
});
}
})
```
以上示例中,url为OneNet的数据转发API地址,其中123456为设备ID,temperature为数据流名称。header中包含了APIKey,确保请求的合法性。每隔5秒请求一次数据,将最新的温度数据展示在小程序中。
总结:
通过以上步骤的实现,我们可以基于OneNet平台的数据转发功能,快速开发出一款小程序,实现对物联网设备数据的实时监控和管理。同时也为我们在开发其他物联网应用时提供了很大便利。