pdf-icon

UIFlow 上手教程

UiFlow1 Blockly

Event

Unit

UiFlow1 项目配置

Unit MQTT

案例程序

from m5stack import *
from m5stack_ui import *
from uiflow import *
import unit

screen = M5Screen()
screen.clean_screen()
screen.set_screen_bg_color(0xFFFFFF)
mqtt_0 = unit.get(unit.MQTT_ETH, 1, unit.PORTC)

mqtt_0.MqttStop()
while not (mqtt_0.isConnectLAN()):
  print('waiting LAN connection')
mqtt_0.configMQTT('mqtt.m5stack.com', 1883, 'unit_mqtt_id', '', '', 30,)
while not (mqtt_0.subscribe(1, 'mqtt_unit_down', unit_mqtt_cb, 0)):
  print('waiting subcribe topic')
while not (mqtt_0.saveParam()):
  print('waiting save configure')
mqtt_0.MqttStart()
while not (mqtt_0.isConnectMQTT()):
  print('waiting MQTT connection')
print('MQTT connected!')
while True:
  mqtt_0.publish('mqtt_unit_up', 'hello', 0)
  print(mqtt_0.receive_mqtt_message(5))
  wait_ms(2)

功能说明

mqtt_0.uart_port_id(1)
  • 设置主机传感器ID
mqtt_0.Mqtt_cb_Loop()
  • 回调轮询
mqtt_0.configMQTT('', 0, '', '', '', 0,)
  • 创建 MQTTUnit 对象
    • client_id (str) – 连接到 时使用的唯一客户端 ID 字符串 经纪人。
    • Server (STR) (服务器 (STR) – 远程代理的主机名或 IP 地址。
    • port (int) – 要连接的服务器主机的网络端口。
    • username (str 或 None) – 用于代理身份验证的用户名。
    • password (str 或 None) – 用于代理身份验证的密码。
    • keepalive (int) – 允许的最大时间段(以秒为单位) 与经纪人的通信。如果没有其他消息 正在交换,这控制了 客户端将向 Broker 发送 ping 消息。
print((str('LAN:') + str((mqtt_0.isConnectLAN()))))
  • 获取检查LAN连接状态
print((str('MQTT:') + str((mqtt_0.isConnectMQTT()))))
  • 获取MQTT连接状态
mqtt_0.publish('', '', 0)
  • 发布消息
print((str('parameter:') + str((mqtt_0.saveParam()))))
  • 保存配置参数
mqtt_0.MqttStart()
  • 启动MQTT
mqtt_0.MqttStop()
  • 关闭MQTT
print((str('msg:') + str((mqtt_0.subscribe(1, '', unit_mqtt_cb, 0)))))
  • 获取订阅消息
def unit_mqtt_cb(mq_topic, mq_payload):
  global mqtt_topic, mqtt_msg
  mqtt_topic = mq_topic
  mqtt_msg = mq_payload
  pass
  • 发布订阅消息
On This Page