??腾讯云物联网开发平台(IoT Explorer)为客户提供便捷的物联网开发工具与服务,助力客户更高效的完成设备接入,并为客户提供物联网应用开发及场景服务能力,帮助客户高效、低成本构建物联网应用。
??该平台支持设备连接、设备管理、数据分析和应用开发等功能的实现,并具有丰富的API和SDK,方便开发者快速开发应用。同时,该平台还提供安全可靠的连接和数据传输服务,保障设备与应用之间的通信安全。
??腾讯云物联网开发平台还提供了丰富的行业解决方案和最佳实践案例,帮助客户快速实现物联网应用。同时,该平台还支持多种不同的设备和应用场景,可以满足不同客户的需求。
??关于物联平台可参考博客:腾讯物联网平台连接案例
??在正常产品开发中,有时我们需要多个硬件设备之间相互控制,而且没个设备均为独立个体连接物联网平台,如下图所示:
??在本案例中,有4个设备,其中有3个WIFI的子设备,作为独立模块连接腾讯物联网平台,实现功能分别为烟雾采集、温湿度采集和继电器控制;A9开发板为主控制器,实现实时显示各项数据和远程控制。即实现4个设备之间组网,并且需要实现跨设备相互订阅。也就是A9开发板需要通过物联网平台订阅三个子设备的数据,而继电器设备需要定义A9开发板数据来实现远程开关功能。
??在默认的物联网平台应用中,默认设备之间是无法实现数据的相互订阅,要想实现上述案例,则可以使用规则引擎,来达到消息转发目的。
??基于 Topic 进行通信时,您可以使用规则引擎对 Topic 中的数据进行处理,然后转发到腾讯云其它服务或用户的业务后台服务。您无需购买服务器部署分布式架构,只需通过规则引擎在控制台上进行配置即可实现采集 + 计算 + 存储等全栈服务。以下是支持转发的类型:
数据转发到另一个 Topic。
数据转发到第三方服务。
数据转发到消息队列 CKafka。
数据转发到时序数据库 CTSDB。
数据转发到云数据库 MySQL。
数据转发到云数据库 MongoDB。
规则引擎文档链接
??参考文档:腾讯物联网平台规则引擎
??要实现多设备相互订阅,则需要通过规则引擎实现,而使用规则引擎,则需要先创建一个物联网平台应用案例,创建过程这里不再介绍,本次案例为创建4个设备,设备之间数据相互订阅。物联网项目创建如下。
??创建4个设备,分别为继电器,主控器A9,DHT11温湿度采集,MQ2烟雾采集。其中继电器、温湿度、MQ2数据需要再主控制器A9实现显示和实现控制。
??要达到相互订阅功能,就需要实现规则引擎。
??规则引擎提供多种函数,您可以在规则引擎的字段,条件以及数据库字段对应的值中使用这些函数,实现数据的多样化处理。
规则引擎参考说明文档:规则引擎函数说明文档
??本次我以主控板A9订阅MQ2烟雾数据和下发继电器控制命令为例,介绍数据筛选规则写法。
??首先,需要确定MQ2数据上报格式和继电器命令下发格式,数据格式如下:
//MQ2烟雾数据
"{\"method\":\"report\",\"clientToken\":\"123\",\"params\":{\"MQ2\":666}}"
//继电器命令数据
"{\"method\":\"report\",\"clientToken\":\"000001\",\"params\":{\"JDQ\":1}}"
??需要将上述数据进行转发订阅,则设置字段信息如下:
??字段内容填写可以用来筛选需要转发的内容,此次我们需要转发的内容为MQ2和JDQ。若不需要筛选数据,转发所有内容,则直接填 * 即可。
params.MQ2,params.JDQ
??至此,相互订阅功能云端配置完成,进一步完成硬件配置即可实现多个独立设备之间数据相互订阅。