基于嵌入式的智能家居监控系统设计
webcam是一个比较常用的视频服务器程序,对本系统采用的OV511摄像头非常适用。通过网络下载webcam_server的Linux版本,它是基于GNU架构之下的,完全免费,源码开放。本设计采用webcam server―0.50.tar.gz。从http://www.neilbriscoe.co.uk/scratch/网站下载,解压到Linux目录下,修改Makefile为交叉编译环境,然后用Make命令进行编译,把生成的webcam应用程序下载到开发板上Linux系统中的/bin目录下,这样就移植了视频服务器。
2.3 智能家居远程监控的实现
远程监控是智能家居监控中的重要组成部分,只要有Internet的地方,主人就可以通过上网登录设计好的智能家居管理界面,以此来实现对家里的实时监控。例如,主人在公司上班,家里有小孩或者生病的老人,主人可以通过公司电脑远程监视关注家里的情况,如有意外,主人就可以对此及时做出反应。当主人快要下班时可以事先通过界面管理实现对家电的控制(如打开客厅电灯、让电饭锅开始煮饭等)。
2.3.1 智能家居界面的实现
本设计采用html语言来编写智能家居的管理界面,以下是智能家居管理主界面的源代码,文件名为my.html。
<html>
<head>
<title>远程监控</title>
</head>
<frameset rows="20%,80%">
<frame img src="images/ltby006.jpg" marginwidth="0"
scrolling="no"
frameborder="0" norsize="norsize">
<frameset cols="20%,80%">
<frame src="left.html"scrolling="no" name="left_frame"
frameborder="0">
<frame src="right.html" name="right_frame">
</frameset>
</frameset>
</html>
该代码包含left.html和right.html的相关链接,其中left.html又包含着用户信息、密码修改、远程控制、状态查询、安全布防、视频监控等相关链接。设计好相关的.html文件和CGI程序,通过U盘把.html文件和CGI程序拷贝到开发板根文件系统下的/www目录下。
2.3.2 远程电器控制模块的模拟实现
用无线通信方式进行家电的控制灵活性较强、覆盖范围较广,免去了综合布线的费用和精力,缺点是家庭内部要有家庭网关和无线路由器,接收终端还要有相应的接收装置,成本较高。因此,基于实用性和大众化方面的考虑,本文所研究的家电控制器的控制采用I/O控制。
家电的本地集中控制硬件设计是利用嵌入式系统的I/O口对家用电器的用电进行控制。系统通过S3C2410的I/O口输出高低电平来进行控制,同时用发光二极管指示家用电器工作状况。
发光二极管亮,表示家用电器通电,发光二极管灭,表示家用电器断电。GPB7控制电器1,GPB8控制电器2,GPB9控制电器3。由于被控模块家用电器大多使用220 V交流电,属于强电电路,所以使用继电器控制家电。在芯片与继电器中间加驱动电路。驱动电路可以利用光电耦合的通、断去控制继电器的开与关。也可以利用三极管的饱和与截止去控制继电器的开与关,这里采用三极管方式。当I/O口引脚输出低电平时,三极管饱和导通,+5 V电源加到继电器线圈两端,继电器吸合,同时状态指示的发光二极管也点亮,继电器的常开触点闭合,相当于开关闭合。当I/O口引脚输出高电平时,三极管截止,继电器线圈两端没有电位差,继电器衔铁释放,同时状态指示的发光二极管也熄灭,继电器的常开触点释放,相当于开关断开。注:在三极管截止的瞬间,由于线圈中的电流不能突变为零,继电器线圈两端会产生一个较高电压的感应电动势,线圈产生的感应电动势则可以通过二极管D1释放,从而保护了三极管免被击穿,也消除了感应电动势对其他电路的干扰,这就是二极管D1的保护作用。这里主要是采用模拟的方式来实现家电的远程控制,板子上的LED灯表示家电的开关状态。控制开关状态的CGI代码用shell语言实现,下面就是其中一个电器的代码:
#/bin/sh
case $QUERY_STRING in
*kai1*)
type1=1
;;
*guan1*)
type1=0
;;
esac
2.3.3 视频客户端Java Applet的实现
在本系统中,客户端接收从视频服务器发送过来的视频信息,并通过Web浏览器显示监控图像,浏览器自身不能完成这个功能,而是通过在HTML文档里嵌入Applet来实现的[6]。Applet是一种特殊的Java程序,它能够嵌入到HTML文档并被支持Java的网页浏览器下载执行。本系统客户端就是利用Java Applet完成用户与视频服务器的交互,实现视频播放。
视频监控网页用HTML语言设计。在本系统中,摄像头系统监视界面直接采用改进的webcam_server―0.50nsrcnclient。以下是经过修改后的webcam.html源代码,其中http://202.193.74.230指的是开发板的IP地址,可以根据实际需要改变源代码里面的高度和宽度,从而调整视频画面的大小。
<html>
<head>
<title>WebCam</title>
</head>
<br><br><br>
<p align="center"><APPLET CODE ="WebCamApplet.clas"
archive="applet.jar"WIDTH ="320"HEIGHT ="240">
<param name=URL value="http://202.193.74.230:8888">
<param name=FPS value="1">
<param name=width value="320">
<param name=height value="240">
</APPLET>
<p align="right"><img src="images/sxt.jpg"/>
</body>
</html>
还要把/src/client下的Applet.jar文件拷贝到开发板根文件系统下的/www目录下。最后在电脑主机上安装一个jre1.6.0 03,目的是使浏览器支持Java,这样就完成了客户端的设计,从而实现视频在网页上显示的工作。
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)