4G Cat.1 模块使用实战:EC200U 联网快速上手

4G Cat.1 模块使用实战:EC200U 联网快速上手

4G Cat.1 模块使用实战:EC200U 联网快速上手

做物联网项目的同学肯定遇到过这个尴尬:WiFi 覆盖不到的地方怎么办?2G 退网了,NB-IoT 带宽又太小。今天我们来聊聊 4G Cat.1 这个”中庸之道”——速度够用、功耗不高、覆盖还广。

我手头这块是移远的 EC200U,某宝 35 块钱包邮,性价比相当可以。用它做个远程数据采集器、共享单车锁、或者农业传感器,都挺合适。

需要准备什么?

物品 型号/规格 价格
4G Cat.1 模块 移远 EC200U ¥35
USB 转 TTL 模块 CH340/CP2102 ¥8
天线 4G LTE 棒状天线 ¥12
SIM 卡 物联网卡/手机卡 ¥10/月
杜邦线 母对母 ¥5
总计 ¥70

注意: EC200U 工作电压是 3.3V-4.4V,别直接接 5V!我用的是带 LDO 的 USB 转 TTL 模块,可以直接从 USB 取电。

步骤 1:硬件连接

EC200U 的引脚定义如下(模块正面朝上,天线接口在上方):

┌─────────────────────────┐
│  ○ ○ ○ ○ ○ ○ ○ ○       │
│  VCC TX RX GND ...      │  ← 这一侧是 UART
│                         │
│              [天线座]    │
└─────────────────────────┘

接线表:

EC200U USB 转 TTL 说明
VCC 3.3V/4.0V 电源正极
GND GND 电源负极
TX RX 发送接接收
RX TX 接收接发送
NET LED 网络状态指示(可选)

接好后插上电脑 USB,打开串口工具(我推荐 SecureCRT 或者 Putty),波特率设置为 115200,8N1。

步骤 2:AT 命令测试

打开串口后,先按几下回车,应该能看到空白响应。然后输入:

AT

正常回复:

OK

如果没反应,检查:
1. 接线是否 TX/RX 接反了(最常见)
2. 波特率是否正确
3. 供电是否足够(USB 口有时供电不足,加个 5V 电源)

接下来测试 SIM 卡:

AT+CPIN?

回复 +CPIN: READY 说明卡识别正常。如果回复 +CPIN: NOT INSERTED,检查 SIM 卡是否插好(金属面朝下,缺口朝外)。

查看信号强度:

AT+CSQ

回复示例:+CSQ: 18,99

第一个数字是信号强度(0-31),18 算中等偏上,大于 10 就能正常上网了。99 表示误码率未知。

步骤 3:配置 APN 并拨号

不同运营商的 APN 设置不同,下面是常见的:

运营商 APN
移动 cmnet
联通 3gnet
电信 ctnet

我这张是联通卡,设置如下:

AT+CGDCONT=1,"IP","3gnet"

回复 OK 后,开始拨号:

ATD*99#

如果成功,会看到:

CONNECT

这时候模块已经建立 PPP 连接了。在 Linux 上可以用 pppd 拨号,在嵌入式设备上可以直接用模块的 PPP 接口。

但等等! 我们做物联网项目,一般用 TCP/UDP 直接通信更方便。先挂断:

+++

(注意:+++ 前后要有至少 1 秒静默时间,别紧接着其他字符发)

然后:

ATH

步骤 4:TCP 连接测试

EC200U 支持 TCP/IP 协议栈,直接用 AT 命令就能连服务器。我们来测试连接一个 MQTT 服务器:

# 设置 APN(如果之前没设过)
AT+CGDCONT=1,"IP","3gnet"

激活上下文

AT+CGACT=1,1

等待回复 OK

建立 TCP 连接(测试用 MQTT 公共服务器)

AT+QIOPEN=1,0,"TCP","broker.emqx.io",1883,0,0

等待回复:+QIOPEN: 0,0 表示成功

连接成功后,可以发送数据:

# 发送数据(先指定连接 ID 和长度)
AT+QISEND=0,15

