基于51单片机的智能家居系统

您所在的位置:网站首页 加拿大使用的语音 基于51单片机的智能家居系统

基于51单片机的智能家居系统

2024-07-10 09:05| 来源: 网络整理| 查看: 265

        本次使用51单片机以及语音识别模块LD3320和一些外围传感器设备,实现了一个简易智能家居系统。现将实现的过程和使用的模块向大家介绍,有些涉及底层驱动的地方可能不会详细介绍,着重介绍设计思路、实现的过程、以及主函数的逻辑。

目录

摘要

1.引言

1.1单片机的发展

1.2课题意义

1.3开发工具的选择

2.设计要求

3.器件选型

3.1单片机选型

3.2语音模块选型

3.3温度传感器

3.4显示器选型

3.5无线传输模块选型

3.6红外感应模块

4.设计思路

5.方案介绍

5.1软件部分

5.2硬件部分

5.2.1 51单片机

 5.2.2 语音识别模块LD3320

5.2.3 DS18B20温度传感器

5.2.4 LCD1602显示器

5.2.5 ARMP3遥控器

6.测试数据

6.1 测试过程及效果:

6.2 产生的误差:

7.实物图

摘要

        智能家居作为家庭信息化的实现方式,已经成为社会信息化发展的重要组成部分,物联网因其巨大的应用前景,将是智能家居产业发展过程中一个比较现实的突破口,对智能家居的产业发展具有重大意义。本文基于容易实现,方便操作,贴近使用的设计理念,设计的智能家居系统是以AT89C51单片机为主控器件,与温度传感器、红外收发模块、LCD1602显示屏、红外遥控之间进行数据交换。主机部分是系统的核心部分,通过红外遥控对系统温度的阈值进行设置,并利用LCD显示模块对室内当前温度和所设阈值进行实时显示,当所测温度高于阈值时报警。除此之外,还利用红外避障模块设计了一个防盗报警装置,当有人靠近时,蜂鸣器报警予以警示。整个模块还使用了语音模块,实现了对家居的智能控制。

1.引言 1.1单片机的发展

        单片机诞生于20世纪70年代,1974年Fairchild(仙童)公司研制出第一台卫星计算机F8。.此时集成电路属于中规模发展时期,各种新材料新工艺尚未成熟,单片机仍处于发展的初级阶段,元件集成规模还比较小,功能比较简单,一般均把CPU、RAM,有的还包括一些简单的I/O口集成到芯片上,像Fairchild公司就属于这一类型,它还需配上外围的其他处理电路方才构成完整的计算系统。 

        1976年Intel公司推出了MCS-48单片机,这个时期的单片机才是真正的8位单片微型计算机。它以体积小,功能全,价格低赢得了广泛应用。这一阶段,单片机被正式命名为Single Chip Microcomputer,即单片微型计算机。总的来说,这一时期的单片机性能较弱属于低、中档产品。 

        1982年以后,16位单片机问世,例如Intel公司的MCS-96系列。16为单片机比起8位机,数据宽度增加了一倍,实时处理能力更强,主频更高,RAM增加到232字节,RAM则达到了8KB,并且有8个中断源,同时配置了多路的A/D转换通道,高速的I/O处理单元,适用于更复杂的测控系统。 

        现在,单片机发展迅速,按操作处理的基本数据位数来看已经有4位、8位、16位、32位、甚至64位。单片机设计生产周期缩短、成本下降、应用领域拓宽,开始向专用型单片机发展。

1.2课题意义

        随着人们对居住环境要求的不断提高,家居智能化已经成为住宅发展的必然趋势。自从1984年在美国康涅迪格州诞生了世界上最早的智能建筑,之后加拿大、欧洲、澳大利亚和东南亚等经济比较发达的国家也先后提出了智能家居的概念,即将家庭中各种通讯设备、家用电器和家庭安防装置通过家庭网络连接到一个家庭智能化系统上进行集中的或异地的监控,并保持这些家庭设施与住宅环境的和谐与协调。在我国智能家居也在逐渐升温,但智能家居始终没有真正的走进人们的生活,主要是因为目前它在价格、实用性和功能的丰富程度上存在着一定的问题。所以开展本课题的研究具有人性化和个性化的特点,也是智能家居的意义所在。

1.3开发工具的选择

        Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

2.设计要求

        系统有语音识别功能,使用语音识别模块来控制整个系统的开启与关闭。有测温功能,显示功能,将测得的温度实时显示在LCD屏幕上面。还有温度阈值,阈值可以通过红外遥控器设置,温度超过阈值时就报警。同时还有一个红外避障模块,用于检测人体,起到防盗报警的作用。当有人靠近时,检测到有人,就会报警!

3.器件选型

        本系统主要由单片机最小系统板、语音模块、温度传感器、无线传输系统、屏幕显示模块、红外感应模块组成,下面分别论证这几个模块的选择。

3.1单片机选型

        方案一:AT89C52单片机。AT89C52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器,适于常规编程器。但是架构太简单,片上外设少,不适合本次使用。

        方案二:STM32单片机。STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。STM32单片机程序都是模块化的,接口相对简单些,内有A/D转换电路,可扩展性强。

        因为本次设计所需硬件资源不太大,AT89C52单片机完全可以胜任,故本次选择方案一,采用AT89C52系列单片机为主控处理器。

