基于μC/OS和μC/GUI的智能家居系统设计
电子科学与技术 201010144 杨吉
指导教师: 孙春霞(副教授)
摘 要:设计了一个以嵌入式技术为基础拥有家电控制、环境监控、安防监控、家庭娱乐四大功能的智能化家居控制系统。基于STM32F103ZET6微处理器设计的嵌入式主控制器、基于红外无线的家电控制模块、基于DHT11的温湿度控制模块、基于OV7670的视频监控模块、基于VS1053的音频播放模块、灯光控制模块等。系统软件设计基于嵌入式实时操作系统μC/OS II和嵌入式图形用户界面μC/GUI,根据智能家居各个模块的不同功能进行任务化、模块化设计,并对各个功能模块设计了交互界面。
关键词:智能家居系统,μC/OS,μC/GUI,嵌入式系统
1. 绪论
20世纪90年代以来,数字化技术取得了更加迅猛的发展并日益渗透到各个领域。随着Internet向普通家庭生活不断扩展,消费电子、计算机、通讯一体化趋势日趋明显,智能化信息家电产品已经开始步入社会和家庭。智能信息家电由于其安全、方便、高效、快捷、智能化等特点在21世纪将成为现代社会和家庭的新时尚。当家庭综合服务器(Integrated Home Server)将家庭中各种各样的智能信息家电通过家庭总线技术连接在一起时,就构成了功能强大、高度智能化的现代智能家居系统。
智能家居(Smart Home),又称智能住宅或智慧家居,它以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务相结合的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。
2. 智能家居系统整体设计方案及硬件平台
2.1 智能家居系统整体设计方案
本设计是基于ARM-CORTE3内核的STM32F103ZET6+μC/OS II+μC/GUI作为智能家居系统主要的软硬件平台,在此基础上利用嵌入式技术展开智能家居系统系统的设计。图 1为智能家居系统整体功能框图。

