☰
低成本4G蜂窝上网方案:模组选型与树莓派Linux实操指南
2026/10/19 5:24:44 网站建设 项目流程

便宜又好用的移动 4G 蜂窝上网方案,我这两年陆陆续续折腾了不少。最开始只是为了工地上环境监测设备不再依赖 WiFi 中继,后来发现这套东西从农业大棚、无人售货机到移动机器人,几乎都能用上。这篇文章不做云评测,只讲我实际摸过的模组、踩过的坑,还有从 ESP32 到树莓派上把一张普通的 4G 流量卡变成设备网络通道的完整操作流程。只要你能看懂串口 AT 指令,或者能在 Linux 上敲几行命令,就可以照着来一遍。

1. 与其用手机开热点,不如把 4G 蜂窝模组当默认网卡

先说说我为什么对“手机开热点”这种方案越来越没信心。前年给一期农业大棚做土壤墒情监测,当时图省事,直接用一台旧手机插流量卡开热点,树莓派通过 WiFi 连手机上网。前两个月还行,后面问题层出不穷:手机系统一自动更新就重启,热点名称变了,设备断网;工人拔插充电线的时候碰到电源,手机直接关机;到了夏天高温,手机在配电箱里过热频繁重启。最后实在没办法,才认真研究 4G 蜂窝模组方案。换上正规模组之后,设备连续跑了三个月,几乎没有掉线记录。

手机开热点真正的问题,不是信号差,而是它没有“设备思维”。手机是为交互设计的,省电策略、自动更新、通话优先级都会影响网络稳定性。4G 模组不一样,它从设计上就是冲着无人值守、长时间在线去的,支持远程 AT 指令控制,断电重启就能自己拨号上线,根本不需要有人去碰它。

我说的“移动 4G 蜂窝”,不单指某个运营商的 SIM 卡,而是指通过蜂窝模组直接接入运营商 LTE 网络,不依赖家里的宽带或路由器。这类方案最常见的形态有三种:

  • 裸模组 + 单片机或开发板,用串口发 AT 指令。
  • USB Dongle / 开发板套件,插在树莓派或 Linux 主机上,直接枚举成网卡。
  • 随身 WiFi / 工业路由器形态,里面集成模组,外部用网口或 WiFi 接入。

我自己用下来,最舒服的是第二种。树莓派或者普通 x86 迷你主机,插上一个 USB 4G 扩展板,系统里多出来一个wwan0接口,就像加了一张无线网卡。后面的程序完全不用感知底下是光纤、WiFi 还是蜂窝网络,统一走 IP 协议栈。

这里先给一个结论:如果你的项目是固定点位、低速率、低功耗,优先考虑 Cat.1 模组;如果要做视频传输或者车载导航这类对带宽有要求的应用,再上 Cat.4。很多人一上来就挑最贵的 5G 模组,实际上大概率用不上。

2. 便宜 4G 模组的内部结构和“上网”原理

很多新手把 4G 模组当成一个黑盒子,插上 SIM 卡就能上网。其实它内部有一套完整的通信子系统。便宜的模组,拆开外壳看,主要就这几块:基带芯片、射频前端、电源管理、SIM 卡接口电路、天线匹配电路,再加上 UART、USB 等对外接口。

基带芯片负责的是协议栈,也就是 4G 通信里最复杂的鉴权、加密、移动性管理、流量调度。射频前端负责把数字信号调制到运营商分配的 LTE 频段上,比如中国移动的 Band 3、Band 8、Band 39、Band 40、Band 41。电源管理这事经常被忽略,实际上最容易出问题。4G 模组在发射瞬间电流可以冲到 2A 甚至更高,如果电源带不动,就会造成掉电重启、搜网失败等诡异故障。

上网过程可以类比成手机连 WiFi:“搜 wifi”对应搜索小区网络,“输入密码”对应 SIM 卡里的鉴权密钥与核心网对‘暗号’,对上了之后,核心网会给模组分配一个 IP 地址,并建立一条数据通道。专业术语叫“附着”和“建立 PDN 连接”。模组拿到 IP 之后,数据通路又有两种模式:

  • 串口转 AT 指令模式:模组内部完成 TCP/IP 协议栈,MCU 只需要通过 AT 指令发AT+CIPOPEN、AT+CIPSEND。
  • USB 网卡模式:模组把自己枚举成 RNDIS 或 CDC-ECM 网卡,把数据包直接交给系统网络协议栈。树莓派上看到wwan0接口,就是这个模式。

