基于嵌入式的智能家居

更新时间:2023-10-21 07:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于嵌入式的智能家居

摘要 21世纪是智能的时代,是互联网的时代,随着Internet后PC时代的到来,这个时代的主要特征是以计算机作为作为组成成分融入消费品之中。依赖于嵌入式技术的后PC时代使得传统IT设备逐渐过渡到嵌入式设备并融入到生活的各个方面。本系统采用嵌入式技术,将在系统内移植嵌入式web服务器,用户可以通过互联网对家居进行操作与监控。

关键词 嵌入式 智能家居 Linux 远程监测

Abstract In the 21st century is the era of intelligence, is the age of the Internet, with the advent of Internet post-pc era, the era as computers as the main characteristics of the components into consumer goods. Rely on the embedded technology after traditional PC era makes IT equipment gradually transition to the embedded devices and integrated into all aspects of life. This system adopts the embedded technology, transplanted in the system of embedded web server, the user can through the Internet for household operation and monitoring. Keyword: ARM smart home Linux Remote monitoring

1 绪论

随着生活水平与生活质量的提高,人们对于生活水平要求日益提高,对于生活的便捷性与对信息需求的及时性也越发看重,以嵌入式为核心的智能家居以其便捷性与实时性逐渐走入了我们的视野。目前随着

网络技术的迅速发展,传统的PC完全可以通过内嵌web服务器的ARM进行功能替代,并且由于嵌入式系统价格偏低,使得智能家居发展越发成为可能,但是我国目前智能家居发展仍然有限,发展速度与发达国家相比偏慢,并且发展水平较低,因此智能家居发展前景广阔。本文将采用ARM9作为CPU进行嵌入式开发。

2.嵌入式

2.1嵌入式系统简介

嵌入式系统是一种非PC系统但但有计算机功能,以应用为中心、以计算机技术为基础、软硬件可裁剪、适用于应用系统的一种专用计算机系统,它的主要特点是嵌入和专用。

从20世纪70年代起,微型机以小型、低廉、高速数值计算等特点迅速走向市场,它所具备的智能化水平在工业控制领域发挥了作用,常被组装成各种形状,“嵌入”到一个对象体系中,进行某类智能化的控制。与通用型的计算机系统相比,嵌入式系统的功耗低、功能强大、实时性强打、占用空间小、效率高等有点尤为突出。它的主要特点是嵌入与专用。 2.2 ARM处理器介绍

ARM(Advanced RISC Machine),即可以认为是一个公司的名字,也可以当成一类微处理器的统称,还可以认为是一种技术的统称。 ARM体系架构的版本就是它所使用的指令集的版本。ARM架构支持32位的ARM指令集和16位的Thumb指令集,后者所使用的代码的存储空间大大减少。还提供了一些扩展功能。

本文所使用的ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM920T和ARM922T等系列。ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。他的指令执行效率较ARM7有较大提高,最高可达到300MIPS。 2.3嵌入式Linux

嵌入式 Linux是以Linux为基础的嵌入式系统,他广泛应用于我们生活的方方面面。Linux系统遵循GPL协议,是完全免费的OS,既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统支持任意裁剪的特性。并且他的内核小、效率高,内核更新速度很快,支持几乎所有的32位或者64位系统。并且嵌入式Linux与PCLinux使用的是同一套内核代码,这就是的原本PC上的程序重新编译调整之后可以直接用于嵌入式Linux,大大增加了便捷性。 3整体模块设计

本系统的设计目的就是为了实现远程监测并进行远程操作,总体思路就是以基于嵌入式系统与web系统结合开发,其主要有USB摄像头模块、WEB服务器模块、视频客户端以及远程电器控制端组成。其中通过CGI方式实现WEB服务器对远程电器的控制。本系统采用三星公司的S3C2410作为主机,系统采用Linux系统。模块之间流程图具体见下图1。

图1

3.1 USB摄像头模块设计

USB摄像头使用中星微ZC301,该系列高清芯片拥有影像光源自动增益补强技术,自动白平衡、边缘增强以及伽马矫正等先进的影像控制技术。

具体移植过程如下

1.下载USB补丁文件。本人使用的USB-2.6.12.patch.rar.在www.pudn.com 网站上能找到。 2.打补丁。

在drivers/usb/media目录下建立spca5xx目录,mkdir spca5xx,返回/driver/usb目录下,把补丁文件也放在此目录下,执行 patch –p1 2.6.12.patch,就会在 usb/media/spca5xx目录下产生如下文件: cs2102.h hdcs2020.h hv7131b.h hv7131c.h icm105a.h

