找回密码
 立即注册

微信扫码登录

搜索
查看: 319|回复: 6

[智能音箱] 低成本秒级响应离线唤醒连续指令控制音响

[复制链接]

1

主题

13

回帖

121

积分

注册会员

积分
121
金钱
107
HASS币
0
发表于 前天 10:40 | 显示全部楼层 |阅读模式
本帖最后由 niu123 于 2025-11-18 11:01 编辑

前期折腾过小爱同学、小度的语音控制HA设备,因小度、小爱这种都需要通过互联网且响应延迟严重使用了几次后还是最终放弃了;


进入正题
# 1、自制离线语音思路
## 硬件:esp8266+ asr-pro +喇叭
## 思路:使用asr的离线语音唤醒能力,唤醒后接受设定命令词,接收到命令词后使用115200波特率通过串口向ESP8266发送设定数据,esp8266接收到数据后将其通过mqtt协议向HA发送,HA编写自动化指令执行对应命令;
## 优势:有手就行,杜邦线连接即可无需焊接;离线唤醒多命令连续执行;秒级响应体验无敌;无惧断网;无惧第三方服务异常;成本低;

51天问图形化编程代码:
http://www.twen51.com/C51/asr_pro_e.php?id=257734


esp8266代码:

https://gitee.com/beifen_home/esp8266.git

ESP8266温湿度传感器项目
基于ESP8266和DHT22的温湿度监测设备,支持MQTT协议和Home Assistant自动发现。
功能特性
  • 实时温湿度监测
  • MQTT通信
  • Home Assistant自动发现
  • OTA无线更新
  • Web配置界面
  • 串口调试支持
硬件需求
  • ESP8266开发板(NodeMCU、Wemos D1 mini等)
  • DHT22温湿度传感器
  • 连接线若干
软件需求
  • PlatformIO Core 或 PlatformIO IDE
快速开始1. 安装PlatformIO# macOS/Linuxpip install platformio# 或者使用Homebrewbrew install platformio

2. 编译项目# 在项目根目录执行pio run

3. 上传固件# 上传固件到ESP8266pio run --target upload

4. 监控串口输出# 查看串口输出pio device monitor

配置说明WiFi配置
在代码中修改以下参数:
#define WIFI_SSID "your_wifi_ssid"#define WIFI_PASSWORD "your_wifi_password"

MQTT配置#define MQTT_SERVER "homeassistant.local"#define MQTT_PORT 1883#define MQTT_USER "mqtt_user"#define MQTT_PASSWORD "mqtt_password"

设备位置配置
选择设备位置(取消注释其中一个):
#define LOCATION_BEDROOM    // 主卧设备// #define LOCATION_LIVINGROOM // 客厅设备

OTA配置#define OTA_USER "admin"#define OTA_PASSWORD "password"

使用说明首次使用
  • 上传固件后,设备会自动连接WiFi和MQTT服务器
  • 在Home Assistant中会自动发现温湿度传感器
  • 访问设备IP地址可进入OTA升级页面
OTA更新
  • 确保设备已连接到WiFi
  • 访问 http://设备IP地址/update
  • 使用配置的用户名和密码登录
  • 上传新的固件文件
串口命令
连接串口后,支持以下命令:
  • 版本 或 version - 显示固件版本
  • 重启 或 reboot - 重启设备
  • topic@message - 手动发送MQTT消息
LED灯状态说明
设备上的LED灯通过不同的闪烁模式指示当前设备状态:
  • 设备启动 (STATE_STARTUP) - LED灯快速闪烁(亮100ms,灭100ms)
  • WiFi连接中 (STATE_WIFI_CONNECTING) - LED灯中等速度闪烁(亮200ms,灭200ms)
  • MQTT连接中 (STATE_MQTT_CONNECTING) - LED灯慢速闪烁(亮500ms,灭500ms)
  • 正常运行 (STATE_OPERATIONAL) - LED灯常亮
  • 错误状态 (STATE_ERROR) - LED灯快速闪烁一次后长时间熄灭(亮100ms,灭1000ms)
项目结构├── src/│   └── main.cpp          # 主程序文件├── platformio.ini        # PlatformIO配置文件├── .gitignore           # Git忽略文件└── README.md            # 项目说明文档

故障排除编译错误
  • 确保所有依赖库已正确安装
  • 检查PlatformIO版本是否为最新
上传失败
  • 确认ESP8266已正确连接电脑
  • 检查驱动程序是否安装
  • 尝试更换USB线或端口
连接问题
  • 检查WiFi密码是否正确
  • 确认MQTT服务器地址和端口
  • 查看串口输出获取详细错误信息





esp8266

esp8266

ASR PRO

ASR PRO

HA接收并控制自动化

HA接收并控制自动化
微信图片_2025-11-18_092258_925.png
回复

使用道具 举报

1

主题

13

回帖

121

积分

注册会员

积分
121
金钱
107
HASS币
0
 楼主| 发表于 前天 10:51 | 显示全部楼层
首次发帖 占个沙发
回复

使用道具 举报

8

主题

145

回帖

1946

积分

金牌会员

积分
1946
金钱
1793
HASS币
0
发表于 前天 12:21 | 显示全部楼层
gitee网址打不开
回复

使用道具 举报

1

主题

13

回帖

121

积分

注册会员

积分
121
金钱
107
HASS币
0
 楼主| 发表于 前天 12:25 | 显示全部楼层

不好意思 现在可以了
回复

使用道具 举报

17

主题

498

回帖

3690

积分

论坛元老

积分
3690
金钱
3175
HASS币
0
发表于 前天 13:11 | 显示全部楼层
我也是這樣做  但是我覺得你講的好深奧

離線語音模塊整合到紅外線遙控器裡
2024-11-13 19.04.53.jpg

2024-11-13 18.35.22.jpg
回复

使用道具 举报

23

主题

702

回帖

3101

积分

论坛元老

积分
3101
金钱
2376
HASS币
0
发表于 前天 13:34 | 显示全部楼层
所有指令必须 编一个流程响应,而且所有指令都必须对应上,不能模糊控制
去年照着做了一个,因为唤醒词太简单,开电视的时候总是被电视声音唤醒,还莫名其妙的执行开空调的指令。
之后就放那儿吃灰了。
回复

使用道具 举报

1

主题

13

回帖

121

积分

注册会员

积分
121
金钱
107
HASS币
0
 楼主| 发表于 前天 14:23 | 显示全部楼层
a_dongde 发表于 2025-11-17 13:34
所有指令必须 编一个流程响应,而且所有指令都必须对应上,不能模糊控制
去年照着做了一个,因为唤醒词太简 ...

唤醒词和命令词分开的还好吧,确实有被电视声音唤醒的情况,但其他音响通样也会有这问题啊
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 13:52 , Processed in 0.051724 second(s), 6 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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