基于Wi-Fi及Web控制的智能家居系统设计
扫描二维码
随时随地手机看文章
引言
随着计算机技术、智能控制技术、通信技术和微电子技 术的飞速发展以及人们生活水平的日益提高,智能家居生活逐 渐成为一种趋势,并越来越被人们所关注。与此同时,人们对 智能家居的成本以及操作人性化方面的要求也越来越高。
所谓智能家居,是指利用先进的计算机网络通信技术、 嵌入式技术和传感控制将与家庭生活有关的各种子系统有机 地结合起来,通过统筹管理,使家居生活可以更加舒适和方便。
当前,市场上实现智能家居的方法很多,实现的功能也 很多,在这当中不乏一些经典的方案,但是在这些方案当中, 大部分采用触摸屏或电脑控制的方式,这带来的问题将是操 作地点的固定以及对一般收入家庭而言不必要的功能所造成 的额外费用。
当今社会,无线路由器及智能手机、平板电脑等手持设 备已经得到了广泛的普及,因此本设计将利用Wi-Fi这一载体 通过智能手机、平板电脑实现Web对智能家居终端的控制, 以此减少额外布线以及昂贵的设备费用。同时,也将使用红外 遥控,方便不使用智能手机、平板电脑等设备的家庭成员享受 智能家居带来的便捷。
1系统结构
整个系统分为3个部分,即受控终端、服务终端和控制 终端。系统结构如图1所示。
在系统的3个部分之间,将控制终端与服务终端通过 Wi-Fi连接,即可实现控制的可移动性,也避免了布线的复杂性。
1.1控制终端
控制终端由智能手机、平板电脑以及红外遥控等手持终 端组成。其中智能手机和平板电脑通过Wi-Fi实现与服务终端 的连接,通过浏览器实现在Web层面对服务终端发送数据和 添加命令的功能。红外遥控则直接发送命令给服务终端。
1.2服务终端
服务终端是整个智能家居系统的核心,是实现对受控终 端传递命令的枢纽,实现对控制终端命令的处理,对受控终 端信号的采集和发送。
1.3受控终端
受控终端则是日常生活中的电器部分,本次设计中主要涉 及的控制对象是生活中常用到的电灯和门禁。通过USB摄像 头实现对来客的观察,通过继电器实现电灯和门禁的控制。
2系统硬件设计
在本系统中,控制终端和受控终端为日常家居中的现成 产品,它们只需通过适当的接口纳入系统架构中即可,因此 本系统的设计重点是服务终端。系统中的服务终端采用三星 公司的S3C2440微处理器作为控制芯片,S3C2440是一款 高性能的嵌入式处理器,基于ARM9内核,能稳定运行在 400 MHz(内核电压为1.3 V时)。同时,此款处理器具有支 持更多分辨率液晶屏、AC97编解码以及更多可用I/O端口等 特点,这些特点能够很好地为智能家居系统服务,也为后续的 升级提供了方便。不仅如此,服务终端部分还集成了多种外设 接口,如以太网、摄像头、USB、串口等,这些接口完全可以 满足对家居设备的控制要求。服务终端的结构如图2所示。
GPIO 接口
GPIO接口主要控制外部连接的继电器,通过控制继电器 的导通与关断控制相应电灯、门禁以及电动窗帘。以电灯控制 为例,当GPIO 口发出高电平信号时,连接在相应接口上的继 电器导通,电灯打开;当GPIO 口发出低电平信号时,连接在 相应接口上的继电器关断,电灯熄灭。
2.2红外接口
红外接口主要用于接收红外遥控发送的命令,通过处理 器的处理后再生成相应的代码信号发送给相应的I/O 口,以此 实现红外遥控对服务终端的控制。其后续的控制方法和GPIO 相同。
2.3 LCD 接口
LCD接口外接7寸LCD触摸屏,在系统设置阶段以及 Web控制出错的情况下,实现对外部电器的控制,做到了直观、 快捷的操作。
2.4网卡接口
网卡接口实现控制终端与家庭使用的无线路由进行连接, 实现服务终端与控制终端的无线连接。
2.5 CAMERA USB 接口
CAMERA USB接口主要用来外接USB摄像头,用于对 室内外情况的观察,在配合门禁系统使用时起到了“猫眼”的 作用。同时,由于采用了 USB接口,方便用户自行更换镜头更好、 像素更高的摄像头来为自己的智能家居进行服务。
总体而言,在本智能家居系统当中,通过应用无线路由、 继电器以及USB摄像头等这些家庭生活常见设备,做到了低 成本和移动操作的目的,同时红外遥控的采用以及LCD触摸 屏的使用,为不使用智能手机等手持设备的家庭成员提供了 方便,也为在无线不能正常使用的情况下提供了另外一种选择。 3系统软件设计
系统软件主要包括移植Linux操作系统、mjpg-streamer 的移植、QT图形界面应用程序、网页html文件以及shell脚 本的编写等。
Linux操作系统的移植
系统选用了 2.6.32.2版本的内核,可以从官方网站上下 载内核源码。然后依次进行根目录下的Makefile文件的修改、 克隆自己的平台、移植Nand驱动并更改分区、移植yaffs2、 DM9000网卡驱动和USB驱动的移植等操作,最后执行 make menuconfig命令进入配置菜单,配置相关选项并保存退 出,执行内核编译命令,编译成功后将得到编译好的内核镜像 文件zlmage。最后将内核镜像烧写到NAND FLASH当中。
QT图形界面应用程序及其与驱动的关系
QT图形界面应用程序的编写主要涉及到了应用对内核的 调用、内核对驱动的调用以及驱动对内核的反馈的整个过程, 它与内核以及驱动的关系如图3所示。
下面以GPIO 口驱动为例来进行说明:
应用程序使用库提供的open函数打开代表GPIO的 设备文件;
库根据open函数传入的参数执行“swi”指令,这条 指令会引起CPU异常,进入内核;
内核的异常处理函数根据这些参数找到相应的驱动程 序,返回一个文件句柄库,进而返回给应用程序;
应用程序得到文件句柄后,使用库提供的write函数 发出控制命令;
库根据write函数传入的参数执行“swi”指令,这条 指令会引起CPU异常,进入内核;
内核的异常处理函数根据这些参数调用驱动程序的相 关函数,驱动I/O接口。
在本次设计的智能家居方案中,我们用到了 LCD、 GPIO、DM9000网卡等驱动,以及相应的应用程序,均遵循 以上过程编写,同时也在Linux系统中稳定运行。
shell 脚本
Web与应用程序间通信的桥梁靠shell脚本完成。Web 将命令发送给shell脚本后,脚本经过相应的switch语句处理, 将从Web得到的结果转换成相应的参数传递给相应的应用程 序,从而实现了 Web与应用程序间的通信,以此达到了 Web 控制硬件的目的。同时,shell脚本将应用程序采集到的信号 返回给相应的Web程序,实现读取受控终端状态的效果。
mjpg-streamer 的移植
从官网下载相应的源码,解压后修改顶层目录下的 Makefile文件以及plugins目录下的各级Makefile文件,完 成后放到服务终端Linux目录下的相应目录下,并通过修改 start_uvc_yuv.sh等文件,实现相应的开机自启,当我们启动 服务终端,在LCD上显示如图4所示内容。此时USB摄像头 已经正常工作。
MJPG Streamer Version. ; 2. 0
i: Using V4L2 dev ice. . /dev/vi deoO
i; UesI red Res。Iut i on: 640 x 480
i: Frames Per Second. . 5
i: Format: YUV
i; JPEG Quality; 80
format asked unavailable get width 160 height 120
o: wnw folder-path... : . ,■ www/
o: HTTP TCP port: 8080
o. username.password. . disabled
o: conmands:enabled
图4串口终端输出内容
3.5网页html文件
网页html文件作为本次智能家居跨平台控制的载体,我 们运用Macromedia Dreamweaver 8软件进行编写。此软件做 到了图形界面和代码编写的双重功能,方便一般用户实现简单 网页文件的设计。在这当中,通过赋予不同按钮不同的值,以 及网页通过QUERY_STRING来实现向shell脚本的命令传输。 基本代码如图5所示。其中value所对应的值即为网页传递给 shell脚本的值。
综上所述,在软件部分,智能家居的基本工作过程如下:
用户通过浏览器连接网络后,通过网页发送指令,进 行控制;
网页提交后,将数据发送给shell脚本,shell脚本中 相应的函数对网页提交的数据进行处理;
shell脚本将处理后的结果发送给相应的应用程序;
应用程序调用相应的驱动程序完成用户的操作。
4系统测试
系统研制成功后,已在实验室做了充分的实验与验证, 系统工作稳定可靠。图6为从浏览器上看到的实验室的监控画 面。图7则为手机端控制界面,通过点击界面当中房间号以及 开关按钮即可实现对室内电灯的控制,同时,提交按钮的增加, 可以做到防止用户误触。而且,我们也将Wi-Fi信号关闭,模 拟Wi-Fi信号出问题的情况,红外遥控和LCD触摸屏做到了 相应的控制作用,很好地弥补了在意外情况下对服务终端的控 制,方便了生活。
5结语
本文设计了一种基于Wi-Fi和Web控制的智能家居系统, 详细介绍了系统的整体框架以及软件的实现方法。与其他智 能家居系统不同,本系统降低了用户的成本、减小了系统的操 作难度、实现了跨平台间的简单操作以及红外遥控和LCD的 加入使得系统操作更加灵活。我们有理由相信,采用Wi-Fi以 及Web控制的智能家居系统,将受到广大普通收入家庭的欢 迎,使得智能家居生活真正进入寻常百姓家。
20211119_6197c537c53b4__基于Wi