基于Linux的智能家居管理方案
物联网指的是将各种信息传感设备,如射频识别装置、红外感应器、全球定位系统、激光扫描器等与互联网结合起来,组成一个巨大的网络。然后,将生活中的所有物品都纳入这个网络,方便识别和管理。通俗地说,互联网的终端是人,而“物联网”的终端是物品,每一件物品都有CPU、网络地址和传感器,物品与物品之间也可以传递信息、发送指令,其主要宗旨是让所有物品与网络连接在一起,系统可以自动的、实时的对物体进行监控、识别、定位、追踪并触发相应事件。 物联网的兴起,为智能家居提供了条件。如何通过简化物联网终端设备,最终开发出一套经济实用的支持多终端应用的智能家居物联网平台是非常有意义、有价值的工作。本系统基于Linux操作系统,开发了一套融合无线移动网络、射频识别装置的智能家居控制系统。此系统具有智能抄表、远程开启电器、射频识别远程遥控等功能。 1 系统概述 本系统采用S3C2440芯片作为主控制器,操作界面为4.3寸触摸显示屏。上电后,显示屏显示整个家居系统网络内各设备,每个设备分别对应一个图标,包括灯光控制、风扇、冰箱、电饭煲、燃气流量采集等。点击图标进入该设备相应的详细信息栏。进入灯光控制界面,可以方便地查看家中各房间亮灯情况,也可远程通过短信方式控制各房间的灯的亮灭;燃气使用情况可方便地发送至相关采集部门;坐在办公室,一条短信可以将电饭煲电源接通。家居中各设备与主控平台间选择了2.4 GHz的无线射频收发芯片nRF24L01,通过它可以实现各家居设备与主控平台间的无线通信。主控平台与外网的通信,采用的是德国西门子公司的 MC39i GSM/GPRS终端无线模块。燃气流量测量采用了美国矽翔微机电系统(上海)有限公司的MF4000系列气体流量计燃气流量计,智能家居控制系统结构框图如图1所示。
图1 智能家居控制系统结构框图 嵌入式ARM2440系统开发平台是整个智能家居系统的监控与管理中心,它主要集成了无线通信模块、射频识别模块、红外感应模块、触摸显示屏。该总控平台一方面可以通过无线模块接收到外部命令(例如:手机短信),并通过射频识别,控制对应的家居设备按指示工作,例如,打开电饭煲、空调或洗衣机。另一方面,各家居设备运行信息可以通过射频模块接收采集(例如采集燃气读数、水表读数、电表读数等),处理后,可以将数据发送到嵌入式ARM2440系统开发平台,该平台将数据分类处理后,可选择有用数据发送至对应公司服务器(例如燃气公司、供电局、水厂等),实现自动抄表。 智能家居控制系统的中的每一个家居设备,都需要分别安装一个射频识别模块,通过该模块可以与嵌入式ARM2440系统开发平台实现短距离无线通信。 2 射频识别模块 nRF24L01是一款工作在2.4~2.5 GHz世界通用ISM频段的单片射频收发器件。该射频识别模块可以实现多机通信,多机通信采用频分多址的方法,只需要在接收端对不同的通道配置地址即可。发送端使用相应的地址作为本机地址。接收数据时通过读取STATUS中相关位即可得知接收的是哪个通道的数据。射频识别模块内包括:频率发生器、增强型 SchockBurstTM模式控制器、功率放大器、晶体振荡器、调制器和解调器。输出功率频道的选择和协议可以通过对应的SPI接口进行设置。射频识别模块功耗低,当工作在发射模式下发射功率为-6 dBm时,电流消耗为9.0 mA;接收模式时为12.3 mA,掉电模式和待机模式下电流消耗更低。 nRF24L01在接收模式下可以接收6路不同通道的数据,nRF24L01在星形网络中的结构如图2所示。每一个数据通道使用不同的地址,但是共用相同的频道,也就是说6个不同的nRF24L01设置为发送模式后可以与同一个设置为接收模式的nRF24L01进行通信,而设置为接收模式的 nRF24L01可以对这6个发射端进行识别。同一时刻,所有的数据通道都被搜索,但只能接 收一路数据通道的数据。nRF24L01在确认收到数据后记录地址,并以此地址为目标地址发送应答信号,在发送端数据通道0被用作接收应答信号,因此数据通道0的接收地址要与发送端地址相等以确保接收到正确的应答信号。
图2 nRF24L01在星形网络中的结构 3 气体流量的检测 气体流量测量采用的是MF4000系列气体流量计,MF4000系列质量流量计是美国矽翔微机电专为管径为3~8 mm的气体管路中的低速气流的流量计量而设计。卡口式设计为用户提供简便的安装,满足用户测量多气体管路的需求。塑料卡口可轻松的进行机械接口转换,应用于不同的低成本环境,内置安全插件可适用于更宽的应用,MF4000系列气体流量计技术参数如表1所列。
表1 MF4000系列气体流量计技术参数 智能家电控制芯片为传统的8051系列单片机,单片机与气体流程传感器通过RS232通信,整个通信过程单片机作为主机,传感器作为从机,它们采用点对点(或点对多点)主从式工控网络的半双工异步传输模式,主机和从机之间用轮询的方式来进行通信。只有主机才能启动通信,没有接到主机请求,从机不能主动发送信息。主机向从机发送任务报文,从机接收到主机的任务命令后返回响应报文并执行相应操作。除了发送响应报文外,从机只能处于接收状态。主机的每一次查询都是以一个报文(帧)的数据传送给从机。其通信流程如图3所示。
图3 单片机与传感器/流量计的RS232串行通信流程 对于RS232协议,用固定的字符0x9D标识一帧数据的开始。数据传输通信时,帧头(地址)的识别是非常关键和重要的。一般解决此问题的方法是:找到所要传输的数据中不可能出现的特征数据,再将此特征数据作为帧头发送。但是,这种通信方式中,一方面特征数据一般较难找到,大多数情况下都需要用数个特殊字符组成特征数据作为帧头;另一方面由于增加了较多的无用字符(相对于有用数据而言),从机不得不对特征数据进行解码,使得通信时间延长,造成该从机的时间浪费。本协议采用1位帧头(地址)标志位来解决帧头(地址)的识别问题。 具体方法为:主机首先禁止奇偶校验,同时设置奇偶校验位为Mark标志(相当于设置帧头标志位DS为1),再向从机发送帧头(地址)。此时,正处于帧头(地址)监听状态的从机收到主机发来的帧头(地址)后,进入中断服务例程,读取主机发送的帧头(地址)是否正确,当确认正确后,从机进入数据接收状态并等待主机发送数据;否则,仍处于帧头(地址)监听状态并等待主机发送下一个帧头(地址)。主机接着禁止奇偶校验,同时设置奇偶校验位为Space标志(相当于设置帧头(地址)标志位DS为0),再发送数据,进入数据接收状态的从机将正常接收所有数据,然后向主机发送响应报文,最后释放总线并重新进入帧头(地址)监听状态。 单片机通过串口与传感器通信,可以方便地采集到瞬时流量和累积流量,可记录自上电以来瞬时流量的最大值和最小值,具有超量程指示功能。 4 Linux移植及Qt应用程序开发 本系统在TQ2440开发板上移植了Linux操作系统,并在此嵌入式操作系统平台上进行了简易家居智能控制平台的开发。Linux移植及Qt应用程序开发步骤如图4所示。
图4 Linux移植及Qt应用程序开发步骤 首先是配置开发板所需要的环境软件。在开发板环境建立中,要注意的是对于没有串口的机器,一定要先安装USB转串口的驱动,而在安装时务必注意将电脑与板载串口的波特率设置为一致。这个没设置好,串口通信会有问题。除此之外,还需安装好串口调试工具及程序烧录下载工具。 其次是搭建Linux交叉编译环境。一般的电脑上都是Windows操作系统,要开发Linux嵌入式操作系统,需要安装虚拟机(例如VMware 等)、基于Linux内核的相关操作系统(例如Fedora)和交叉编译器。虚拟机是用来承载Linux操作系统在Windows机器上运行而设置的,就像虚拟光盘一样,是个虚拟的。交叉编译器,是用来编译和产生系统开发过程中各种镜像文件。接着进入移植过程。移植时一般顺序为:编译Uboot→编译内核→构建文件系统。 最后是Qt应用程序开发。本系统是基于图形界面开发的。Qt程序开发需要先建立Qtopia开发平台,然后进入编译目录,执行编译脚本,无误退出后,再编译应用程序。编译应用程序时,只需进入每个程序目录,执行make命令。然后,将编译好的程序的可执行文件拷贝到文件系统的镜像目录中,最后将编译生成的.bin文件烧录到开发板中即可。 结语 本文描述的是一种简易可行的智能家居联网方案,其具有成本低、易于实现、组网容易等优点,但对于更复杂的互动功能还存在一定的欠缺。但基于上述主控平台,只需要调整智能家居的内部局部通信网络就可以实现更加完善的智能家居功能。例如可以不修改主控电路,利用WiFi或ZigBee网络来重新组建家居设备网络。 |