图 1 智能家居系统整体功能框图
智能家居系统各个功能模块的设计如下:
1)智能灯光控制模块中控制LED的亮灭来模拟室内的照明设备的开关。
2)智能窗帘控制模块中控制步进电机28BYJ-48来模拟控制室内窗帘控制器。
3)智能家电控制模块中控制红外发射管的红外发射信号来模拟对家用电器的控制。
4)摄像监控模块中使用OV7670图像传感器采集视频图像数据来模拟对室内状况的实时监控画面显示。
5)窗门磁模块中使用MCU的ADC\DAC功能采集模拟端口的电压值来模拟室内窗门是否被打开。
6)声光报警模块中分别使用LED和蜂鸣器来模拟室内的声光报警器。
7)环境监控模块中使用DHT11温湿度传感器实时采集温湿度数据来模拟对室内环境信息的实时采集和显示。
8)家庭娱乐模块中使用VS1053音频解码芯片解码音频,来模拟家庭音乐播放系统,并设计图片浏览器、电子书、文件浏览器、文件传输等功能来模拟家庭娱乐系统。
2.2 智能家居系统整体硬件设计
本智能家居系统使用STM32微处理器为主控制器,并添加外围控制电路实现智能家居系统各个功能模块,完成相应的模块功能。整个系统硬件分为主控制器和外围电路2个部分,系统整体硬件设计如图 2。
图 2 智能家居系统整体硬件设计
2.3 智能家居系统主控制器硬件设计
智能家居系统主控制器部分主要是MCU的最小系统电路,包括了时钟电路、复位电路、JTAG调试下载电路等。MCU完成外部传感器信息检测分析、并根据触摸屏的触摸控制来对系统中硬件资源进行调配和控制。
本设计采用ST公司的STM32F103ZET6芯片作为主控芯片,时钟频率为72MHz,具有强大的片上资源和丰富的I/O口,能够满足整个系统的设计需求。。
主控制器部分采用直流电源供电的方式,既可使用5V直流电源供电,也可使用USB接口对系统供电。设计中需要使用较多的I/O,我们将MCU每个I/O引出,便于我们开发搭建外围电路并扩展外设。
2.4 智能家居系统功能模块设计方案
1)TFT_LCD触摸屏模块
智能家居系统中,微控制器作为整个系统的控制中心,作为系统的大脑,一方面按照程序的设定负责对系统中的各项资源进行协调和控制,另一方面就是要与控制者进行交互,根据控制者下达的控制指令来对系统资源进行协调和控制。
本设计中,使用液晶显示触摸屏作为智能家居系统与家庭用户交互的媒介。STM32内部没有集成专用的液晶屏和触摸屏的控制接口,不能对TFT_LCD和触摸屏进行直接控制,我们使用STM32芯片通过驱动控制芯片来控制液晶屏和触摸屏。TFT_LCD显示模块采用256色240X320分辨率的液晶显示屏,TFT_LCD的控制芯片采用ILITEK公司生产的单芯片控制驱动器ILI9341。触摸屏模块使用电阻式触摸屏,控制芯片使用4导线制触摸屏控制器XPT2046。触摸屏和液晶显示屏配合使用,组成了可交互的输入输出系统。
2)智能灯光控制模块
典型智能家居灯光控制系统,能够在家中任意控制终端对室内照明设备进行控制,并可以根据家庭场景自动对家中照明设备进行控制调节。
本智能灯光控制模块中使用LED来模拟房间中的照明设备。一个LED模拟一个房间的灯光,用户触摸LCD触摸屏,主控制器根据用户在显示触摸屏上的交互内容来控制每个LED的亮灭,进而模拟对各个房间内的照明设备进行开关操作。
3)智能窗帘控制模块
智能化自动窗帘控制系统可以在设定的时间开关窗帘,可根据家庭和外部环境对窗帘进行自动控制,并可以根据家中甲烷、烟雾等传感器采集到的数据,自动打开窗户通风换气,降低室内有害气体浓度,保证家庭用户的安全。
智能家居系统中通常使用电机来控制窗帘的开和关,本设计中采用四相八拍型步进电机28BYJ-48用来模拟窗帘控制系统。用户可以根据触摸屏提示手动打开或者关闭相应房间的窗户,并可以设定窗帘自动开关的时间。系统使用ULN2003作为步进电机驱动器。ULN2003接收到MCU的脉冲控制信号后,经放大电流后用来驱动28BYJ-48步进电机。
4)家电控制模块
本设计中使用红外发射器对家用电器(空调)进行模拟控制。智能家居主控制器根据LCD触摸屏反馈,向红外控制器发送控制指令,红外控制器将控制指令编码为红外光发射出去,当家用电器的红外接收器接收到红外控制信号时,根据控制信号完成相应的控制动作。
本设计中,红外发射器使用大功率红外发射管IR5308,STM32的控制信号经脉冲调制后传送给IR5308,经红外发射管发射红外控制信号,实现对家电的控制。
5)环境监控模块
本设计中简易搭建了一个温湿度检测系统,温湿度传感器将温湿度值发送给中心控制器,系统在LCD显示屏上实时显示环境温湿度值,并根据温度高低自动控制空调设定合适的温度,或者开窗关窗操作,并根据湿度值控制空调是否进行加湿操作。
环境监控模块中使用广州奥松电子有限公司生产的单总线温湿度一体化的数字传感器DHT11,它包括一个电阻式测湿元件和一个NTC测温元件。DHT11通过STM32简单的电路相连即能够实时采集本地温度和湿度。
6)视频监控模块
视频监控作为安防系统中最重要的模块,越来越受到人们的重视。运用摄像头,不仅能够实时查看家中的异常情况、了解家中状况,还能查看系统存储的视频信息,为预防犯罪和调查取证提供了方便。
本设计中使用摄像头搭建视频监控模块,可以通过本地LCD触摸屏可以实时查看摄像头拍摄到的监控画面,并可根据监控画面进行报警。视频监控模块中采用OmniVision公司生产的能够提供单片VGA摄像头和影像处理器的所有功能的CMOS图像传感器OV7670,其可通过SCCB总线进行控制。系统使用FIFO存储芯片AL422B来对摄像头采集到的图像信息进行读取。
7)窗门磁模块
窗门磁模块中使用STM32的DAC/ADC功能来模拟窗门的开关,当STM32获取到的ADC值大于某个设定值时,判断窗门已被打开。系统可根据设定的安防状态进行报警操作。
8)声光报警模块
声光报警模块最为家居安防系统中的报警装置,具有预防提醒危害的作用。当家中出现CO、甲烷等有害气体时,传感器将信息采集并传送至主控制器,主控制器即对报警器发出报警控制信号及时提醒用户。家中出现盗贼把窗户或门打开后,窗门磁系统发送窗门打开信息给主控制器,主控制器能够及时报警,减少用户财产损失。
本设计中采用LED和蜂鸣器模拟声光报警系统,当系统触发报警时,声光报警模块的LED进行闪烁并且蜂鸣器鸣叫。系统可接受视频监控模块和窗门磁模块的自动报警,用户还可以在显示触摸屏上进行手动报警操作。
9)数据存储模块
许多嵌入式系统都需要大容量存储设备,以便存储数据。SD卡可以有较大的容量,并且支持MCU的SPI接口,方便移动,最宜作为嵌入式设备的数据存储介质。
本设计中使用标准SD卡作为系统的存储设备,用来保存用户的多媒体文件以及各种数据文件,以供MCU根据需要读取并查看。
10)串口数据通信模块
本设计中使用串口进行数据传输通信,来实现文件传输的功能,除此之外可以使用串口打印输出字符串来帮助调试程序。
串口数据通信模块中使用串口芯片SP3232作为串行数据收发的接口,完成用户选择文件的发送和接收,并帮助完成系统程序的调试。
11)家庭娱乐模块
任何智能家居系统都离不开一个智能化、个性化的家庭娱乐系统。本设计中设计了一个包含音乐播放器、图片浏览器、电子书、文件浏览器的家庭娱乐系统。用户可以在系统界面选择各种功能,想听音乐时可以播放舒心的歌曲,还可以浏览外出旅游的照片,观看自己喜爱的电子书,满足不同情景下的娱乐要求。
3. 智能家居系统软件平台的实现
3.1 智能家居系统总体结构
在设计完成智能家居系统的硬件平台后,系统有了相应的物理载体,但仅仅是在硬件部分完成了智能家居系统相应的功能。对家庭中各个设备的控制协调等工作,还需要建立在硬件平台上的软件来实现。
μC/OS-II是一个嵌入式可移植、可固化的、可裁剪的、占先式多任务实时操作系统,是基于优先级的可抢先的硬实时操作系统,可以运行在诸如航天飞机等对安全要求极为苛刻的环境下。嵌入式图形界面μC/GUI 是一种用于嵌入式应用的图形支持软件,μC/GUI 被设计为与处理器和LCD 控制器无关的图形用户界面,μC/GUI可以使用在单一任务和多任务环境下。FATFS文件系统是一个开源的、专门为小型的嵌入式系统而设计的FAT文件系统模块,它支持FAT12、FAT16和FAT32文件系统,可以对多个文件进行读/写。
本系统软件设计基于嵌入式实时操作系统μC/OS II、嵌入式图形用户界面μC/GUI和嵌入式文件系统FATFS。系统软件结构如图 3。

