毕业设计 单片机语音识别分类智能垃圾桶(STM32 ESP8266 LD3320)

这篇具有很好参考价值的文章主要介绍了毕业设计 单片机语音识别分类智能垃圾桶(STM32 ESP8266 LD3320)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、电路设计

离线语音识别识别垃圾种类并且垃圾桶自动翻盖:
说出唤醒词“垃圾桶”后,再说一句垃圾名称,语音识别模块端识别到相应关键词,便会将结果通过串口发送到STM32端,STM32端接着会发送打开相应垃圾桶盖的指令,6s后,垃圾桶盖自动关闭。其中翻盖功能是通过STM32端控制舵机实现。

语音播报功能:
STM32端若判断到有人说出唤醒词了,通过串口发送指令给语音播报模块,外放喇叭便会播报“你好”的音频,若判断到相应的垃圾种类,便会播报相应的垃圾种类音频。

APP/网页端远程控制垃圾桶:
STM32端通过串口连接WIFI模块esp8266-01s,接入Onenet云平台,实现联网功能,通过云端下达指令给设备,从而控制垃圾桶实现翻盖及控制继电器通断。

OLED屏显示信息: OLED屏可以显示作者的相关信息、及每次语音播报也会显示相应文字信息。

硬件组成

智能垃圾桶的开发板用到的是STM32F103C8T6最小系统板,各个模块间都是通过串口和主控进行通信。硬件电路上的连接画一个PCB接口板即可,所有模块都可以通过排针或排母直接插上去。由于用到了4个舵机,所以整个系统的供电系统需要用5V2A的电源适配器。所用到的各个模块材料清单如下图:

单片机 智能分类垃圾桶,单片机

二、原理图

单片机 智能分类垃圾桶,单片机

单片机 智能分类垃圾桶,单片机