这里面,ESP32 这种单片机更适合走 AT 指令模式,因为单片机资源有限,让它跑完整的 TCP/IP 协议栈不现实。树莓派和 x86 Linux 主机则更适合网卡模式,系统自带网络栈,开发效率高很多。

关于制式的选择,我用一张表说明白:

制式下行峰值参考价格适合场景
NB-IoT几十 kbps10-20 元表计、传感器低频上报
Cat.15-10 Mbps20-35 元定位器、智能锁、低速率透传
Cat.4150 Mbps,实测 30-80 Mbps40-80 元视频监控、车机、随身 WiFi
Cat.6300 Mbps100-200 元高带宽移动设备、直播背包

很多人分不清 Cat.1 和 NB-IoT,觉得都是低速率,其实差别很大。NB-IoT 网络覆盖关注的是窄带大连接,单次发包小,延迟高,做不了视频,也做不了频繁的数据交互。Cat.1 走的是 LTE 网络,延迟和带宽都更接近正常的 4G 体验,只是协议栈被裁剪过,成本压得很低。目前市面上那些二三十块钱的 4G 小模块,绝大多数是 Cat.1。如果你的项目是每隔几十秒传一条温湿度数据,Cat.1 完全够用,没必要多花钱上 Cat.4。

3. 从零攒一台 4G 上网盒子:选型、接线和上电检查

先把我试过的几款常见模组摆出来。这里说的价格是指模组裸片或者小批量样品价,2025 年大概行情,给大家一个轮廓:

型号制式接口国内频段参考价我的评价
移远 EC200SCat.1UART/USB全网通25-35 元稳定,文档多,适合新手
广和通 L610Cat.1UART/USB全网通25-35 元老牌方案,固件成熟
中移 ML307ACat.1UART全网通20-30 元价格低,但需要留意渠道
合宙 Air780ECat.1UART/LuatOS全网通15-25 元对单片机开发者非常友好
移远 EC20Cat.4USB全网通50-80 元树莓派圈子的“标配”
SIM7600CECat.4USB/UART全网通60-100 元支持更全,兼容性好

如果你用的是树莓派,建议从 EC20 或者 SIM7600CE 这类 USB 接口模组起步。插上电就能被系统识别成 USB 设备,后续操作基本在 Linux 里完成,不需要自己写复杂的单片机驱动。如果是 ESP32、STM32 这类 MCU,Air780E、EC200S 会更合适,串口发 AT 指令就能控制。

接线是新手翻车重灾区。先说电源。4G 模组的 VBAT 一般要求 3.4V 到 4.3V,推荐 3.8V 左右。很多人图省事直接拿 5V 接上去,轻则模组不工作,重则烧毁。反过来,拿树莓派的 3.3V 接 VBAT,又会出现启动时瞬间电流不够,表现为“一发射就重启”。正确做法是用一个支持 2A 以上的 DC-DC 降压模块,把 5V 降到 3.8V 左右,并且在模组电源旁边加一个大电容,1000uF 左右,用来吸收瞬间电流。如果项目里已经有锂电池,那直接用 3.7V 锂电池供电也行,注意电池压降。

SIM 卡要注意方向。Nano SIM 卡插入卡座时要听到“咔哒”一声,反了会顶坏弹片。卡欠费、卡片磨损、接触不良,都会让模组报SIM not inserted。物联网流量卡尤其要注意,很多卡有“机卡绑定”策略,换到新设备上读不到卡。我有一段时间怎么都注册不上网络,最后发现是卡被绑定了开发板的 IMEI,换了模组必须找卡商解绑。

天线这一环,入门玩家经常觉得“反正有内置天线”就没事,实际上大部分裸模组不存在内置天线,必须外接。模组上至少有一个主天线接口,有些还有分集天线和定位天线。天线不接或者接触不良,信号强度会大幅下降。IPEX 座子上的卡扣很小,用力要均匀,线缆走线不要贴着大电感和大电流线。最好买延长线,把天线放到设备外壳的顶端或者外侧。金属外壳对天线信号衰减非常厉害,这是野外设备掉线的常见原因。

