Eclipse Kura 作为 MQTT server 为传感器提供服务,实现 Eclipse Kapua 集成
Eclipse Kura 作为边缘计算网关应用套件,功能非常强大,作为一个基础性框架,在上面跑一些用户应用,那是非常合适的。
一、启用 Kura 上面支持 MQTT broker
进入 Kura web console,开启Simple Artemis MQTT Broker,测试中暂定 usename 和 password 都为 mqtt。
登录 Kura 设备后台,查看 TCP 1833 端口已经开启
root@raspberrypi:/home/pi# netstat -nlpt |grep 1883
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN 427/java
二、模拟 MQTT 设备发送数据
使用 Chrome 浏览器插件 MQTTBox 登录我们的 MQTT server
三、安装 Kura 插件
使用 Eclipse marketplace 安装以下插件
- Apache Camel MQTT endpoint
- Apache Camel Groovy language support
- Apache Camel GSON data format
四、创建新的 Component
创新 component
并输入以下内容
<routes xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="paho:humidity/sensor1/humidity?brokerUrl=tcp://localhost:1883&clientId=route1&userName=mqtt&password=mqtt"/>
<unmarshal><json library="Gson"></json></unmarshal>
<transform><simple>${body["humidity"]}</simple></transform>
<transform><groovy>["HUMIDITY": request.body/100, "ASSETNAME": "HrY", "SENSOR": "sensor1"]</groovy></transform>
<to uri="seda:wiresOutput1"/>
</route>
</routes>
五、创建一个 Cloud publisher
六、新建一个 Wire Graph
Camel Consumer - camel_comsumer
Publisher - pub_camel1
把两个相连起来
七、发送数据,测试 Kapua 数据接收情况
发布/订阅 主题topic: humidity/sensor1/humidity
发送数据验证
Kapua 接收,查询结果
修改camel routes,支持解析json字段:
["HUMIDITY": request.body.humidity/100, "TEMPERATURE": request.body.temperature/100, "ASSETNAME": "TH", "SENSOR": request.body.imei]topic:
/temperature_humidity
payload:
{"humidity": 9988, "temperature": 2234,"imei":"8644493040155484"}