Skip to content

About

超低成本硬件短信转发器,支持移动联通电信,ML307R+ESP32C3

Resources

Stars

1 star

Watchers

0 watching

Forks

 
 

Latest commit

 

History

77 Commits

Folders and files

Repository files navigation

低成本短信转发器

当前分支为新方案,2022年的老方案请前往luatos分支。
本项目仅用于接收短信与进行保号相关功能。
多卡控制、通话、拨号、开放接口、自动化等功能,永远不会考虑支持,请勿提出相关需求。

后台页面演示

本项目旨在使用低成本的硬件设备,实现短信的自动转发功能,支持多种推送方式同时启用。

视频教程:B站视频

功能

  • 支持使用通用AT指令与模块进行通信
  • 开启后支持通过WEB界面配置短信转发参数、查询当前状态
  • 支持多达5个推送通道同时启用,每个通道可独立配置
  • 支持转发规则:按发送者/内容关键字匹配,决定丢弃、丢弃记日志或转发到指定通道;未命中时走可配置的兜底动作
  • 自定义模板支持变量:{sender} {message} {timestamp} {deviceUrl} {phone},可把后台地址与本机号码写进推送内容
  • 支持将收到的短信转发到指定的邮箱
  • 支持通过WEB界面主动发送短信,以便消耗余额
  • 支持通过WEB界面进行Ping测试,以极低的成本消耗余额
  • 支持长短信自动合并(30秒超时)
  • 支持管理员短信远程发送短信和重启设备

推送通道支持

支持以下推送方式,可同时启用多个通道:

推送方式 说明 需要配置
POST JSON 通用HTTP POST URL
Bark iOS推送服务 Bark服务器URL
GET请求 URL参数方式 URL
钉钉机器人 企业群通知 Webhook URL,可选Secret加签
PushPlus 微信公众号推送 Token
Server酱 微信推送服务 SendKey
自定义模板 灵活的JSON模板 URL + 请求体模板
飞书机器人 自定义通知 Webhook URL
Gotify 自建推送服务 服务器 URL + 应用 Token
Telegram Bot Telegram 通知 Chat ID + Bot Token

推送格式说明

  • POST JSON: {"sender":"发送者号码","message":"短信内容","timestamp":"时间戳"}
  • Bark: {"title":"发送者号码","body":"短信内容"}
  • GET请求: URL?sender=xxx&message=xxx&timestamp=xxx(自动URL编码)
  • 钉钉机器人: 文本消息格式,支持加签验证
  • PushPlus: 使用Token推送,支持HTML格式
  • Server酱: 使用SendKey推送,支持Markdown格式
  • 自定义模板: 使用{sender}、{message}、{timestamp}、{deviceUrl}、{phone}占位符
    • {deviceUrl} 为设备后台地址,形如 http://192.168.10.124/
    • {phone} 为本机号码,优先读取 SIM 卡(AT+CNUM),取不到时使用「管理员 & 黑名单」中的「本机号码(兜底)」配置;两者皆空则替换为空字符串
    • 以上变量仅作用于自定义模板的请求体,其他推送方式和 URL 不受影响
  • 飞书机器人: 文本消息格式,支持加签验证

转发规则

在 Web 界面「转发规则」面板中最多可配置 10 条规则,按顺序逐条匹配,首个命中的规则生效。

匹配条件(两个字段都是子串匹配):

  • 发送者:与短信发送者号码比对,自动忽略 +86 前缀和大小写
  • 短信内容:每行一个关键字,命中任意一个即算匹配,忽略大小写
  • 两个字段同时填写时取 AND(都要满足);两个都留空的规则永远不会命中,避免误吞全部短信

命中后的动作:

动作 行为
转发 发送到规则指定的目标
丢弃 直接忽略,日志只记录一行摘要,不含短信内容
丢弃并记录 直接忽略,但日志会记录发送者与短信内容,便于排查

转发目标:通道 1–5、仅邮件、全部启用通道 + 邮件。若指定目标当前不可用(通道未启用或配置不完整),会自动回落到「全部启用通道 + 邮件」,并在日志中提示。

兜底动作:所有规则都未命中时执行,可单独设置为转发、丢弃或丢弃并记录。

黑名单和管理员短信命令的优先级高于转发规则,两者会先于规则处理。 「转发规则」面板底部的「测试匹配」使用与真实短信完全相同的判定逻辑,只判断命中结果,不会真的发送通知。

状态信息 主动ping

硬件搭配

若没有焊接能力,希望直接使用成品,可选直接购以下套件(我看过了,和自己做的成本一样)
支持移动/联通/电信卡:

如果希望自行焊接硬件,参考下面的硬件搭配,总成本约¥27.8(会有浮动,可按实际自行组合搭配)
仅支持移动/联通卡:

硬件连接

ESP32C3 与 ML307R-DC 通过串口(UART)连接,接线如下:

┌───────────────────────────────────────────────┐
|                                               |
|   ESP32C3 Super Mini      ML307R-DC核心板     |
| ┌───────────────────┐    ┌─────────────────┐ |
└─┼─ GPIO5 (MODEM_EN) │    │                 │ |
  │       GPIO3 (TX) ─┼───►│ RX              │ |
  │                   │    │             EN ─┼─┘
  │       GPIO4 (RX) ◄┼────┤ TX              │ 
  │                   │    │                 │ 
  │              GND ─┼────┤ GND             │ 
  │                   │    │                 │ 
  │               5V ─┼────┤ VCC (5V)        |
  │                   │    │                 │
  └───────────────────┘    └─────────────────┘
                           │                 │
                           │  SIM卡槽        │
                           │  (插入Nano SIM) │
                           │                 │
                           │  天线接口       │
                           │  (连接4G天线)   │
                           └─────────────────┘

可通过USB连接ESP32C3进行编程和供电,正常工作时,可通过网页与模组进行AT通信,方便调试。

软件组成

  • ESP32C3运行自己的Arduino固件,负责连接WiFi和接收ML307R-DC发送过来的短信数据,然后转发到指定HTTP接口或邮箱
  • ML307R-DC运行默认的AT固件,不用动

需要在Arduino IDE中单独安装这些库:

  • ReadyMail by Mobizt
  • pdulib by David Henry

需要在Arduino IDE中安装ESP32开发板支持,参考官方文档,版型选MakerGO ESP32 C3 SuperMini。

About

超低成本硬件短信转发器,支持移动联通电信,ML307R+ESP32C3

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages