热门标签 | 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);

推荐阅读
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • Cadence SPB 16.5 安装指南与注意事项
    本文提供了详细的 Cadence SPB 16.5 安装步骤,包括环境配置、安装过程中的关键步骤以及常见问题的解决方案。适合初次安装或遇到问题的技术人员参考。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • ECharts图表绘制函数集
    本文档提供了使用ECharts库创建柱状图、饼图和双折线图的JavaScript函数。每个函数都详细列出了参数说明,并通过示例展示了如何调用这些函数以生成不同类型的图表。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • 本文详细介绍了在 Windows 7 上安装和配置 PHP 5.4 的 Memcached 分布式缓存系统的方法,旨在减少数据库的频繁访问,提高应用程序的响应速度。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • 本文详细介绍了如何使用 Python 编程语言中的 Scapy 库执行 DNS 欺骗攻击,包括必要的软件安装、攻击流程及代码示例。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • Web网络基础
    目录儿1使用HTTP协议访问Web2HTTP的诞生2.1因特网的起源2.2互联网、因特网与万维网2.3万维网与HTTP3网络基础TCPIP3.1TCPIP协议族3.2TCPIP的分 ... [详细]
  • 本文探讨了SQLAlchemy ORM框架中如何利用外键和关系(relationship)来建立表间联系,简化复杂的查询操作。通过示例代码详细解释了relationship的定义、使用方法及其与外键的相互作用。 ... [详细]
  • electronvue使用electronupdater实现自动更新
    今天呢,给大家带来一篇干货满满的electron-vue自动升级的教程,话不多说,开始我的表演!配置文件package.jsonbu ... [详细]
  • 帝国cms各数据表有什么用
    CMS教程|帝国CMS帝国cmsCMS教程-帝国CMS精易编程助手源码,ubuntu桥接设置,500错误是tomcat吗,爬虫c原理,php会话包括什么,营销seo关键词优化一般多 ... [详细]
  • 本文介绍了如何使用Workman框架构建一个功能全面的即时通讯系统,该系统不仅支持一对一聊天、群组聊天,还集成了视频会议和实时音视频通话功能,同时提供了红包发送等附加功能。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
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社区 版权所有