语音识别智能家居控制设计

这篇具有很好参考价值的文章主要介绍了语音识别智能家居控制设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、方案流程及技术规格书设计

二、系统硬件电路设计

三、软件编写及调试

四、系统调试测试与分析

前言

      随着科学技术的快速发展,人们对生活品质的要求也不断提高,开始追求更好更方便的生活方式。因此,智能家居系统应运而生。智能家居控制系统(smart home control systems),是以智能家居系统为平台,对家居电器及家电设备自动控制。提升家居智能、安全、便利、舒适。

      传统的家居智能控制系统一般采用集中控制器为中心,采用界面按键操作的方式来控制家居家电。采用界面操作控制的弊端是操作复杂,必须在固定地点操作。

      随着语音识别技术的快速发展,语音识别的准确率和可靠性大幅提高。语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。语音识别ASR(Automatic Speech Recognition)的最大优势在于使得人机用户界面更加自然和容易使用。

      基于语音识别技术的上述特点,同时结合当代智能家居在控制中的实际需求,我们选择语音控制的智能家居系统。本系统具有良好的开发和应用前景,在智能家居这个概念广为人知的时代,语音控制技术与智能家居的融合,最终会让智能家居引领市场并且走向更为广泛的应用。

 

软件工具准备

软件:

电路设计:protel99 se(up主使用版本) 或者其他版本,或者其他电路设计软件;

单片机开发:Keil5;

调试测试:串口调试助手,逻辑分析仪等;

工具:

电路焊接:电烙铁,SMT(有条件的);

调试:

万用表、示波器(基础入门即可,可以白嫖学校或者公司)USB转串口工具、仿真器;

一、方案流程及技术规格书设计

方案流程设计

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

技术规格书设计

1.本设计采用LD3320语音识别芯片。LD3320是一款非特定人语音识别芯片其提供的语音识别技术,是基于“关键词语列表”的识别技术;ASR技术。

2.LD3320识别语音后,单片机根据语音控制家电设备开关

3.家电设备有灯(双色LED灯模拟)、窗帘(步进电机模拟)、空调(继电器输出)、热水器(继电器输出)。

4、家居环境监测传感器有火焰传感器、烟雾传感器、温湿度传感器、人体红外传感器。

5、当火焰传感器、烟雾传感器、异常时,启动喷水设备(继电器输出)灭火。当人体红外传感器检测到人时,启动蜂鸣器报警。

6、语音控制灯开关、亮度、颜色。窗帘开关、空调开关、热水器开关。

7、报警信息通过GSM模块发送到指定手机。

8、设备状态在LCD显示。

9、4个按键可以手动控制设备开关。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

系统硬件电路设计

2.1微处理控制电路

       设计采用韩国现代产MC96F6432单片机芯片。该芯片是8051内核的8位单片机,电路图如图所示:

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

       单片机供电电压是2-5V,设计采用5V供电,图中VCC为5V。C14是电源滤波去耦电容。J20是仿真烧录口。

    IO口连接介绍:

1、LCD显示

  P30-P37:连接LCD数据线,8位并行通讯。

  P17:RS 控制LCD命令或数据。

  P16:RW 控制LCD读或写数据。

  P15:E LCD使能。

  P14:CS1 左屏选择。

  P13:CS2 中间屏选择。

  P12:CS1 右屏选择。

2、语音模块

  P07-P06:Y_Lamp4-Y_Lamp3语音模块指示灯开关。

  P55:Y_AC 语音模块指示空调开关。

  P42:Y_Curton 语音模块指示窗帘开关。

  P43:Y_Heat语音模块指示热水器开关。

3、步进电机控制

  P10: C4 步进电机控制。

  P20-P22:C3-C1步进电机控制。

5、传感器

  P50:ROUT 人感传感器输出。

  P11:HDO 火焰传感器输出。

  P51:YDO 烟雾传感器输出。

6、按键

  P23:HEAT_SW控制热水器开关。

  P02:CURTON_SW控制窗帘开关。

  P52:LAMP_SW 控制灯开关。

  P03:AC_SW 控制空调开关。

7、外部设备控制

  P54:Water 喷水设备控制。

  P53:Alarm 报警设备控制。

  P25:AC 空调开关控制。

  P26: LEDG 绿灯控制。

  P27:LEDR红灯控制。

7、通讯模块

  P40:RXD串口接收脚。

  P41:TXD串口发送脚。

