14 |
15 | ## 功能
16 |
17 | - 支持使用通用AT指令与模块进行通信
18 | - 开启后支持通过WEB界面配置短信转发参数、查询当前状态
19 | - **支持多达5个推送通道同时启用**,每个通道可独立配置
20 | - 支持将收到的短信转发到指定的邮箱
21 | - 支持通过WEB界面主动发送短信,以便消耗余额
22 | - 支持通过WEB界面进行Ping测试,以极低的成本消耗余额
23 | - 支持长短信自动合并(30秒超时)
24 | - 支持管理员短信远程发送短信和重启设备
25 |
26 | ## 推送通道支持
27 |
28 | 支持以下7种推送方式,可同时启用多个通道:
29 |
30 | | 推送方式 | 说明 | 需要配置 |
31 | |---------|------|---------|
32 | | **POST JSON** | 通用HTTP POST | URL |
33 | | **Bark** | iOS推送服务 | Bark服务器URL |
34 | | **GET请求** | URL参数方式 | URL |
35 | | **钉钉机器人** | 企业群通知 | Webhook URL,可选Secret加签 |
36 | | **PushPlus** | 微信公众号推送 | Token |
37 | | **Server酱** | 微信推送服务 | SendKey |
38 | | **自定义模板** | 灵活的JSON模板 | URL + 请求体模板 |
39 | | **飞书机器人** | 自定义通知 | Webhook URL |
40 |
41 | ### 推送格式说明
42 |
43 | - **POST JSON**: `{"sender":"发送者号码","message":"短信内容","timestamp":"时间戳"}`
44 | - **Bark**: `{"title":"发送者号码","body":"短信内容"}`
45 | - **GET请求**: `URL?sender=xxx&message=xxx×tamp=xxx`(自动URL编码)
46 | - **钉钉机器人**: 文本消息格式,支持加签验证
47 | - **PushPlus**: 使用Token推送,支持HTML格式
48 | - **Server酱**: 使用SendKey推送,支持Markdown格式
49 | - **自定义模板**: 使用`{sender}`、`{message}`、`{timestamp}`占位符
50 | - **飞书机器人**: 文本消息格式,支持加签验证
51 |
52 | |状态信息|主动ping|
53 | |-|-|
54 | |||
55 |
56 | ## 硬件搭配
57 |
58 | - ESP32C3开发板,当前选用[ESP32C3 Super Mini](https://item.taobao.com/item.htm?id=852057780489&skuId=5813710390565),¥9.5包邮
59 | - ML307R-DC开发板,当前选用[小蓝鲸ML307R-DC核心板](https://item.taobao.com/item.htm?id=797466121802&skuId=5722077108045),¥16.3包邮
60 | - [4G FPC天线](https://item.taobao.com/item.htm?id=797466121802&skuId=5722077108045),¥2,与核心板同购
61 |
62 | 当前成本约¥27.8
63 |
64 | ## 硬件连接
65 |
66 | ESP32C3 与 ML307R-DC 通过串口(UART)连接,接线如下:
67 |
68 | ```
69 | ESP32C3 Super Mini ML307R-DC核心板
70 | ┌───────────────────┐ ┌─────────────────┐
71 | │ │ │ │
72 | │ GPIO3 (TX) ─┼───►│ RX │
73 | │ │ │ EN ─┼─┐
74 | │ GPIO4 (RX) ◄┼────┤ TX │ │
75 | │ │ │ │ │
76 | │ GND ─┼────┤ GND │ │
77 | │ │ │ │ │
78 | │ 5V ─┼────┤ VCC (5V) 5V ─┼─┘
79 | │ │ │ │
80 | └───────────────────┘ └─────────────────┘
81 | │ │
82 | │ SIM卡槽 │
83 | │ (插入Nano SIM) │
84 | │ │
85 | │ 天线接口 │
86 | │ (连接4G天线) │
87 | └─────────────────┘
88 | ```
89 |
90 | 可通过USB连接ESP32C3进行编程和供电,正常工作时,ESP32C3的虚拟串口数据将直接被转发到ML307R-DC,方便调试。
91 |
92 | ## 软件组成
93 |
94 | - ESP32C3运行自己的`Arduino`固件,负责连接WiFi和接收ML307R-DC发送过来的短信数据,然后转发到指定HTTP接口或邮箱
95 | - ML307R-DC运行默认的AT固件,不用动
96 |
97 | 需要在`Arduino IDE`中单独安装这些库:
98 |
99 | - **ReadyMail** by Mobizt
100 | - **pdulib** by David Henry
101 |
102 | 需要在`Arduino IDE`中安装ESP32开发板支持,参考[官方文档](https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html),版型选`MakerGO ESP32 C3 SuperMini`。
103 |
--------------------------------------------------------------------------------
/code/code.ino:
--------------------------------------------------------------------------------
1 | #include | 制造商 | " + manufacturer + " |
| 模组型号 | " + model + " |
| 固件版本 | " + version + " |
| 信号强度 (RSRP) | " + rsrpStr + " |
| 信号质量 (RSRQ) | " + rsrqStr + " |
| 原始数据 | " + params + " |
| IMSI | " + imsi + " |
| ICCID | " + iccid + " |
| 本机号码 | " + phoneNum + " |
| 网络注册 | " + regStatus + " |
| 运营商 | " + oper + " |
| 数据连接 | " + pdpStatus + " |
| APN | " + apn + " |
| 连接状态 | " + wifiStatus + " |
| 当前SSID | " + ssid + " |
| 信号强度 (RSSI) | " + rssiStr + " |
| IP地址 | " + WiFi.localIP().toString() + " |
| 网关 | " + WiFi.gatewayIP().toString() + " |
| 子网掩码 | " + WiFi.subnetMask().toString() + " |
| DNS服务器 | " + WiFi.dnsIP().toString() + " |
| MAC地址 | " + WiFi.macAddress() + " |
| 路由器BSSID | " + WiFi.BSSIDstr() + " |
| WiFi信道 | " + String(WiFi.channel()) + " |
3秒后返回发送页面...
1012 |