找回密码
 立即注册

微信扫码登录

搜索
查看: 335|回复: 4

[硬件DIY] 基于ESPHome的AI-O(AI但是也AIO)

[复制链接]

6

主题

70

回帖

505

积分

论坛DIY达人

积分
505
金钱
429
HASS币
0
发表于 3 天前 | 显示全部楼层 |阅读模式
之前看到论坛里的坛友有讨论设计智能音响,一些坛友分析了esp32系列的音响,查询了一下现在开源的方案,用esp32也可以设计音响,缺点是ram不大可能只能流式传输。TTS和STT分别采用了论坛里提到的Edge和Fun SAR方案,代理使用了硅基流动的API(注册送15元,但是响应较慢,带深度思考的还没找到具体的关闭地方),整体包含如下:

定位模块——卫星定时
三轴陀螺仪加速度计——振动检测
蜂鸣器——音乐
IIS麦克风扬声器
按钮一个
RGB彩灯
振动马达
数码管时钟

跳转链接:https://oshwhub.com/bitshen/esphome-ai

📌 ESPHome-AIO 工程说明🔧 基本信息
  • ESPHome 版本要求:≥ 2025.5.0
  • 平台:ESP32(ESPHome-AIO,240MHz,esp-idf 框架)
📡 网络与服务
  • Logger:开启调试日志
  • API:与 Home Assistant 集成
  • OTA:支持远程固件升级
  • Wi-Fi:支持 AP 模式 + captive_portal

🎛 按钮功能
  • Factory reset(恢复出厂设置)
  • Restart(重启)
  • Play Music Button:触发播放 RTTTL 音乐(🎵《欢乐颂》示例)
  • Test Alarm Sound:测试闹铃声音
实体按键(GPIO34)
  • 短按:停止计时器或重启语音唤醒
  • 长按(10s):触发恢复出厂设置

🔊 音频系统I2S Audio 总线
  • LRCLK:GPIO33
  • BCLK:GPIO19
麦克风
  • 使用 i2s_audio(GPIO23 输入,PDM,16kHz,偏移校正)
扬声器
  • 使用 i2s_audio(GPIO22 输出,16kHz,16bit,立体声)
Media Player
  • 播放 WAV 音频文件
  • 支持 定时器闹钟(重复播放 sounds_timer_finished.wav)
  • 内置音量、缓冲、事件回调(on_idle、on_announcement 等)
RTTTL 蜂鸣器播放
  • 使用 GPIO13(PWM/LEDC 输出,1000Hz)
  • 可通过按钮触发播放 RTTTL 曲调

🎙 语音助手
  • 语音输入:麦克风(增益 4,噪声抑制)
  • 输出:speaker media_player
  • 支持 micro_wake_word(本地唤醒词)
  • 支持 Home Assistant 持续监听
状态回调
  • on_listening → LED 慢闪
  • on_stt_vad_end → LED 快闪
  • on_tts_start → LED 常亮
  • on_end → 恢复唤醒模式
  • on_error → LED 快闪 + 自动恢复
  • on_timer_finished → 播放闹铃声音 + LED 闪烁

📍 GPS 功能
  • 串口通信 (UART1):TX GPIO16, RX GPIO17, 波特率 115200
  • GPS NMEA 解析:
    • GNGGA:纬度、经度、卫星数、HDOP、时间
    • GNRMC:速度(节)
  • 显示输出:通过 TM1638 LED 显示屏显示 GPS 时间

传感器
  • GPS 纬度、经度、卫星数、HDOP、速度、时间

🧭 BMI160 传感器
  • I2C 地址:0x68
  • 输出:
    • 加速度 (X, Y, Z)
    • 陀螺仪 (X, Y, Z)
    • 温度


💡 灯光系统
  • LED 类型:WS2812(GPIO12,单颗,GRB)
  • 效果脚本:
    • 常亮 (绿/黄/红/蓝)
    • 慢闪 / 快闪
    • 呼吸效果


⚡ 开关控制
  • IO21 Power:默认始终开启
  • GPS Power:默认始终开启
  • MOTOR:默认关闭
  • Use listen light:控制是否显示语音状态灯效
  • Timer ringing:闹铃开关(定时器倒计时 15 分钟后自动关闭)

⚙️ 配置项Select(选择器)
  • Wake word engine location
    • In Home Assistant → 使用 HA 提供的语音助手
    • On device → 使用本地唤醒词引擎


🗣️ Micro Wake Word
  • 本地模型:okay_nabu
  • 检测到唤醒词后 → 启动语音助手

🎶 声音系统总结
  • RTTTL 播放 → 蜂鸣器音乐
  • WAV 播放 → I2S 扬声器输出
  • 语音助手 → 播放/录音/唤醒

✅ 工程亮点
  • 集成了 语音助手 + 本地唤醒词 + Home Assistant 远程语音
  • 支持 GPS 数据解析 + 显示屏输出
  • 支持 运动传感器 BMI160(加速度、陀螺仪、温度)
  • 完整的 灯效反馈(语音状态、闹铃、错误提示)
  • 扩展了 RTTTL 蜂鸣器播放功能,可播放提示音或音乐
  • 定时器闹铃系统,带自动关闭与 LED 提示
展示

                               
登录/注册后可看大图
配件
1、前后两侧面板文件请见附件
2、铝壳尺寸:632575
3、螺丝尺寸:M2.5*6
4、别忘记购买ipex转SMA的射频线
5、0.36英寸数码管6位单排,3661共阴

image.png image.png

本地搭建的TTS和STT在J4125上占用不大可以放心使用。
视频声音较小请放大收听...

回复

使用道具 举报

1

主题

45

回帖

1079

积分

金牌会员

积分
1079
金钱
1033
HASS币
0
发表于 3 天前 | 显示全部楼层
能搞成阵列麦克风吗,一个感觉拾音效果不好
回复

使用道具 举报

23

主题

688

回帖

2993

积分

金牌会员

积分
2993
金钱
2282
HASS币
0
发表于 3 天前 | 显示全部楼层
ESPHome  代码能贴下嘛?
之前有个精简版的ESPHome 硬件 想刷下,就是一个拾音器,一个喇叭和一个esp32
回复

使用道具 举报

6

主题

70

回帖

505

积分

论坛DIY达人

积分
505
金钱
429
HASS币
0
 楼主| 发表于 3 天前 | 显示全部楼层
a_dongde 发表于 2025-10-4 17:06
ESPHome  代码能贴下嘛?
之前有个精简版的ESPHome 硬件 想刷下,就是一个拾音器,一个喇叭和一个esp32 ...

在工程帖子的附件里~下拉到最底下
回复

使用道具 举报

6

主题

70

回帖

505

积分

论坛DIY达人

积分
505
金钱
429
HASS币
0
 楼主| 发表于 3 天前 | 显示全部楼层
浅月絮语 发表于 2025-10-4 13:14
能搞成阵列麦克风吗,一个感觉拾音效果不好

好像esphome是支持多声道和多麦克(左右麦克的),但是这一颗数字硅麦就5元了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-10-7 05:41 , Processed in 0.106582 second(s), 8 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表