This program connects to a server via MQTT, subscribes to a specific topic, generates a random number when button A is pressed, publishes it to the topic, and displays it on the serial port.
from m5stack import *
from m5ui import *
from uiflow import *
import hat
setScreenColor(0xffffff)
nb = hat.get(hat.CBACK_NBIOT)
nb_topic = None
nb_msg = None
counter = None
previous = None
import random
def hat_cbacknbiot_mqtt_cb(nb_mq_topic, nb_mq_payload):
global nb_topic, nb_msg, counter, previous
nb_topic = nb_mq_topic
nb_msg = nb_mq_payload
print(nb_topic)
print(nb_msg)
pass
def buttonA_wasPressed():
global nb_topic, nb_msg, counter, previous
counter = random.randint(100000, 999999)
print(counter)
label2.setText(str(counter))
pass
btnA.wasPressed(buttonA_wasPressed)
counter = 0
previous = 0
nb.mqtt_to_connect('mqtt.m5stack.com', 1883, 'm5_mqtt999', '', '', 120)
if nb.mqtt_check_connection():
print('Connected')
while not (nb.mqtt_subscribe('SubTopic', hat_cbacknbiot_mqtt_cb, 0)):
nb.mqtt_unsubscribe('SubTopic')
print('Subscribed')
while True:
nb.mqtt_poll()
if counter != previous:
nb.mqtt_publish('PubTopic', str(counter), 0)
previous = counter
wait_ms(2)
print((str('ip:') + str((nb.coap_to_connect('120.77.157.90', 5683)))))
def ezdata_get_jsdbZcb(value):
global ezdata_value1
ezdata_value1 = value
pass
nb.get_ezdata(ezdata_get_jsdbZcb, 'wCGubMfa3ExoVXuEzuYQy4zm7cumT5FI', '')
print((str('registration:') + str((nb.get_gprs_network_registration()))))
print((str('registration:') + str((nb.get_network_registration()))))
print((str('quality:') + str((nb.get_single_quality()))))
print((str('status:') + str((nb.check_status()))))
print(nb.coap_destroy())
print((str('get:') + str((nb.coap_get('/m5stack-get')))))
print((str('post:') + str((nb.coap_post('/m5stack-post', '', content_format=0)))))
print((str('put:') + str((nb.coap_put('/m5stack-put', '', content_format=0)))))
nb.destroy_https()
print((str('connect:') + str((nb.disconnect_server()))))
nb.remove_ezdata('wCGubMfa3ExoVXuEzuYQy4zm7cumT5FI', '')
nb.set_ezdata('wCGubMfa3ExoVXuEzuYQy4zm7cumT5FI', '', '', 0)
print(nb.get_CCID())
print(nb.get_IMEI())
print((str('http:') + str((nb.http_service(0, '', '', 'application/json', '')))))
nb.modem_power(True)
print(nb.mqtt_check_connection())
nb.mqtt_to_connect('mqtt.m5stack.com', 1883, '', '', '', 120)
nb.mqtt_disconnect()
nb.mqtt_poll()
nb.mqtt_publish('', '', 0)
print((str('mqtt:') + str((nb.mqtt_subscribe('', hat_cbacknbiot_mqtt_cb, 0)))))
def hat_cbacknbiot_mqtt_cb(nb_mq_topic, nb_mq_payload):
global nb_topic, nb_msg
nb_topic = nb_mq_topic
nb_msg = nb_mq_payload
pass
nb.mqtt_unsubscribe('')
nb.poweroff()
nb.reset()
print((str('status:') + str((nb.set_command_echo_mode(0)))))