如果你接的是 ESP32,推荐直接参考 TinyGSM 库的写法。接线只需要四根线:电源、GND、TX、RX。由于 ESP32 的串口电平是 3.3V,很多模组的 UART 电平也是 3.3V,可以直接连。如果是 STM32,要注意 5V 的串口不能直接对接,必须加电平转换。TinyGSM 的代码大概长这样:

#include <TinyGsmClient.h> #define SerialAT Serial1 TinyGsm modem(SerialAT); void setup() { SerialAT.begin(115200, SERIAL_8N1, 16, 17); if (!modem.init()) { Serial.println("modem init failed"); while (true); } String imei = modem.getIMEI(); Serial.printf("IMEI: %s\n", imei.c_str()); if (!modem.gprsConnect("cmnet", "", "")) { Serial.println("gprs connect failed"); while (true); } Serial.println("network ready"); }

初学阶段强烈建议直接买一块带完整电源和 SIM 卡槽的评估板,不要上来就焊裸模组。评估板多花的几十块钱,能帮你省下大量接线排查时间。

4. Linux 下的完整启卡流程:查 IMEI、拨号上网、看信号强度

树莓派或者普通 Linux 主机接 USB 4G 模组,第一件事是先确认系统有没有识别到设备。插上模组之后,用lsusb看看有没有新的 USB 设备。如果模组显示为一个串口设备,通常会有/dev/ttyUSB*,如果被识别成网卡,会有wwan0或usb0接口。

在 Ubuntu / Raspberry Pi OS 上,我推荐优先使用 ModemManager 这套工具。系统一般自带了 mmcli 命令行工具。先看当前系统里认到了哪些 modem:

mmcli -L

如果能看到 SIM7600 或者 EC20 之类的设备,说明 ModemManager 已经识别成功了。接着查看模组详细状态:

mmcli -m 0

这个命令能显示模组的厂商、型号、IMEI、SIM 卡状态、运营商注册状态、当前信号强度。很多朋友问“Linux 设备如何查看 4G 硬件模块的 IMEI 号”,用 mmcli 是最省事的方法。如果没有 ModemManager,也可以走串口直接发 AT 指令:

AT AT+CGMM AT+CGSN

ATI用来查询模组信息,AT+CGMM查询具体型号,AT+CGSN返回 IMEI。在 Linux 里可以用micro.py /dev/ttyUSB2这种串口工具直接发送,注意 USB 模组不只有一个/dev/ttyUSB,通常/dev/ttyUSB2才是 AT 命令口。

接下来配置 APN 并拨号上网。中国移动通常用cmnet,物联网卡可能是cmiot或者卡商提供的专用 APN,中国电信是ctnet,中国联通是wonet。最关键的是,用错了 APN 可能信号满格但上不了网。ModemManager 下创建并激活 bearer 的命令:

sudo mmcli -m 0 --create-bearer="apn=cmnet,ip-type=ipv4,allowed-auth=chap" sudo mmcli -m 0 --connect-bearer=1

连接成功之后,系统会多出来一个wwan0接口。这时候一个很常见的坑是:接口有了,但没有 IP 地址。需要手动获取 IP:

sudo dhclient wwan0

如果一切顺利,ip addr show wwan0能看到 IPv4 地址。测试网络:

ping -I wwan0 -c 4 223.5.5.5

能 ping 通说明数据通路已经打通。然后再测 DNS 和 HTTP:

curl --interface wwan0 https://www.bing.com

如果 ping 通 IP 但上不了网页,大概率是 DNS 配置问题,可以手动把 DNS 改成公共 DNS 再试。有一回我发现设备能收到微信推送,但 Python 脚本访问某个接口超时,最后发现是运营商对某些目标地址做了策略限制,换一个目标端口就正常了。这类问题在物联网项目里很常见,排查的时候要先把“链路通不通”和“目标通不通”分开看。

如果系统没有 ModemManager,传统方法是 PPP 拨号,配置比较复杂,我自己的经验是不推荐新手折腾。USB 网卡模式在 Linux 下非常成熟,能用网卡模式就别搞 PPP。确认下模块固件是否支持 RNDIS 或 ECM 配置,一般原厂手册都有AT+CUSBD或者AT+QCFG之类的命令。EC20 偶尔插上后只显示串口不出网卡,这时重启一下系统或者重新插拔 USB,大多数情况下能解决。

信号强度直接决定了设备是否稳定。查看方法:

AT+CSQ

