文章目录

  • 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虚拟设备(通信测试成功√)

#mermaid-svg-1exBzWMQ3nzeXAgZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-1exBzWMQ3nzeXAgZ .error-icon{fill:#552222;}#mermaid-svg-1exBzWMQ3nzeXAgZ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-1exBzWMQ3nzeXAgZ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-1exBzWMQ3nzeXAgZ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-1exBzWMQ3nzeXAgZ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-1exBzWMQ3nzeXAgZ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-1exBzWMQ3nzeXAgZ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-1exBzWMQ3nzeXAgZ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-1exBzWMQ3nzeXAgZ .marker.cross{stroke:#333333;}#mermaid-svg-1exBzWMQ3nzeXAgZ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-1exBzWMQ3nzeXAgZ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-1exBzWMQ3nzeXAgZ .cluster-label text{fill:#333;}#mermaid-svg-1exBzWMQ3nzeXAgZ .cluster-label span{color:#333;}#mermaid-svg-1exBzWMQ3nzeXAgZ .label text,#mermaid-svg-1exBzWMQ3nzeXAgZ span{fill:#333;color:#333;}#mermaid-svg-1exBzWMQ3nzeXAgZ .node rect,#mermaid-svg-1exBzWMQ3nzeXAgZ .node circle,#mermaid-svg-1exBzWMQ3nzeXAgZ .node ellipse,#mermaid-svg-1exBzWMQ3nzeXAgZ .node polygon,#mermaid-svg-1exBzWMQ3nzeXAgZ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-1exBzWMQ3nzeXAgZ .node .label{text-align:center;}#mermaid-svg-1exBzWMQ3nzeXAgZ .node.clickable{cursor:pointer;}#mermaid-svg-1exBzWMQ3nzeXAgZ .arrowheadPath{fill:#333333;}#mermaid-svg-1exBzWMQ3nzeXAgZ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-1exBzWMQ3nzeXAgZ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-1exBzWMQ3nzeXAgZ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-1exBzWMQ3nzeXAgZ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-1exBzWMQ3nzeXAgZ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-1exBzWMQ3nzeXAgZ .cluster text{fill:#333;}#mermaid-svg-1exBzWMQ3nzeXAgZ .cluster span{color:#333;}#mermaid-svg-1exBzWMQ3nzeXAgZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-1exBzWMQ3nzeXAgZ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

成功
成功
设备MQTT.fx
连接Ubuntu服务器
连接阿里云服务器
  • 填写信息,点击Connect连接即可。
    具体可以参考之前的:https://gwj1314.blog.csdn.net/article/details/124575451

  • 经过测试可以发现,连接云端时,阿里云设备在线,且可以互发消息。

  • 连接本地Ubuntu服务器时,一样显示设备在线,且可以互相发消息

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

#mermaid-svg-pF9niENJGmMLhhoA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-pF9niENJGmMLhhoA .error-icon{fill:#552222;}#mermaid-svg-pF9niENJGmMLhhoA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pF9niENJGmMLhhoA .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-pF9niENJGmMLhhoA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pF9niENJGmMLhhoA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pF9niENJGmMLhhoA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pF9niENJGmMLhhoA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pF9niENJGmMLhhoA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pF9niENJGmMLhhoA .marker.cross{stroke:#333333;}#mermaid-svg-pF9niENJGmMLhhoA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pF9niENJGmMLhhoA .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-pF9niENJGmMLhhoA .cluster-label text{fill:#333;}#mermaid-svg-pF9niENJGmMLhhoA .cluster-label span{color:#333;}#mermaid-svg-pF9niENJGmMLhhoA .label text,#mermaid-svg-pF9niENJGmMLhhoA span{fill:#333;color:#333;}#mermaid-svg-pF9niENJGmMLhhoA .node rect,#mermaid-svg-pF9niENJGmMLhhoA .node circle,#mermaid-svg-pF9niENJGmMLhhoA .node ellipse,#mermaid-svg-pF9niENJGmMLhhoA .node polygon,#mermaid-svg-pF9niENJGmMLhhoA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pF9niENJGmMLhhoA .node .label{text-align:center;}#mermaid-svg-pF9niENJGmMLhhoA .node.clickable{cursor:pointer;}#mermaid-svg-pF9niENJGmMLhhoA .arrowheadPath{fill:#333333;}#mermaid-svg-pF9niENJGmMLhhoA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-pF9niENJGmMLhhoA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-pF9niENJGmMLhhoA .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-pF9niENJGmMLhhoA .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-pF9niENJGmMLhhoA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-pF9niENJGmMLhhoA .cluster text{fill:#333;}#mermaid-svg-pF9niENJGmMLhhoA .cluster span{color:#333;}#mermaid-svg-pF9niENJGmMLhhoA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-pF9niENJGmMLhhoA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