2.2  语音识别模块电路设计

      LD3320语音电路设计为独立模块。LD3320的基本应用电路由单片机STC11L08和LD3320组成。主控MCU STC11L08来完成LD3320芯片寄存器的操作。如设置标志位,读状态,写数据到FIFO,识别结果,等等。例如,编辑关键词时,拼音串设置成LD3320寄存器来完成编辑关键词。寄存器可以分为以下几类,FIFO数据缓冲器,语音识别控制寄存器,音量控制,模拟电路和其他辅助寄存器。寄存器的读写操作有2种方式,分别是标准并行模式和串行SPI模式,本设计采用标准并行模式。该LD3320寄存器的地址空间为8位,从00H〜FFH。LD3320电路如图所示。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

IO口连接介绍:

VDD/VDDIO:3.3V电源输入。

MIC[P、N](9、10脚):麦克风输入正负端。

MONO(11脚):单声道输入。

MBS(12脚):麦克风偏置。

LINE[L、R](13、14脚):立体声左右端

HPO[L、R](15、16脚):耳机输入左右端

EQ[1、2、3](20-22脚):喇叭音量外部控制

SPO[N、P](25、26脚):喇叭输出

LOUT(L、R)(27、28脚):lineout输出

RSTB(47脚):复位信号

INTB(48脚):中断信号

STC11L08电路如图所示:

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

 IO口连接介绍:

 LD_P0-P7(37-30脚) : 8位数据线。

 LD_MD(6脚):读写模式控制,低电平是8位并行数据。

 LD_CS,WR,RD,A0(19,13,12,18脚):LD3320读写控制。

2.3  LCD显示电路

LCD19264显示电路如图:

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

R29是电位器,作用是调节显示对比度。R22是上电复位电路。R32是背光限流电阻。

IO口连接介绍:

RS、RW、E(5、6、7脚):LCD读写控制脚。

D0-D7(8-15脚):数据线。

CS1、CS2、CS3(16、17、18脚):屏幕选择脚,CS1低选择左屏,CS2低选择中间屏,CS3低选择右屏。

2.4 按键电路

       设计4个按键,单片机检测各个按键IO口电平,按键未按下时,高电平,按键按下时,低电平。按键控制对应设备开关。电路如图:

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

2.5  LED模拟灯电路设计

      设计LED红灯和绿灯模拟灯的颜色。灯的开关和亮度通过LEDR和LEDG控制。亮度设置有灭、暗、亮。设置灭时,LEDR,G输出低电平,设置暗时,LEDR,G输出50%占空比的方波,设置亮时LEDR,G输出高电平。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

2.6步进电机驱动电路

       步进电机使用ULN2003达林顿管驱动,电路如图3-6-1。VCC是5V供电电压。C1-C4是脉冲控制脚。在C1-C4输出特定时序的脉冲信号,就能控制步进电机顺时针转或反时针转,模拟窗帘开关。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

2.7 继电器及驱动电路设计

       设计4个继电器驱动电路模拟喷水设备开关、防盗报警开关、空调开关、热水器开关。图中三极管驱动继电器断开或闭合,当控制脚输出高电平时,三极管导通,继电器闭合。电阻起限流作用。二极管防止反向高压。LED灯指示继电器状态,继电器闭合时,LED灯亮,断开时,LED灯灭。电路图如下:

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

2.8 传感器电路设计

      传感器电路有人体红外传感器、烟雾传感器、火焰传感器,VCC和地供电,ROUT、YDO、HDO接单片机输入脚,当感应到信号时,对应脚输出低电平。YAO和HAO是传感器模拟输出,本设计未使用。电路如图:

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

2.9  GSM模块电路设计

       通信模块和单片机串口通信,VCC、GND给模块供电,U_RXD是模块串口接收脚,U_TXD是模块串口发送脚。电路如图。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

       通信模块芯片使用的是3.3V电压,所以IO口不能和单片机直接连接,需要电平转换电路。电路如图。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

2.10  电源电路设计

       系统采用外部9V电源适配器供电,9V直流电经过3端稳压模块7805的降压和稳压,输出5V电压给芯片和其他电路供电。电路如图。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

 通讯模块供电是3.3V,通过3.3V稳压芯片ASM1117输出3.3V电压。电路如图。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

三、软件编写及调试