Makefile Makefile.2.4 Makefile.org pas106b.h pb0330.h sn9cxxx.h sp5xxfw2.dat sp5xxfw2.h spca5xx.h spcaCompat.h spca_core.c spcadecoder.c spcadecoder.h spcausb.h tas5130c.h zc3xx.h

3. 修改drivers/usb/Makefile文件,在 Obj-$(CONFIG_USB_W9968CF) += media/ 之后添加一行:

obj-$(CONFIG_USB_SPCA5XX) += media/ 4. 修改drivers/usb/media/Kconfig文件,在最后添加 config USB_SPCA5XX

#cd /opt/root_nfs #mkdir web etc/boa

然后拷贝刚才移植的boa到文件系统的\目录下: #cp /opt/boa-0.94.13/src/boa /opt/root_nfs/sbin 拷贝boa-0.94.13目录下面的boa的配置文件boa.conf到文件系统的etc/boa/目录下:

#cp /opt/boa-0.94.13/boa.conf /opt/root_nfs/etc/boa 修改 boa.conf 文件,这里只给出修改的内容以及大概的行数:

#cd /opt/root_nfs/etc/boa #vi boa.conf 下面是修改内容:

Port 80 //行25,监听的端口号,缺省都是80,一般无需修改。

#Listen 211.69.201.157 //行43,bind调用的IP地址,一般注释掉,表明绑定到INADDR_ANY,通配于服务器的所有IP地址。

User root //行48

Group root //行49,作为哪个用户组运行,即它拥有该用户组的权限,一般都是root,需要在/etc/group文件中有root组。

#ServerAdmin root@localhost //行55,当服务器发生

问题时发送报警的email地址,现在没有使用,注释掉。

ErrorLog /dev/console //行62,错误日志文件。如果没有以/xxx开始,则表示从服务器的根路径开始。如果不需要错误日志,则用/dev/null。系统启动后看到的boa的打印信息就是由/dev/console得到的。

#VirtualHost //行107,是否启动虚拟主机功能,即设备可以有多个网络接口,每个接口都可以拥有一个虚拟的Web服务器。一般注释掉,即不需要启动。

DocumentRoot /web //行112,非常重要,这个就是存放HTML文档的主目录。如果没有以/xxx开始,则表示从服务器的根路径开始。

#UserDir public_html //行117,如果收到一个用户请求的话,在用户主目录后再增加的目录名。

DirectoryIndex index.html //行124,HTML目录索引的文件名,也是没有用户只指明访问目录时返回的文件名。

KeepAliveMax 1000 //行145, 一个连接所允许的HTTP持续作用请求最大数目,注释或设为0都将关闭HTTP持续作用。

KeepAliveTimeout 10 //行149,HTTP持续作用中服务器在两次请求之间等待的时间数,以秒为单位,超时将关闭连接 MimeTypes /etc/mime.types //行156,指明mime.types文件位置。如果没有以/开始,则表示从服务器的根路径开始。可以注释掉避免使用mime.types文件,此时需要用AddType在本文件里指明。

DefaultType text/plain //行161,文件扩展名没有或未知的话,使用的缺省MIME类型。

CGIPath /bin:/usr/bin:/usr/sbin:/sbin //行165,提供CGI程序的PATH环境变量值。

#AddType application/x-httpd-cgi cgi //行174,将文件扩展名和MIME类型关联起来,和mime.types文件作用一样。如果用mime.types文件,则注 释掉,如果不使用mime.types文件,则必须使用。

#Alias /doc /usr/doc //行189,指明文档重定向路径。

ScriptAlias /cgi-bin/ /web/cgi-bin/ //行194,非常重要,指明CGI脚本的虚拟路径对应的实际路径。一般所有的CGI脚本都要放在实际路径里,用户访问执行时输入站点+虚拟路径+CGI脚本名。前面的/cgi-bin/就是虚拟路径,/web/cgi-bin/就是实际的路径。

保存退出该文件。

拷贝\文件到文件系统的\目录,一般在 PC 的\目录下面就能找到该文件:

#cp /etc/mime.types /opt/root_nfs/etc 2) 配置 cgic 库

在文件系统的\目录下面建立子目录\目录:

#cd /opt/root_nfs/web #mkdir cgi-bin

拷贝刚才移植的 cgic 库和 cgic 测试文件到文件系统的\目录下:

#cp /opt/cgic205/capture /opt/root_nfs/www/cgi-bin/

#cp /opt//cgictest.cgi /opt/root_nfs/www/cgi-bin/

本文来源:https://www.bwwdw.com/article/5ipf.html

Top