pdf-icon

UIFlow Guide

UiFlow1 Blockly

Event

Unit

UiFlow1 Project

Hat CBack Nbiot

Example

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)

API

print((str('ip:') + str((nb.coap_to_connect('120.77.157.90', 5683)))))
  • Initialize CoAP using IP settings
def ezdata_get_jsdbZcb(value):
  global ezdata_value1
  ezdata_value1 = value
  pass

nb.get_ezdata(ezdata_get_jsdbZcb, 'wCGubMfa3ExoVXuEzuYQy4zm7cumT5FI', '')
  • Asynchronously get value from ezdata
print((str('registration:') + str((nb.get_gprs_network_registration()))))
  • Check GPRS network registration status
print((str('registration:') + str((nb.get_network_registration()))))
  • Check network registration status
print((str('quality:') + str((nb.get_single_quality()))))
  • Evaluate signal quality
print((str('status:') + str((nb.check_status()))))
  • Check device status
print(nb.coap_destroy())
  • Destroy CoAP resources
print((str('get:') + str((nb.coap_get('/m5stack-get')))))
  • Retrieve CoAP data
print((str('post:') + str((nb.coap_post('/m5stack-post', '', content_format=0)))))
  • Submit CoAP data
print((str('put:') + str((nb.coap_put('/m5stack-put', '', content_format=0)))))
  • Update CoAP data
nb.destroy_https()
  • Destroy HTTPS connection
print((str('connect:') + str((nb.disconnect_server()))))
  • Disconnect from server
nb.remove_ezdata('wCGubMfa3ExoVXuEzuYQy4zm7cumT5FI', '')
  • Remove data from ezdata
nb.set_ezdata('wCGubMfa3ExoVXuEzuYQy4zm7cumT5FI', '', '', 0)
  • Save data to ezdata
print(nb.get_CCID())
  • Retrieve CCID
print(nb.get_IMEI())
  • Retrieve IMEI
print((str('http:') + str((nb.http_service(0, '', '', 'application/json', '')))))
  • HTTP service
nb.modem_power(True)
  • Modem power control
print(nb.mqtt_check_connection())
  • Check MQTT connection status
nb.mqtt_to_connect('mqtt.m5stack.com', 1883, '', '', '', 120)
  • Establish MQTT connection
nb.mqtt_disconnect()
  • Disconnect MQTT
nb.mqtt_poll()
  • Poll MQTT messages
nb.mqtt_publish('', '', 0)
  • Publish MQTT message
print((str('mqtt:') + str((nb.mqtt_subscribe('', hat_cbacknbiot_mqtt_cb, 0)))))
  • Subscribe to MQTT topic
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
  • Set MQTT subscription callback
nb.mqtt_unsubscribe('')
  • Unsubscribe from MQTT topic
nb.poweroff()
  • Power off module
nb.reset()
  • Reset module
print((str('status:') + str((nb.set_command_echo_mode(0)))))
  • Set echo mode
On This Page