三、部分代码



    //单片机头文件
    #include "stm32f10x.h"
    #include "stm32f10x_gpio.h"
    #include "stm32f10x_rcc.h"
    //网络协议层
    #include "onenet.h"
    //网络设备
    #include "esp8266.h"
    //硬件驱动
    #include "delay.h"
    #include "usart.h"
    //C库
    #include 
    #include "PWM.h"
    #include "jidianqi.h"
    
    #include "YuYin.h"
    #include "MP3.h"
    #include "SysTick.h"
    #include "oled.h" 


    char T[5]={0,0,0};
    char H[5]={0,0,0};
    u16 temperature=0,humidity=0;
    char ret; 
    u8 hump_temp[10];


    unsigned short timeCount = 0;	//发送间隔变量
    
    unsigned char *dataPtr = NULL;
    
    short flag = 0;
    
    u8 Target1=0;
    u8 Target2=0;
    u8 Target3=0;
    u8 Target4=0;
    
    u8 all_staus = 0;
    
    u8 Open_JumpEdge=0;
    u8 WakeUp_Flag=0;


    /功能函数
    
    /*
    ************************************************************
    *	函数名称:	Hardware_Init
    *
    *	函数功能:	硬件初始化
    *
    *	入口参数:	无
    *
    *	返回参数:	无
    *
    *	说明:		初始化单片机功能以及外接设备
    ************************************************************
    */
    void Hardware_Init(void)
    {
    	
    		NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//中断控制器分组设置
    	
    		delay_init();									//systick初始化
    	  Usart3_Init(115200);				  //串口3,驱动ESP8266用
     		PWM_Init();                   //初始化PWM
    	  ESP8266_Init();					      //初始化ESP8266
    		LED_Config();									//初始化LED指示灯或者说是继电器
    		
    		YuYin_Init();									//语音识别初始化
    		MP3_Init();										//播放模块初始化
    		SysTick_Init();								//公共定时器初始化
    	
    		OLED_Init();									//OLED屏初始化


    }


    /*
    ************************************************************
    *	函数名称:	 Keep_Connet_Esp8266
    *
    *	函数功能:	不断上传数据,使之保持接入物联网平台
    *
    *	入口参数:	无
    *
    *	返回参数:	无
    *
    *	说明:		一旦停止数据上传,物联网平台会断开
    ************************************************************
    */
    void Keep_Connet_Esp8266 (void)
    {
    	
    			if(++timeCount >= 2000)									//发送间隔20s
    				{
    					OneNet_SendData();									//发送数据		
    					timeCount = 0;
    					ESP8266_Clear();
    				}
    				
    				dataPtr = ESP8266_GetIPD(0);
    				if(dataPtr != NULL)
    					OneNet_RevPro(dataPtr);
    				
    				delay_ms(10);
    				
    }


    /*
    ************************************************************
    *	函数名称:	main
    *
    *	函数功能:	
    *
    *	入口参数:	无
    *
    *	返回参数:	0
    *
    *	说明:		
    ***
    *********************************************************
    */
    int main(void)
    {


    	Hardware_Init();				//初始化外围硬件
    
    	while(OneNet_DevLink())			//接入OneNET
    		delay_ms(500);
    
    	OLED_CLS();
    	ShowSmartTrash();				//显示“智能垃圾桶”
    	Show_Author();					//显示“设计·作者名“
    	//ShowTemperature();			//显示”温湿度”
	

    	while(1)
    	{

    				Keep_Connet_Esp8266();
	

    				if(YuYin_RX_STA == 1)
    				{
    					if(MP3_State() == 0)
    					{
    						if(YuYin_RX_CMD==49 || YuYin_RX_CMD==50)
    						{
    							WakeUp_Flag = 1;
    							MP3_Star(5);
    						}
    						else if(WakeUp_Flag == 1)
    						{
    							WakeUp_Flag=0;
    							
    							if(YuYin_RX_CMD%4 == 1)
    							{
    								MP3_Star(1);
    								Target1 = 1;
    								Show_chiyu();
    							}
    							else if(YuYin_RX_CMD%4 == 2)
    							{
    								MP3_Star(2);
    								Target2 = 1;
    								Show_qita();
    							}
    							else if(YuYin_RX_CMD%4 == 3)
    							{
    								MP3_Star(3);
    								Target3 = 1;
    								Show_youhai();
    							}
    							else
    							{
    								MP3_Star(4);
    								Target4 = 1;
    								Show_kehuishou();
    							}
    						}
    					}
    					
    					YuYin_RX_STA = 0;
    				}
    		
    		if(SysTick_JumpEdge(&Open;_JumpEdge, &SysTickBit.Time1s;)==1)
    		{
    		  if(Target1 != 0)
    			{
    			  Target1++;
    				TIM_SetCompare1(TIM4,700);
    				if(Target1>6)
    				{					
    					TIM_SetCompare1(TIM4,500);					
    				  Target1 = 0;
    					ShowTrashNoPeople();
    				}					
    			}
    			if(Target2 != 0)
    			{
    				Target2++;
    				TIM_SetCompare2(TIM4,900);
    				if(Target2>6)
    				{
    					TIM_SetCompare2(TIM4,600);
    					ShowTrashNoPeople();
    					Target2 = 0;
    				}	
    			}	
    			if(Target3 != 0)
    			{
    				Target3++;
    				TIM_SetCompare4(TIM4,900);			//有害
    				if(Target3>6)
    				{
    					TIM_SetCompare4(TIM4,500);
    					ShowTrashNoPeople();
    					Target3 = 0;
    				}	
    			}
    			if(Target4 != 0)
    			{
    				Target4++;
    				TIM_SetCompare3(TIM4,900);			//可回收
    				if(Target4>6)
    				{
    					TIM_SetCompare3(TIM4,550);
    					ShowTrashNoPeople();
    					Target4 = 0;
    				}	
    			}
    		}
    		
    		switch( flag )
    		{
    			case 1 :GPIO_SetBits(GPIOA,GPIO_Pin_1); break;
    			case 2 :GPIO_ResetBits(GPIOA, GPIO_Pin_1); break; 
    			case 3 :TIM_SetCompare1(TIM4,700);break;
    			case 4 :TIM_SetCompare1(TIM4,500);break;
    			case 5 :TIM_SetCompare2(TIM4,900);break;
    			case 6 :TIM_SetCompare2(TIM4,600);break;
    			case 7 :TIM_SetCompare4(TIM4,900);break;
    			case 8 :TIM_SetCompare4(TIM4,500);break;
    			case 9 :TIM_SetCompare3(TIM4,900);break;
    			case 10:TIM_SetCompare3(TIM4,550);break;
    
    		}


    	}
    }


项目获取:

https://gitee.com/feifei1122/simulation-project文章来源地址https://www.toymoban.com/news/detail-858285.html

