赞
踩
离线语音识别识别垃圾种类并且垃圾桶自动翻盖:
说出唤醒词“垃圾桶”后,再说一句垃圾名称,语音识别模块端识别到相应关键词,便会将结果通过串口发送到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; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。