3.1主程序设计

       系统采用MC96F6432单片机,外围设备有语音模块输入,火焰传感器输入,烟雾传感器输入,人感传感器输入,按键,LCD显示,步进电机控制,灯控制,空调继电器控制,热水器继电器控制,防盗报警继电器控制,灭火继电器控制。

       上电时,单片机初始化和外围设备初始化完成后,进入正常工作。单片机读取语音控制状态,根据状态控制灯光、空调继电器、窗帘步进电机、热水器继电器家电设备。单片机读取火焰传感器、烟雾传感器信号,控制灭火设备。单片机读取人感信号,控制报警继电器。LCD显示设备状态,报警信号通过GSM模块发送到指定手机。          

系统流程图如图

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

3.2 LCD显示程序设计

       HS19264是字符点阵液晶,显示屏分3部分,通过CS1,CS2,CS3低电平选择。按16x16汉字计算,可以显示12x4=48个汉字。LCD控制线是RS,RW,E,控制写命令还是写数据。汉字、字符、数字需要建立字模。LCD取对应字模显示对应点,合起来就能显示对应文字。图是LCD显示流程图。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

19264LCD显示代码:

/**底层驱动 ******************/

/*RS P17输出高低电平*/

void set_RS(unsigned char RS)

{

   if(RS == 0)

      P17 = 0;  

   else

      P17 = 1;  

}

/*RW P16输出高低电平*/

void set_RW(unsigned char RW)

{

   if(RW == 0)

      P16 = 0;  

   else

      P16 = 1; }

/*E P15输出高低电平*/

void set_EN(unsigned char EN)

{

   if(EN == 0)

      P15 = 0;  

   else

      P15 = 1;

}

/*CS1 P14输出高低电平*/

void set_CS1(unsigned char CS1)

{

   if(CS1== 0)

      P14 = 0;  

   else

      P14 = 1;

}

/*CS2 P13输出高低电平*/

void set_CS2(unsigned char CS2)

{

   if(CS2== 0)

      P13 = 0;  

   else

      P13 = 1;

}

/*CS3 P12输出高低电平*/

void set_CS3(unsigned char CS3)

{

   if(CS3== 0)

      P12 = 0;  

   else

      P12 = 1;

}

/*LCD数据线P3口输出数据*/   

void set_data(unsigned char data)

{

   P3 = data ;

}

/*显示开关*/  

void lcd_command_onoff(unsigned char onoff)

{

   set_RW(0);

   set_RS(0);

   set_EN(0);

   set_data(onoff+0X3E);

   set_EN(1);

   set_EN(0);

}

/*设置显示起始位置*/ 

void lcd_command_startline(unsigned char startline)

{

   set_RW(0);

   set_RS(0);

   set_EN(0);

   set_data(startline+0Xc0);

   set_EN(1);

   set_EN(0);

}

/*设置显示页*/ 

void lcd_command_setpage(unsigned char page)

{

   set_RW(0);

   set_RS(0);

   set_EN(0);

   set_data(page+0Xb8);

   set_EN(1);

   set_EN(0);

}

/*设置显示列*/ 

void lcd_command_setyadd(unsigned char yadd)

{

   set_RW(0);

   set_RS(0);

   set_EN(0);

   set_data(yadd+0X40);

   set_EN(1);

   set_EN(0);

}  

/*向LCD DDRAM 写1BYTE 数据*/

void lcd_writedata(unsigned char data)   

{

   set_RW(0);

   set_RS(1);

   set_EN(0);

   set_data(data);

   set_EN(1);

   set_EN(0);

}

/*LCD初始化*/ 

void lcd_init(void)

{

   lcd_command_onoff(1);

   lcd_command_startline(0);

   lcd_clear_scr();

}

/*LCD选择屏幕1、2、3*/ 

void lcd_setscr(unsigned char scr)

{

   if(scr==1)

   {

     set_CS1(0);

     set_CS2(1);

     set_CS3(1);

   }

   else if(scr==2)

  {

     set_CS1(1);

      set_CS2(0);

      set_CS3(1);

  }

  Else

 {

set_CS1(1);

         set_CS2(1);

         set_CS3(0);

  }

}

/*LCD清屏1、2、3*/ 

void lcd_clear_scr(void)

{

   INT8U i,j;

   for(i=0;i<=7;i++)

   {

      set_CS1(1);

  set_CS2(0);

  set_CS3(0);

  lcd_command_setpage(i);

  lcd_command_setyadd(0);

  for(j=0;j<64;j++)

    {

  lcd_writedata(0x00);

}

   }

   for(i=0;i<=7;i++)

   {

      set_CS1(0);

  set_CS2(1);

  set_CS3(0);

  lcd_command_setpage(i);

  lcd_command_setyadd(0);

  for(j=0;j<64;j++)

    {

  lcd_writedata(0x00);

}

   }

   for(i=0;i<=7;i++)

   {

      set_CS1(0);

  set_CS2(0);

  set_CS3(1);

  lcd_command_setpage(i);

  lcd_command_setyadd(0);

  for(j=0;j<64;j++)

    {

  lcd_writedata(0x00);

}

   }

}

