作品名称
乐鑫家庭智能小管家
作者:Kit7828
一、作品简介
参加本次Digi-Key大赛的作品为乐鑫家庭智能小管家,主要通过语音指令实现时间播报、以及控制灯光打开关闭,烧水启停等功能。其中离线语音识别模块实现语音指令识别和语音播报,信息通过串口和乐鑫ESP32-S2主控交互,显示面板由乐鑫S2套件实现,包括网络联网,时间自动更新以及驱动家庭电器等。
二、系统框图(图文结合)
硬件部分连接框图如下:
由Digi-Key提供的乐鑫esp32-s2-kaluga-1套件为核心,连接离线语音设备模块ASRPRO,获取语音识别及TTS语音播报,ESP32S2板载的WiFi模块连接网络SNTP服务器,获取系统时间。
软件框图如下:
系统软件采用ESP-IDF SDK,在FreeRTOS系统上进行开发,通过ESP32板载的WiFi联网后,通过SNTP更新时间,利用LVGL组件展示面板;按键任务更新RGB三色灯,同时更新面板,通过串口传输信息至ASRPRO模块后实现TTS语音播报。离线语音识别后同样通过串口传输至ESP32S2,更新面板以及驱动继电器等。其中,语音识别目前只实现打开、关闭灯光;开始、停止烧水,以及播报当前时间等。
三、各部分功能说明(图文结合)
1、语音识别及语音TTS播报
作品中的语音识别部分,采用非常独特的图形化编程(无代码编程)实现,虽然依然采用编程的思路,但是感觉很奈斯。
语音识别及语音播报部分由硬件厂商通过后台云服务器进行处理以模型方式反馈至开发工具,而后通过编译直接烧录模块。感觉识别和播报效果非常不错(嘈杂环境下识别效果较差)。
2、LVGL显示面板
代码部分参考了很多网友的作品,做了部分修改,在此向借鉴的网友表示感谢!
3、串口通讯
串口通讯重点处理和离线语音识别模块之间的信息交互,为本作品的核心,由于语音识别模块串口功能较弱,做了很多的尝试,尤其是在时间传递方面,作品中依然有时间传递出现差错的情况。
4、按键检测
按键检测部分也是借鉴了网友的代码,进行了部分修改,实现打开、关闭灯光、开启、停止烧水等功能。
四、作品源码
作品源码分为两部分,一部分为ESP-IDF的源码,基于ESP-IDF SDK的,具体链接为:
乐鑫家庭语音管家.rar
(12.87 MB, 下载次数: 6)
另一部分为离线语音识别的代码,天问Block下的代码,具体链接为:
乐鑫家庭语音管家.hd
(32.61 KB, 下载次数: 12)
五、作品功能演示视频
视频演示里语音识别和语音播报的功能,语音识别效果和语音TTS播报的效果感觉非常不错,毕竟硬件模块的成本很低,量大估计个位数能拿到货。
乐鑫家庭语音管家
六、项目总结
本次作品的周期在短短的几天之内,由于对VS-Code、乐鑫ESP-IDF SDK等多方面的不熟悉,导致进展很慢,再加上工作方面的冲突,以致于项目很多预设功能没有完成,如网络天气播报、时间整点播报等。期待自己能在今后空闲多点的时候再次完善。让家庭管家的功能更全面。
感谢EEWord和Digi-Key提供的开发板,让自己对更多的嵌入式系统进行了熟悉。
【乐鑫家庭智能小管家】物料开箱 ESP32-S2-KALUGA-1及Maix Bit Kit 210 https://bbs.eeworld.com.cn/thread-1209607-1-1.html
【乐鑫家庭智能小管家】ESP32-S2-Kaluga-1开发环境搭建及Demo例程运行 https://bbs.eeworld.com.cn/thread-1211031-1-1.html
七、其他
期初设想的背景音乐播放,由于时间关系,来不及完成,设想两种实现途径,一是通过WiFi获取网络MP3歌曲数据,传输到ESP32-S2套件后,由ESP32-S2通过8311A进行歌曲播放;二是直接通过串口传输至ASRPRO模块后进行背景音乐播放。ESP32-S2的声音输出,声音太轻。
乐鑫提供的ESP-IDF SDK,感觉还是很方便的,很多功能实现很快。
代码部分参考了hehung网友的智能网络台灯项目部分代码,在此非常表示感谢!
乐鑫家庭语音管家.doc
(3.59 MB, 下载次数: 2)
|