热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【物联网】MATLAB通过MQTT与阿里云和本地服务器建立连接

文章目录1、MQTT服务器:本地Ubuntu搭建2、MQTT服务器:阿里云平台搭建3、设备:MQTT.fx虚拟设备(通信测试


文章目录

      • 1、MQTT服务器:本地Ubuntu搭建
      • 2、MQTT服务器:阿里云平台搭建
      • 3、设备:MQTT.fx虚拟设备(通信测试成功√)
      • 4、设备:MATLAB虚拟设备(正式连接)
        • 4.1 使用MATLAB与本地服务器建立连接(成功)
        • 4.2 使用MATLAB与阿里云服务器建立连接(失败)


1、MQTT服务器:本地Ubuntu搭建

# 安装服务器
sudo apt install mosquitto
sudo apt install mosquitto_pub # 运行mqtt服务器
mosquitto -v# 发布名称为nihao的订阅,信息内容为helloworld
mosquitto_pub -t nihao -m helloworld# 查看ubuntu本机ip地址
ifconfig

  • 本机IP地址
    在这里插入图片描述

参考资料:
https://blog.csdn.net/qq_33406883/article/details/107492604


2、MQTT服务器:阿里云平台搭建


  • 在设备中,可以找到clientId,username,passwd,mqttHostUrl等信息
    在这里插入图片描述

  • 在日志服务中,可以看到设备的行为信息。
    在这里插入图片描述

  • 关于MQTT参数的解释
    在这里插入图片描述
    在这里插入图片描述


3、设备:MQTT.fx虚拟设备(通信测试成功√)


成功
成功
设备MQTT.fx
连接Ubuntu服务器
连接阿里云服务器


  • 填写信息,点击Connect连接即可。
    具体可以参考之前的:https://gwj1314.blog.csdn.net/article/details/124575451
    在这里插入图片描述

  • 经过测试可以发现,连接云端时,阿里云设备在线,且可以互发消息。
    在这里插入图片描述

  • 连接本地Ubuntu服务器时,一样显示设备在线,且可以互相发消息
    在这里插入图片描述
    在这里插入图片描述


4、设备:MATLAB虚拟设备(正式连接)


成功
失败
设备MATLAB
连接Ubuntu服务器
连接阿里云服务器
地址错误


  • 首先需要下载 MQTT in MATLAB ,放在matlab目录下。
    (链接:https://www.mathworks.com/matlabcentral/fileexchange/64303-mqtt-in-matlab)
    确保包含以下文件
    在这里插入图片描述

  • 文件内容如下(mqtt内容:mqtt.m)

    function obj = mqtt(varargin)tryobj = mqttio.Mqtt(varargin{:});
    catch errExpthrowAsCaller(errExp);
    end

  • 然后,未定义变量 “com” 或类 “com.mathworks.mqttclient.client.Client”
    需要执行以下命令。

    % 未定义"com” 或类“com.mathworks.mqttclient.client.Client” 报错解决方案
    % javaaddpath("C:\Program Files\MATLAB\R2022a\toolbox\MQTT in Matlab\matlab mqtt\jar\org.eclipse.paho.client.mqttv3-1.1.0.jar")
    % javaaddpath("C:\Program Files\MATLAB\R2022a\toolbox\MQTT in Matlab\matlab mqtt\mqttasync.jar")


4.1 使用MATLAB与本地服务器建立连接(成功)


  • 连接文件test.m
    在这里插入图片描述

    % 建立连接
    port = 1883;
    myMQTT= mqtt("tcp://10.10.21.94", "ClientID", "d06e83e7eba941299a224b47eabd00cf", 'Port', port);% 发送消息
    % 虚拟机ubuntu发布:mosquitto_pub -t nihao -m helloworld
    topic = "GoGoGo";
    message = '{ "id": "123","version": "1.0","params": { "isAlarm": { "value": true} }} ' ;
    publish(myMQTT, topic, message);% 订阅消息
    Topic2 = 'nihao';
    mySub = subscribe(myMQTT,Topic2,'callback',@showMessage,'Qos',0);% 每次收到新消息时显示主题和消息的回调函数
    function showMessage(topic,data)disp(data);
    end% 未定义"com” 或类“com.mathworks.mqttclient.client.Client” 报错解决方案
    % javaaddpath("C:\Program Files\MATLAB\R2022a\toolbox\MQTT in Matlab\matlab mqtt\jar\org.eclipse.paho.client.mqttv3-1.1.0.jar")
    % javaaddpath("C:\Program Files\MATLAB\R2022a\toolbox\MQTT in Matlab\matlab mqtt\mqttasync.jar")

  • 经测试,可以发送消息到服务器。
    在这里插入图片描述

  • 也可以从服务器接受消息。
    在这里插入图片描述

参考资料:
https://blog.csdn.net/weixin_47545780/article/details/117398202
https://blog.csdn.net/liu_text/article/details/122073119


4.2 使用MATLAB与阿里云服务器建立连接(失败)


  • 如图,将mqtt函数对应的参数修改为阿里云的参数。
    运行后得到Unable to establish connection with broker. 无法与代理建立连接。
    在这里插入图片描述
    在这里插入图片描述

clc;
clear all;
close all;% D001
brokerAddress = 'tcp://xxxx';
port = 1883;
clientID = 'xxx';
username = 'xxxxx';% 建立连接
myMQTT= mqtt(brokerAddress, "ClientID", clientID, 'Port', port, 'Username', username, "Password", password);

推荐阅读
  • Ansem 最新雄文:软着陆后,加密市场下阶段趋势与核心叙事
    市场最糟糕的时候已经过去,以太坊合并前不太会看到新的低点;但仍需来自关注宏观市场的不确定风险。撰文:Ansem ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 本文实例为大家分享了d3.js图形拖拽的具体代码,供大家参考,具体内容如下 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了如何在使用emacs时去掉ubuntu的alt键默认功能,并提供了相应的操作步骤和注意事项。 ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • higuysihaveproblemwithtreeshakinginnx,problemwithassetslibrary ... [详细]
author-avatar
女人放聪明点碧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有