您好, 访客   登录/注册

利用嵌入式Linux构建智能住宅的探究

来源:用户上传      作者: 张帅 刘彦涵

  摘 要:随着电子、通信、网络技术的飞速发展和人们生活水平的提高,智能住宅的概念逐渐走进现实。本文通过运用嵌入式技术,实现了用户可以在远程登陆浏览器来查看家庭状况,进而对家中情况进行合理处理的解决方案。本文的工作主要包括以下几点:首先,分析智能家居的解决方案,提出了基于嵌入式技术的解决方案。其次,利用ARM9开发板作为核心,移植Linux操作系统,并建立根文件系统,移植嵌入式Web服务器,搭建起家庭网关的开发平台。再次,设计远程登陆的网页,让用户来操作从而监控家庭状况,并结合CGI技术进行网关的程序开发。最后,分析igBee技术和协议,在硬件模块上利用相应的软件开发环境开发自己的应用程序,使得模块能够实现各自的功能,并同开发板能够进行通信。最后,移植了]ffmpeg库,实现了视频的远程监控。
  关键词:嵌入式Linux;传感器;智能住宅;CGI;web
  1.智能住宅的发展前景
  智能家居又称智能住宅,国外常用Smart Home表示。
  智能家居是一个居住环境,是以住宅为平台安装有智能家居系统的居住环境,实施智能家居系统的过程就称为智能家居集成。
  智能家居集成是利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设备集成。以下是智能家居能实现的功能和提供的服务:
  1、始终在线的网络服务,与互联网随时相连,为在家办公提供了方便条件。
  2、安全防范:智能安防可以实时监控非法闯入、火灾、紧急呼救,系统会自动向中心发出报警信息,同时启动相关电器进入应急联动状态,从而实现主动防范。
  3、家电的智能控制和远程控制,如对灯光照明进行场景设置和远程控制、电器的自动控制和远程控制等。
  4、交互式智能控制:可以通过语音识别技术实现智能家电的声控功能;通过各种主动式传感器(如温度、声音、动作等)实现智能家居的主动性动作响应。
  5、环境自动控制。如家庭中央空调系统。
  6、提供全方位家庭娱乐。如家庭影院系统和家庭中央背景音乐系统。
  2.系统硬件详细设计方案
  主要方案为以NCAP模块和STM模块为主要硬件电路。其中包括存储器电路设计、以太网接口电路设计、CAN接口电路设计、A/D转化电路设计、压力传感器电路设计等。网络化接口方案可利用硬件芯片实现TCP/IP协议栈。
  2.1嵌入式Web服务器的处理器
  处理器采用三星公司的ARM9处理器S3C2440。通过外扩存储器SDRAM和NANDFLASH、以太网接口、串口、JTAG调试端口等构建成服务器硬件平台。其中网络接口采用DM9000网卡芯片。服务器通过串口与协调器进行数据交互。
  2.2外部传感器
  具体的嵌入式Web传感器是基于某个特定的基本传感器来实现的。我们选用了AD590 模拟温度传感器,设计并实现嵌入式Web温度传感器的软件系统。
  3.系统软件详细设计方案
  3.1嵌入式TCP/IP 协议栈移植
  本设计主要实现ARP、IP、ICMP、TCP协议。以太网数据的传输是采用MAC地址来识别的,而ARP协议提供IP地址和数据链路层使用MAC地址之间的转换功能,为了保证系统在以太网的通信,首先要实现ARP协议。Web服务器同Web浏览器之间的通信是通过HTTP协议实现的,在传输层采用TCP协议,能保证可靠的数据传输,进而实现其基础之上的HTTP协议[1]。HTTP是WWW的核心协议。HTTP是一个属于应用层的面向对象的协议。HTTP协议有两项功能,即传输文件和实现动态交互应用。在Linux内核中配置TCP/IP协议栈,进入内核目录中执行make menuconfig,选择Netwoking suppt并进入,进入netwking options子目录,选中 TCP/IP netwking 选项,然后选择IP:kernel level autoconfiguration 及BOOTP suppt和RARP suppt即可完成TCP/IP的配置。
  3.2 嵌入式Web服务器移植
  系统上电后Web服务器就自动运行,
  并时刻监听端口。本设计采用嵌入式Web服务器boa。b移植步骤如下:1) 编译boa。下载Boa0.94.13 版本源码,将其解压并进入源码目录的src 子目录执行/boa/src/configure 生成Makefile 文件,修改Makefile 文件的CC 和CPP 的编译器为交叉编译器。然后执行make 命令,得到可执行程序boa。2) 配置boa。修改boa.conf 文件,完成boa 的配置,使其能够支持CGI 程序的执行。3) 将boa 和boa.conf 文件下载到嵌入式Linux 中。本设计分别把boa 和boa.conf 文件下载到/bin 和/etc/boa/目录下。
  3.3 CGI脚本编译
  CGI全称是“公共网关接口”(Common Gateway Interface),CGI建立在客户机/服务器机制上,为外部扩展应用程序与Web服务器交互提供了一个标准接口。其主要功能是在Web环境下,从客户端传送一些信息给Web服务器,Web服务器把接收到的有关信息放入环境变量,然后再去启动所指定的CGI脚本以完成特定的工作,CGI脚本从环境变量中获取相关信息来运行,最后以HTML格式输出相应的执行结果返回给浏览器端[2]。
  CGI应用程序读取从嵌入式Web服务器传递来的各种信息,并对客户端的请求进行解释和处理,设计中主要启动串口数据通信进程,从串口发送数据到ZigBee协调器。最后CGI应用程序会将处理结果按照CGI规范返回给嵌入式Web服务器,Web服务器会对CGI应用程序的处理结果进行解析,并在此基础上生成HTTP响应信息返回给客户端浏览器[3]。编写相应的静态HTML 文件,然后编写CGI 脚本文件,实现对设备的控制和数据的采集。本设计采用C 语言编写CGI 脚本,窗体以GET 方法将用户提交的数据传递给CGI 程序,最后保存为.c 文件。然后用交叉编译命令arm-linux-gcc 生成能够在ARM 中运行的CGI程序。静态网页HTML 文件存放于/www/目录下,CGI 程序放在/www/cgi-bin/目录下。整个软件系统移植完毕后,在浏览器中输入ARM 板中的IP 地址就可以访问了。
  4.方案分析
  在本课题前期的研究过程中,全体成员均增强了对“智能住宅”的理解,对“智能住宅”的内涵、中长期的发展前景以及在当前时代背景下所面临的困难和挑战都有了进一步的认识。团队成员熟练掌握了在Linux环境下上层应用软件的开发,外设接口驱动开发、跨平台移植、Bootloader代码分析与移植、以太网烧写工具代码分析与移植。
  我组全体成员对于利用嵌入式ARM9进行数据采集与网络传输操作,在智能传感器的基础上把TCP/IP协议作为一种嵌入式应用,嵌入现成智能服务器的ROM中,利用传感器内建的Web服务器,用户可以通过浏览器采集远程监控对象的信息,在网络中查到设备采集的数据,实现传感器的网络化的整个流程有了更深的了解。
  该技术应用前景广阔,在未来的智能住宅中必将有广泛的应用。
  参考文献:
  [1]刘武超.嵌入式家居监控系统的研究与设计
  [2]吴雪琴.基于S3C2410远程监控系统的设计与实现[D]. 电子科技大学 2010
  [3]黄杰.基于Web的远程监控系统的设计与实现[J]. 中国西部科技. 2011(20)
转载注明来源:https://www.xzbu.com/8/view-6933797.htm