跳到主要内容

连接MQTT设备

获取模版

请在 examples/mqttDeviceShifu 查看模板文件。

修改配置

examples/mqttDeviceShifu/mqtt_deploy/mqtt_edgedevice.yaml 中:

...
spec:
sku: "testMQTT" # 修改此值
connection: Ethernet
address: 192.168.62.231:1883 # 修改此值
protocol: MQTT
protocolSettings:
MQTTSetting:

examples/mqttDeviceShifu/mqtt_deploy/mqtt_deviceshifu_configmap.yaml 中:

...
data:
driverProperties: |
driverSku: testMQTT
driverImage:
instructions: |
instructions: # 一条命令可以订阅一个topic,如需订阅多个topic,增加命令即可
get_topicmsg1: # 修改此值
protocolPropertyList:
MQTTTopic: "/test/test1" # 修改此值
get_topicmsg2:
protocolPropertyList:
MQTTTopic: "/test/test2"
... # 根据自己的需要可继续配置命令及对应的Topic,只需按照此格式继续添加即可

部署deviceShifu

运行下面的命令:

kubectl apply -f examples/mqttDeviceShifu/mqtt_deploy

获取设备最新的MQTT消息

在您的集群中运行下面的命令:

curl deviceshifu-mqtt/get_topicmsg1

这里 get_topicmsg1 是需要查询的字段。

MQTT deviceShifu 返回的内容如下:

{"mqtt_message":"test2333","mqtt_receive_timestamp":"2022-04-29 08:57:49.9492744 +0000 UTC m=+75.407609501"}

其中 mqtt_message 是设备接受到的最新字符串。mqtt_receive_timestamp 是接收到该消息的时间戳。

通过deviceShifu发布MQTT消息

在您的集群中运行下面的命令:

curl -X POST -d 'test_publish' deviceshifu-mqtt/get_topicmsg1

这里 get_topicmsg1 是需要查询或发布的字段。

发布之后,再次查询MQTT deviceShifu 返回的内容如下:

{"mqtt_message":"test_publish","mqtt_receive_timestamp":"2022-04-29 08:57:59.7397692 +0000 UTC m=+75.407609501"}