图片缩略图

在MATLAB MQTT

连接到MQTT代理并发布/订阅代理上的主题。
3.3
24次评级

108下载

更新2019年7月29日

视图版本历史

查看许可证

通过TCP或websocket协议连接到符合MQTT的代理。连接后,在代理上订阅主题或通配符。定义自定义函数来评估接收订阅主题上的消息。将消息发布到代理上的主题。发布和订阅功能都支持所有的Qo金宝appS级别。

您还可以通过TCP和websocket使用TLS v1.2建立到代理的安全连接。

引用作为

Mathworks的东西互联网团队(2021)。在MATLAB MQTT(//www.tatmou.com/matlabcentral/fileexchange/64303-mqtt-in-matlab),Matlab中央文件交换。检索到

评论和评级(52

时尚Wijaya

请帮助我!我可以使用这个库连接谷歌云物联网吗?文档我不是很清楚,我不能打开库文件学习他们如何工作建设MQTT交流(我需要知道,因为我在谷歌云物联网需要阅读文档MQTT客户机来填补一些参数如项目号、地区,Registry-ID,和设备id)。有人能帮帮我吗?

时尚Wijaya

Valerio Trobiani.

thanakorn khamvilai

有这个simulink金宝app版本吗?

弗雷德里克·Malmsten

我还遇到过字符串编码导致无法发送二进制消息的问题。太糟了:- (((

尼古拉斯

非常有用的API。然而,我想支持Sinan Kalafat关于无限缓冲的评论。由于wolfgangpreindl也在经历慢速,这对于实时应用程序或更高的数据速率来说是一个真正的问题。您是否可以在将来的版本中添加一个函数来清除订阅和连接的缓冲区?

彼得伽玛

在Matlab中有MQQT很好
我只错过了Ant +传感器的示例:
https://ch.mathworks.com/matlabcentral/answers/589441-is-there-an-example-how-to-stream-ant-sensor-data-over-mqtt-to-matlab?s_tid=prof_contriblnk
对于蓝牙低能传感器:
https://ch.mathworks.com/matlabcentral/answers/589501-is-there-an-example-to-stream-bluetooth-low-energy-sensor-data-over-mqtt-to-matlab?s_tid=prof_contriblnk
自从长时间寻找用于传输Ant +和蓝牙低能量传感器数据进行MATLAB的解决方案。MQTT是建立这座桥的最有希望的解决方案。

奥沙尼鲁拉

Sinan Kalafat.

不幸的是,订阅无限地缓冲了所接收的数据,并且没有办法清除数据。由于也没有办法编辑.p文件,这几乎没用以进行实时目的。

沃尔夫冈Preindl

您好,我正在使用的工具für实时数据交换在一个hil环境中。我的S金宝appimulink模型每1秒从不同主题(aprox.10不同的主题)从不同主题(aprox。10不同的主题)获得了JSON编码的值。在通过MQTT上交换几个小时后,模型正在减速。它似乎是MQTT函数IST存储内部函数工作空间中的所有数据,从而减慢整个过程。从MATLAB命令窗口停止金宝appSimulink模型结果导致以下错误:

警告:在计算监听器回调时发生错误。
在tabular/vertcat中被用户终止的操作(第164行)
在mqttio.datamanager / setectata中
在mqttio。Mqtt / dataAvailable
在mqttio.Mqtt > @(变长度输入宗量)obj.dataAvailable变长度输入宗量({}):
在HgFeval(第62行)
变长度输入宗量函数宏指令(fcn {1}, {:}, fcn{2:结束});
在javaaddlistener>cbBridge中(第52行)
hgfeval(响应、java (o)、e.JavaEvent)
在javaaddlistener> @(o,e)cbbridge(o,e,响应)(第47行)
@ (o, e) cbBridge (o, e,响应));
警告:在计算监听器回调时发生错误。

惟一的解决办法是定期断开并重新启动mqtt连接。有什么不同的解决方案吗?

哈立德回历的七月

我和托比约恩·赫古姆遇到了同样的问题。Python正确地解码了数据,所以我确定这是Matlab的问题。我尝试了尽可能多的解码方案,例如:
unicode2native(数据、windows - 1252)
我已经尝试改变系统和Matlab区域,在Windows中启用UTF-8等。
这个问题有解决办法吗?这是一个遗憾,因为它工作良好,否则,但它是不可用的。

Stijn Helsen.

很抱歉给出这么低的评级,但是我得到一个警告“mqtt”。p是比MATLAB文件mqtt....”和错误,如“未定义的函数或变量'创建'。".
在对MQTT一无所知的情况下,我只是想看看这些代码是否对我有用。(我使用R2018b。-也许“兼容任何版本”的声明是不正确的?)

dsdsds

dsdsds

阿布Pokhrel

torbjørnhergum

编码问题:我正在从另一个客户端发送一系列uInt8值,并希望在matlab中获取数值数据。请注意,我正在发送“原始”整数,而不是字符串。matlab上的收到消息是一个字符串。如何正确解码对数值的?

double(char(消息))的输出对于128以下和159以上的值工作得很好,我认为这是由于matlab使用编码解释数字,例如UTF-8。我只想要原始数据。请建议。

以下是预期数据(左)和获得数据(右)的专家。
125 125
126 126
127 127
128 8364
129 65533
130 8218
131 402
132 8222
133 8230
134 8224
135 8225
136 710
137 8240
138 352
139 8249.
140 338
141 65533
142 381
143 65533
144 65533
145 8216
146 8217
147 8220
148 8221
149 8226
150 8211
151 8212
152 732
153 8482
154 353
155 8250
156 339
157 65533
158 382
159 376.
160 160
161 161
162 162

Sylvain.

非常直接处理,您需要了解您的IP地址(不确定“localhost”是否识别)。当然,您需要了解经纪人的港口

如果你需要阅读你订阅的一个主题,确保你在阅读这个主题之前暂停最少的时间(使用pause (0.1))
我正在使用Arduino UNO在我的MQTT代理上以2Hz的频率发布一个鼻窦,因此可以一致地生成数据。我在MATLAB中使用下标函数,在一个while循环(结合动画线)。
总的来说,它起到了部分作用。一旦脚本完成,它似乎会继续运行,并冻结MATLAB。

Haihong黄

如何实时接收msgs?

安东尼奥Catalano

我正在使用这个工具与AWS IOT通信,问题是当我尝试使用MQTT()函数创建MQTT对象时,它与代理断开连接,因此我无法使用发布()函数。

陈的电脑

提供没有P-Code Pleeeeease ...
需要编译的程序。exe....

艾南卡里姆

您好,我已经使用发布了,它是工作,但我有订阅的问题我使用了[MySub =订阅(MyMQTT,'/主题/ out');
Readall(MySub);}它是返回的评论(没有消息。),为什么?请问吗?

沙赫巴兹伊姆兰

弗朗索瓦DELOYE

嗨,是否有可能在断开与代理的连接后断开重新连接,而不必调用mqtt(代理ip)创建命令,这样就不需要再次执行主题订阅

托比昂

Martí Solà i Planagumà

Teja Emmey

你好。是否可以使用“回调”函数将发布的消息保存到结构变量中?
是否可以只读一定数量的旧消息(例如:仅限10个最新消息)。以及如何使用“msgarriveEvent”功能和“通知”功能

Patryk Kostrzewa.

Christoph

嗨,谢谢这个客户。我可以在thingsboard.com网站上设置,但是我需要订阅一个话题。我基本上使用了Sven提供的例子<-谢谢!Error msg is "Invalid QoS value 128 returned by broker. "订阅失败了。”任何帮助我都非常感激。

Chien-Hsi Chen

我刚刚就我的问题联系了MathWorks Support,并按金宝app照他们的建议解决了这个问题。
该解决方案是在MATLAB编译器中包含“MATLAB”工具箱“MQTT中的MQTT中的MQTT”中的每个文件。
编译器可以在包装期间显示警告标志,但编译的程序工作正常。
我希望如果有人有同样的问题会发现它有帮助。

Chien-Hsi Chen

大家好,
我正在使用R2018B,我也有“未定义变量”com“或commathworks.mqttclient.client.client”“的错误错误。在我的情况下,我尝试在指南制作的GUI中使用此MQTT,但不知何故,它只能在正常的MATLAB中工作,但不适用于编译的独立版本(MATLAB中的MQTT中的所有.p文件已手动添加)。
我还试图在编译它们之前包含两个.jar文件,但这不起作用,Matlab会抱怨这两个文件已经指定。
有没有人能给出详细的解决方案?
先感谢您!

卡洛斯-罗德里格斯

在连接到MQTT代理时,我无法在文档中找到如何设置最后一个WILL和遗嘱(LWT)。此功能是否支持?金宝app

alicia lotz.

有人用RabbitMQ代理测试过工具箱吗?

凯尔哈古斯

我解决了“未定义的变量”或类“com.mathworks.mqttclient.client。客户端"通过添加以下路径到我的javaclasspath(我有R2018a,它没有工作):
javaaddpath(' \ mqtt \ mqttasync.jar');
javaaddpath(“< install_path > \ mqtt \ jar \ org.eclipse.paho.client.mqttv3-1.1.0.jar”);
第二种可能不需要。

史蒂文叶

Ismail Faruqi.

我安装了MATLAB R2018a,仍然得到这个错误:未定义变量“com”或类“com.mathworks.mqttclient.client. client”

斯文

只是一个小说如何使用回调......

%回调函数
函数myMQTT_Callback(主题、味精)
fprintf('mqtt回调主题“%s”:“%s”\ n',主题,msg)
结尾

要连接到代理和注册回调函数的%代码:
mymqtt = mqtt('tcp://broker.hivemq.com');
mysub = subscribe(mymqtt,'mytopic','qos',2)
%方法(MySub)
% readall (mySub)
mySub。回调= @myMQTT_Callback;
%发送一个测试消息来检查回调
发布(mymqtt,'mytopic','testmessage03');

suriya pinitkan

阿卜杜拉国王

FYI:我的问题得到解决。我正在使用matlab r207b,我在我以前的评论中显示了错误。我安装了Matlab R2018A,现在该工具正常工作。

阿卜杜拉国王

同样的问题,我一直得到以下错误:
未定义的变量“com”或类“com.mathworks.mqtclient.client.client”。

我调查了几个文档,检查了功能的来源,第三部分软件文档,社区主题,论坛,其他问题。不幸的是,对于这个特定的错误没有任何帮助。

嗨,我可以知道如何定义订阅的回调函数?我尝试了函数句柄和函数文件,但两者都给出错误'使用输入参数类型'字符串定义的函数无效

ClemensSchartmüller.

嗨Adarsh,我们可以预期支持R2015A吗?金宝app由于这是一个封闭来源的项目,我遗憾的是不仅仅是问,而且你愿意分享Thecode,因为它似乎只是一个java客户端的接口。请尽快与我联系。

Adarsh Narasimhamurthy

注意,此功能仅在MATLAB R2017b及更高版本中支持。金宝app谢谢!

Adarsh Narasimhamurthy

你好,托拜厄斯,谢谢你的反馈。关于使用选项输入进行实例化,mqtt函数接受您提到的参数。参考函数帮助中的示例—您可以通过在MATLAB中计算“help mqtt”或访问“Functions”选项卡来访问它。谢谢!

安德烈Kravchenko

你好eveyone。

最近还安装了“MATLAB中的MQTT”插件。
不幸的是,我继续收到以下错误:
>> myMQTT = mqtt('tcp://broker.hivemq.com')
错误:文件:Mqtt。p行:127列:0
不平衡或意外的括号或括号。

看来这个方案对其他人都适用,所以应该是我做错了什么。
能请你支持一下吗?金宝app我使用Matlab2014b
谢谢,周末愉快

托拜厄斯Schmocker

嗨,到目前为止,我只能找到有用的MQTT-客户机来开箱即用MQTT。在R2017b上工作良好。

请求:不使用mqtt()函数直接实例化类会很好。同样,使用单独的或可选的输入实例化也会很有帮助,比如协议、端口、qos、用户名、pw、客户端id等。

蒂姆

嗨,我最近安装了MQTT在MATLAB,但不幸的是总是得到这个错误消息:
>> myMQTT = mqtt('tcp://broker.hivemq.com');
错误:文件:Mqtt。p行:127列:0
意想不到的MATLAB表达式。

你能帮我吗?

最大的人

嗨,如何实时获得消息?

Adarsh Narasimhamurthy

Hello,使用订阅上的read或readall函数从订阅中检索消息。例如:mySub = subscribe(myMQTT, 'TestTopic');阅读(mySub)

汤米·兰格

你好。一切正常,但我如何从订阅中检索消息?计数器在消息发布后增加,但我没有找到消息本身

Lampros.

这个MQTT工具箱是否支持旧版本的MATLAB金宝app(例如R2016A)?

Hans Scharler

MATLAB版本兼容性
创建R2019a
兼容任何释放
平台兼容性
窗户 macOS Linux.
标签添加标签

社区寻宝

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!