设备总数
0
在线设备
0
今日发送
0
今日接收
0
发送失败
0
待发送队列
0
代理商总数
0
系统概览
欢迎使用 ESP32 SMS 短信管理系统
本系统基于 ESP32-S3 + SIM800C 硬件方案,支持多设备并发短信收发、代理商层级管理、充值计费、外部API等功能。
设备每60秒上报心跳状态,超过120秒未上报视为离线。发送短信可选择"自动分配",系统将任务分配给最空闲的在线设备。
管理员后台:管理设备、代理商、充值、API密钥
代理商面板:agent.html
外部API:/api/send.php, /api/status.php, /api/balance.php
本系统基于 ESP32-S3 + SIM800C 硬件方案,支持多设备并发短信收发、代理商层级管理、充值计费、外部API等功能。
设备每60秒上报心跳状态,超过120秒未上报视为离线。发送短信可选择"自动分配",系统将任务分配给最空闲的在线设备。
管理员后台:管理设备、代理商、充值、API密钥
代理商面板:agent.html
外部API:/api/send.php, /api/status.php, /api/balance.php
设备管理
| ID | 设备标识 | 名称 | 分配代理 | 状态 | SIM1 | SIM2 | IP | 最后心跳 | 操作 |
|---|
请选择会话
选择左侧手机号开始聊天
批量发送短信
0/300
注意事项
1. 同一内容发送给多个号码。
2. 号码支持逗号、空格、换行分隔。
3. 自动去重和过滤无效号码。
4. 会自动检查黑名单和关键词拦截。
5. 提交后可在「发送记录」查看状态。
2. 号码支持逗号、空格、换行分隔。
3. 自动去重和过滤无效号码。
4. 会自动检查黑名单和关键词拦截。
5. 提交后可在「发送记录」查看状态。
最近批量任务
| ID | 任务名称 | 总数 | 已提交 | 已发送 | 失败 | 待发送 | 状态 | 创建时间 |
|---|
变量短信
使用说明:
1. 上传 CSV 文件(逗号分隔)
2. 选择手机号所在列(默认A列)
3. 编写短信模板,用 {A}~{Z} 引用列
4. 点击「导入预览」查看替换效果
5. 确认无误后点击「确认发送」
1. 上传 CSV 文件(逗号分隔)
2. 选择手机号所在列(默认A列)
3. 编写短信模板,用 {A}~{Z} 引用列
4. 点击「导入预览」查看替换效果
5. 确认无误后点击「确认发送」
发送预览
总0
可发0
错0
重0
最近批量任务
| ID | 任务名称 | 总数 | 已提交 | 已发送 | 失败 | 待发送 | 状态 | 创建时间 |
|---|
发送记录
| ID | 设备 | 代理商 | 手机号 | 内容 | 状态 | 扣费 | 创建时间 | 发送时间 |
|---|
接收记录
| ID | 设备 | 发送者 | 内容 | 接收时间 |
|---|
代理商管理
| ID | 用户名 | 姓名 | 电话 | 层级 | 余额 | 单价 | 状态 | 创建时间 | 操作 |
|---|
充值操作
充值记录
| ID | 代理商 | 类型 | 金额 | 操作前 | 操作后 | 备注 | 时间 |
|---|
API密钥管理
| ID | 代理商 | API Key | API Secret | 状态 | 每日限额 | 今日使用 | 创建时间 | 操作 |
|---|
ESP32-S3 + SIM800C 接线说明
| 连接 | ESP32-S3 | SIM800C | 说明 |
|---|---|---|---|
| SIM1 TX | GPIO 17 | RXD | ESP32发 → SIM收 |
| SIM1 RX | GPIO 18 | TXD | SIM发 → ESP32收 |
| SIM2 TX | GPIO 15 | RXD | ESP32发 → SIM收 |
| SIM2 RX | GPIO 16 | TXD | SIM发 → ESP32收 |
| GND | GND | GND | 两模块都要接 |
| 供电 | 外部电源 | VCC | 3.7~4.2V / 2A |
⚡ 发送频率设置
设置每张 SIM 卡每分钟最大发送条数。达到上限时自动切换其他可用卡。设为 0 不限制。
条/分钟
💡 说明:
- 全局设置,对所有设备生效
- 按 每张 SIM 卡 独立计算,双卡上限翻倍(如设5条,双卡=10条/分钟)
- 超频设备暂停接收,任务自动分配给未满载设备
- 设为 0 不限速,所有卡按最大能力发送
⚠ 重要提醒:
• SIM800C 不能用ESP32的3.3V供电,必须使用独立的3.7~4.2V电源(建议2A以上)
• ESP32和SIM800C之间的GND必须互连,否则串口通信会不稳定
• 如果只使用1个SIM模块,将代码中
• SIM800C的串口波特率默认 9600,如有修改需同步调整代码中的
• SIM800C 不能用ESP32的3.3V供电,必须使用独立的3.7~4.2V电源(建议2A以上)
• ESP32和SIM800C之间的GND必须互连,否则串口通信会不稳定
• 如果只使用1个SIM模块,将代码中
SIM_COUNT 改为 1 即可• SIM800C的串口波特率默认 9600,如有修改需同步调整代码中的
SIM_BAUD
Demo 代码下载
💻
sketch_mar1a.ino
ESP32 SMS 固件源码(双SIM800C版)
环境:Arduino IDE 2.0+ • ESP32-S3 Dev Module • ArduinoJson v7+
添加新设备 - 代码修改指南
// ======== 配置区域 ========
const char* WIFI_SSID = "你的WiFi名称";
const char* WIFI_PASSWORD = "你的WiFi密码";
const char* SERVER_URL = "http://你的服务器地址";
const char* DEVICE_KEY = "ESP32_001"; // 与后台一致
const char* AUTH_TOKEN = "你的密钥"; // 与后台一致
📝 烧录步骤:
- 后台「设备管理」添加新设备,记下标识和密钥
- 修改
DEVICE_KEY和AUTH_TOKEN与后台一致 - 修改 WiFi 和
SERVER_URL为实际地址 - 单SIM模块将
SIM_COUNT改为1 - 编译烧录到 ESP32-S3
💡 自定义引脚:
#define SIM1_TX_PIN 17 #define SIM1_RX_PIN 18
#define SIM2_TX_PIN 15 #define SIM2_RX_PIN 16
#define SIM2_TX_PIN 15 #define SIM2_RX_PIN 16
⚠ 常见问题:
- 串口无响应 — TX/RX 是否接反,GND 是否互连
- SIM卡未就绪 — SIM 卡插好了吗?需要 PIN 码?
- 网络注册失败 — 信号/欠费/停机
- WiFi连不上 — ESP32 仅支持 2.4GHz
- 发送失败 — SIM800C 必须独立供电
号码黑名单
| ID | 手机号 | 备注 | 添加时间 | 操作 |
|---|
关键词拦截
| ID | 关键词 | 备注 | 添加时间 | 操作 |
|---|
操作日志
| ID | 操作人 | 类型 | 详情 | 时间 |
|---|
修改管理员密码