返回格式是+CSQ: 17,99。第一个数字可以换算成手机信号强度:0 表示 -113dBm 以下,31 表示 -51dBm 以上。实测经验是,CSQ在 10 以下基本可以放弃固定位置使用,10 到 15 勉强可用,15 以上比较稳定。我更喜欢看 mmcli 里的电平值:

mmcli -m 0 --signal-get

注意,信号好不等于网速一定快。CSQ反映的只是接收电平,如果小区拥塞,即使满格也很慢。所以要同时看AT+QENG或者运营商后台的指标。

5. 信号弱、无法入网、速度差:几次真实排错记录

这里挑几个我真实遇到过的故障,给大家一个排查链路参考。第一个典型故障是“模组能开机,但一直搜不到网”。这时候先看 SIM 卡状态:

AT+CPIN?

返回+CPIN: READY说明 SIM 卡正常。如果返回+CME ERROR: SIM not inserted,那就是卡没插好或者触点坏了。接下来看网络注册状态:

AT+CREG?
  • 返回+CREG: 0,1或0,5:已注册,5 表示漫游。
  • 返回0,0:没找到网络。
  • 返回0,3:被网络拒绝。
  • 返回0,2:正在搜网。 如果是拒绝状态,首先怀疑 APN 配置有问题,其次是卡被限制接入。物联网卡经常有“定向流量”和“白名单”限制,插在非白名单模组上就会注册成功后立即掉网。

第二个典型故障是“有信号但 píng 不通服务器”。我遇到过一次,CSQ 显示 20,信号看起来很好,但 MQTT 客户端连不上云平台。排查后发现模组的 APN 错配成了cmnet,而那张物联卡实际上要求专用 APNcmiot。模组仍然能附着成功、拿到 IP,但核心网不给他转发数据流量。这就像办了只允许走专用车道的通行卡,你却把它开到普通车道上,看似畅通,实际上被交警拦住了。解决办法就是确认卡的 APN,在模组初始化脚本里写死。

第三个故障是供电问题。我见过一个客户把模组接在树莓派 GPIO 的 5V 和 GND 上,看起来能工作,但只要一发射数据就重启。用万用表测 VBAT 引脚,空闲时 4.2V,一发射瞬间掉到 3.0V 以下。后来换成单独的 DC-DC 模块,问题立刻消失。4G 模组的峰值电流和平均电流差距很大,供电设计必须留足余量。如果你是长期部署,最好加一个几十块钱的工业级降压模块,别省这钱。

第四个故障是天线接触不良。设备装在金属配电箱里,信号 CSQ 只有 4。一开始以为是模组坏了,换了好几个模组都一样。后来把内置 IPEX 天线用延长线引出到配电箱外壳外侧,CSQ 瞬间变成 14。这里要特别提醒:金属外壳对 4G 信号的衰减比想象中大得多,天线不仅要用延长线引出,还要避开电源线和电机线,否则可能引入干扰。

第五个故障是 SIM 卡欠费。听起来很蠢,但实际上运营商的物联网卡余额机制很复杂,有些卡不是一次性扣完,而是按周期扣。我遇到过设备在线但速度极慢,后台一查,套餐内流量已经用尽,被限速到 1Mbps 以下。这类问题等到你发现的时候,往往已经影响业务很久了。建议做监控脚本定期拉取套餐余量,低成本设备最少也要在卡商后台设置余量告警。

6. 5G 基站还“向下兼容”4G 吗?树莓派选 4GB 还是 8GB?

很多朋友看到运营商到处建 5G 基站,担心手里的 4G 模组再过两年就废了。我的判断是:至少在最近几年,4G 网络依然是打底网络,5G 基站普遍还会向下兼容 4G,但不排除极少数纯 SA 站点会关闭 4G 载波。

从组网方式解释一下。5G 分为 NSA 和 SA 两种模式。NSA 是“5G 基站 + 4G 核心网”的组合,终端要同时连 4G 和 5G,4G 网络负责信令和语音,5G 网络负责高速数据。这种模式下,5G 基站必须把 4G LTE 载波也开起来,否则 NSA 终端根本锚定不上。SA 是独立组网,理论上只需要 5G 核心网和 5G 基站,但在实际网络里,语音通话的 VoLTE 还在 4G 网络上承载,大量普通终端也还是 4G 手机。运营商不会轻易把 4G 关停,因为那等于放弃一大批存量终端。

