4G模块获取多个基站信息

获取多个基站信息,需要将其模块注网上不同的频段

以下使用AT+QCFG="band" 配置频段

  1. 验证一

                   AT+QENG="SERVINGCELL" 获取注网信息解析说明

        在没锁频之前查询注网信息        

[2024-02-23_11:22:41:108]AT+CPIN?
[2024-02-23_11:22:41:108]+CPIN: READY

[2024-02-23_11:22:41:108]OK
[2024-02-23_11:22:42:550]AT+QENG="SERVINGCELL"
[2024-02-23_11:22:42:550]+QENG: "servingcell","NOCONN","LTE","FDD",460,11,613D204,180,1650,3,5,5,253E,-100,-10,-69,1,23

[2024-02-23_11:22:42:550]OK

        解析:PCI:180 EARFCN:1650 BAND:B3 TAC:253E

        锁BAND1

[2024-02-23_11:23:21:360]AT+QCFG="band",00,1
[2024-02-23_11:23:21:920]OK
[2024-02-23_11:23:38:543]AT+QENG="SERVINGCELL"
[2024-02-23_11:23:38:543]+QENG: "servingcell","NOCONN","LTE","FDD",460,11,613D209,180,100,1,5,5,253E,-100,-9,-71,12,23

[2024-02-23_11:23:38:543]OK

解析:PCI:180 EARFCN:100 BAND:B1 TAC:253E

  1. 锁BAND3
[2024-02-23_11:24:10:503]AT+QCFG="band",00,4
[2024-02-23_11:24:10:941]OK
[2024-02-23_11:24:12:884]AT+QENG="SERVINGCELL"
[2024-02-23_11:24:12:884]+QENG: "servingcell","NOCONN","LTE","FDD",460,11,613CC06,147,1506,3,3,3,253E,-98,-8,-73,7,-

[2024-02-23_11:24:12:884]OK

解析:PCI:147 EARFCN:1506 BAND:B3 TAC:253E

  1. 锁BAND40
[2024-02-23_11:26:12:376]AT+QCFG="band",00,8000000000
[2024-02-23_11:26:12:376]ERROR

解析:ERROR,原因是模块不支持B40频段

  1. 锁BAND41
[2024-02-23_11:27:00:064]AT+QCFG="band",00,10000000000
[2024-02-23_11:27:00:519]OK
[2024-02-23_11:27:04:544]AT+QENG="SERVINGCELL"
[2024-02-23_11:27:04:544]+QENG: "servingcell","LIMSRV","LTE","TDD",460,00,D23CD43,431,40936,41,5,5,2495,-95,-7,-68,20,29

[2024-02-23_11:27:04:544]OK

解析:LIMSRV 未注网,原因是电信卡不支持B41频段

### STM32 使用 4G 模块 实现 MQTT 协议教程 #### 配置方法概述 STM32 微控制器可以通过 4G 模块实现与云端的通信,其中常用的协议之一就是 MQTT。该过程涉及多个环节,包括硬件配置、软件开发以及网络协议的具体实现。 --- #### 硬件准备 1. **选择合适的 MCU 和模块** - 使用 STM32F103TBU6 芯片作为主控单元[^3]。 - 结合 Air724 或 EC600N 这样的 4G 模块完成无线通信功能[^2]。 2. **电路设计** - 将 STM32 的 UART 接口连接至 4G 模块的数据收发接口。 - 确保供电电压匹配,并加入必要的滤波电容以提高稳定性。 --- #### 软件环境搭建 1. **工具链安装** - 安装 Keil MDK 或 IAR Embedded Workbench 编译器用于程序编写和调试。 - 下载并安装 STM32CubeMX 工具生成初始化代码框架。 2. **HAL 库使用** - 利用 HAL 库 API 对外设进行操作,简化复杂度的同时提升兼容性。 ```c // 初始化串口 MX_USART1_UART_Init(); // 发送 AT 命令给 4G 模块 void send_AT_command(char *command) { HAL_UART_Transmit(&huart1, (uint8_t *)command, strlen(command), HAL_MAX_DELAY); } ``` --- #### MQTT 协议实现流程 1. **激活 4G 模块** - 向 4G 模块发送标准 AT 指令序列,确认其正常启动并与基站建立连接。 ```c char at_cmd[] = "AT\r\n"; send_AT_command(at_cmd); // 测试模块响应 ``` 2. **创建 TCP/IP 连接** - 设置目标服务器地址(如阿里云或华为云)及其监听端口号。 - 示例命令如下: ```plaintext AT+QICSGP=1,"cmnet","","",0,0 // APN 参数配置 AT+QIREGAPP // 注册到网络 AT+QIOPEN="TCP","mqtt.aliyun.com",1883 // 打开套接字 ``` 3. **MQTT 数据包封装** - 构造 CONNECT 报文发起会话请求;随后可以发布主题消息或者订阅特定主题。 - JSON 格式的负载通常用来表示传感器采集的结果。 ```json {"temperature": 25.3, "humidity": 60} ``` 4. **保持心跳机制** - 定期向 broker 发送 PINGREQ 来维持长连接状态,防止因超时断线引发重连逻辑触发。 --- #### 错误处理策略 - 如果发现无法成功登录,则需检查信号强度是否满足最低阈值要求; - 当遇到异常掉线情况时,应重新执行整个上线步骤直至恢复正常为止。 --- #### 示例代码片段 以下是部分核心函数定义供参考: ```c #include "main.h" UART_HandleTypeDef huart1; void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void){ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while(1){ uint8_t buffer[10]; memset(buffer, '\0', sizeof(buffer)); /* Read data from serial port */ if(HAL_UART_Receive(&huart1,(uint8_t*)buffer,sizeof(buffer)-1,10)!= HAL_OK ){ Error_Handler(); }else{ Process_MQTT_Packet((char*)buffer); } } } // 处理收到的 MQTT 数据包 void Process_MQTT_Packet(const char* packet){ // 解析并采取相应动作... } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值