操作场景
假设一款智能灯接入到物联网开发平台,通过物联网开发平台可以远程控制灯的亮度、颜色、开关,并实时获取智能灯上报到物联网开发平台的数据。本文档主要指导您如何基于 TencentOS-tiny 物联网操作系统,使用 MQTT 协议在物联网开发平台控制台接入智能灯。
前提条件
为了通过下面的步骤快速理解该业务场景,需要做好以下准备工作:
准备 TencentOS-tiny 官方 EVB_MX_Plus 开发板以及一个 ESP8266 Wi-Fi 模组。
控制台操作
创建项目
1. 登录 物联网开发平台控制台。 单击新建项目,填写“项目名称”和“项目描述”。
项目名称:输入“智能灯演示”或其他名称。
项目描述:按照实际需求填写项目描述。
![](https://qcloudimg.tencent-cloud.cn/image/document/b6b882d6fc03fa16dcc4e56ff80b5411.jpeg)
![](https://qcloudimg.tencent-cloud.cn/image/document/b6b882d6fc03fa16dcc4e56ff80b5411.jpeg)
2. 项目基本信息填写完成后,单击保存,即可完成项目创建。
3. 项目创建成功后,即可新建产品。
新建产品
1. 进入该项目的产品列表页面,单击新建产品。
2. 在新建产品页面,填写产品基本信息。
产品名称:输入“智能灯”或其他产品名称。
产品品类:选择智慧城市 > 公共事业 > 路灯照明。
设备类型:选择“设备”。
认证方式:选择“密钥认证”。
通信方式:按需选择。
数据协议:默认为“数据模板”。
描述:按照实际需求填写项目描述。
![](https://qcloudimg.tencent-cloud.cn/image/document/c95fd7ba34b38f736e802c6a76eff925.jpeg)
![](https://qcloudimg.tencent-cloud.cn/image/document/c95fd7ba34b38f736e802c6a76eff925.jpeg)
3. 产品信息填写完成后,单击保存,即可完成产品创建。
4. 产品创建成功后,可在产品列表页查看到“智能灯”。
创建数据模板
当新建产品将“产品类型”选择为路灯照明时,此时单击该产品进入产品详情页,系统将会自动生成标准功能。
![](https://qcloudimg.tencent-cloud.cn/image/document/aedde3a7c0687d80ce02a0cda41baf37.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/aedde3a7c0687d80ce02a0cda41baf37.png)
创建测试设备
在设备调试页面中,单击新建设备,设备名为 dev001。
![](https://qcloudimg.tencent-cloud.cn/image/document/2191a7e2cee447aece53b76a31622029.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/2191a7e2cee447aece53b76a31622029.png)
开发板实物操作
硬件连接
开发板实物如下:
![](https://qcloudimg.tencent-cloud.cn/image/document/0630d46b4e98cd196f804ec00e254907.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/0630d46b4e98cd196f804ec00e254907.png)
1. 使用 USB 线连接到开发板顶端的 USB 接口,在为开发板供电的同时,可以在 PC 端通过串口调试助手查看输出日志。
2. 使用 ST-Link 下载器连接开发板右侧的接口,为开发板下载程序。
3. 将开发板配套的 ESP8266 模组插入到开发板右侧的通信模组接口。
串口准备
1. 硬件连接成功后,打开 PC 端上的设备管理器,即可查看开发板所对应的串口(请确保已安装 CH340 驱动)。
![](https://qcloudimg.tencent-cloud.cn/image/document/2e7c24d4702d95afb0bada15dd5ae7fb.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/2e7c24d4702d95afb0bada15dd5ae7fb.png)
2. 打开串口工具,做好相应配置后,打开串口。
端口号:本例中为 COM20。
波特率:本例中为 115200。
![](https://qcloudimg.tencent-cloud.cn/image/document/7f7a6051d24f9ad9a4313eed9bba95ed.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/7f7a6051d24f9ad9a4313eed9bba95ed.png)
属性上报和控制命令下发
步骤1:下载官方例程
1. 使用 git 工具下载 TencentOS-tiny 源码,也可以访问 Github 官方仓库下载。
git clone https://github.com/Tencent/TencentOS-tiny.git
2. 下载之后,进入 ![](https://qcloudimg.tencent-cloud.cn/image/document/33507ebbd93295346d169d19b30fe009.png)
TencentOS-tiny\\board\\TencentOS_tiny_EVB_MX_Plus\\KEIL\\qcloud_iot_explorer_sdk_data_template
目录。
![](https://qcloudimg.tencent-cloud.cn/image/document/33507ebbd93295346d169d19b30fe009.png)
3. 示例工程中包含 STM32L431 外设驱动、TencentOS-tiny 内核、AT 框架、SAL 框架、腾讯云 C-SDK,以及示例程序。
步骤2:配置修改
1. 双击
TencentOS_tiny.uvprojx
打开工程(请确保已经安装好 Keil-MDK 开发环境)。2. 在
TencentOS-tiny\\components\\connectivity\\qcloud-iot-explorer-sdk\\port\\TencentOS_tiny
目录:2.1 修改
HAL_Device_tencentos_tiny.c
文件。2.2 登录 物联网开发控制台,单击项目 > 产品开发 > 设备调试,单击调试进入设备详情页,将下图红色线框中的数据分别替换为“设备详情页”中的参数并保存。
产品 ID: 将控制台的产品 ID ,复制到下图 sg_product_id。
设备名称: 将控制台的设备名称,复制到下图 sg_device_name。
设备密钥:将控制台的设备密钥,复制到下图 sg_device_secret。
![](https://qcloudimg.tencent-cloud.cn/image/document/491c3cfed8afc6f0e3cacae491dd5431.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/491c3cfed8afc6f0e3cacae491dd5431.png)
3. 修改 entry.c 中的 Wi-Fi 网络接入配置信息。
![](https://qcloudimg.tencent-cloud.cn/image/document/8e6b3e2f2b8393b0c67d91a1551d652e.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/8e6b3e2f2b8393b0c67d91a1551d652e.png)
步骤3:编译
单击 MDK 工具栏Rebuild All,编译整个工程。
步骤4:下载
单击 MDK 工具栏Download,下载编译完成的固件。
步骤5:查看运行结果
在串口助手中可以看到设备在上报之后处于等待平台下发控制指令的状态。
![](https://qcloudimg.tencent-cloud.cn/image/document/b4dd0353454ba5af4b6d1923b087f7a8.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/b4dd0353454ba5af4b6d1923b087f7a8.png)
物联网平台查看上报数据
1. 保持系统处于运行状态。
2. 登录 物联网开发控制台,单击项目 > 产品开发 > 设备调试,可查看到设备 "dev001" 。
3. 单击调试,可进入设备详情页。
![](https://qcloudimg.tencent-cloud.cn/image/document/4408648387d46659fdeec19692faf8ab.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/4408648387d46659fdeec19692faf8ab.png)
4. 单击设备属性,可查询设备上报到开发平台的最新数据及历史数据。
最新值:显示设备上报的最新数据。
更新时间:显示数据的更新时间。
历史数据:单击查看,可查看某个属性的历史上报数据。
![](https://qcloudimg.tencent-cloud.cn/image/document/907ee29c1d9c6672ac66cb2a9f030f5d.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/907ee29c1d9c6672ac66cb2a9f030f5d.png)
物联网平台在线调试
1. 在控制台设备调试列表,单击在线调试,进入在线调试。
2. 设置电灯开关为 on,颜色为 Green,亮度为3,单击发送。
![](https://qcloudimg.tencent-cloud.cn/image/document/3b2b7024bae8a8d131f94871c0a3ff93.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/3b2b7024bae8a8d131f94871c0a3ff93.png)
3. 在串口上查看系统打印的串口日志,判断出系统成功收到并响应了下发的控制指令。
![](https://qcloudimg.tencent-cloud.cn/image/document/3bca805a45521123de499288803b57ee.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/3bca805a45521123de499288803b57ee.png)
4. 同时,在开发板的OLED显示屏幕上,可以看到系统模拟出的智能灯状态。
![](https://qcloudimg.tencent-cloud.cn/image/document/c55707b798d38cc207ea8f9cfac4d181.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/c55707b798d38cc207ea8f9cfac4d181.png)
设备行为调用
1. 在物联网开发控制台 > 项目 > 产品开发 > 数据模板 > 新建功能,手动新建一个 设备行为功能。
![](https://qcloudimg.tencent-cloud.cn/image/document/391d099a1d7b06f90fb9010ad442e2a5.jpeg)
![](https://qcloudimg.tencent-cloud.cn/image/document/391d099a1d7b06f90fb9010ad442e2a5.jpeg)
2. 修改工程文件,在![](https://qcloudimg.tencent-cloud.cn/image/document/2c353019d0194bc08ee520b10eb6a8a2.png)
data_template_sample.c
文件中使能 Action。
![](https://qcloudimg.tencent-cloud.cn/image/document/2c353019d0194bc08ee520b10eb6a8a2.png)
3. 重新编译下载,在开发板上按下复位键使系统运行。
4. 在物联网开发控制台上下发设备行为调用。
![](https://qcloudimg.tencent-cloud.cn/image/document/bad5f310b4c4afc6814c4003ed5e46b3.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/bad5f310b4c4afc6814c4003ed5e46b3.png)
5. 在串口助手中可查看到设备行为被调用。
![](https://qcloudimg.tencent-cloud.cn/image/document/93713420cb842bbd9252ee97b28712d7.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/93713420cb842bbd9252ee97b28712d7.png)
设备事件上报
1. 修改工程文件中的![](https://qcloudimg.tencent-cloud.cn/image/document/3e7611ae1111dee4174db34cc052f7ae.png)
config.h
文件,将设备行为调用支持屏蔽,开启设备事件上报支持。
![](https://qcloudimg.tencent-cloud.cn/image/document/3e7611ae1111dee4174db34cc052f7ae.png)
2. 修改工程文件中的![](https://qcloudimg.tencent-cloud.cn/image/document/3329dfeedc0e0ab8a5bd9776801c98c5.png)
data_template_sample.c
文件,关闭设备行为调用示例,开启事件上报示例。
![](https://qcloudimg.tencent-cloud.cn/image/document/3329dfeedc0e0ab8a5bd9776801c98c5.png)
3. 编译程序,下载到开发板中,在开发板上按复位使系统运行。
4. 在串口助手中可查看到设备上报事件的日志。
![](https://qcloudimg.tencent-cloud.cn/image/document/aa4559c47a3f9d8301e9ced1a14ad060.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/aa4559c47a3f9d8301e9ced1a14ad060.png)
5. 在物联网开发控制台上可查看到设备上报事件的日志。
![](https://qcloudimg.tencent-cloud.cn/image/document/9ba5c6d9d842e34a12b8d3945de5813a.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/9ba5c6d9d842e34a12b8d3945de5813a.png)