🚆 LBJ 列车信息采集系统
一个基于 TTGO LoRa 32 v1.6.1(ESP32 + SX1276 868MHz) 的铁路列车接近预警(LBJ)报文接收机项目,用于接收中国铁路列车接近预警系统(821.2375MHz,POCSAG 协议)发射的列车信息报文,并提供 PC 桌面端 与 Android 手机端 两套数据采集与监控软件。
✨ 功能特性
- OLED 实时显示:解析并格式化显示 LBJ 列车报文
- TF 卡存储:接收到的列车信息自动保存为文本和 CSV 格式
- Telnet 服务:通过局域网将格式化报文推送到客户端
- BCH 纠错:迁移自 MMDVM_HS_Hat 的 BCH3121 纠错算法
- UDP 广播信号源:ESP32 将列车数据广播到 5001 端口,打开监控页即自动接收
- 心跳自动发现:每 3 秒广播设备心跳,自动发现接收机设备
- PC 监控界面:实时监控、历史记录、数据统计、车次映射表、设备下载
- Android APP:跟随系统深/浅色主题,一键导出 CSV 到手机
🛠️ 硬件架构
| 组件 | 说明 |
|---|---|
| 主控 | ESP32(TTGO LoRa 32 v1.6.1 开发板) |
| 射频 | SX1276 FSK 调制解调(868MHz) |
| 显示 | SSD1306 OLED(I2C 总线) |
| 时钟 | DS3231 RTC(可选,断电保持时间) |
| 存储 | TF 卡(MicroSD) |
| 按键 | 四键模拟按键(可选) |
🖥️ 软件组成
1. ESP32 接收机固件(PlatformIO)
基于 RadioLib 的 Pager_Receive 示例改造,负责接收、解码、显示和转发 LBJ 报文。
2. 电脑版(Electron)
- 实时监控:列车卡片实时显示车次、方向、速度、公里标、线路、机车号、原始 HEX 数据
- 历史记录:搜索 / 筛选(上行/下行)/ 导出 CSV / 清空
- 数据统计:总记录数、上下行分布、客车映射统计
- 车次映射表:机车号 ↔ 客运车次映射,命中自动显示客运车次(如 G31)
- 数据源模式:UDP 广播 / TCP 命令 / 串口(COM)
3. 安卓 APP(Kotlin)
- UDP 信号源实时接收 + TCP 下载 SD 卡数据
- 自动设备发现(热点兼容)
- 深/浅色主题自适应
- 一键导出 CSV 到手机"下载"目录
📥 下载
- 电脑版:LBJ列车信息采集PC版_v1.6.7.exe(约 20MB)
- 安卓版:LBJ列车信息采集_v1.6.7.apk(约 6MB,需允许"安装未知来源应用")
⚠️ 注意:接收机需要配套 ESP32 固件(含 UDP 广播 + 心跳自动发现),请使用本项目固件源码编译上传。
🔗 项目源码
- GitHub: SX1276_Receive_LBJ(待上传)
- RadioLib: jgromes/RadioLib
- 参考项目: RailwayPagerDemod
本项目用于嵌入式编程学习与亚 GHz 信号接收实验,仅供技术交流。