订阅带有回调函数的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