基于TinyOS的智能家居系统设计与实现
扫描二维码
随时随地手机看文章
随着现代高新科学技术的发展,人们更加注重对生活品质的追求,舒适度、智能化的家居日益成为人们关注的对象。家用电器的自动化已经远远不能满足现代人的需求。智能家居系统是一项多功能综合技术,它以家庭住宅为平台,以先进的通信技术、网络技术、控制技术为依托,将家庭中各种电器设备通过某种形式的网络有机地结合在一起,进行网络化的综合管理与调控,为人们提供一种更加舒适、安全、环保、高效的生活环境。
人们对智能化家居的需求越来越迫切,本文结合TinyOS自身特点,提出并实现了一个智能家居系统设计方案。
1 TinyOS操作系统与nesC语言
TinyOS是当前无线传感器网络开发的一种主流操作系统。TinyOS采用基于组件的体系结构,在此结构下,一个完整的应用程序包含多个组件,它的各种功能都是由组件实现
的,即TinyOS提供了一个适用于传感器网络开发应用的编程框架。
NesC是对C语言的一种扩展,其语言的基本数据类型、运算符和表达式、基本语句和程序结构都与C语言相同。它的最大特点是支持组件化的编程模式,将组件化/模块化的思想和事件驱动的执行模型结合起来,并采用基于任务和事件的并发模型。
2 智能家居总体设计
根据智能家居的实际应用需求,智能家居系统设计主要包括网络节点和监控系统两大部分。
网络节点功能包括:主节点可以读取从串口读取的命令,并通过无线通信向分节点发送命令;同时可返回从分节点采集的数据。此系统另外含有3个分节点,灯光明暗控制节点,门锁开关控制节点,温、湿度数据采集节点。灯光明暗控制节点可以通过无线接收从主节点发送的命令,分级调节灯光的亮度,逐渐增亮或逐渐变暗。门锁控制节点可以通过无线接收从主节点发送的命令,打开或者关闭门锁。
监控系统功能包括:可通过点击按钮经串口通信向主节点发送命令,控制分节点动作(包括:灯光明暗以及门锁开、关),可以显示从分节点传送的温度、湿度、光照度以及电池容量的数据,同时具有可以显示数据的实时曲线功能,总体结构如图1所示。
本系统分为三层,分别为监控层、设备控制与数据层、设备层。监控层:系统的主界面,用来显示当前家居设备的状态,温度、湿度、光照度曲线图。设备控制与数据层:用来控制家居设备,并检测家居设备反馈的信号状态。设备层:系统的各网络节点,设备主节点与各模块从节点之间通过无线来进行通信。
3 智能家居网络节点设计
智能家居系统是一种小范围、多节点、近距离无线传输的体系。而具低复杂度、低成本和低功耗特点的Zigbee与其他无线网络协议相比较,更加适用于此系统,因此可通过在TinyOS中nesC语的编写,实现ZigBee的MAC层协议,完成基于Zigbee的智能家居系统设计。
3.1 灯光控制设计
灯光明暗控制整合电路板工作原理:电路板可以检测交流电波形的正负起始点;以及每隔特定时间收到节点发送的信号后,夹在可控硅上电压的波形。可控硅由节点5号管脚控制。灯光的强度,实际取决于夹在灯泡两端的电压。电压越高,灯泡越亮;反之,电压越低,灯泡越暗。此硬件电路是通过可控硅调节相位的方式改变光的强度。可控硅调节光强度主要原理在于,改变触发脉冲的施加时间改变导通角大小,从而改变灯光明暗。依据此原理,设计灯关明暗程序代码,程序流程图如图2所示。
3.2 门锁开关设计
门锁控制整合模块:电路板带有两组继电器和交、直流电压转换器。交、直流电压转换器可以将110~220 V的交流电压变为5 V或者12 V直流电压。12 V直流电供给直流电机工作。如果有5 V的控制信号夹在继电器上,继电器常开点闭合,反之常闭点闭合。继电器由节点的5号和6号管脚控制。门锁打开及闭合,主要依据继电器通断电的原理设计。
门锁内部配有直流电动机,当电动机两端加正向电压时,电动机正转门锁打开;反之,当直流电机两端加反向电压时,电动机反转门锁闭合,程序流程图如图3所示。
4 智能家居监控系统设计
智能家居系统的各网路节点需要由一套完善的监控系统控制运行状态。监控系统通过串口通信将命令发送至主节点,再由主节点将命令经无线通信传递至分节点控制设备进行相应动作;同时,可将传感器采集的环境数据存储至数据库内,并可显示记录结果,方便用户及时查询。
通过点击【更亮】或者【更暗】按键命主节点向灯光控制节点发送命令,调亮或者调暗灯的照明度。点击【门锁】按键,可经主节点向门锁控制节点发送命令,打开或者关闭门锁,并改变场景状态显示区域内的门锁状态图片。调亮灯的流程图如图4所示。门锁控制模块的流程图如图5所示。
5 系统功能实现
本系统的设计实现。是在搭载windows XP系统的PC机端进行测试。分别给无线网络主节点、灯光控制节点,门锁控制等节点上电。图6为智能家居监控系统运行的主界面。下面以温度和湿度数据采集和显示为例,说明系统功能。进入数据显示界面,采集一分钟内的温度的变化,并将数据以曲线形式显示,其结果如图7所示,横坐标代表时间,纵坐标代表温度,单位摄氏度。
同样,将采集一分钟内的湿度变化,并将数据以曲线形式显示,如图8所示。横坐标代表时间,纵坐标代表湿度,单位为%百分比。
6 结束语
本系统采用Visual C++设计了上位机监控界面,实现了监控界面与无线网络主节点之间的串口通信,采用NesC语言在TinyOS操作系统环境下实现了网络各节点之间的Zigbee无线通信。经由主节点,上位机能够控制其它无线网络节点的动作,诸如灯光逐步增亮或者逐步变暗,门锁打开或者闭合等等。同时,上位机监控系统可以存储和显示由无线网络节点采集的温度、湿度、光照度等数据和变化趋势。该设计初步满足了家居系统控制的智能化,同时具有很强的扩展性。