1 引言
随着科技的迅速发展和人们生活水平的不断提高,人们对家居生活安全、舒适和便利的需求日益增长。通过结合传感器技术、计算机技术、嵌入式技术、自动控制技术、网络通信技术和多媒体应用技术,智能家居控制系统能够满足人们对高品质生活的迫切需求。
智能家居控制系统是住宅建筑自动化的一部分,可通过该系统对家庭事务进行集中或远程监控,实现照明控制、网络连接、多媒体娱乐、环境传感器、安全控制、家用电器(如冰箱、热水器)以及其他建筑舒适性应用的智能化自动化 [1‐2]。
一般来说,从1975年至今,智能家居大致经历了三代发展:基于ZigBee协议等无线技术、由人工智能控制的电器设备,以及能够与人类互动的机器人[3]。据统计,2013年智能家居市场的规模达到58亿美元。此外,预计到 2020[4]年,智能家居市场的价值将达到128亿美元。如何建立具有低成本、高效率特点的完善智能家居控制系统,已逐渐成为全球热门的研究课题。
自20世纪70年代以来,许多发达国家已开始研究智能家居网络。1984年,由联合公司开发的世界上第一座智能建筑问世,Technologies Corporation出现在美国哈特福德,这开启了全球智能住宅建设的序幕[5]。在美国、加拿大、欧洲和其他发达国家和地区,提出了各种智能家居计划。
摩托罗拉、微软和IBM在美国生产了自己的智能家居产品。松下、三星、LG和新加坡科技电子有限公司也在亚洲投入了智能家居领域的研发[6]。在中国,智能家居系统的研究起步较晚。十多年前,中国的第一个智能家居控制系统出现在上海的住宅区。近年来,随着信息技术的不断进步,智能家居网络的研究取得了快速进展[7]。未来,智能家居将是我国最受欢迎的产业之一。此外,智能家居市场的前景将非常广阔。
本文提出的框架包含以下组成部分。第1节介绍了国内外传统智能家居的技术发展与市场情况。第2节详细提出了一种基于STM32F407VGT6微处理器和 μC/OS‐II嵌入式实时操作系统的新型嵌入式智能家居控制系统。第3节描述了基于STM32的嵌入式智能家居控制系统的硬件实现过程。接着,第4节涉及嵌入式智能家居控制系统的软件设计。最后,第5节阐述了结论与未来工作。
2 基于STM32的嵌入式智能家居控制系统
一般来说,智能环境监控、电气控制、智能安防控制、娱乐以及其他功能是智能家居控制系统最常见的功能。在本文的设计过程中,智能家居控制系统的环境监测功能可监测室内温度、湿度、有害气体等环境参数,并通过网络通信技术将监测参数远程上传给用户。在电气控制功能方面,可通过现场的智能终端或手机远程控制智能窗帘控制器、照明控制器、空调、冰箱等家用电器。在安防控制功能方面,可通过人体红外检测传感器检测是否有人非法入侵;此外,若发生火灾等紧急情况,可通过检测环境参数进行报警并提示消息。
嵌入式系统是一种用于控制、监视或辅助设备、机械或装置运行的计算机设备。嵌入式系统是先进的计算机技术、半导体技术、电子技术与各行业具体应用相结合的产物。近年来,嵌入式技术已广泛应用于消费电子、工业控制、机器人、军事国防、医疗设备、网络通信等领域。因此,嵌入式系统技术在嵌入式智能家居控制系统中的应用将成为智能家居自动化产业未来的发展趋势。
如图所示,所提出的嵌入式智能家居控制系统网络的硬件架构由三个部分组成:远程用户应用终端、终端控制单元以及分布在不同房间的各个终端。远程用户通过GSM/GPRS模块SIM800A实现远程控制、监控和通信。ZigBee模块实现终端控制单元与分布在不同房间的终端之间的通信。由温湿度传感器DHT11及其他传感器采集的家庭温度、湿度等信号,通过终端控制单元远程上报至用户应用终端。此外,嵌入式智能家居系统的远程用户可通过控制单元操作现场的执行器,实现智能电气控制功能。
3 嵌入式智能家居控制系统的硬件实现
更具体地说,嵌入式智能家居控制系统的终端控制单元基于意法半导体生产的STM32F407VGT6微处理器实现。分布在不同房间的终端对处理器性能要求较低,因此选用STM32F103C8T6微处理器来构建嵌入式智能家居控制系统中分布在不同房间的各个终端。电容式触摸LCD通过软件驱动实现人机交互。此外,利用I2S接口驱动WM8978芯片实现语音解码与播放。
3.1 STM32F407VGT6 ARM微处理器的片上资源
选择合适的芯片是整个嵌入式智能家居控制系统设计的前提。首先,应为相关硬件的电路设计选用合适的微处理器和外设。STM32F407VGT6嵌入式微处理器具有低功耗、高性能和性价比高等诸多优点。在额定供电电压下,其工作时钟频率可达168MHz,采用32位强大的Cortex‐M4 CPU内核并具备FPU功能[8]。此外,STM32F407VGT6芯片内部集成的资源包括:支持DSP指令、最多1 Mbyte的内部闪存、196 KB的SRAM、LCD并行接口、3×12‐bit模数转换器、2×12‐ bit数模转换器、2个CAN接口、最多4个UART接口、3个SPI接口、最多3个IIC接口、2个IIS接口、通用DMA、最多17个定时器、带专用DMA的10/100以太网MAC、USB 2.0全速主机与设备控制器等[9‐10]。总之,由于提供了如此丰富的片上微处理器资源,STM32F407VGT6微处理器非常适合用于嵌入式智能家居设备及其他通用嵌入式应用。基于STM32F407VGT6微处理器的嵌入式智能家居控制系统的终端控制单元硬件电路如图2所示,该电路在Altium Designer中设计完成。
3.2 传感器数据采集设备
在智能家居的温度和相对湿度测量中,选用了温湿度复合传感器DHT11。其单总线结构输出可有效节省微处理器的I/O资源。此外,其单线数据传输协议使得读取传感器数据更加便捷。该传感器已校准,并采用单总线数字信号输出。它使用专用的数字模块采集技术和传感技术,确保产品具有高可靠性和优异的长期稳定性。该传感器的湿度测量范围为20% RH至90% RH,温度测量范围为0°C至50°C。传感器的温度测量最小精度为±1 °C,湿度测量精度在25°C时为±4%RH [11]。传感器的最小响应时间为6秒。响应速度快、性价比高以及抗干扰能力强等优点,使该传感器非常适用于智能家居应用。
3.3 GSM/GPRS通信方案
智能家居控制系统选用SIMCom公司生产的双频GSM/GPRS模块SIM800A,以实现传感器数据和指令信息的无线传输。SIM800A是一款采用表面贴装封装的完整GSM/GPRS解决方案,支持双频900/1800MHz,具有体积小、节省成本和性能稳定等优点。该模块可在低功耗条件下传输智能家居控制系统的短信、语音和数据信息。SIM800A尺寸仅为24*24*3 mm,可满足智能家居控制系统应用对轻薄紧凑设计的需求[12]。此外,SIM800A的最大下行数据传输速率可达85.6千比特每秒。SIM800A提供功能完整的RS‐232串行端口用于数据传输和发送AT命令。智能家居控制系统的STM32 ARM开发板可以通过RS232串口与GSM/GPRS模块连接,然后通过AT指令控制GSM/GPRS模块,实现多种不同的数据传输和通信功能。例如,智能家居控制系统的互联网和电话功能是通过SIM800A模块使用AT指令实现的。
4 嵌入式智能家居控制系统的软件设计
4.1 嵌入式实时操作系统
在本论文提出的嵌入式智能家居控制系统中,需要同时运行多种处理任务,因此需要移植实时操作系统。一般来说,可移植到STM32F407VGT6微处理器的常见实时操作系统包括μClinux、eCos、FreeRTOS和μC/OS‐II [13]。μClinux的特点是结构复杂、移植困难、内核较大且实时性能较差。eCos适用于商业或工业级成本敏感型嵌入式系统的应用,例如消费电子领域。因此,eCos的应用范围并不广泛。FreeRTOS仅是一个操作系统内核,需要配合图形用户界面、TCP/IP协议栈和文件系统才能实现更复杂的嵌入式操作系统。
μC/OS‐II 是由 Micrium 软件设计的一种多任务嵌入式实时操作系统。μC/OS‐II 特别适用于嵌入式微处理器,具有占先权、可移植的、可烧录到ROM的以及可扩展的内核等优点。与上述提到的操作系统相比,μC/OS‐II 是一种结构简单、开源、具备完善的功能、良好的扩展性以及强大的实时性能的嵌入式操作系统内核。此外,它仅需要较小的内核代码空间和数据存储空间。因此,μC/OS‐II 非常适合移植到 STM32F407VGT6 微处理器上,作为嵌入式智能家居控制系统的实时操作系统。
4.2 嵌入式智能家居控制系统应用程序设计
基于STM32的嵌入式智能家居控制系统的程序开发流程图如图3所示。从该图可以看出,当各个模块初始化完成后,系统进入功能选择界面。所提出的功能选择界面包含以下八个组件:电话、系统设置、节点控制、RTC时间设置、音频播放、视频播放、图片浏览和NES游戏。主任务程序持续扫描用户是否按下了触控图标。如果某个图标被按下,则执行相应功能。此外,主程序以定期间隔发送心跳包,以及温度、湿度等数据。主程序还负责串口的收发。一方面,需要根据GPRS是否处于连接状态来重新连接GPRS;另一方面,当主程序接收到远程控制信息时,会解析命令、进行反馈并控制现场设备。最后,嵌入式智能家居控制系统的程序是在Keil uVision中开发的。
4.3 远程控制功能的程序设计
采用自建服务器实现智能家居远程控制的传统方案成本高且耗时。为了以低成本、便捷的方式接入服务器并实现轻松控制,本文提出的远程控制方案利用了免费的fuhome服务器http://www.fuhome.net/。具体而言,通过创建UDP服务将GSM客户端连接到fuhome服务器,从而实现现场设备与远程用户之间的通信。一方面,终端设备可根据开放开发协议通过网络方便地发送和接收心跳包及数据包;另一方面,远程用户可通过移动应用程序或网页浏览智能家居现场传感器的温湿度数据。
此外,该方案最多可实现对256个智能家居节点设备[14]的远程控制。嵌入式智能家居控制系统的远程控制流程图如图4所示。由该图可知,具体的软件流程描述如下。
-
发送心跳包
fuhome服务器需要每隔10~30秒发送一次心跳包,表示现场设备在线;否则将判定设备离线并断开连接。在STM32 ARM开发板上运行的发送心跳包的程序命令如下: -
发送传感器数据
传感器数据采集完成后,通过位运算转换进行数据发送。在此智能家居控制系统中,温湿度传感器数据分别按定期间隔上传。 -
指令信息由现场服务器发送到设备
远程终端设备可以通过手机APP或网页,利用服务器向现场设备发送指令信息。 -
现场设备在执行命令后,将信息返回给服务器
现场设备接收到消息后,会将反馈信息返回至服务器,以确保设备已接收到指令信息。否则,服务器将认为现场设备未接收到命令消息。服务器会按间隔重新发送指令信息。如果在命令消息发送一段时间后现场设备仍未响应,则判定该命令消息发送失败。
5 结论
本文设计并实现了一种新型嵌入式智能家居控制系统。介绍了系统的主要硬件结构和电路,并详细描述了利用手机和网页实现远程控制的原理。通过各硬件模块与μC/OS‐II嵌入式实时操作系统以及GSM/GPRS网络通信技术的协调控制,验证了智能远程控制与娱乐集成的可行性。完成了对家用电器的远程控制与反馈任务,实现了对室内温湿度传感器的远程监控、音视频播放等功能。
此外,基于STM32的嵌入式智能家居控制系统的实现与测试过程如图5所示。
未来,除了本设计中使用的温湿度传感器外,还将在此架构中进一步改进光传感器、人体传感器等其他传感器,以验证所提出的嵌入式智能家居控制系统的可靠性与稳定性。
2164

被折叠的 条评论
为什么被折叠?



