1. 项目背景与核心价值
去年帮朋友改造老旧安防系统时,发现一个头疼的问题:那些使用SIM卡发送报警短信的2G设备,在4G退网大潮中逐渐失效。运营商停止2G服务后,价值几十万的设备直接变砖。这个开源UART短信转发器项目,就是为解决这类"哑终端"设备的联网困境而生。
它的核心功能是通过串口(UART)接收传统设备发出的短信,再通过4G模块或WiFi转发到智能手机或云平台。实测在工业监控、农业传感、智能电表等场景下,能让老设备续命5-10年。最让我惊喜的是,整套方案成本可以控制在50元以内——相比更换整套物联网设备,性价比堪称降维打击。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件选型与电路设计
2.1 主控芯片的抉择
在ESP32-C3和STM32F103之间反复横跳后,最终选择了前者。虽然STM32在工业领域更常见,但ESP32-C3的WiFi/BLE双模和RISC-V架构更符合未来趋势。关键是其内置的USB转UART桥接芯片,省去了外部CH340G模块,PCB面积直接缩小40%。
重要提示:选用ESP32-C3-WROOM-02模组时,务必确认是"REV3"版本。早期版本存在UART波特率超过115200时丢包的致命缺陷。
2.2 短信模块的玄学
SIM800L曾是首选,直到我在-20℃的冷库测试时遭遇大规模通信失败。现在推荐移远EC21系列,虽然贵30元但支持全网通4G。特别注意:模块的UART电平必须与主控匹配!曾有工程师烧毁三块EC21才意识到1.8V电平需要电平转换。
2.3 电源设计的血泪史
最初用AMS1117线性稳压器,直到发现4G模块发射时电压骤降导致重启。改用SY8089同步降压IC后问题解决,关键参数:
- 输入电容:至少22μF陶瓷+100μF电解
- 电感:4.7μH(如CDRH3D28)需满足3A饱和电流
- 使能引脚需接100nF电容防误触发
3. 固件开发关键点
3.1 AT指令的状态机实现
短信转发最复杂的是处理模块返回的"不定长响应+URC中断"。我的解决方案是三层状态机:
c复制typedef enum {
SM_IDLE,
SM_WAIT_FOR_CMT, // 等待+CMT提示
SM_READ_NUMBER, // 提取号码
SM_RE
