使用MQTT客户端连接阿里云MQTT服务器

简介: 物联网全栈教程-从云端到设备(八) 一 这一篇文章零妖老哥将给你展示两个电脑软件的使用方法,将极大地方便你调试与MQTT有关的物联网项目。一个叫MQTT客户端用来模拟设备向云端发送数据和接收云端的数据;另一个叫作MQTT单片机编程小工具,是技小新针对阿里云MQTT服务器连接过程中的痛点,自己编写的一个电脑程序,用来生成连接阿里云MQTT服务器时的账号密码等信息的。

物联网全栈教程-从云端到设备(八)


关注零妖的微信公众号,获取第一手物联网的技术干货:  LINGYAOIOT


这一篇文章零妖老哥将给你展示两个电脑软件的使用方法,将极大地方便你调试与MQTT有关的物联网项目。一个叫MQTT客户端用来模拟设备向云端发送数据和接收云端的数据;另一个叫作MQTT单片机编程小工具,是技小新针对阿里云MQTT服务器连接过程中的痛点,自己编写的一个电脑程序,用来生成连接阿里云MQTT服务器时的账号密码等信息的。

 

首先出场亮相的叫 MQTT.fx-1.3.1 的软件,是一个运行在电脑上的MQTT客户端软件,只要填写一下MQTT服务器(比如阿里云的MQTT服务器)的IP地址,端口号,密码等信息,就可以连接到服务器,然后可以向指定的TOPIC发送内容了,当然你也可以订阅指定的TOPIC

369630715e29730a31fff2987867de2b207df3b7

 

 

零妖带你去配置一下这个MQTT客户端,配置好之后就能模拟设备收发数据了。设置之前,你需要进入阿里云的LinkDevelop平台,进入测试设备的页面,我们要复制一些参数;设置参数的过程中,你需要打开技小新的MQTT单片机编程小工具来配合一下。

如图所示,在设备开发里面的测试设备选项中,你要打开激活凭证,一键复制,到此为止。接下来请出我们的技小新MQTT单片机编程小工具,准备计算一下用户名密码等信息。

 

 dee2cecf64bdc3b9100ef052431f366b520cda14

 

 

下图列出了阿里云官网给出的,MQTT连接时候的账号密码信息的规则,比较繁琐。零妖老哥根据这个规则写的电脑小软件,可以自动计算这些参数。

8f3957da35448fb878d79d1f49c1dbeaf5374995

 

打开技小新MQTT单片机编程小工具,粘贴刚才复制的参数到输入框里面,就可以直接算出来上图中的参数了。

好了,直接复制一些参数到MQTT客户端里面进行设置就行了。参数如下:

MQTT域名;端口;ClientID;  UserName;  Password

如果想发送内容到云端,就复制 “属性上报” TOPIC MQTT客户端,发送内容即可,记住发送的内容要符合ALink规范。

d29e6151a9fbca748aba40810b5746007dc8892e 

8faf84d9f8375e3cae3ce9a64acf39c91babc035

f32803d269727d58ebac030bdab0f85aed9b83bd


 

 

 

好了,现在你返回到MQTT客户端的界面,点击连接试一下吧,一下子就能连上信不信?

然后复制一个叫做 “属性上报” 的TOPIC,写一个符合ALink协议规范的字符串,试一下发送数据。

 52ca4d3ce6a9de56e28e71bbea3a911c0fe65539

 

再进入LinkDevelop 的测试设备的 设备详情 页面查看数据上报结果:

1302863b3c778a8bc38a2e170f12f478ed04fce5

 

 

零妖再从云端下发一个数据,试一下模拟的客户端能否收到。

需要MQTT客户端,订阅一个叫 “设置设备属性” 的TOPIC

 75363b804b80f447094700ee534adc8c5dd8d8b6

 

好了,看下图你就明白了,模拟客户端收到的数据也是符合ALink协议规范的,单片机如果接收到这些数据后,就可以解析了。PS:MQTT通讯协议发送的数据是UTF-8格式的,单片机解码时候遇到中文字符就要小心了,具体怎么解决这个问题零妖也会在后续的文章里说的。

 3be0a3659d5b8171111b550e3d416d859a556bb9

 

 

 

 

说到了这里你肯定已经猜到了零妖的良苦用心了。

两个小工具配合使用能模拟一个设备联网,那么云端开发工程师完全就可以拿着小工具直接调试代码了,根本不用管硬件端在干嘛,是不是?该调用API的该写界面的想咋弄咋弄,是不是很爽?

LinkDevelop平台里,有一个测试设备的接入,硬件工程师只要能够想办法建立一个TCP连接,连接上阿里云的MQTT服务器,那么就可以在平台上下发数据和测试上报数据,请问还用得着关心云端工程师在干啥吗?努力做好单片机开发就行了,是不是很爽?

