COMX LTE Module
LTEModule Class 提供了一组方法来控制 LTE 模块。通过AT指令的聊天脚本,将模块设为PPP模式,然后通过串口将数据发送到互联网。
支持以下产品:
UiFlow2 应用示例
通过 LTE 进行 HTTP GET
在 UiFlow2 中打开 core2_lte_http_example.m5f2 项目。
这个示例演示如何将LTE模块进行PPP拨号,然后使用 requests2 库发送HTTP GET请求。
UiFlow2 代码块:
示例输出:
无
聊天脚本
在 UiFlow2 中打开 core2_lte_chat_example.m5f2 项目。
通过自定义的AT指令聊天脚本,将LTE模块设为PPP模式。
UiFlow2 代码块:
示例输出:
无
MicroPython 应用示例
通过 LTE 进行 HTTP GET
这个示例演示如何将LTE模块进行PPP拨号,然后使用 requests2 库发送HTTP GET请求。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from module import LTEModule 9import requests2 10 11 12label0 = None 13label1 = None 14label2 = None 15label3 = None 16label4 = None 17label5 = None 18label6 = None 19label7 = None 20label8 = None 21label9 = None 22label10 = None 23title0 = None 24comlte_0 = None 25http_req = None 26 27 28def setup(): 29 global \ 30 label0, \ 31 label1, \ 32 label2, \ 33 label3, \ 34 label4, \ 35 label5, \ 36 label6, \ 37 label7, \ 38 label8, \ 39 label9, \ 40 label10, \ 41 title0, \ 42 comlte_0, \ 43 http_req 44 45 M5.begin() 46 Widgets.fillScreen(0x222222) 47 label0 = Widgets.Label("Connecting", 16, 47, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 48 label1 = Widgets.Label("IPv4:", 16, 80, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 49 label2 = Widgets.Label("Netmask:", 16, 112, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 50 label3 = Widgets.Label("Gateway:", 16, 144, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 51 label4 = Widgets.Label("DNS:", 16, 176, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 52 label5 = Widgets.Label("HTTP Code:", 16, 208, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 53 label6 = Widgets.Label("label6", 80, 80, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 54 label7 = Widgets.Label("label7", 120, 112, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 55 label8 = Widgets.Label("label8", 120, 144, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 56 label9 = Widgets.Label("label9", 80, 176, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 57 label10 = Widgets.Label("label10", 140, 208, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 58 title0 = Widgets.Title("COM.LTE Sample Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18) 59 60 comlte_0 = LTEModule(2, 14, 13, verbose=True) 61 comlte_0.chat2("IP", "CMNET") 62 comlte_0.active(True) 63 comlte_0.connect(authmode=comlte_0.AUTH_NONE, username="", password="") 64 while not (comlte_0.isconnected()): 65 pass 66 label0.setText(str("Connected")) 67 label6.setText(str(comlte_0.ifconfig()[0])) 68 label7.setText(str(comlte_0.ifconfig()[1])) 69 label8.setText(str(comlte_0.ifconfig()[2])) 70 label9.setText(str(comlte_0.ifconfig()[3])) 71 http_req = requests2.get( 72 "https://httpbin.org/get", headers={"Content-Type": "application/json"} 73 ) 74 label10.setText(str(http_req.status_code)) 75 http_req.close() 76 77 78def loop(): 79 global \ 80 label0, \ 81 label1, \ 82 label2, \ 83 label3, \ 84 label4, \ 85 label5, \ 86 label6, \ 87 label7, \ 88 label8, \ 89 label9, \ 90 label10, \ 91 title0, \ 92 comlte_0, \ 93 http_req 94 M5.update() 95 96 97if __name__ == "__main__": 98 try: 99 setup() 100 while True: 101 loop() 102 except (Exception, KeyboardInterrupt) as e: 103 try: 104 comlte_0.deinit() 105 from utility import print_error_msg 106 107 print_error_msg(e) 108 except ImportError: 109 print("please update to latest firmware")
示例输出:
无
聊天脚本
通过自定义的AT指令聊天脚本,将LTE模块设为PPP模式。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from module import LTEModule 9import requests2 10 11 12label0 = None 13label1 = None 14label2 = None 15label3 = None 16label4 = None 17label5 = None 18label6 = None 19label7 = None 20label8 = None 21label9 = None 22label10 = None 23title0 = None 24comlte_0 = None 25http_req = None 26 27 28def setup(): 29 global \ 30 label0, \ 31 label1, \ 32 label2, \ 33 label3, \ 34 label4, \ 35 label5, \ 36 label6, \ 37 label7, \ 38 label8, \ 39 label9, \ 40 label10, \ 41 title0, \ 42 comlte_0, \ 43 http_req 44 45 M5.begin() 46 Widgets.fillScreen(0x222222) 47 label0 = Widgets.Label("Connecting", 16, 47, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 48 label1 = Widgets.Label("IPv4:", 16, 80, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 49 label2 = Widgets.Label("Netmask:", 16, 112, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 50 label3 = Widgets.Label("Gateway:", 16, 144, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 51 label4 = Widgets.Label("DNS:", 16, 176, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 52 label5 = Widgets.Label("HTTP Code:", 16, 208, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 53 label6 = Widgets.Label("label6", 80, 80, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 54 label7 = Widgets.Label("label7", 120, 112, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 55 label8 = Widgets.Label("label8", 120, 144, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 56 label9 = Widgets.Label("label9", 80, 176, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 57 label10 = Widgets.Label("label10", 140, 208, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 58 title0 = Widgets.Title("COM.LTE Sample Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18) 59 60 comlte_0 = LTEModule(2, 14, 13, verbose=True) 61 comlte_0.chat( 62 [ 63 ["ABORT", "BUSY"], 64 ["ABORT", "NO ANSWER"], 65 ["ABORT", "NO CARRIER"], 66 ["ABORT", "NO DIALTONE"], 67 ["ABORT", "\\nRINGING\\r\\n\\r\\nRINGING\\r"], 68 ["SAY", "modem init: press <ctrl>-C to disconnect\\n"], 69 ["", "+++ATH"], 70 ["SAY", "Before Connecting\\n"], 71 ["OK", 'AT+CGDCONT=1,"IP","CMNET"'], 72 ["SAY", "\\n + defining PDP context\\n"], 73 ["", "ATD*99#"], 74 ["SAY", "Number Dialled\\n"], 75 ["SAY", "\\n + attaching"], 76 ["SAY", "\\n + requesting data connection"], 77 ["CONNECT", "\\d\\c"], 78 ["SAY", "\\n + connected"], 79 ] 80 ) 81 comlte_0.active(True) 82 comlte_0.connect(authmode=comlte_0.AUTH_NONE, username="", password="") 83 while not (comlte_0.isconnected()): 84 pass 85 label0.setText(str("Connected")) 86 label6.setText(str(comlte_0.ifconfig()[0])) 87 label7.setText(str(comlte_0.ifconfig()[1])) 88 label8.setText(str(comlte_0.ifconfig()[2])) 89 label9.setText(str(comlte_0.ifconfig()[3])) 90 http_req = requests2.get( 91 "https://httpbin.org/get", headers={"Content-Type": "application/json"} 92 ) 93 label10.setText(str(http_req.status_code)) 94 http_req.close() 95 96 97def loop(): 98 global \ 99 label0, \ 100 label1, \ 101 label2, \ 102 label3, \ 103 label4, \ 104 label5, \ 105 label6, \ 106 label7, \ 107 label8, \ 108 label9, \ 109 label10, \ 110 title0, \ 111 comlte_0, \ 112 http_req 113 M5.update() 114 115 116if __name__ == "__main__": 117 try: 118 setup() 119 while True: 120 loop() 121 except (Exception, KeyboardInterrupt) as e: 122 try: 123 comlte_0.deinit() 124 from utility import print_error_msg 125 126 print_error_msg(e) 127 except ImportError: 128 print("please update to latest firmware")
示例输出:
无
API参考
LTEModule
- class module.lte.LTEModule(id, tx, rx, verbose=False)
基类:
objectLTE模块类。
- 参数:
UiFlow2 代码块:

MicroPython 代码块:
from module import LTEModule comlte_0 = LTEModule(2, 14, 13, verbose=True)
- active([is_active])
如果传递了布尔参数,则激活(“up”)或停用(“down”)网络接口。否则,如果未提供参数,则查询当前状态。
UiFlow2 代码块:

MicroPython 代码块:
comlte_0.active(True) comlte_0.active(False) comlte_0.active()
- connect(authmode=AUTH_NONE, username='', password='')
使用给定的参数启动 PPP 连接。
- 参数:
- 返回:
无
UiFlow2 代码块:

MicroPython 代码块:
comlte_0.connect(authmode=AUTH_NONE, username="", password="") comlte_0.connect()
- isconnected()
如果 PPP 链路已连接且正常运行,则返回 True。否则,返回 False。
- 返回:
如果 PPP 链路已连接且正常运行,则为 True,否则为 False。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
comlte_0.isconnected()
- ifconfig()
获取 IP 级网络接口参数:IP 地址、子网掩码、网关和 DNS 服务器。此方法返回包含上述信息的四元组。
- 返回:
包含 IP 地址、子网掩码、网关和 DNS 服务器的四元组。
UiFlow2 代码块:




MicroPython 代码块:
comlte_0.ifconfig() comlte_0.ifconfig()[0] # IP address comlte_0.ifconfig()[1] # network comlte_0.ifconfig()[2] # gateway comlte_0.ifconfig()[3] # DNS server
- chat(script)
与 LTE 模块聊天。
- 参数:
script (tuple) – 用于与 LTE 模块聊天的命令元组。每个命令都是两个元素的元组:第一个元素是期望值,第二个元素是命令。例如,((“OK”, “AT”)。
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
comlte_0.chat((("OK", "AT"), ("OK", "AT+CGDCONT=1,"IP","CMNET""), ("OK", "ATD*99#")))
- chat2(pdp_type, apn)
与LTE模块聊天,建立PPP连接。
UiFlow2 代码块:

MicroPython 代码块:
comlte_0.chat2("IP", "CMNET")
- deinit()
取消初始化 LTE 模块。
UiFlow2 代码块:

MicroPython 代码块:
comlte_0.deinit()
- 返回类型:
None


