写点什么

小程序无需编程,体验 IoT 物联网平台 - 物模型开发——设备接入类

作者:阿里云AIoT
  • 2023-03-09
    浙江
  • 本文字数:2973 字

    阅读完需:约 10 分钟

微信小程序码


image.png


1. 准备工作


1.1 注册阿里云账号

浏览器打开 https://aliyun.com ,开通阿里云账号,并通过支付宝实名认证。[](https://www.aliyun.com)/>



1.2 免费开通 IoT 物联网平台

在产品分类,找到物联网平台,进入产品官网,立即开通。https://aliyun.com/product/iot



2. 控制台操作步骤


2.1 创建产品

 进入物联网平台的控制台,创建产品。自定义品类,数据传输 JSON 格式

image.png


2.2 产品功能定义

在产品详情页面的功能定义选项卡,创建产品物模型。

image.png

这里我们可以导入附录里的物模型。点击获取 完整物模型 JSON,导入前需要替换对应的产品 productKey。物模型导入成功如下:

image.png


2.3 注册设备

在产品下注册设备,获得身份三元组,如下图。

image.png


3. 微信小程序操作                  


3.1 设备上线

我们打开微信,扫描小程序码,进入小程序。输入设备身份三元组,点击设备上线。如下图,可以看到设备状态为在线,小程序 log 和设备详情页面 最后上线时间一致。

image.png


3.2 上报数据

在小程序界面,点击数据上报,我们看到模拟器上报了当前湿度,温度值。在控制台设备日志也可以查到本次消息详情,如下图。

image.png

同时,在设备详情的运行状态,也能实时看到设备上报的数据。

image.png


3.3 订阅主题和数据下行

在小程序界面,点击 订阅主题,然后我们再去控制台,设备详情页面的 Topic 列表,找到对应的 topic,点击发布消息。在发布消息页面,填写消息内容,点击确认。我们就会看到在小程序端展示推送消息,如下图。

image.png

同时在设备下行日志,也可以看到完整的下行消息。

image.png


3.4 物模型-服务调用

在控制台的在线调试界面,我们选中小程序设备,选中功能 开灯(switch),输入参数{"status":"on"},点击发送命令。小程序的灯,就会变亮。如下图。

{"status":"on"} //status选项有:on ,off ,blue ,green
复制代码


image.png

在设备详情的服务调用选项卡,也可以看到服务调用记录。如下图。

image.png


3.4 物模型-事件上报

我们在小程序界面点击告警,就会生成一条事件告警,上报当前的温度。如下图。

image.png


附录:物模型 TSL

{  "schema": "https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json",  "profile": {    "productKey": "替换为你的productKey"  },  "services": [    {      "outputData": [],      "identifier": "set",      "inputData": [        {          "identifier": "temperature",          "dataType": {            "specs": {              "unit": "°C",              "min": "-20",              "max": "80",              "step": "0.1"            },            "type": "float"          },          "name": "温度"        },        {          "identifier": "humidity",          "dataType": {            "specs": {              "unit": "%",              "min": "0",              "max": "100",              "step": "0.1"            },            "type": "float"          },          "name": "湿度"        }      ],      "method": "thing.service.property.set",      "name": "set",      "required": true,      "callType": "async",      "desc": "属性设置"    },    {      "outputData": [        {          "identifier": "temperature",          "dataType": {            "specs": {              "unit": "°C",              "min": "-20",              "max": "80",              "step": "0.1"            },            "type": "float"          },          "name": "温度"        },        {          "identifier": "humidity",          "dataType": {            "specs": {              "unit": "%",              "min": "0",              "max": "100",              "step": "0.1"            },            "type": "float"          },          "name": "湿度"        }      ],      "identifier": "get",      "inputData": [        "temperature",        "humidity"      ],      "method": "thing.service.property.get",      "name": "get",      "required": true,      "callType": "async",      "desc": "属性获取"    },    {      "outputData": [],      "identifier": "switch",      "inputData": [        {          "identifier": "status",          "dataType": {            "specs": {              "length": "48"            },            "type": "text"          },          "name": "开关"        }      ],      "method": "thing.service.switch",      "name": "开灯",      "required": false,      "callType": "async"    }  ],  "properties": [    {      "identifier": "temperature",      "dataType": {        "specs": {          "unit": "°C",          "min": "-20",          "max": "80",          "step": "0.1"        },        "type": "float"      },      "name": "温度",      "accessMode": "rw",      "required": true    },    {      "identifier": "humidity",      "dataType": {        "specs": {          "unit": "%",          "min": "0",          "max": "100",          "step": "0.1"        },        "type": "float"      },      "name": "湿度",      "accessMode": "rw",      "required": true    }  ],  "events": [    {      "outputData": [        {          "identifier": "temperature",          "dataType": {            "specs": {              "unit": "°C",              "min": "-20",              "max": "80",              "step": "0.1"            },            "type": "float"          },          "name": "温度"        },        {          "identifier": "humidity",          "dataType": {            "specs": {              "unit": "%",              "min": "0",              "max": "100",              "step": "0.1"            },            "type": "float"          },          "name": "湿度"        }      ],      "identifier": "post",      "method": "thing.event.property.post",      "name": "post",      "type": "info",      "required": true,      "desc": "属性上报"    },    {      "outputData": [        {          "identifier": "temperature",          "dataType": {            "specs": {              "unit": "°C",              "min": "0",              "max": "10000",              "step": "0.1"            },            "type": "float"          },          "name": "温度"        }      ],      "identifier": "hotAlarm",      "method": "thing.event.hotAlarm.post",      "name": "温度过高报警",      "type": "alert",      "required": false,      "desc": "温度过高报警"    }  ]}
复制代码


物联网平台产品介绍详情:https://www.aliyun.com/product/iot/iot_instc_public_cn


阿里云物联网平台客户交流群

用户头像

阿里云AIoT

关注

物联网内容搬运者 2022-04-22 加入

还未添加个人简介

评论

发布
暂无评论
小程序无需编程,体验IoT物联网平台-物模型开发——设备接入类_物联网_阿里云AIoT_InfoQ写作社区