下一篇文章零妖将带你了解一下云端Web应用开发框架 ——Bone 框架!

 

 

 

 

 

 

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
4月前
|
安全
基于Reactor模式的高性能服务器之Acceptor组件(处理连接)
本节介绍了对底层 Socket 进行封装的设计与实现,通过 `Socket` 类隐藏系统调用细节,提供简洁、安全、可读性强的接口。重点包括 `Socket` 类的核心作用(管理 `sockfd_`)、成员函数的功能(如绑定地址、监听、接受连接等),以及 `Acceptor` 组件的职责:监听连接、接收新客户端连接并分发给上层处理。同时说明了 `Acceptor` 与 `EventLoop` 和 `TcpServer` 的协作关系,并展示了其成员变量和关键函数的工作机制。
115 2
|
6月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
2390 42
|
3月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle客户端与服务器端连接建立的过程
Oracle数据库采用客户端-服务器架构,客户端通过其网络环境与服务器通信,实现数据库访问。监听程序负责建立连接,通过命令lsnrctl可启动、停止及查看监听状态。本文介绍了监听器的作用及相关基础管理操作。
185 0
|
8月前
|
消息中间件 存储 数据采集
4步实现状态机驱动的MQTT客户端,快速接入OneNet (1)
本文介绍了基于状态机驱动的MQTT客户端快速接入OneNet平台的实现方法,通过4步完成模块设计。文章以开源项目`Sparrow`为基础,引入`OneNetMqtt`业务模块,采用事件驱动模型和双层状态机设计,实现设备状态管理、消息处理及定时任务等功能。模块分为三层:`OneNetManager`负责核心逻辑,`OneNetDevice`管理设备信息,`OneNetDriver`处理Socket与MQTT通信。验证结果显示设备连接、数据上报及下线功能正常,稳定性良好。该设计简化了复杂条件判断,增强了系统灵活性与可扩展性,适用于实际项目参考。文末提供源码获取方式,助力读者实践与学习。
481 107
|
6月前
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
538 37
|
7月前
|
人工智能 搜索推荐 程序员
用 Go 语言轻松构建 MCP 客户端与服务器
本文介绍了如何使用 mcp-go 构建一个完整的 MCP 应用,包括服务端和客户端两部分。 - 服务端支持注册工具(Tool)、资源(Resource)和提示词(Prompt),并可通过 stdio 或 sse 模式对外提供服务; - 客户端通过 stdio 连接服务器,支持初始化、列出服务内容、调用远程工具等操作。
1779 4
|
8月前
|
网络协议 开发者 Python
Socket如何实现客户端和服务器间的通信
通过上述示例,展示了如何使用Python的Socket模块实现基本的客户端和服务器间的通信。Socket提供了一种简单且强大的方式来建立和管理网络连接,适用于各种网络编程应用。理解和掌握Socket编程,可以帮助开发者构建高效、稳定的网络应用程序。
433 10
|
10月前
|
存储 开发工具 git
[Git] 深入理解 Git 的客户端与服务器角色
Git 的核心设计理念是分布式,每个仓库既可以是客户端也可以是服务器。通过 GitHub 远程仓库和本地仓库的协作,Git 实现了高效的版本管理和代码协作。GitHub 作为远程裸仓库,存储项目的完整版本历史并支持多客户端协作;本地仓库则通过 `.git` 文件夹独立管理版本历史,可在离线状态下进行提交、回滚等操作,并通过 `git pull` 和 `git push` 与远程仓库同步。这种分布式特性使得 Git 在代码协作中具备强大的灵活性和可靠性。
264 18
[Git] 深入理解 Git 的客户端与服务器角色
|
4月前
|
消息中间件 数据管理 Serverless
阿里云消息队列 Apache RocketMQ 创新论文入选顶会 ACM FSE 2025
阿里云消息团队基于 Apache RocketMQ 构建 Serverless 消息系统,适配多种主流消息协议(如 RabbitMQ、MQTT 和 Kafka),成功解决了传统中间件在可伸缩性、成本及元数据管理等方面的难题,并据此实现 ApsaraMQ 全系列产品 Serverless 化,助力企业提效降本。
|
2月前
|
消息中间件 Java Kafka
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
本文深入解析了 Kafka 和 RabbitMQ 两大主流消息队列在 Spring 微服务中的应用与对比。内容涵盖消息队列的基本原理、Kafka 与 RabbitMQ 的核心概念、各自优势及典型用例,并结合 Spring 生态的集成方式,帮助开发者根据实际需求选择合适的消息中间件,提升系统解耦、可扩展性与可靠性。
209 1
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