基于嵌入式的智能家居系统设计与实现


  摘 要:伴随着人们工作节奏的加快和工作环境的不确定性,人们越来越注重居住环境的安全,希望能在第一时间知道家中的安全情况,因此,设计一种智能家居远程控制系统具有良好的实际意义。本文浅析基于嵌入式的智能家居系统设计与实现。
  关键词:嵌入式;智能家居;远程控制]
  引言
  电子技术、智能控制技术以及物联网技术的融合,使得传统住宅家居体系已经无法满足居住要求,对于智能化以及安全性的要求逐渐提升。虽然当前视频监控已经逐渐被重视,但在具体操作中相对复杂。这种状况的产生,使得对嵌人式智能家居系统的研究热度逐渐上升,成为引领远程控制的重要方式。目前,大多数嵌入式系统都以处理器为核心,与一些检测、监控设备配合实现一定的功能,但是由于视频图像传输的影响以及监控界面的问题,客户端的远程监控效果并不理想。如果嵌入式智能家居系统能够连接到Internet和GPRS模块,则用户可以通过远程登录界面来了解家居环境信息。因此,本文提出了一款具有网络功能的智能家居控制系统的实现方案,使用火狐浏览器作为上位机,采用JPEG高效压缩算法对视频图像进行压缩,用户不仅可以通过浏览器监测家居环境信息,还可以访问Web服务器中的视频,同时,GPRS通信模块还能将异常信息以短信方式通知用户,提高了智能家居控制的灵活性。
  1嵌入式智能家居系统总体设计
  基于智能家居制品监控的角度分析,主要需要借助当前计算机技术,设计并构成智能家居子系统,将各个技术融合之后实现统一管理。站在智能家居系统的角度,主要包括视频服务、客户端、服务端等部分。硬件设计。此次设计采用TX2440A开发板进行设计,将S3C2440处理器作为主控制芯片,主频已经能够达到400MHz,具有单独的管理单元、控制器以及存储器等。LCD显示部分包括3.5英寸真彩色液晶屏,具备USB接口。在开发板方面具备多种结构,便于对系统的调试与测试需求;视频采集模块运用ZC301摄像头,可实现Linux提供摄像头视频数据的采集;包括DS18B20室内温度的传感器;GPRS通信模块。至此,用户端通过移动终端,向监控中心发送请求,监控中心在接受请求之后进行处理并进行解析,将现场监控终端发送操作指令,现场终端提交反馈,得出操作结果。
  2系统架构
  2.1硬件设计
  2.1.1嵌入式微处理器
  本设计使用TX2440A开发板进行设计。采用S3C2440处理器作为主控芯片,主频可以达到400MHz,具有MMU管理单元、控制器、支持外部存储器,板载64MBSDRAM,256MBNANDFlash,LCD显示部分为3.5英寸TFT真彩色液晶屏,网络芯片为DM9000,1个10M以太网RJ-45接口,4个USBHost,1个USBSlaveB型接口。TX2440A开发板上还扩展了丰富的接口,如蓝牙接口、CAN接口、ZigBee接口等,方便进行软件调试以及系统测试。
  2.1.2视频采集模块
  采用了ZC301摄像头,利用Linux提供的Video4LinuxAPI函数对USB摄像头采集视频数据,然后将视频数据通过内部总线发送到视频流服务器MJPG-streamer上,视频流服务器将视频图像数据进行压缩后,采用TCP/IP协议进行远程传输,再通过CGI函数集实现客户端与服务器的之间的交互,远端客户机通过浏览器就可以查看现场监控画面。
  2.1.3传感器模块
  本系统采用DS18B20温度传感器采集室内温度;采用HIH-4000湿度传感器采集室内的湿度;采用DSM501A粉尘传感器来检测室内粉尘浓度;采用PIP探头LH1778为核心的检测电路来检测是否有人员入侵,并利用蜂鸣器进行本地报警和GSM短信报警。这些传感器模块通过S3C2440的I/O口接到控制中心,并把采集到的信息发送到Web服务器上。
  2.1.4GPRS通信模块
  GPRS通信模块选用西门子电气公司生产的MC35i,该模块可以提供语音传输、彩信业务和数据传输业务等接口,内置了彩信MMS协议和TCP/IP协议。该模块与处理器S3C2440采用串型端口进行数据通信,MC35i上的TXD0端口主要用于接收处理器发送的数据;GPRS模块上的RXD0端口用于向处理器发送数据。通信模块将GPRS网络和Internet网络链接起来,通过与监控中心建立通信链路来进行双向的数据通信。
  2.2软件设计
  2.2.1环境检测模块的软件设计
  该模块设计主要是检测室内的温度、湿度、和粉尘浓度,整个流程是先由传感器获取室内的状态信息,然后通过网络将信息传输到服务器平台上。用户通过操作平台就可以查看室内环境信息,当达到危险值时,蜂鸣器进行报警,同时微处理器通过串口向GSM短信模块发送命令,通知用户家中有危险。
  2.2.2照明模块的软件设计
  该模块主要设计室内照明,系统采用开发板上的LED1~LED3灯分别来模拟室内照明灯。在/www/Leddate目录下建立一个文本文件:led.txt,保存LED灯的状态信息,将每次对LED灯的操作进行数据实时更新。
  2.2.3视频监控模块的软件设计
  视频监控实现分为三个部分:视频图像采集、视频数据传输、视频图像显示。通过Linux系统内部的V4L对视频图像采集,将采集到的原始图像数據通过JPEG压缩输出给客户端进行实时播放,网络传输中应用层采用TRTP/RTCP协议配合来保证传输的质量,传输层与网络层采用TCP/IP协议。同时移植BoaWeb服务器,通过CGI监听客户端的请求,从而实现与客户端的网络交互。
  2.3监测界面的实现
  根据CGI程序的工作原理,监控页面主要分两部分组成:静态表单页面设计和动态Web页面设计,使用HTML来设计静态页面,使用CGI技术制作动态页面。当用户通过浏览器访问Web服务器时,访问的第一个文件是index.html,将弹出一个对话框要求用户输入登录信息,进行身份验证,由login.cgi对用户的登陆信息进行验证,通过认证之后,用户才能进入系统的主页面main.html,在main.html主页面里为用户提供三种功能:家居环境检测;室内电灯控制;网络视频监控。其中家居环境检测、报警信号、照明灯由main.cgi程序进行控制,每个模块利用CGI传输数据和操作指令,完成照明灯的操作和数据保存;网络视频由视频流服务器Mjpg-streamer通过网络传输到浏览器。当鼠标点击视频查看按钮时,该页面会链接到stream.html上,显示视频监控画面,在此界面上,点击左侧的菜单可以进行远程画面拍照,点击控制菜单将进入视频参数调整界面。