
BeaconOps终端
简介
自研 ESP32-C3 Beacon 终端 + FastAPI 后端 + Vue 控制台的端到端 IoT 消息发布与设备管理系统,全栈开源。
简介:自研 ESP32-C3 Beacon 终端 + FastAPI 后端 + Vue 控制台的端到端 IoT 消息发布与设备管理系统,全栈开源。开源协议
:CERN-OHL-S-2.0
描述
BeaconOps
ESP32-C3 随身消息终端 · MQTT TLS 下行 · Web 控制台回执
📦 这是什么
BeaconOps 是一套完整的小型 IoT 系统,由自研硬件、固件、后端和 Web 控制台四部分组成,全部开源。
核心流程:在控制台写一条消息并发送,挂在身上的设备响起提示音、把消息显示在屏上;收到后摇一摇,设备把确认回执发回服务端,控制台实时看到状态变化。每条消息都有从下发到确认(或放弃)的完整状态追踪。
设备基于 ESP32-C3,带屏幕、扬声器、陀螺仪和锂电池,不需要 SIM 卡,接入 Wi-Fi 即可使用。
🖼️ 展示
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |

🎯 适合用在哪里
这套系统成立的前提是:有一批人需要接收单向指令或通知,需要有回执确认,但不能或不方便用手机。典型场景:校内 / 车间禁带手机需要传达指令并确认收到;集训、研学、大型活动中对分组下达指令并追踪是否确认。
设备不能聊天、不能装 App,只做接收和确认。这是设计约束,不是功能缺失。
⚙️ 几个值得关注的设计点
📨 消息可靠投递:每条消息有完整状态链(queued → sent → delivered → acknowledged / expired),状态变更经 SSE 实时推到控制台。ACK 先写进 NVS 持久化环形缓冲,指数退避重试,重启后继续投,彻底失败上报 ack_give_up 事件而非静默丢弃。
🔐 批次 HMAC 鉴权:同批设备共享 batch_secret,上线时用 HMAC-SHA256 动态密码(<ts>:<nonce>:<HMAC>)鉴权,nonce 防重放,没有合法批次凭证的设备无法接入 broker。
🈶 原生中文显示:MiSans 字体按 GB2312 裁剪编译进固件,不依赖运行时字体文件,屏幕直接渲染中英文混排。
🔩 硬件参数
|
主控 ESP32-C3 QFN-32 |
外置 Flash W25Q128JVPIQ 128Mb · WSON-8 |
屏幕 1.47" IPS ST7789 172×320 |
IMU LSM6DS3TR-C 六轴 · LGA-14 |
|
音频功放 MAX98357AEWL+ I²S · WLP-9 |
电量计 CW2017 |
充电 USB-C 锂电池 + DCDC · 硬件电源路径切换 |
PCB 36.28×19.39mm 双层 · 0.8mm |
🛠️ 软件栈
|
固件 ESP-IDF v5.x · FreeRTOS LVGL 9.3 · C / C++ |
后端 Python 3.11 · FastAPI aiosqlite · gmqtt · PyJWT · bcrypt |
前端 Vue 3.5 · Vite 6 · TypeScript 5 Pinia · Element Plus · ECharts |
⚠️ 板上有 LGA-14 和 WLP-9(BGA 类)无引脚器件,手工复刻前请先评估焊接经验。建议先把固件 / 后端 / 前端过一遍,再决定要不要碰 PCB。
🔗 源码 & 文档
📄 许可证
| 软件(固件 / 后端 / 前端) | AGPL-3.0-only |
| 硬件(PCB / 外壳设计文件) | CERN-OHL-S-2.0 |
| 文档 / 图片 | CC BY-SA 4.0 |
❤️ 友情推荐
💡 更多有趣项目: cocandy.com.cn
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。
