所以,除非你部署的位置正好被划成“纯 SA 覆盖区且运营商主动关闭 LTE 载波”,否则 4G 模组基本可以继续跑。我现在的做法是,新项目选型时如果预算允许,会优先选支持 Band 3、Band 8、Band 40、Band 41 的全网通模组,多覆盖几个频段,将来换运营商或者设备迁移到国外网点时还有余地。

再来说树莓派选 4GB 还是 8GB 的问题。这个名字本身容易误导人,“4GB”指的是内存容量,和“4G 蜂窝网络”完全是两码事。树莓派 4B 和 4GB 版本、8GB 版本的区别只在内存大小,CPU 完全相同。如果你的小车要做具身智能相关实验,要跑视觉模型、SLAM、路径规划,我建议直接上 8GB 版本,因为 OpenCV、PyTorch、ROS 2 这些框架吞内存非常快,4GB 跑起来会经常 swap,严重影响实时性。如果只是把树莓派当边缘网关,跑 MQTT 和 Modbus 协议,采集数据通过 4G 模组上传,那 4GB 完全够用,甚至树莓派 3B 都能胜任。

顺带提醒一下,网上有些开发板型号叫“XX 4G 开发板”,这里的“4G”可能是指板载蜂窝通信模组,也可能是“4GB 内存”的缩略写法。下单之前一定要看清楚商品详情,别买回来发现根本不是自己想要的那个“4G”。我见过不止一个朋友把“4G 版树莓派 HAT”当成“内存 4GB 的树莓派扩展板”,结果插上之后发现只是个蜂窝模组扩展板,完全是两码事。

7. 低成本采购与账单复盘:哪些钱值得花,哪些是冤枉钱

最后总结一份我自己的低成本采购清单,以一套完整的树莓派 4G 上网方案为例。

配件便宜方案舒适方案备注
树莓派树莓派 3B,二手约 150 元树莓派 4B 8GB,约 450 元网关项目用旧款就行
4G 模组Air780E 评估板,30-50 元EC20 USB Dongle,80-120 元优先选支持 USB 网卡模式的
天线普通胶棒天线,5-8 元带延长线全频段天线,15-30 元天线别选最便宜的,影响很大
电源普通 5V 3A 电源,20 元工业级宽压电源,50 元野外部署选宽压
SIM 卡资费物联卡,月租 5-15 元正规运营商流量套餐避免超低套餐陷阱

在一整套方案里,最容易踩的冤枉钱就是“为了省 10 块钱买最便宜的模组和天线”。模组便宜但是文档不全、示例代码缺失,光是调通串口就可能花掉半天;天线买差了,信号差,最后又得返工换天线。反过来,也有人买模组时被“支持 5G”“支持全球频段”这种卖点吸引,多花了一两百块,结果自己的产品里根本用不上。产品选型还是要回到需求:现场供电是否稳定、允许的功耗多大、数据量多少、要不要国外漫游、要不要语音通话。

流量卡的选择,我建议不要贪那种无限流量或者几块钱包月的卡。物联网卡的市场非常乱,低价卡往往绑定复杂,要么在月底清零,要么在流量超过一定阈值后直接断网。正规卡商的卡,哪怕月租贵几块钱,至少后台能查到实时用量、能设置告警,这对无人值守场景来说才是最省事的。我在一个项目里吃过亏,贪便宜买了一批低质物联卡,结果经常某几张卡莫名离线,排查到最后发现是卡商批量停卡换卡,后续运维成本远超省下的流量费。

还有一个小技巧:买模组之前先查一下原厂是否提供 Linux 下的 usb-modeswitch 配置或者 RNDIS 驱动的完整手册。有些冷门模组便宜得离谱,但技术支持几乎为零,出了问题只能自己慢慢折腾。以我目前的手感,移远、广和通、中移物联这几家,文档完整度和社区活跃度比较令人放心,适合做长期项目。

我个人现在做新项目,已经习惯“先买两到三块不同品牌、不同档位的评估板,同时拿回来跑同一套测试程序”这种流程。高速率场景选 Cat.4 USB 模组,低功耗传感器选 Cat.1 串口模组,稳定性和成本心里都有数之后再转入量产。便宜当然重要,但真正便宜的方案永远建立在你能快速把网络链路跑通的基础上,否则省下来的钱都会变成时间成本还回去。希望这套 4G 蜂窝联网的搭建思路能帮你少走一段弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询