到了这里,关于毕业设计 单片机语音识别分类智能垃圾桶(STM32 ESP8266 LD3320)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【毕业设计】20-基于单片机的指纹识别系统设计(原理图工程+源代码工程+实物操作图+答辩论文+答辩PPT)

    · 资料包含:毕业设计全套资料(精品) 原理图工程文件 原理图截图 搭建视频 答辩论文低重复率文档,25354字 英文文献及翻译 答辩PPT 实物操作图 摘要 对于如何实现家庭防盗这一问题,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好

    2024年01月17日
    浏览(41)
  • 基于单片机的毕业设计推荐

    ** ** 1、基于51单片机的多功能门禁系统(低端、功能限制较大)。 2、基于单片机的多功能实时时钟。 3、基于单片机的音乐播放器。 4、基于STM32单片机的多功能门禁系统(高端、没有限制)。 5、基于单片机的智能窗帘系统。 6、基于单片机的智能灯光系统。 7、基于单片机

    2024年02月06日
    浏览(52)
  • 【单片机毕业设计】【mcuclub-jj-011】基于单片机的加湿器的设计

    项目名:加湿器 项目编号:mcuclub-jj-011 单片机类型:STC89C52 具体功能: 1、通过DHT11获取湿度值,当湿度值低于设置最小值,则启动加湿器加湿,大于设置最大值,则停止加湿 2、通过液位检测模块检测加湿器中是否还有水,如果没有,则自动停止加湿、声光提醒 3、通过按键

    2023年04月17日
    浏览(83)
  • 毕业设计 单片机选题100例(一)

    【单片机毕业设计项目分享系列】 🔥 单片机毕业设计及享100例系列的第一篇,目的是分享高质量的毕设作品给大家,包含全面内容:源码+原理图+PCB+实物演示+论文。 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的单片机项目缺少创新和亮点,往往达不到

    2024年02月07日
    浏览(43)
  • 【单片机毕业设计】【mcuclub-dz-198】基于单片机的车辆安全驾驶预警系统设计

    项目名:基于单片机的车辆安全驾驶预警系统设计 项目名:驾驶检测(实物)(mcuclub-105) 项目编号:mcuclub-dz-198 单片机类型:STM32F103C8T6 具体功能: 1、通过红测速模块管检测当前老年车的速度; 2、通过超声波测距测量车前障碍物的距离,若距离大于设定最大值,绿灯亮;

    2024年02月20日
    浏览(39)
  • 【单片机毕业设计】【mcuclub-dz-196】基于单片机下的新型智能花盆设计

    项目名:基于单片机下的新型智能花盆设计 项目名:花盆(实物) 项目编号:mcuclub-dz-196 单片机类型:STM32F103C8T6 具体功能: 1、通过防水式DS18B20测量土壤温度,当温度高于设置最大值时,进行风扇降温,低于设置最大值,进行防水加热 2、通过土壤湿度传感器检测湿度值,

    2024年02月19日
    浏览(78)
  • 毕业设计 - 基于单片机的智能饮水机系统设计与实现 (物联网 嵌入式 单片机)

    Hi,大家好,学长今天向大家介绍一个 单片机项目 基于单片机的智能饮水机系统设计与实现 大家可用于 课程设计 或 毕业设计 这次设计的智能饮水机就是单片机结合传感器的一个应用。 该系统设计综合单片机以及电子技术理论,从生活实际出发,完善了饮水机的功能。整个

    2024年02月03日
    浏览(90)
  • 【单片机毕业设计】【mcuclub-dz-032】基于单片机的智能门禁控制系统设计

    项目名:基于单片机的门禁的设计 单片机:STM32F103C8T6 mcuclub-dz-032 功能简介: 1、通过扫码枪进行扫描二维码,当二维码识别成功,10s内需触发红外避障管,并通过红外测温模块进行测温,如果温度正常,则自动开锁,如果温度异常,则声光报警3次,锁不打开 2、通过RFID进行

    2024年01月18日
    浏览(55)
  • 毕业设计单片机可以用万能板吗?

    可以是可以,就是焊接起来比较麻烦,特别是有好几个重复连线点的时候,检测起来就不那么容易了,而且布线看起来乱糟糟的,如果后期一不小心把线弄断了,查起来就更麻烦了,倒不如pcb打板来的方便。最近很多小伙伴找我,说想要一些单片机的资料,然后我根据自己从

    2024年02月04日
    浏览(41)
  • 【毕业设计】基于单片机控制的交通灯毕业设计(附源代码)

    目 录 摘   要 Abstract 前   言 一、工程简介 ( 一)、概述 ( 二 ) 、 工艺 流程图 二、工程设计 (一)、控制方案的确定 (二)、硬件部分 ( 1 )、交通灯控制系统的硬件设计 ( 2 )、硬件系统的设计具备以下原则 ( 3 ) 、硬件结构框图 (如图 3 所示) ( 4 ) 、交通灯控

    2024年04月23日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包