发布时间:2023-11-18 10:00
智能垃圾桶功能概述
离线语音识别识别垃圾种类并且垃圾桶自动翻盖:说出唤醒词“垃圾桶”后,再说一句垃圾名称,语音识别模块端识别到相应关键词,便会将结果通过串口发送到STM32端,STM32端接着会发送打开相应垃圾桶盖的指令,6s后,垃圾桶盖自动关闭。其中翻盖功能是通过STM32端控制舵机实现。
语音播报功能:STM32端若判断到有人说出唤醒词了,通过串口发送指令给语音播报模块,外放喇叭便会播报“你好”的音频,若判断到相应的垃圾种类,便会播报相应的垃圾种类音频。
APP/网页端远程控制垃圾桶:STM32端通过串口连接WIFI模块esp8266-01s,接入Onenet云平台,实现联网功能,通过云端下达指令给设备,从而控制垃圾桶实现翻盖及控制继电器通断。
OLED屏显示信息:OLED屏可以显示作者的相关信息、及每次语音播报也会显示相应文字信息。
硬件组成
智能垃圾桶的开发板用到的是STM32F103C8T6最小系统板,各个模块间都是通过串口和主控进行通信。硬件电路上的连接画一个PCB接口板即可,所有模块都可以通过排针或排母直接插上去。由于用到了4个舵机,所以整个系统的供电系统需要用5V2A的电源适配器。所用到的各个模块材料清单如下图:
系统整体框图如图:
电路原理图如图:
主控STM32F103C8T6和WIFI模块ESP8266-01s都是又便宜、又熟悉的最小系统板,没啥好说的了,大家都很熟。
语音播报模块JQ8400FL-10P价格低廉、上手容易、支持串口控制,使用前只需将录好的音频文件正确命名,通过microUSB线拷贝到模块内存中即可。
语音识别模块LD3320可以识别所有普通话的中文,但不具有语音播报功能,所以需要和上面的语音播报模块配合。语音模块上有一个单片机(STC11L08XE)和LD3320语音模块进行SPI通信,实现识别语音的功能。直接修改模块上单片机程序里的拼音,即可修改语音识别的词条。一级口令、二级口令均可修改。
软件流程
主程序流程如下:
语音识别流程:
调试注意事项
由于使用的模块精度精度受限,对环境有一定的要求,比如不能有持续的嘈杂音,否则语音模块就会卡死。外放小喇叭放远点、并且方向不能对着语音识别模块的麦克风,否则会发生误判。
对于垃圾桶本身来讲,舵机连接垃圾桶可以用热熔胶固定结构件。舵机要用大扭矩的,扭矩小了会带不动而且发热严重。
软件上,使用Onenet云平台要注意在代码里设置自己的热点名和修改平台账号密码,数据流要和平台里自己写的一致。
评论区留言,领取项目资料!
编译错误Variable-sized object may not be initialized 出现的原因及解决措施
Next.js 在 Serverless 中从踩坑到破茧重生
HashMap设计原理与实现(下篇)200行带你写自己的HashMap!!!
【LVI-SAM论文全文翻译】: LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping
Neuron 2.1.0 发布:支持 Sparkplug B 规范,更完善的工业协议支持
docker(alpine+golang) 中 hosts 不生效问题解决方法
论文阅读笔记之——《Multi-level Wavelet-CNN for Image Restoration》及基于pytorch的复现
python中isoweekday和weekday的区别及说明