/*显示数字 显示8X16点字符  */

void lcd_write_0816(unsigned char page, unsigned char yadd, unsigned char fanxiang,const unsigned char *disp)

{

    unsigned char i=0,j=0;

for(j=0;j<2;j++)

{

  lcd_command_setpage(page+j);

  lcd_command_setyadd(yadd);

  for(i=0;i<8;i++)

    {

 if(fanxiang==0)

 {lcd_writedata(disp[j*8+i]);}

 else

 {lcd_writedata(~(disp[j*8+i]));}

}

     }

}

/*显示汉字,显示16X16点字符  */

void lcd_write_1616(unsigned char page, unsigned char yadd, unsigned char fanxiang,const unsigned char *disp)

{

    unsigned char i=0,j=0;

for(j=0;j<2;j++)

{

  lcd_command_setpage(page+j);

  lcd_command_setyadd(yadd);

  for(i=0;i<16;i++)

    {

 if(fanxiang==0)

 {lcd_writedata(disp[j*16+i]);}

 else

 {lcd_writedata(~(disp[j*16+i]));}

}

 }

}

3.3 步进电机驱动程序设计

       采用4相8拍步进电机,其原理是轮流通过电流,正转顺序是A,AB,B,BC,C,CD,D,DA。反转顺序是A,DA,D,CD,C,BC,B,AB。转速的快慢是由输出脉冲频率决定。  

步进电机代码:

/*输出脉冲驱动*/

    unsigned char MotorCtr(void)

{

    if (stop_flag==1) //停止转动

        {

P22 = 0;

P21 = 0;

P20 = 0;

P10 = 0;

return;

   }

   

   switch(step_index) //根据驱动时序,输出一个单脉冲信号波形

  {

case 0: //0 ,(A 相)

    P22 = 1;

    P21 = 0;

   P20 = 0;

   P10 = 0;

break;

case 1: //0、1, (AB 相)

P22 = 1;

    P21 = 1;

   P20 = 0;

   P10 = 0;

break;

case 2: //1,(B 相)

P22 = 0;

    P21 = 1;

   P20 = 0;

   P10 = 0;

break;

case 3: //1、2 , (BC 相)

P22 = 0;

    P21 = 1;

   P20 = 1;

   P10 = 0;

break;

case 4: //2, (C 相)

P22 = 0;

    P21 = 0;

   P20 = 1;

   P10 = 0;

break;

case 5: //2、3, (CD 相)

P22 = 0;

    P21 = 0;

   P20 = 1;

   P10 = 1;

break;

case 6: //3, (D 相)

P22 = 0;

    P21 = 0;

   P20 = 0;

   P10 = 1; break;

case 7: //3、0, (DA 相)

P22 = 1;

    P21 = 0;

   P20 = 1;

   P10 = 1;

}

if (turn==0) //转动方向控制,0-正转;1-反转

{

step_index++; //正转时序

if (step_index>7)

step_index=0;

}

else

{

step_index--;//反转时序

if (step_index<0)

step_index=7;

}

}

3.4  LCD驱动程序设计

       LED模拟灯光控制,LED状态有亮,暗,灭3种状态,LED的IO口输出高电平,灯亮,输出低电平,灯灭,输出PWM波,灯暗。图是LED控制流程图。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

四、系统调试测试与分析

4.1电路焊接

       用电烙铁将单片机,液晶显示,继电器,LED灯,稳压电源模块,按键,语音模块,传感器模块,按键,电容,电阻等焊接到线路板。实物如图所示。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

4.2系统调试

       连接电脑和烧写器,下载程序到单片机,上电初始化完成后,设备都在关闭状态。普通话说出以下单词,控制设备开。

1.开红灯。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

 2.开绿灯。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

3.开空调。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

 4.开热水器。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

 5.开窗帘。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能

       本智能家居系统设计报警功能,当火焰传感器检测到异常时,会显示火警,人体传感器检测到异常时,显示盗警。人移动到人体传感器前,显示盗警并继电器报警。如图。

基于语音识别的智能家居控制,嵌入式项目_单片机系统设计,语音识别,智能家居,人工智能文章来源地址https://www.toymoban.com/news/detail-780492.html

到了这里,关于语音识别智能家居控制设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包