
基于ESP32的智能水枪
简介
本项目是一款基于ESP32-C3的DIY智能水枪。还原游戏中的屏幕显示、烟雾和射击效果。另外加入了水泵、激光器、音效系统,并开发了完整的UI设置界面。
简介:本项目是一款基于ESP32-C3的DIY智能水枪。还原游戏中的屏幕显示、烟雾和射击效果。另外加入了水泵、激光器、音效系统,并开发了完整的UI设置界面。开源协议
:GPL 3.0
描述
🎬 视频链接
💡 1. 简介
本项目是一款基于 ESP32-C3 的 DIY 智能水枪。
本人非专业人士,所有知识皆为现学,项目已验证为可用,但可能存在 BUG 和不规范设计,请谨慎学习。错误之处请在评论区指出,我会及时修正。
> 🚨 [本项目为安全声光玩具,只能滋水,不能发射子弹!]
📜 2. 描述
本项目参考APEX游戏中的R99刀刃武器模型,还原了游戏中的屏幕显示、烟雾和射击效果。另外加入了水泵、激光器、音效系统,并开发了完整的 UI 设置界面。
可以作为玩具、摆件或CosPlay道具使用。
🧩 3. 结构模型
🔗 模型开源地址: MakerWorld
🛠️ 4. 硬件架构
- 🧠 MCU: ESP32-C3
- 📺 屏幕: 0.95寸彩色OLED
- 🕹️ 交互: 编码器输入
- ⚙️ 外设: 水泵、加湿器、ws2812灯带、语音模块
- 🔋 供电: 18650圆柱形锂电池*2、双向快充模块
【物料清单已上传至附件】
💻 5. 软件架构
💻 软件配置:
- IDE: VScode + platformio
- 框架: Arduino
- UI: LVGL-8.3.10
🔗 源代码开源地址: GitHub
📂 目录结构
src/
├── assets/ # 静态资源 (字体 .c, 图片 .c)
├── hardware/ # 硬件驱动层 (Input, Output, LedStrip, Voice)
├── logic/ # 业务逻辑层 (核心状态机 WaterGunLogic)
├── storage/ # 数据持久化层 (SettingsManager)
├── ui/ # UI 表现层
│ ├── screens/ # 各个独立子屏幕的实现 (ScreenMain, ScreenFunc...)
│ └── UIManager # UI 总调度器
├── config.h # 全局引脚和参数配置
└── main.cpp # 程序入口,主循环
⚙️ 设置系统
- 操作逻辑: 通过旋转编码器导航,短按扳机进入/编辑,长按扳机保存并返回。通过旋转编码器导航,短按扳机进入/编辑,长按扳机保存并返回。
-
🔫 子弹设定:
- 子弹类型: 切换 水/激光。
- 最大载弹量: 15-99发可调。
- 射击/换弹速度: 1-99 可调。
- 换弹延迟: 自动换弹前的等待时间。
-
📊 系统信息:
- 性能监视器: 开关显示 FPS (帧率), RAM (内存占用), L (主循环耗时 us)。
- 开发者信息: 滚动查看Logo和开发者名称。
-
🎨 主题设定:
- 双色主题: 可分别定义“常规色”(文字)和“强调色”(焦点条/图标背景)。
- 全彩拾取器: 使用Canvas绘制的彩虹渐变条,支持平滑颜色选择。
- 实时预览: 调整颜色时,全系统UI颜色实时生效。
-
🎵 声音设定:
- 音效开关: 一键静音。
- 音量调节: 0-30级调节,调节时实时反馈音量大小。
-
💡 灯光设定:
- 呼吸灯速度: 控制灯带流水速度。
- 呼吸灯颜色: 全彩调节灯带主色调,支持实时预览。
-
🧰 功能设定:
- 硬件开关: 独立控制水泵、加湿器、灯光、激光器的使能状态。
- 自动待机: 设定无操作 X 分钟后自动休眠(0为禁用)。
-
🧰 666:
- 动画: 进入后会播放一键三连动画。
⚠️ 6. 已知问题
- FDM打印的模型存在漏水现象,提高打印温度或使用光固化打印可以改善
- 由于模型内部有大量水汽,可能会干扰电路正常运作,建议在电路板上喷涂三防漆
- 系统目前无法实现自动关机,只能休眠降低功耗,长时间不玩建议拔下弹匣
- 模型内部的水箱容量很小,只够加湿器使用,同时喷水的话几下就没水了。我另外设计了水瓶转接器,可以外接瓶子,但是这样会降低颜值...
- 激光枪模式还没有对激光标靶做适配,靶子我还没买,激光标靶需要特定的载波激光触发,单片机理论上可以调制,后边实现了的话会更新到程序中。
🔧 7. 组装说明
🚧 组装说明施工中...近期更新
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