成功
失败
设备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);

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

  1. 运维之阿里云和本地虚拟机的连接问题

    1.阿里云 使用公网ip进行连接       端口号为22 2.本地虚拟机进行连接 使用ip addr 命令查询 本地ip,然后使用ip号和22端口号,账号,密码进行连接

  2. 001-STM32+Air724UG(4G模组)基本控制篇(阿里云物联网平台)-使用MQTT接入阿里云物联网平台

    前言 这节测试下使用STM32+Air724UG 和 Android 和 微信小程序 和 网页端 接入阿里云物联网平台 当前的各种物联网平台整体思想是提供一个网页端让用户去注册设备 这个设备就对应一个 ...

  3. 解决:阿里云ECS服务器 远程连接不上、极慢 (主机监控的实现)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 个人低配版的阿里云ECS服务器,突然发现用 Xshell 或者 git-bash 都连接不上... ...

  4. 阿里云ECS服务器无法连接程序

    阿里云服务器无法连接程序/插件 一.判断是否把端口添加进防火墙 1.开启防火墙:systemctl start firewalld.service 2.添加端口:firewall-cmd --zone ...

  5. 阿里云和本地网络安装clone GitHub代码很慢的解决

    vim /etc/ssh/ssh_config 编辑 /etc/ssh/ssh_config,找到 GSSAPIAuthentication no 这行,删掉前面的注释,然后wq保存退出 重新开始cl ...

  6. 解决阿里云windows服务器无法连接远程桌面

    阿里的防护等级默认关闭, 第一次需要远程连接开一下防火墙设置, 进去之后修改一下虚拟主机的防火墙配置,这样能用mstsc命令来远程登录 每个人的电脑配置以及网络都不同,解决方案也会是不同的,下面的解决 ...

  7. 阿里云RDS服务器远程连接失败问题

    1.购买完服务器后我们需要在这个界面设置可通过名单,也就是把自己本机的ip地址填上去 2.从自己电脑上看到的ipv4地址其实是内网地址,这个外网是访问不到的,不能够把它放在白名单中 3.所以我们需要去 ...

  8. 物联网数据传输协议MQTT介绍与应用开发详解

    本文首发微信公众号:码上观世界 Part 1 物联网概述 1. 物联网概念 物联网是指通过各种信息传感器.射频识别技术.全球定位系统.红外感应器.激光扫描器等各种装置与技术,实时采集任何需要监控. 连 ...

  9. 物联网常用协议 MQTT介绍

    转载于 https://www.jianshu.com/p/ecde412d2eeb 简介 MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输) ...

最新文章

  1. linux/nginx 安全增强
  2. 远程调试在Linux车机中的应用
  3. 网站负责人委托书_关于网站负责人授权委托书的阿里云网站内容
  4. URAL 1036 Lucky Tickets
  5. 关于“数据分析”如何快速入门一些基本思路
  6. 手持iPhone 12测温测出80度?安兔兔致歉:测温枪年久失修!
  7. 点滴积累【JS】---JS小功能(JS实现模仿微博发布效果)
  8. 17.软件架构设计:大型网站技术架构与业务架构融合之道 --- 团队能力的提升
  9. MATLAB —— 散点图绘制
  10. 2017年的知识清单
  11. ubuntu1804+CUDA10+cudnn7.4.2+TensorFlow2+Pytorch1.3 9700K+双路RTX 2080TI
  12. 魔兽星期二服务器维护,魔兽世界例行维护,假如我星期一晚上通宵,在星期二凌晨五点维护时我没退出游戏,会被强制退出么?...
  13. ctf之crypto练习二
  14. 总结2019,憧憬2020
  15. qtablewidget 复选框选中_QTableWidget中checkBox如何判断复选框是否被选中
  16. 长春光机所计算机待遇,有谁知道长春光机所的工资待遇怎么样?硕士一年的收入大概是多少?...
  17. 苹果电脑打开wps云文档方法
  18. 安装黑群晖,打开群晖助手初始化失败问题,报错35(ESXI6.7虚拟机安装黑群辉最新版DSM6.2.1)
  19. 穷爸爸与富爸爸读后感(3)
  20. Java Swing 简单的登录注册窗口

热门文章

  1. 潍坊学院计算机工程学院天一楼地址,我院志愿汇APP系统培训会
  2. Ubuntu20.04系统重装
  3. 字节和腾讯都在使用,DevOps工具Zadig究竟有何魔力
  4. 数字图像算法研究---PS USM锐化算法详解
  5. 寝室环境对大学生睡眠的影响调查
  6. MAC电脑 查看APK文件的包名
  7. XBee模块使用方法
  8. tms320vc5416c语言编程,TMS320VC5416中文资料
  9. Hadoop运行踩坑: Attempting to operate on hdfs namenode as root
  10. shell 文本处理利器awk命令