腾讯云物联网开发平台(IoT Explorer)为各行业的设备制造商、方案商及应用开发商提供一站式设备智能化服务。平台提供海量设备连接与管理能力及小程序应用开发能力,并打通腾讯云基础产品及 AI 能力,提升传统行业设备智能化的效率,降低用户的开发运维成本,助力用户业务发展。
登录腾讯云物联网开发平台(IoT Explorer),点击“立即使用”进入控制台。
项目是为了用户面对不同的产品迭代或不同的项目角色而设计的一种隔离机制,便于用户清晰管理物联网项目,并能灵活地配置项目权限。
点击新建项目,填写项目名称和简介:
点击项目名称进入到该项目中,点击新建产品:
填写产品的一些信息:
产品新建成功后,可在产品列表页查看到“智能灯”。
数据模板是将物理实体设备进行数字化描述,构建其数字模型。在物联网开发平台定义数据模板即定义产品功能。完成功能定义后,系统将自动生成该产品的数据模板。
进入产品,点击新建功能:
填写功能信息。
功能类型包含三元素:
功能元素 | 功能描述 | 功能标识符 |
---|---|---|
属性 | 用于描述设备的实时状态,支持读取和设置,如模式、亮度、开关等。 | PropertiesId |
事件 | 用于描述设备运行时的事件,包括告警、信息和故障等三种事件类型,可添加多个输出参数,如环境传感器检测到空气质量很差,空调异常告警等。 | EventId |
行为 | 用于描述复杂的业务逻辑,可添加多个调用参数和返回参数,用于让设备执行某项定特定的任务,例如,开锁动作需要知道是哪个用户在什么时间开锁,锁的状态如何等。 | ActionId |
数据类型支持6种:
选择“智能灯”类型后,系统会自动生成标准功能:
数据模板是一个 JSON 格式的文件,使用数据模板协议,用户的设备需按数据模板定义要求传输设备数据到云端,并可使用基于数据模板的诸多业务功能,点击查看json可以看到上面创建功能的json格式:
{
"version": "1.0",
"properties": [
{
"id": "power_switch",
"name": "电灯开关",
"desc": "控制电灯开灭",
"required": true,
"mode": "rw",
"define": {
"type": "bool",
"mapping": {
"0": "关",
"1": "开"
}
}
},
{
"id": "color",
"name": "颜色",
"desc": "灯光颜色",
"mode": "rw",
"define": {
"type": "enum",
"mapping": {
"0": "Red",
"1": "Green",
"2": "Blue"
}
}
},
{
"id": "brightness",
"name": "亮度",
"desc": "灯光亮度",
"mode": "rw",
"define": {
"type": "int",
"unit": "%",
"step": "1",
"min": "0",
"max": "100",
"start": "1"
}
},
{
"id": "name",
"name": "灯位置名称",
"desc": "灯位置名称:书房、客厅等",
"mode": "rw",
"required": false,
"define": {
"type": "string",
"min": "0",
"max": "64"
}
}
],
"events": [
{
"id": "status_report",
"name": "DeviceStatus",
"desc": "Report the device status",
"type": "info",
"required": false,
"params": [
{
"id": "status",
"name": "running_state",
"desc": "Report current device running state",
"define": {
"type": "bool",
"mapping": {
"0": "normal",
"1": "fault"
}
}
},
{
"id": "message",
"name": "Message",
"desc": "Some extra message",
"define": {
"type": "string",
"min": "0",
"max": "64"
}
}
]
},
{
"id": "low_voltage",
"name": "LowVoltage",
"desc": "Alert for device voltage is low",
"type": "alert",
"required": false,
"params": [
{
"id": "voltage",
"name": "Voltage",
"desc": "Current voltage",
"define": {
"type": "float",
"unit": "V",
"step": "1",
"min": "0.0",
"max": "24.0",
"start": "1"
}
}
]
},
{
"id": "hardware_fault",
"name": "Hardware_fault",
"desc": "Report hardware fault",
"type": "fault",
"required": false,
"params": [
{
"id": "name",
"name": "Name",
"desc": "Name like: memory,tf card, censors ...",
"define": {
"type": "string",
"min": "0",
"max": "64"
}
},
{
"id": "error_code",
"name": "Error_Code",
"desc": "Error code for fault",
"define": {
"type": "int",
"unit": "",
"step": "1",
"min": "0",
"max": "2000",
"start": "1"
}
}
]
}
],
"profile": {
"ProductId": "FWR8PGACUS",
"CategoryId": "3"
},
"actions": []
}
在【设备调试】页面中,单击【新建设备】,设备名为 dev001:
TencentOS tiny项目工程中包含了explorer的demo工程,进入
TencentOS-tiny\board\TencentOS_tiny_EVB_MX_plus\KEIL\qcloud_iot_explorer_sdk_data_template
目录,双击TencentOS_tiny.uvprojx,用mdk打开Demo工程。
修改HAL_Device_tencentos_tiny.c文件,在
TencentOS-tiny\components\connectivity\qcloud-iot-explorer-sdk\port\TencentOS_tiny
目录中:
将上图红色线框中的数据分别替换为控制台 “设备详情页” 中的参数并保存。
修改entry.c,这里esp8266_join_ap函数的入参,填写用户自己的wifi热点名字及密码。
将esp8266模组插入到开发板模组接口上。
编译,下载程序到开发板中,复位开发板开始运行,可以在串口助手中查看打印信息。
保持 light Demo 程序为运行状态。
进入【控制台】>【产品开发】>【设备调试】,可查看到设备 “dev001” 的状态为“上线”状态,表示 Demo 程序已成功连接上开发平台。
在串口助手中可以看到设备在等待平台下发控制指令:
在云端平台进入设备在线调试,下发控制指令:
可以看到设备收到后在串口打印:
同时可以看到设备的OLED屏幕上显示也已变化:
在云端的数据模板中手动新建一个设备行为功能:
在data_template_sample.c
文件中使能Action:
重新,编译下载,按复位运行。
修改config.h
文件,开启事件支持:
修改data_template_sample.c
文件,开启事件上报示例:
编译程序,下载到开发板中,复位。