初始化MQTT连接。
订阅指定主题,并通过MQTT发布消息。
在循环中,生成一个随机数作为计数器值,如果计数器值不同于之前的值,则将其发布到指定的主题。
程序会显示当前计数器值、订阅主题的消息以及MQTT连接状态。
from m5stack import *
from m5ui import *
from uiflow import *
from comx.cat1 import CAT1
setScreenColor(0x222222)
cat_topic = None
cat_msg = None
counter = None
previous = None
import random
def cat_mqtt_cb(cat_mq_topic, cat_mq_payload):
global cat_topic, cat_msg, counter, previous, cat
cat_topic = cat_mq_topic
cat_msg = cat_mq_payload
label5.setText(str(cat_topic))
label7.setText(str(cat_msg))
pass
print('Start Mqtt')
counter = 0
previous = 0
cat = CAT1(tx=17, rx=16)
cat.mqtt_to_connect('mqtt.m5stack.com', 1883, 'mqtt_m9', '', '', 120)
if cat.is_connect_mqtt():
print('Connected Mqtt')
while not (cat.mqtt_subscribe('SubTopic', cat_mqtt_cb, 0)):
cat.mqtt_unsubscribe('SubTopic')
print('Success Subscribe')
while True:
cat.mqtt_poll()
if counter != previous:
cat.mqtt_publish('PubTopic', str(counter), 0)
previous = counter
if cat.is_connect_mqtt():
print('Connected Mqtt')
counter = random.randint(100000, 999999)
print((str('counter:') + str(counter)))
wait_ms(2)
cat.get_gprs_network_registration()
cat.get_network_registration()
cat.get_single_quality()
cat.check_status()
cat.enable_PDP_context()
cat.get_ezdata(ezdata_get_IklJVcb, 'GCJ3Ic5h2eXnzV3rT3bBXvrncCaJnART', '')
cat.remove_ezdata('GCJ3Ic5h2eXnzV3rT3bBXvrncCaJnART', '')
at.set_ezdata('GCJ3Ic5h2eXnzV3rT3bBXvrncCaJnART', '', '', 0)
cat.get_CCID()
cat.get_IMEI()
cat.http_get('')
cat.http_post('', 'application/json', '')
cat.http_terminate()
CAT1(tx=17, rx=16)
cat.is_connect_mqtt()
cat.mqtt_to_connect('mqtt.m5stack.com', 1883, '', '', '', 120)
cat.mqtt_disconnect()
cat.mqtt_poll()
cat.mqtt_publish('', '', 0)
cat.mqtt_subscribe('', cat_mqtt_cb, 0)
def cat_mqtt_cb(cat_mq_topic, cat_mq_payload):
global ezdata_value1, cat_topic, cat_msg, cat
cat_topic = cat_mq_topic
cat_msg = cat_mq_payload
pass
cat.mqtt_unsubscribe('')
cat.poweroff()
cat.reset()
cat.set_command_echo_mode(0)