阿里云IOT套件从入门到精通-初级篇之设备间通讯-规则引擎-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

阿里云IOT套件从入门到精通-初级篇之设备间通讯-规则引擎

晟哥带你飞 2017-03-10 09:57:37 7350

阿里云IOT套件中设备间通讯-规则引擎


设备间通讯模型


控制台的基本使用实现设备之间的通信

1. 登录阿里云物联网套件
2. 进入控制台
3. 在这里创建产品以及产品下的设备
这里模拟场景便于理解demo ,首先有两个个产品湿度传感器和空调
         湿度传感器随时监控室内湿度, 如果湿度低于20%, 发送消息指令给空调, 空调开启并加湿空气。
一、 创建产品


二、 创建产品下的设备

效果如下:湿度传感器产品下有一个 humidity_sensor1 的设备;空调产品下有一个air_conditioner 的设备。








4. 现在来 实现湿度传感器产品下的humidity_snesor1 设备检测到室内空气湿度太低, 发送消息指令给空调产品下的air_conditioner 设备来加湿空气
一、 规则引擎通过Topic 的转发来实现设备间的信息交互
首先明确的是设备的topic 只有具有订阅权限才可以被设备订阅, 从而获得topic 中的消息,而默认情况下设备都有三个模板topic 分别是:
/productKey/deviceName/get          ( 默认只有订阅权限)
/productKey/deviceName/update       ( 默认只有发布权限)
/productKey/deviceName/update/error  ( 默认只有发布权限)

所以,规则引擎需要做的事就是从设备humidity_snesor1 的/pk/xxxx/update 中获得消息转发到设备air_conditioner 中的/pk/xxxx/get 中,然后设备air_conditioner 订阅自己的/pk/xxx/get 从而获得消息。
(一) 从公网帮助文档中下载设备接入的SDK



(二) 直接下载demo 部署在IDE 上




(三)代码片段中修改为自己新建的产品设备的相关信息
设备humidity_sensor1和设备air_conditioner都要修改


String productKey = "xxxxxx"; //这个是湿度传感器产品的product key
String productSecret = "xxxxxx";//这个是湿度传感器产品的product secret
final String deviceName = "xxxxxx";//这个是设备名称
String deviceSecret = "xxxxxx";//这个是设备秘钥
String targetServer = "iot-as.aliyuncs.com:80";//接入服务器域名
Integer humidity = 6;//模拟室内湿度 60%


//用于测试的topic
String GetTopic = "/" + productKey + "/" + deviceName + "/get";
String UpdateTopic = "/" + productKey + "/" + deviceName + "/update";


(四) 然后配置规则引擎



规则引擎里主要配置SQL 和转发数据




i. 配置SQL[table=100%][tr][td]  
ii. 配置转发( 转发到另一个topic)
[table=100%][tr][td]


(五) 启动规则引擎


(六) 现在启动设备端humidity_sensor1 和air-conditiner
    a). 这里首先启动air-conditioner 然后再启动humidity_sensor1 。因为设备的消息流向是humidity_sensor1 air-conditiner 。发消息的后启动。


(七) 说明连接成功,此时刷新设备的页面查看设备的状态是否上线
设备humidity_sensor1 启动


设备air-condition 启动



(八)发送消息(两种方式:代码和网页发送消息,不过为了消息的通用性最好发送JSON格式数据)
a)代码发送:只需按顺序启动客户端就可以看到消息的发送和接收
b)网页发送(pop):在湿度传感器产品的humidity_sensor1设备下的update topic 中发送消息,观察控制台能否收到消息






网页发送消息(pop), 客户端收到消息


(九)依次启动设备端 观察控制台灯泡产品下的humidity_sensor1 设备和空调产品下的air-conditioner 设备是否则到消息:
湿度传感器收到消息指令


空调收到湿度传感器的消息

至此,说明设备之间的通讯完成。






传感器 SQL JSON 监控 IDE 物联网 开发工具 数据格式
分享到
取消 提交回答
全部回答(3)
  • summerlabs
    2017-06-30 10:55:14
    Re阿里云IOT套件从入门到精通-初级篇之设备间通讯-规则引擎
    谢谢 调通了!!哈哈 在研究研究json在sql中的运用
    0 0
  • 晟哥带你飞
    2017-06-06 15:31:07
    回 1楼hyjerry的帖子
    对,这样就将湿度传感器设备发的消息通过规则引擎转发到了空调设备中,空调即可收到消息。
    0 0
  • hyjerry
    2017-04-01 14:16:28
    Re阿里云IOT套件从入门到精通-初级篇之设备间通讯-规则引擎

    您好,第四步配置规则引擎》配置SQL时,是不是这样理解:


    规则查询语句设为:本账号/湿度传感器/humidity_sensor/update
    配置转发(发布到另一个topic) 设为:本账号/空调/ air_conditioner/get


    在湿度传感器设备上 代码publish 数据到TOPIC_UPDATE  对应 "/"PRODUCT_KEY"/"DEVICE_NAME"/update"


    在空调上代码 subscribe 订阅TOPIC_GET对应 "/"PRODUCT_KEY"/"DEVICE_NAME"/get"
    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程