时间:2024-07-28
安 森,张彦航,崔文华
(哈尔滨工业大学计算机科学与技术学院,哈尔滨 150001)
随着微电子技术、自动控制、计算机网络技术及通信技术的飞速发展,面向各种复杂应用背景的多传感器系统大量涌现,人类开始步入物联网时代。融合了自动化控制、计算机网络系统和无线通讯技术于一体的智能化家居控制系统作为其中的一个典型应用越来越成为人们关注的热点[1-4]。以往人们对居室环境的要求仅仅是简单的居住功能,随着技术的进步和时代的变迁,人们对居住环境提出了更新和更高的要求,而功能化和智能化已成为其中不可或缺的选择。作为智能家居的一个重要组成部分,智能窗帘控制系统在家居、大型会议室等领域具有广泛的应用前景。设计实现的智能窗帘系统以凌阳61 单片机[5]为主控核心,采用模拟、数字式传感器应用技术,具有自动模式和手动模式两种工作方式供用户选择,还更为人性化地设置了自动模式、手动模式指示灯,光照度等级指示灯、数字式温度、湿度计。在自动模式下,可以通过对室内温度、湿度及光照度的实时综合检测,实现窗帘开合程度的自动调节。手动模式下,通过人工操作遥控器对窗帘实现任意开度的控制。根据面板上设置的指示灯,用户可以很方便地获取当前系统的工作模式以及系统所测得的周围环境的参数。该系统克服了传统窗帘功能单一、缺少智能化的缺点,能满足不同程度的多种应用需求,为人们提供更方便、更快捷和更舒适的生活环境,有助于提高生活质量。
为方便用户的使用,智能窗帘控制系统设置了自动模式和手动模式两种工作方式,方便用户进行选择。并且设置了人性化的人机面板,设置指示灯方便用户操作,面板上显示的温度、湿度值还可以作为数字式温度、湿度计供用户使用。在自动模式下,通过对室内温度、湿度及光照度强弱的实时综合检测,实现窗帘开合程度的自动调节。调整的原则是,白天,随着室内温度相比正常值(可设定)不同程度的下降或升高,窗帘可以有不同程度的开、合,即通过增加或减少室内的光照,避免室内过冷或过热,同时,测得的温度值显示在显示屏上供用户读取;同理,也可以利用对室内湿度的检测自动调整窗帘开度,通过加快或减少室内水蒸气的蒸发,使室内湿度保持相对稳定,检测到的湿度值也显示在面板上。另一方面,智能窗帘系统还能通过对室内光照度的检测,控制窗帘的开合程度,以保证室内的光照始终处于一个适宜的范围,用户可以通过光照度等级指示灯读取当前室内光照度的等级。需要说明的是,在温度、湿度和光照度三者中,光照度的优先级最高。若温度、湿度和光照度均不满足要求,则首先保证光照度,其次考虑温度,最后考虑湿度问题。如果传感器检测到的光照度低于设定的黑夜值,则窗帘将完全闭合并不再自动调整。此外,自动方式下用户还可以通过预约方式设定定时时间,使窗帘在指定时间实现开启和闭合。预约时间通过数码管显示,便于查看。如果用户对智能窗帘的自动调整效果不满意,或者遇到特殊情况需要人工干预和调整,则用户可以选择手动模式,通过对遥控器的按键操作能够方便地控制窗帘实现任意开度。一旦用户选择手动方式进行操控后,窗帘将保持用户调整的结果,直到用户再次手工调整或重新切换到自动方式为止。
系统由单片机、红外接收、光敏检测、温度检测、湿度检测、电机驱动、数码显示以及鸣响提示模块组成。主要模块所需的关键芯片及器件包括:凌阳61单片机、通用红外遥控器、VS1838B 红外接收头、光敏电阻、DS18B20 温度传感器、DHT11 温湿度传感器、窗帘用交流管状电动机、数码管、发光二极管及蜂鸣器。系统总体框图如图1 所示。
图1 硬件结构框架图
系统I/O 引脚如表1 所示。
表1 系统I/O 引脚
红外线是一种低成本、高速的无线传输形式,本系统中红外发射装置选用通用红外遥控器,使用纽扣电池,比较省电。红外遥控器发射编码选择最为通用的NEC 编码,从而有利于查阅资料和解码,同时也能满足可学习型红外遥控器进行学习的需要。红外接收头接口电路如图2 所示。
光照度检测采用光敏电阻及凌阳61 单片机A/D转换通道,具有灵敏度高、操作简单、价格低廉的特点。接口电路参数设置如图3 所示。
继电器选用FANGKE JZC-23F,用以驱动交流管状电机,该电机力矩大,能带动3 ×3(m2)以上的窗帘。此外,电机具有过热保护、正反转保护功能,当通电时间过长、电机过热时,电机可自动断电进行冷却;当正转、反转接头同时接通时,电机内部的机电装置可进行报警。
图2 VS1838B 红外接收头接口电路
温度传感器和湿度传感器分别采用美国Dallas公司的DS18B20 数字式温度传感器及国产DHT11数字式温湿度传感器。两种传感器均采用单总线时序,能有效减少对I/O 口的占用数量。
图3 光敏电阻接口电路
系统的软件设计主要针对凌阳61 单片机的中断系统,其中用到了定时器中断IRQ1 及外部中断IRQ3。定时器中断IRQ1的优先级要高于外部中断IRQ3的优先级。
主程序首先进行中断的初始化操作,设定定时器中断IRQ1的初值、控制字,在开中断后进入循环等待,等待IRQ1 定时器中断或者IRQ3 外部中断的发生。主程序流程图如图4 所示。
图4 主程序流程图
系统通过IRQ1 定时器中断每隔固定的时间(可由用户设定)对室内环境参数值(温度、湿度、光照度)进行自动检测,并对获取的参数进行分析和推算,进而得出窗帘位置的调整判断,确保窗帘系统可以实时地对周围环境的变化做出相应的反应。在IRQ1 定时器中断的设计中对窗帘位置的调整加入了反馈控制。如图5 所示,根据当前测得的温度、湿度值,经过程序的分析和推算获得一个理想的光照度值,将当前时刻的光照度检测值L 作为反馈量,根据理想光照度和当前光照度的差值调整窗帘的位置,直到室内光照度值接近理想的光照度值,窗帘保持稳定,体现了以光照度为中心,即光照度优先级最高的原则。
图5 IRQ1 定时器中断设计思想
图6 中过程A、B、C、D 分别对应于温度低于或高于20℃,湿度低于或高于30%的四种情况,这四个过程模块的处理流程类似,只是参数设置不同。以过程A为例,根据温度、湿度以及光照度的检测值对窗帘位置实现自动调节的过程如图7 所示。
IRQ3 外部中断用于红外遥控的控制,当用户对遥控器有按键操作,则红外遥控器发射NEC 码,此时检测外部中断的I/O 端口将检测到低电平,这个低电平将会触发IRQ3 外部中断,对红外遥控器发射的NEC 编码进行解码。根据不同的解码值系统做出相应的反应。例如若用户按下的键是“开启”或“闭合”,则系统发出开启窗帘或闭合窗帘的电机驱动信号,并在退出IRQ3 外部中断之前,关闭IRQ1定时器中断,以确保窗帘不再自动开合。若用户按下的是“自动模式”按键,则在退出IRQ3 外部中断之前,系统重新设定定时器初值,并开启IRQ1 定时器中断,以确保系统可以实时进行检测,实现自动控制。需要特别说明的是:由于单总线时序以及A/D转换通道的需要,在主程序中需要将系统时钟调整到一个适合的值。
以凌阳61 单片机为控制核心,设计实现了集温度控制、湿度控制、光照度控制、红外遥控、电机驱动及数码显示为一体的智能窗帘系统。该系统灵敏度高、稳定性强、使用方便、可扩展性强,具有多种功能,不仅可以应用在大众家居领域,还可以应用在如医院、学校、商场等诸多场合。具有广阔的市场发展前景和应用价值。
[1]钱云,郑舒予,秦雷.基于ATMEGA16 单片机的智能窗帘控制系统设计[J].微计算机信息,2009(25):24-25.
[2]王春武,刘春玲,姜文龙,等.基于单片机的无线智能窗帘控制器的设计[J].吉林师范大学学报,2010(1):93-95.
[3]孙勇,杨文月,赵宇新.自动窗帘控制系统设计[J].微型机与应用,2010(13):15-17.
[4]周敬.基于单片机的窗帘智能控制系统设计[J].信息时代,2010(2):58-60.
[5]罗亚非.凌阳16 位单片机应用基础[M].北京:北京航空航天大学出版社,2004.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!