图 3 系统软件结构
整个智能家居系统采用模块化的程序设计方法进行任务设计,将整个系统分为系统初始化、图形用户界面、信息获取、信息处理和用户五部分结构,如图 4。
首先,初始化程序对系统硬件、时钟进行初始化并运行多任务系统和图形用户界面;信息获取部分主要是系统硬件部分的各种传感器和其他设备,为系统采集并传输所需要的数据;信息处理部分主要是系统的执行机构,处理系统发出的控制指令;图形用户界面主要同用户进行交互,显示系统信息、控制指令提示和用户控制指令的下达。

图 4 智能家居系统软件总体设计
3.2 系统任务划分及资源分配
系统按照不同的功能划分为不同的模块,每一个模块完成一项具体的功能,系统分为相应的任务模块,整个系统总共分为了20个任务,包括有用户界面显示任务、触摸按键扫描任务、系统运行提示任务和时间更新任务、相关的传感器检测任务和各个功能模块任务。功能模块任务由设计的智能家居系统的各个功能模块实现,实现了家电控制、家居安防、环境检测和家庭娱乐四个部分的功能。系统任务运行流程如图5。
在系统运行过程中,使用了信号量、事件标志组来在各个任务间通信,来协调相应任务的运行,并且使用了全局变量和消息用于任务间数据的传输。
图 5 系统任务运行流程
3.3 智能家居系统界面设计
系统界面采用μC/GUI图形界面系统软件设计,完成了智能家居系统中设计的所有功能任务的操作界面,主界面如。系统采用Metro UI设计风格,支持界面的上下滑动操作,打开和关闭窗口并有过渡动画,不采用实体按键和电容触摸按键辅助界面操作。
主界面中上方是温度、湿度、时间显示区域,下方为各个功能模块的操作菜单。
图 6 智能家居系统主界面
4. 总结
本设计实现了基于μC/OS和μC/GUI的智能家居系统,根据智能家居系统的总体设计方案,完成了包含家电控制、家居安防、环境监控和家庭娱乐四个智能家居子系统的设计,并实现了对灯光控制、家电控制、窗帘控制、视频监控、窗门磁监控、声光报警、温湿度监控、音乐播放等功能模块的硬件设计、软件设计和用户界面设计。通过各个功能模块实现了所设计系统的功能要求,和预计的模型设计要求相符,最终验证了基于μC/OS和μC/GUI的智能家居系统方案的可行性。
参考文献:
[1] 王田苗. 嵌入式系统设计与实例开发—基于ARM微处理器与μC/OS-II实时操作系统(第2版)[M]. 北京:清华大学出版社,2003.
[2] 中国室内装饰协会智能化委员会. 智能家居系统产品分类指导手册[S]. 2012.
[3] 付蔚. 家居物联网技术开发与实践[M]. 北京:北京大学出版社,2013.8.
Design of the Smart Home System Based on the μC/OS and μC/GUI
Electronic Science and Technology 201010144 Yang Ji
Instructor: Sun Chunxia(Associate professor)
Abstract:The Smart House System designed in this thesis has four big functions, including home appliance control, environmental monitoring, security monitoring and home entertainment, which is based on embedded technology.The hardware platform of the smart home system includes: the embedded master controller designed in accordance with the microprocessor STM32F103ZET6, the home appliances control module based on the infrared wireless, the temperature and humidity control module based on the DHT11, the video monitoring module based on OV7670, the audio playback module based on VS1053, the lighting control module, etc.The software design of the smart home system is based on embedded real-time operating system μC/OS II and embedded GUI μC/GUI structures. Each function module is designed proceeding with modularization and tasking according to the different functions. And the interface of each function module is designed.
Key Words: Smart House System, μC/OS,μC/GUI, Embedded System