主要内容

订阅带有回调函数的MQTT主题

此示例展示如何使用MQTT客户机订阅带有回调函数的主题。

在本例中使用ThingSpeak™作为代理。

消息队列遥测传输(MQTT)是用于物联网(IoT)的OASIS标准消息传递协议。它被设计为一种非常轻量级的发布/订阅消息传输,非常适合连接具有小代码占用和最小网络带宽的远程设备。

ThingSpeak是一个物联网分析平台服务,允许您在云中聚合、可视化和分析实时数据流。您可以从您的设备向ThingSpeak发送数据,创建实时数据的即时可视化,并发送警报。

创建MQTT客户端并连接到代理

设置ThingSpeak代理并从中获取客户ID,用户名和密码。从thingspeak.com下载根证书,并使用其本地路径。在MATLAB®中分配这些值。

clientID =“您的客户编号”;用户名=“用户名”;密码=“你的密码”;rootCert =“C: \ \ thingspeakcert.cer下载”

使用适当的端口号建立到ThingSpeak的安全连接mqttclient函数。

brokerAddress =“ssl: / / mqtt3.thingspeak.com”;端口= 8883;mqClient = mqttclient(brokerAddress, Port = Port, ClientID = ClientID,...Username = Username, Password = Password, CARootCertificate = rootCert);

订阅带有回调函数的主题

若要订阅回调函数,请创建名为showmessage.的showmessage函数在触发时打印接收到的数据和相应的主题。

使用订阅函数订阅感兴趣的主题。使用名称-值对参数同时分配回调函数。显示的表格显示了订阅的主题和相应的回调函数。

topicToSub =“渠道/ 1393455 /订阅/字段/ field2”;订阅(mqClient, topicToSub, Callback =“showmessage”
ans =1×3表主题QualityOfService回调  __________________________________________ ________________ _____________ " 渠道/ 1393455 /订阅/字段/ field2 showmessage“0

写入订阅主题

要触发回调函数,MQTT客户端需要接收订阅主题的消息。使用函数将消息写入订阅的主题。

topicToWrite =“渠道/ 1393455 /发布/字段/ field2”;味精=“70”;写(mqClient, topicToWrite, msg)

触发回调函数

暂停以允许消息从MQTT客户机传输到MQTT代理,再传输回客户机。

暂停(2)

当MQTT客户端从订阅的主题接收到消息时,回调函数showmessage自动触发。下面的上下文在MATLAB命令窗口中打印。

主题:channels/1393455/subscribe/fields/field2, Message: 70

关闭MQTT客户端

通过从工作空间中清除MQTT客户端变量关闭对ThingSpeak的访问。

清晰的mqClient
Baidu
map