Atom DTU NBIoT
这是 ATOM DTU NBIoT 的驱动程序库,用于从DTU NBIoT 接受和发送数据。
支持以下产品:
备注
请在使用前确认设备是否支持您所在地区的 NB-IoT 频段。
备注
请确保 SIM7020 的固件版本大于或等于 1752B12SIM7020C。
可以使用
来检查固件版本。
UiFlow2 示例
NBIoT HTTP 示例
在 UiFlow2 中打开 atoms3_base_nbiot_http_example.m5f2 项目。
此示例展示了如何使用 Atom DTU NBIoT 发送 HTTP 请求。
UiFlow2 代码块:
示例输出:
通过串口接收到的 NBIoT 消息输出数据。
MQTT 示例
在 UiFlow2 中打开 atoms3_base_nbiot_mqtt_example.m5f2 项目。
此示例展示了如何使用 Atom DTU NBIoT 发送 MQTT 消息。
UiFlow2 代码块:
示例输出:
屏幕上显示接收到的 NBIoT 消息数据。
MicroPython 示例
NBIoT HTTP 示例
此示例展示了如何使用 Atom DTU NBIoT 发送 HTTP 请求。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from hardware import UART 9from base import AtomDTUNBIoT 10from base import AtomRS485 11 12 13uart2 = None 14base_rs485 = None 15base_nbiot = None 16base_nbiot_http_req = None 17 18 19def setup(): 20 global uart2, base_rs485, base_nbiot, base_nbiot_http_req 21 22 M5.begin() 23 Widgets.fillScreen(0x000000) 24 25 uart2 = UART(2, baudrate=115200, bits=8, parity=None, stop=1, tx=5, rx=6) 26 base_rs485 = AtomRS485( 27 1, 28 baudrate=115200, 29 bits=8, 30 parity=None, 31 stop=1, 32 tx=7, 33 rx=8, 34 txbuf=256, 35 rxbuf=256, 36 timeout=0, 37 timeout_char=0, 38 invert=0, 39 flow=0, 40 ) 41 base_nbiot = AtomDTUNBIoT(uart2, verbose=False) 42 base_nbiot.connect(apn="cmnbiot") 43 while not (base_nbiot.isconnected()): 44 pass 45 base_nbiot_http_req = base_nbiot.post( 46 "http://httpbin.org/post", 47 json={"message": "Hello from M5Stack!", "status": "active"}, 48 headers={ 49 "Content-Type": "application/json", 50 "Custom-Header": "MyHeaderValue", 51 }, 52 ) 53 print((str("status code: ") + str((base_nbiot_http_req.status_code)))) 54 print((str("content: ") + str((base_nbiot_http_req.content)))) 55 56 57def loop(): 58 global uart2, base_rs485, base_nbiot, base_nbiot_http_req 59 M5.update() 60 61 62if __name__ == "__main__": 63 try: 64 setup() 65 while True: 66 loop() 67 except (Exception, KeyboardInterrupt) as e: 68 try: 69 from utility import print_error_msg 70 71 print_error_msg(e) 72 except ImportError: 73 print("please update to latest firmware")
示例输出:
通过串口接收到的 NBIoT 消息输出数据。
MQTT 示例
此示例展示了如何使用 Atom DTU NBIoT 发送 MQTT 消息。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4import os, sys, io 5import M5 6from M5 import * 7from base import AtomDTUNBIoT 8from hardware import UART 9from base import AtomRS485 10 11 12label0 = None 13base_nbiot = None 14uart2 = None 15base_rs485 = None 16base_nbiot_mqtt = None 17 18 19def base_nbiot_testtopic_a_event(data): 20 global label0, base_nbiot, uart2, base_rs485, base_nbiot_mqtt 21 label0.setText(str(data[1])) 22 23 24def setup(): 25 global label0, base_nbiot, uart2, base_rs485, base_nbiot_mqtt 26 27 M5.begin() 28 Widgets.fillScreen(0x000000) 29 label0 = Widgets.Label("label0", 4, 6, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 30 31 uart2 = UART(2, baudrate=115200, bits=8, parity=None, stop=1, tx=5, rx=6) 32 base_rs485 = AtomRS485( 33 1, 34 baudrate=115200, 35 bits=8, 36 parity=None, 37 stop=1, 38 tx=7, 39 rx=8, 40 txbuf=256, 41 rxbuf=256, 42 timeout=0, 43 timeout_char=0, 44 invert=0, 45 flow=0, 46 ) 47 base_nbiot = AtomDTUNBIoT(uart2, verbose=False) 48 base_nbiot.connect(apn="cmnbiot") 49 while not (base_nbiot.isconnected()): 50 pass 51 base_nbiot_mqtt = base_nbiot.MQTTClient( 52 "uiflow2-client", "mqtt.m5stack.com", port=1883, user="", password="", keepalive=0 53 ) 54 base_nbiot_mqtt.connect(clean_session=False) 55 base_nbiot_mqtt.subscribe("testtopic/a", base_nbiot_testtopic_a_event, qos=0) 56 57 58def loop(): 59 global label0, base_nbiot, uart2, base_rs485, base_nbiot_mqtt 60 M5.update() 61 base_nbiot_mqtt.check_msg() 62 63 64if __name__ == "__main__": 65 try: 66 setup() 67 while True: 68 loop() 69 except (Exception, KeyboardInterrupt) as e: 70 try: 71 from utility import print_error_msg 72 73 print_error_msg(e) 74 except ImportError: 75 print("please update to latest firmware")
示例输出:
屏幕上显示接收到的 NBIoT 消息数据。
API参考
AtomDTUNBIoT
- class base.dtu_nbiot.AtomDTUNBIoT(uart, verbose=False)
基类:
SIM7020创建 AtomDTUNBIoT 对象。
- 参数:
uart (machine.UART) – 要使用的UART对象。
verbose (bool) – 是否打印调试信息。
UiFlow2 代码块:

MicroPython 代码块:
from base import AtomDTUNBIoT from hardware import UART uart0 = UART(2, baudrate=115200, bits=8, parity=None, stop=1, tx=22, rx=19) dtu_nbiot = AtomDTUNBIoT(uart0, verbose=False)
备注
更多详细信息请参阅
NBIOTUnit。
AtomRS485
备注
更多详细信息请参阅 AtomRS485。



