##注:本教程不涉及硬件方面,所有的硬件发送数据都是模拟的。最终完成的目标是,在阿里云接收到硬件的数据,然后转发到自建服务器,然后存储并大屏展示,其中还包含远程控制硬件设备。(后面可能还有其他需求,还没有想好。)
一、创建物联网平台实例
物联网平台在连接少量设备的时候,是免费的,可以开通一个免费的物联网平台实例。开通成功后,如下图
二、创建产品
点击设备管理,点击产品,然后创建产品
自定义产品名称,选择自定义品类,剩下的没有需要的可以不用更改。
三、添加对应产品的设备
点击设备,添加设备,然后选择产品,自定义名称,然后确认即可。
然后可以在上图中,看到一些关键信息,后面需要用到这些信息来进行连接设备。
四、创建物模型
物模型就是我通俗的理解就是从硬件那里接收什么数据。
在产品里面,点击刚刚创建的循环水,然后点击功能定义
然后点击编辑草稿,点击添加自定义功能
以创建温度为例,点击确认。
五、模拟硬件向云平台发送数据
我使用了三种方式进行模拟硬件向物联网平台发送数据。
1.编写js程序,每隔一段时间就向云平台发送数据。
2.使用mqtt.qx程序连接云平台,然后互通数据。
3.云平台的设备模拟器。
1.js程序
//1.引入阿里云IoT的sdk
const mqtt = require('aliyun-iot-mqtt');
//2.设备属性
const options = {
productKey: "",
deviceName: "",
deviceSecret: "",
regionId: "cn-shanghai"};
//完整属性如下所示,需要根据您产品和设备的属性来修改
//const options = {
// productKey: "a1wgoXxYRbs",
// deviceName: "Unit01",
// deviceSecret: "AEU2vP",
// regionId: "cn-shanghai"};
//3.建立连接
const client = mqtt.getAliyunIotMqttClient(options);
//4.属性数据上报
const topic = `/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`;
setInterval(function() {
//发布数据到topic
client.publish(topic, getPostData());
}, 5 * 1000);
function getPostData(){
const payloadJson = {
id: Date.now(),
params: {
Temperature: Math.floor((Math.random() * 20) + 10)
},
method: "thing.event.property.post"
}
console.log("===postData topic=" + topic)
console.log(payloadJson)
return JSON.stringify(payloadJson);
}
填上一些设备信息就可以向平台发送数据了。
2.第二个方法可以去阿里云产品文档里去找一下下载地址。和使用方法。
3.点击监控运维,设备模拟器
选择产品和设备,选择启动设备模拟器,填上数据,就可以发送指令了。
下次分享,使用java sdk接收到物联网云平台的数据并保存到自己的数据库。