域格模组使用mqtt功能

使用AT指令通过MQTT连接阿里物联网平台


前言

MQTT 协议的全称是 Message Queuing Telemetry Transport,翻译为消息队列传输探测,它是 ISO 标准下的一种基于发布 - 订阅模式的消息协议,它是基于 TCP/IP 协议簇的,它是为了改善网络设备硬件的性能和网络的性能来设计的。MQTT 一般多用于 IoT 即物联网上,广泛应用于工业级别的应用场景,比如汽车、制造、石油、天然气等。


一、mqtt

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是 IBM 开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器的通信协议。
MQTT 协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
1)使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
2)对负载内容屏蔽的消息传输。
3)使用 TCP/IP提供网络连接。
4)有三种消息发布服务质量:
至多一次:消息发布完全依赖底层TCP/IP 网络。会发生消息丢失或重复。
至少一次:确保消息到达,但消息重复可能会发生。
只有一次:确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的
结果。
5)小型传输,开销很小,固定长度的头部是 2 字节,协议交换最小化,以降低网络流量。

二、使用步骤

1.阿里平台添加设备

登录到阿里物联网平台,点击“设备管理”,再点击“产品”,然后点击“创建产品”,开始创建产品
在这里插入图片描述

产品创建后,出现如下界面,表示产品已经创建成功 在这里插入图片描述点击“添加设备”,填写DeviceName,添加成功后,会出现设备证书,点击“一键复制”保存好设备
信息。设备证书中的ProductKey,DeviceName和DeviceSecret,以及产品名称,是创建 MQTT
client的必须信息。 在这里插入图片描述
设备创建成功后,可以看到设备没有被激活
在这里插入图片描述

2.使用AT指令连接阿里平台

使用mqtt的at命令的流程如下:
步骤1:设置阿里设备的认证信息设备鉴权设置

指令 上报
### ML307A 模组使用 MQTT 协议进行数据传输的方法 ML307A 是一款支持多种无线通信协议的模组,其设计旨在简化物联网设备的数据交互过程。为了实现基于 MQTT 協議的数据傳輸,可以按照以下方式配置和编程该模組。 #### 配置网络连接 在使用 ML307A 模组之前,需先完成 Wi-Fi 或蜂窝网络的连接设置。这一步通常通过 AT 命令来执行。例如: ```plaintext AT+CWMODE=1 // 设置为 Station 模式 AT+CWJAP="SSID","PASSWORD" // 连接到指定的 Wi-Fi 网络 ``` 以上命令用于建立与目标 Wi-Fi 热点的连接[^2]。 #### 初始化 MQTT 客户端 一旦网络连接成功,下一步是初始化 MQTT 客户端并订阅/发布消息。以下是典型的流程说明以及代码示例。 ##### Python 示例 (适用于 ESP32 平台) 如果 ML307A 支持固件升级或者可以通过外部微控制器控制,则可采用如下方法编写程序逻辑: ```python import network import time from umqtt.simple import MQTTClient # WiFi 参数 WIFI_SSID = 'your_wifi_ssid' WIFI_PASSWORD = 'your_wifi_password' # MQTT 服务器参数 MQTT_SERVER = "broker.example.com" CLIENT_ID = "ml307a_client" def connect_wifi(): sta_if = network.WLAN(network.STA_IF) if not sta_if.isconnected(): print('Connecting to WiFi...') sta_if.active(True) sta_if.connect(WIFI_SSID, WIFI_PASSWORD) while not sta_if.isconnected(): pass print('Network config:', sta_if.ifconfig()) def mqtt_publish(topic, message): client = MQTTClient(CLIENT_ID, MQTT_SERVER) try: client.connect() print(f'Publishing {message} to topic {topic}') client.publish(topic.encode(), str(message).encode()) finally: client.disconnect() connect_wifi() # 调用函数以连接到WiFi mqtt_publish("test/topic", "Hello from ML307A") # 发布测试消息至主题 test/topic ``` 此脚本展示了如何利用 `umqtt` 库创建一个简单的 MQTT 客户端实例,并向特定的主题发送一条字符串消息[^1]。 #### 处理数据流 对于更复杂的应用场景,可能还需要对采集到的数据进行预处理后再上传云端。Edgent 提供了一系列功能性 API 来帮助开发者轻松实现这些需求,比如过滤掉不符合条件的数据样本、拆分多路信号源或是计算统计汇总值等操作。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值