MQTT Unit
MQTT Unit 是一款专为 MQTT 通信设计的以太网通信模块。它内置 W5500 以太网芯片,可无缝连接到以太网网络。该模块还包含 UART 通信接口,支持通过 AT commands 进行控制。此外,它集成了 RJ45 自适应 10/100M 网络端口,便于进行网络连接。
支持以下产品:
MicroPython 应用示例
import os, sys, io
import M5
from M5 import *
from unit import MQTTUnit
import time
def mqtt_0_SubTopic_event(data):
global mqtt_0
print(data[0])
print(data[1])
mqtt_0 = MQTTUnit(port=(18, 17))
mqtt_0.set_client('m5-mqtt-2024', 'mqtt.m5stack.com', 1883, '', '', 120)
mqtt_0.set_subscribe('SubTopic', mqtt_0_SubTopic_event, 0)
mqtt_0.set_connect()
while True:
mqtt_0.check_msg()
time.sleep_ms(50)
UiFlow2 应用示例
保持原有的 msgstr 为空即可。
Constructors
- class MQTTUnit(port=(, ))
创建一个 MQTTUnit 对象
- 参数为:
port为 uart 引脚元组,包含:(tx_pin, rx_pin)。
UIFLOW2:

Methods
- MQTTUnit.set_client(client_id, server, port, username, password, keepalive)
- 参数:
UIFLOW2:

- MQTTUnit.set_connect()
连接到服务器。
UIFLOW2:

- MQTTUnit.set_disconnect()
断开与服务器的连接,并释放资源。
UIFLOW2:

- MQTTUnit.set_publish(topic, msg, qos=0)
发布一条消息。
- 参数:
UIFLOW2:

- MQTTUnit.set_subscribe(topic, handler, qos=0)
订阅主题。
- 参数:
备注
使用该模块时,“MQTT connect”模块必须设置在该模块之后
服务器一次只能订阅 4 个主题。
UIFLOW2:

已接收到一条显示消息的处理程序:
def mqtt_0_SubTopic_event(data): print("topic:", data[0]) print("msg:", data[1])
在 UiFlow2 中,你可以通过
和
获取当前 handler 的 topic 和 message。
- MQTTUnit.check_msg()
重要
check_msg()是“主循环迭代”方法,包含阻塞和非阻塞版本。它们应在循环中定期调用;如果你没有任何其他前台任务需要执行(即你的应用仅对已订阅的 MQTT 消息作出响应),则使用check_msg()。请注意,如果您仅发布消息,则无需调用
check_msg()。检查服务器消息。
UIFLOW2:

- MQTTUnit.check_modem_is_ready()
检查与 MQTT 单元的通信是否成功。
返回:
bool:True 或 False
UIFLOW2:

- MQTTUnit.get_firmware_version()
获取当前固件版本号。
Return:
string
UIFLOW2:

- MQTTUnit.get_baudrate()
获取模块当前波特率,默认波特率为 9600。
返回:
int:4800、9600、19200、34800、115200、230400
UIFLOW2:

- MQTTUnit.get_network_status()
检查网络状态是已连接还是已断开。
返回:
int:0 ~ 1
UIFLOW2:

- MQTTUnit.get_network_parameters(param)
获取模块当前实际的 IP 地址、子网掩码、网关和 DNS 服务器。
- 参数为:
param:IP 地址 = 0,子网掩码 = 1,网关 = 2,DNS 服务器 = 3。
UIFLOW2:

- MQTTUnit.get_mac_address()
获取模块当前的 MAC 地址,MAC 地址格式为:XX-XX-XX-XX-XX-XX。
返回:
string:”XX-XX-XX-XX-XX-XX”
UIFLOW2:

- MQTTUnit.get_static_ip(param)
获取模块当前实际 IP 地址、子网掩码和网关。
- 参数为:
param:IP 地址 = 0,子网掩码 = 1,网关 = 2,DNS 服务器 = 3。
UIFLOW2:

- MQTTUnit.get_dhcp_status()
获取启用/禁用 DHCP 状态的信息
返回:
int:1:启用,0:禁用
UIFLOW2:

- MQTTUnit.set_dhcp_state(state)
设置启用/禁用 DHCP
- 参数为:
state:禁用 = 0,启用 = 1。
UIFLOW2:

- MQTTUnit.set_static_ip(ip, subnet, gateway)
设置 MQTT 模块的静态 IP 地址。
备注
当启用 DHCP 功能时,静态 IP 设置将不会生效。
- 参数为:
ip: “xxx.xxx.xxx.xxx”subnet: “xxx.xxx.xxx.xxx”gateway: “xxx.xxx.xxx.xxx”
UIFLOW2:


