领券中心备货找料立推专区爆款推荐合作库存PLUS会员BOM配单PCB/FPC/SMT工业品面板定制

我做了个BB机……

2026-06-16 14:47:38阅读量:404

工程名称:BeaconOps终端
工程作者:CoCandy

 

前言

这是一个很有意思的——数字BB机开源方案!

数字BB机

没带手机的前提下

一群人接受到同一条消息后

 

怎么进行消息确认?

怎么签到?

怎么投票?

 

可以用它!

摇一摇就能   

签到,投票,消息确认!

它不需要SIM卡,只需连接wifi,就能在空旷场景下100米(理论数据)内“通信”!

怎么理解这个工作原理?

通俗的说——当BB机连上Wi-Fi后,服务端就会通过MQTT下发消息到BB机,BB机会响铃,并亮屏显示消息;此时,用户摇一摇,设备就会把【确认】回执,经MQTT再发回服务端。这时,控制台就能实时看到谁已读谁没读。

 

BB机工作原理

 

如此,即可实现上述的“没带手机”,也能“收集”签到,投票,确认信息的场景。

 

如你所见

这是一套完整的小型IoT系统!

如果你想进阶学习嵌入式,尝试自己开发从设备端到云端的完整链路,那你一定要收藏这个开源方案!

那接下来,咱就一起瞅瞅!这个数字BB机具体是怎么设计的?ps:文末会附上开源网址~

 

1、硬件设计方案
原理图

原理图

 

PCB图

PCB图

 

硬件参数

  • 主控:ESP32-C3FH4

  • LDO降压:SY8089A1AAC

  • 电量计:CW2017BAAD

  • 扬声器:MAX98357AEWL+T

  • 陀螺仪:LSM6DS3TR-C

  • 无源晶振:T201640MFBDE2X

  • flash:W25Q128JVPIQ

  • 充电:TP4057

  • 屏幕:1.47' ips 172*320

硬件设计完成!真正的重头戏,开始了。

 

2、软件设计方案
01 技术栈

①固件

  • 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

02 设计原理

如何保证消息能可靠投递?

每条消息有完整状态链(queued → sent → delivered → acknowledged / expired),状态变更经 SSE 实时推到控制台。ACK 先写进 NVS 持久化环形缓冲,指数退避重试,重启后继续投,彻底失败上报 ack_give_up 事件而非静默丢弃。

系统怎么接入身份验证机制?以防谁都能连上来冒充你的设备发消息?

我用了批次 HMAC 鉴权方案:

同批设备共享 batch_secret,上线时用 HMAC-SHA256 动态密码(<ts>:<nonce>:<HMAC>)鉴权,nonce 防重放,没有合法批次凭证的设备无法接入 broker。

Flash 和 RAM 很小,如何“快速”接受文字消息,节约Flash 和 RAM的空间?

我将MiSans 字体按 GB2312 裁剪编译进固件,不依赖运行时字体文件,屏幕直接渲染中英文混排。

 

3、结语

据说这个项目的硬件、固件,后端,前端,都由作者一人设计,且完全开源了!

这意味着,如果你后续想深入研究——射频/低功耗/Linuxor 大数据/AI/云原生 or工业/医疗/农业,这个完整的开源作品,将是一个入门佳作

 

4、开源网址

你喜欢这个项目吗?

如果是你,你会想怎么设计?

欢迎在评论区探讨!

另外~

——迎您动动发财小手,前往开源网址,给这位作者的手搓作品,点个赞~↓

——如果你想深入学习也可以前往开源网址↓

 

开源网址:https://oshwhub.com/httppp/project_owrzrbgf

广告图片