3.2语音模块选型

        方案一:采用JQ8900作为语音播报电路。JQ8900是一款具有单片机内核的语音芯片,因此,可以冠名为JQ8900系列语音单片机。功能多音质好应用范围广性能稳定是JQ8900系列语音单片机的特长,弥补了以往各类语音芯片应用领域狭小的缺陷, MP3控制模式、按键控制模式、按键组合控制模式、并口控制模式、一线串口控制模式、等多种控制方式,配套专用上位机,指令自动生成。

    方案二:采用LDV5语音识别模块。该模块具备USB接口, TF卡读取U盘功能,直接修改剧本;具备支持大4G mini低速TF卡;可实现人机对话,播放MP3功能,播放歌曲,播放对话;具备串口输出识别码功能,支持1-12字节 自定义16进制输出;支持口令识别方式;支持普通识别模式、按键触发模式以适应不同应用环境;具备串口实现MP3点播功能,可以选择任意播放MP3;具备看门狗复位功能,系统更稳定耐用;支持550条语音命令识别,每条10字以内,每次候选50句识别;具备8个10口的控制功能,通过配置TF卡文件可以实现输出高电平、低电平、高电平点动0.5S、高电平点动1S的控制。

    通过比较,本次选择兼有语音播报功能和语音识别、控制功能的LDV5语音识别模块。

3.3温度传感器

        方案一:使用LMT70温度传感器。LMT70是一款带有输出使能引脚的超小型、高精度、低功耗互补金属氧化物半导体 (CMOS) 模拟温度传感器。LMT70 几乎适用于所有高精度、低功耗的经济高效型温度感测应用。但非接触式测温时其误差太大。

      方案二:使用DS18B20温度传感器。它是常用的数字温度传感器,输出的是数字信号,具有体积小、抗干扰能力强、接线方便等优点。但它在非接触情况下无法准确获得物体温度。

     方案三:使用MLX90614—BCC温度传感器。该模块体积小、易集成,测量温度范围广,测量辨析度可达0.02℃。支持无接触温度测量,可以在10cm范围内精准测温。

     通过比较,本次选择DS18B20温度传感器。

3.4显示器选型

        方案一:采用LCD1602作为显示屏,LCD1602是工业字符型液晶,能够同时显示16x02即32个字符。是一种专门用来显示字母、数字、符号等的点阵型液晶模块。但是可扩展能力弱。

        方案二:采用2.8寸TFT显示屏,彩色显示,320*240分辨率,有较高的扩展性,可以用它实现键盘,显示等多种功能,功能强大。

        因为此次不需要显示太多内容,也不需要显示图片,所以选择方案一,采用LCD1602作为显示方案。

3.5无线传输模块选型

        方案一:采用HC08_WIFI模块传输温度阈值。HC08蓝牙模块是广州汇承公司的产品,HC系列分别有蓝牙,WiFi以及433MHz无线通信模块若干,其中HC系列的蓝牙模块目前用于单片机通信的方面最广,具有低功耗(以HC08为代表),配备双模蓝牙,操作极为简单(安装支持BLE的APP后无需对码且指令集简单),主从机一体,通信效果好这些优点。

        方案二:使用ARMP3红外遥控器传送温度阈值。其采用一体化,集红外接收、放大、滤波和比较器输出等的模块作为红外接收头的模块元件,不需要任何外接元件,就能完成从红外线信号接收到输出与TTL电平信号相兼容的所有工作,适合于各种红外线遥控和红外线数据传输。

        经选择,本次采用方案二,使用红外遥控器进行数据的无线传输。

3.6红外感应模块

        因红外感应模块原理简单,故直接选择能够输出TTL电平的红外收发模块。

4.设计思路

 

5.方案介绍 5.1软件部分

主函数代码如下:

#include "reg52.h" #include "LED.h" #include "beep.h" #include "delay.h" #include "shumaguan.h" #include "key.h" #include "key44.h" #include "INT1.h" #include "T1interrupt.h" #include "usart.h" #include "LCD1602.h" #include "DS18B20.h" #include "infrared.h" #include "HC08.h" sbit LD=P1^1; //语音模块的PA1口接到了单片机的P1^1口 void main(void) { IrInit(); //红外遥控初始化 UsartInit(); //串口初始化 LcdInit(); //LCD显示器初始化 while(1) { if(LD==1) //如果语言识别模块识别到了对应的命令 { cewen(); //用于测温的函数 } bzfunc(); //用于防盗报警的函数 } }

主函数里面主要是由语音控制的测温模块代码,以及实时运行的防盗代码。

测温部分的全部代码如下:

#include "reg52.h" #include "LED.h" #include "beep.h" #include "delay.h" #include "shumaguan.h" #include "key.h" #include "key44.h" #include "INT1.h" #include "T1interrupt.h" #include "usart.h" #include "LCD1602.h" #include "DS18B20.h" #include "infrared.h" char tmp[7]="123.45C"; char zhi[]="00.00C"; //u8 IrValue[6]; uchar Ds18b20Init() { uchar i; DSPORT = 0; //将总线拉低480us~960us i = 70; while(i--);//延时642us DSPORT = 1; //然后拉高总线,如果DS18B20做出反应会将在15us~60us后总线拉低 i = 0; while(DSPORT) //等待DS18B20拉低总线 { delay_nms(1); i++; if(i>5)//等待>5MS { return 0;//初始化失败 } } return 1;//初始化成功 } void Ds18b20WriteByte(uchar dat) { uint i, j; for(j=0; j>= 1; } } uchar Ds18b20ReadByte() { uchar byte, bi; uint i, j; for(j=8; j>0; j--) { DSPORT = 0;//先将总线拉低1us i++; DSPORT = 1;//然后释放总线 i++; i++;//延时6us等待数据稳定 bi = DSPORT; //读取数据,从最低位开始读取 /*将byte左移一位,然后与上右移7位后的bi,注意移动之后移掉那位补0。*/ byte = (byte >> 1) | (bi


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3