看到 > 提示符后输入数据

Hello from Cat.1!

发送成功会回复:SEND OK

关闭连接:

AT+QICLOSE=0

步骤 5:实战案例 – 温湿度数据上报

下面是一个完整的 Arduino 示例,用 ESP32 + EC200U 上报温湿度数据到 HTTP 服务器:

#include 
#include 

#define DHTPIN 4
#define DHTTYPE DHT11
#define EC200U_SERIAL Serial2

DHT dht(DHTPIN, DHTTYPE);
HardwareSerial ec200u(2);

const char* SERVER = "your-server.com";
const int PORT = 8080;

void setup() {
Serial.begin(115200);
ec200u.begin(115200, SERIAL_8N1, 16, 17); // RX=16, TX=17

dht.begin();
delay(2000);

// 初始化模块
ec200u.println("AT");
delay(100);
ec200u.println("AT+CGDCONT=1,\"IP\",\"3gnet\"");
delay(500);
ec200u.println("AT+CGACT=1,1");
delay(3000);
}

void loop() {
float temp = dht.readTemperature();
float humi = dht.readHumidity();

if (isnan(temp) || isnan(humi)) {
Serial.println("读取传感器失败");
delay(10000);
return;
}

// 建立 TCP 连接
ec200u.printf("AT+QIOPEN=1,0,\"TCP\",\"%s\",%d,0,0\r\n", SERVER, PORT);
delay(3000);

// 发送 HTTP POST
String data = String("{\"temperature\":") + temp +
",\"humidity\":" + humi + "}";

ec200u.printf("AT+QISEND=0,%d\r\n", data.length());
delay(500);

String httpReq = "POST /api/sensor HTTP/1.1\r\n"
"Host: " + String(SERVER) + "\r\n"
"Content-Type: application/json\r\n"
"Content-Length: " + String(data.length()) + "\r\n"
"\r\n" + data;

ec200u.print(httpReq);
delay(2000);

// 关闭连接
ec200u.println("AT+QICLOSE=0");
delay(1000);

// 每 10 分钟上报一次
delay(600000);
}

功耗优化建议:

EC200U 待机电流约 2mA,发射时约 150mA。如果要电池供电,可以:

1. 用 ESP32 的 Deep Sleep
2. 用 MOS 管控制模块电源
3. 减少上报频率(比如 1 小时一次)

这样一套下来,两节 18650 电池能用好几个月。

常见问题排查

问题 1: AT 命令无响应
原因: 接线错误或供电不足
解决: 检查 TX/RX 是否交叉,用万用表测 VCC 是否 3.3V-4.4V

问题 2: +CPIN: NOT INSERTED
原因: SIM 卡没插好或不兼容
解决: 重新插拔 SIM 卡(断电操作),确认是标准 SIM 还是 Nano SIM(需要卡套)

问题 3: 信号弱(CSQ < 10)
原因: 天线没拧紧或位置不好
解决: 拧紧天线,把天线放到金属外壳外面,或者换增益更高的天线

问题 4: TCP 连接超时
原因: APN 设置错误或服务器防火墙
解决: 确认 APN 与运营商匹配,检查服务器端口是否开放

问题 5: 发送数据失败
原因: 连接已断开或缓冲区满
解决:AT+QICLOSE 关闭再重连,发送前检查 AT+QISTATE 确认连接状态

总结

4G Cat.1 在物联网项目里是个很实用的选择:

– ✅ 覆盖广(用现有 4G 基站)
– ✅ 速度够用(下行 10Mbps,上行 5Mbps)
– ✅ 功耗适中(比 4G Cat.4 低很多)
– ✅ 成本低(模块 35 元,流量卡 10 元/月)

适合的场景:
– 远程数据采集(农业、工业)
– 共享设备(充电宝、单车)
– 移动设备追踪(物流、宠物)
– 应急通信备份

唯一需要注意的是供电——发射瞬间电流峰值较大,电源要留足余量。

希望这篇博客文章对您有所帮助!


相关资源:
EC200U 数据手册
AT 命令手册
Arduino 示例代码 GitHub