刘凌, 刘琦, 陈凯
(西安文理学院 机械与材料工程学院, 西安 710065)
智能家居是一种被认为智能化的住宅生活,是智能建筑的重要组成部分。近年来,随着人们生活水平和科技水平的提高,智能家居的质量和功能也在不断的提高。智能家居,不能很简单的认为是家居或者是房间,而是一个大的系统,它将房间布局、家居设备、家居环境等有机的结合在一起,通过智能小型电脑,使用户的生活变得智能化。本文的智能家居系统,使用典型的智能家居设计模型,通过客户端口上的BOA服务器来控制接口。BOA服务器是一个可以提供可视化的网页接口,通过网页上的按钮,可以将信息发送到EXYNOS4412开发板上,开发板对接收到数据进行一个分析,然后调用相应的应用程序来控制相应的模块去做相应的工作。
本文的设计主要包括两个部分:硬件电路搭建和程序设计。硬件电路主要是使用EXYNOS4412开发板作为核心SOC,使用ARM控制板做控制中心来控制蜂鸣器、电机、温湿度传感器等各个模块来完成智能家居的系统控制和家居环境的控制,并且若家居环境处于危险状况时报警。程序设计主要是使用C语言编写出各个传感器需要的驱动和需要实现的功能,其总体设计框图如图1所示:
图1 总体设计框图
MQ-2烟雾模块是二氧化锡半导体气敏材料的一种,也是表面离子式N型半导体的一种。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。其原理图如图2所示。
图2 MQ-2原理图
DHT11温湿度传感器含有已校准的数字信号输出,是一个复合传感器。DHT11内部具有以下结构:一个干湿元件和一个测温元件,它的特点是响应快、性价比高。
HY-SRF05当用户选择打开超声波测距模块时,超声波测距模块开始工作,当检测到的数据小于设定值的时候,表明此时有人经过,家居环境处于不安全的状态,同时触发蜂鸣器报警;当用户关闭安全模式时,超声波测距模块处于待机状态。
HC-SR501的设计采用LHI778探头设计,是基于红外线技术的自动控制模块,具有灵敏度高,可靠性强等特点,因此被广泛应用于各类自动感应电器设备。其原理图如图3所示。
在本文所设计的智能家居模型中,人体红外感应主要有两种作用,一种为安全模式下的对家居环境安全的检测,另一种为在智能模式下感应到有人经过时打开灯光的作用。其流程图如图4所示。
图3 HC-SR501原理图
zImage即为内核,rootos即为根文件系统。LINUX内核初始化的第一步是执行实模式下的汇编代码,之后执行保护模式下init/main.c文件中的start_kernel()函数。start_kernel()函数首先会初始化CPU子系统,之后让内存和进程管理系统就位,接下来启动外部总线和I/O设备,最后一步是激活初始化(init)程序,它是所有Linux进程的父进程。初始化进程执行启动必要的内核服务的用户空间脚本。
1)在PC端搭建共享文件夹。
mkdir /rootos 在根目录下创建rootos文件夹
vim /etc/exports 打开nfs服务器配置文件,写入共享的文件夹
service nfs restart 重启服务器
图4 HC-SR501编程流程图
cd UEA_160822/shared_arm_development/tools/Linux 进入到这个文件夹中
tar -Jxvf rootfs_qtopia_qt4-2016-11-23.tar.xz -C /rootos/ 将压缩包解压到/
rootos中cd /rootos 进入到解压的目录
mv rootfs_qtopia_qt4/*./ 将文件夹中的文件全部移出来
rm -rf rootfs_qtopia_qt4/ 删除空文件夹
2)在kermit端通过设置环境变量让bootloader挂载PC机的rootos。
set bootargs "root=/dev/nfs nfsroot=192.168.0.188:/rootos ip=192.168.0.187 console=ttySAC0,115200 lcd=S70"
3)取下网线,将开发板和PC机直连,将zImage发送到开发板,启动内核,若启动没有完成,检查PC机防火墙是否关闭或者PC机NFS服务是否开启成功。
4)将/dev/mmcblk0p2挂载到/mnt:mount /dev/mmcblk0p2 /mnt/;将内核拷贝到/mnt目录下
5)将/dev/mmcblk0p3挂载到/mn:tmount /dev/mmcblk0p3 /mnt/;将根文件拷贝到/mnt目录下
6)重启开发板。
7)在bootloader命令行修改环境变量
设置内核的自启动:set bootcmd "ext2load mmc 0:2 40008000 zImage;bootm 40008000"
设置内核启动后的文挂载:set bootargs "root=/dev/mmcblk0p3 console=ttySAC0,115200 lcd=S70"
8)重启EXYNOS4412,若其成功启动,则表明系统移植完成;若没有成功启动,则检查环境变量等,如果还是不能进入系统,则需要重新移植内核和跟文件系统。
下载BOA服务器的源码包boa-0.94.13.tar.tar,下载完成后解压源码包:tar xvf boa-0.94.13.tar.tar;进入到解压好的目录中cd boa-0.94.13/src;生成Makefile文件并对其进行修改,执行.configure生成Makefile文件;修改 src/compt.h文件;修改/src/log.c;修改src/boa.c;BOA服务器的配置。
CGI,即公用网关接口,Web服务器调用其他可执行程序的接口协议标准就是CGI来规定的。CGI工作过程如图5所示。
图5 CGI工作过程
通过网站现在mjpg-stream的源码包jpegsrc.v8b.tar.gz;http://www.ijg.org/files/jpegsrc.v8b.tar.gz;解压源码包:tar xf jpegsrc.v8b.tar.gz;配置源码包:cd jpeg-8b;编译:make;安装:make install;cp /jpeg/lib/libjpeg.* /rootfs/lib通过以上步骤,完成jpeg库的移植。
通过http://sourceforge.net/projects/mjpg-streamer/下载并解压源码包;修改顶层makefile及plugins目录中的各级makefile,将所有的CC=gcc修改为CC=arm-linux-gcc;修改 plugins/input_uvc/Makfile;编译并移植库文件:mkdir /rootfs/mjpg;cp *.so /rootfs/mjpg;cp mjpg-streamer /rootfs/bin.将摄像头与EXYNOS4412连接,启动网页服务器/etc/boa/boa&;进入 mjpg_streamer 的文件夹,运行 mjpg_stream mjpg_streamer-i “/mjpg/input_uvc.so” -o “/mjpg/output_http.so -w./ www”& (注意:这里是板子的ip 192.168.0.168);浏览器上执行:http://192.168.0.168:8080/?action=snapshot。
控制终端的主界面如图6所示。
图6 终端界面
其中左侧温度和湿度显示当前环境下的温湿度度数;房门、电灯、窗帘、安全模式和懒人模式分别显示其对应功能在终端上的开关状态,当在终端上进行相应的操作的时候,会显示相应功能是否打开。右侧留下了门、智能模式、风扇、安全模式、窗帘和灯的按钮,点击相应的按钮会进入到相应的操作界面,通过点击开和关会对相应的传感器进行操作。智能模式,打开智能模式后,当人体红外传感器检测到有人经过时即打开灯光,延时4s关闭。安全模式。打开安全模式后,人体红外传感器,超声波测距传感器,烟雾传感器开始工作。其中人体红外传感器是检测是否有人非法进入到家中;超声波测距模块检测窗口;烟雾传感器检测家中是否有火灾发生或者是可燃气体的泄漏;若家中有危险产生,则触发蜂鸣器报警,提示用户注意防范。查看界面,如图7所示。
通过本软件的开发,完成以下一些功能:
1) 家居控制系统
图7 查看照片界面
通过终端上的提示按键或者网页的提示来打开或者关闭灯光;通过终端屏幕上的提示按键或者网页的提示来打开或者关闭窗帘;通过终端屏幕的提示按键或者网页的提示按钮来控制风扇来模拟家具中的通风系统;通过温湿度传感器实现对家居中温湿度的监控,实现测量家居中温湿度。
2) 安防系统
监控模块:在没有人在家的时候,用户可以通过摄像头实现对家居状态的监控,以达到对家居的监控,同时监控系统有拍照功能;防火模块:当发生火灾时,必然有大量烟雾,通过烟雾传感器的检测来判断当前家具是否发生异常,当发生异常时触发蜂鸣器报警;防盗模块:通过测量来人与窗口的距离来检测它的安全状态,当人体离窗户距离过小时,会触发蜂鸣器报警。
3) 网页
当用户的手机或者电脑的网络和网络服务器在局域网内,就可以使用网页对家居中设备进行操作。