毕业论文-基于linux系统的智能家居远程控制系统设计内容摘要:
传给网页,也可以通过网页给温湿度传感器设定范围值,当湿度或温度超过范围就会给客户发警告信息。 硬件模块设计 本节主要介绍项目中的硬件选择。 硬件是智能家居系统实现的基础,通过硬件测试来确定本项目中的方案是否可行。 本节 通过子模块为列自来说明整体硬件的设计。 由于该开发板资源丰富,内容复杂,只对实验中用到的 S3 C2440 的寄存器进行阐述,如 GPIO 口的寄存器 GPnDAT, GPnCON, GPnUP 和 DART 口的寄存器 ULCONn, UCONn, UFCONn。 然后阐述了系统硬件连接及测试的整个过程, 9 由最基本的开发板连接、温湿度传感器、 GPRS 模组,直至将几个功能模块集合到一起,进行测试。 硬件选型 硬件选型是是整个项目实行的基础。 目前项目中,智能家居解决方案有以下三种选择 :(1)用一个开发板做家庭网关。 (2)弄一个单片机,自己手动连接电路,自己去开发一个家庭网关。 (3)用一台普通的计算机来做家庭网关。 用单片机做家庭网关的话,虽然成本低,但是效益不怎么高,对于用户来说有点麻烦。 而嵌入式设备成本不高,执行效益比较高,而且体积小,方便用户使用。 所以本次项目选择使用开发板作为这次项目控制中区。 ( 1) GPRS 模组 GPRS 模组采用 STM300 通讯芯片 ,利用无线移动网络来实现点对点间的全双工通讯。 同时,模组支持 tcp/ip 协议栈,因此可以利用它进行无线上网。 模组通过是 UART 串行接口与主芯片来通信,可以与任何 UART 串行通信接口的设备进行连接 .。 该模组具有以下优点: EGSM900m, PCS1900M, DCS1800M 多种频段,兼容 GSM phase 2/2+ tcp/ip 协议,能够无线上网。 ( PBCCH)。 ( ussb)。 GPRS 模组与主控制器通讯是通过标准的串口。 该模组的接口是 10 针的,能够与 MCU 相连。 改 GPRS 模组也可以通过 RS232 接口与 pc 机相连。 其模组如下图 33: 图 33 10 ( 2)温湿度传感器 本项中使用的是 AM2311湿敏 电容数字模块 ,他是一款含有含有校准数字信号的输出的温湿度传感器。 ,他使用的是温湿度传感技术与数字采集技术可靠性强,并且稳定性好,适合长期使用。 传感器内部有一个高性能的单片机,并且与单片机相连的有两个高精度元件,一个测温元件盒一个测温元件。 每个传感器 传感器都是在精确的温湿度教验实中进行检验校准的,且校准的系数以程序的方式存储在单片机中。 传感器内部处理数据的时候要调用这些系数。 用户可以直接挂在模组的 i2c 通信接口上,使用简单。 本产品具有超快响应、抗干扰能力强、品质卓越性价比极高等优点。 该产品为 4 引线,通信接口 连接方便。 特殊封装形式可根据用户需求而提供。 以图 34 下是模组基本模型: 图 34 硬件连接及测试 先将 ARM8 的开发板与 PC 机连接及测试 首先按照 2440 资料进行硬件连接。 (1)先将 5V 的电源与开发板相连接。 (2)将开发板的串口与电脑相连。 (3)给开发板和电脑分别接上网线。 在 PC 机上建立超级终端来对开发板进行操作 : (1)运行 windows xp 下的开始一程序一附件一通讯 *超级终端; (2)第一次建立超级终端是会询问是否将“ HyperTerminal”选择为默认程序,选择“否”就可以了。 (3)然后会要求输入区号、电话号码等信息,可以随便输入一些数字,不会有什么影响。 11 (4)为了容易区分其他的超级终端,建议将新建立的连接命名为 ARM,如图35。 (5)再按确定之后,会出现一个端口属性设置的对话框,将端口的波特率设为每 秒 115200,数据位为 0,奇偶校验为无,停止位 1,数据流控制位无然后点击确认即可。 为了方便以后使用然后将新建立的超级终端放在桌面上,如果连接好后,启动开 发板,能看到一些信息,说明连接成功, 图 35 设置正确,如图 36。 图 36 12 开机时,超级终端信息如下图 37 所示: 图 37 平台搭建 内核移植 开发板加电之后,会运行一段代码,引导加载程序 bootloader,完成初始化硬件设备,映射好内存,将系统的软硬件环境配置好,为最终的启动操作系统作好准备。 在嵌入式系统中 Bootloader 对硬件要求比较 严格,不同的版本系统要求有不同的 bootloader,现在常用的 bootloader 主要有 ARMboot, REDboot, uboot,blod 等等。 本次项目选用的是 uboot。 Uboot 在目前功能比较全,灵活性比较高,并且开发的 bootloader 是开源的,它支持处理器种类比较多,比如 ARM, x86, MIPS 等,能够支持很多种嵌入式系统的内核,由著名的 Wolfgang denk 软件工程师和 denx 软件工程师来维护。 移植 uboot,主要是看硬件配置中的处理器是否相同,体系结构是否一样,然后是外围接口 是佛相符合。 如果差不多就可以移植 uboot 内核,否则不能移植。 本项目使用的是 s5pv210 的开发板,内核使用的是桂林电大爱普已经编译并配置好的内核,只移植即可,本项目中主要是通过双绞线来烧入内核的,其主要步骤如下: ( 1) 先将开发板与 pc 机的网线相连。 ( 2)打开 这个程序,设置好内核地址。 能够通过双 13 绞线给开发板传送数据的。 ( 3)打开超级终端,然后接通开发板的电源。 在超级终端出现倒数 3, 2, 1的时候键盘点击任意按键即可。 然后在超级终端敲入 update image 命定 ,等待内核烧入完毕。 boa 服务器的移植 ( 1)编译 boa 程序 上下载 文件 $ tar zxvf $ Cd ./src $ ./configure ( 2) boa 服务器的移植 在运行 ./configure 后按下面步骤修改 Makefile 文件: 将: CC = gcc Cpp =gcc E 改为: CC = armlinuxgcc CPP = armlinuxgcc E 修改完之后再开发板完之后建立相关文件及目录 $ cp 目录下 在 ,即可运行服务器 系统程序设计 web 与 CGI 的编写 Web 服务器运行于开发板中,用户可以通过互联网访问开发板 文件夹中的 html 文件,以网页形式打开, html 能够与 web 服务器通讯,当用户对网页进 行操作时,就会触发 web 服务器中相应的 cgi 程序。 所以对 html 文件的编写很重要。 其中编写主要流程如图 38: 14 图 38 ( 1) 登陆 web 浏览器的设计 登陆界面的设计是为了不 让随便一个人能够登陆自己家里的 web 服务器,对家里的设备进行操作,这样做也是为了安全性的提高。 本次项目中是在局域网内操作的,目前开发板使用的是静态 ip 为 ,所以用户可以在 web 浏览器中通过格式 ip+端口 +目标 html 文件,即可对家庭登陆网页的访问。 下图 39是登陆网页的界面: 图 39 假设网页登陆密码与账户是 admin 和 123。 输入密码和账号点击登陆,就会通过 javascript 脚本与 web 服务器中的 cgi 进行通讯,核对账户与密码是否正确。 其中主要代码如下: Html 调用 javascript 里的函数: /head 15 //这样就可以调用 里面的函数了。 table trtdpfont size=5 face=verdana账户 amp。 nbsp input type=39。 text39。 id=login_usr/font/p/td/tr //输入账号的文本框 trtdpfont size=5 face=verdana密码 amp。 nbsp input type=39。 text39。 id=login_psw/font/p/td/tr //输入密码的文本框 trtd align=centreamp。 nbspamp。 nbspamp。 nbspamp。 nbspamp。 nbsp input type=39。 button39。 id=login_button value=登陆 onClick=check_user()/td/tr //点击登陆后就会访问 文件中的 check_user 函数 /table /head Javascript 与 cgi 的通讯部分: Functiong check_user(usrname,pwd,urll_data,type) { Var xml_object = createXHR()。 Var URL =g_url。 If (0 == type) URL+=“/CGIbin/?”+”usrname=”+usrname”amp。 usrname+”amp。 pwd=”pwd。 //组合准备发送的 命定, Ellse if(1==type) URL +=”/cgibin/?”+url_data。 Var xml_status。 If(xml_object) { (“CGI”,URL,false)。 (“IfModifiedsince”,”0”)。 ()。 16 Xml_status =。 If(200 == xml_status) { Return。 } Xml_object = null。 } Else { Alert(“please check the Bowser!”)。 } } 其中字符串变量 URL 是来与 cgi 通讯用的。 URL +=“/cgibin/?”+”usrname=”+”amp。 pwd”=ppwd 是用来拼接字符串的,将想要的字符组合在一起,并与 web 服 务器中 cgibin 文件夹下 进行通讯。 发送消息的函数。 Return 将结果返回给网页, Alert( „please check the Bowser!‟) 如果输入错误将会出现一个对话框提示错误。 CGI 程序: data = getenv(QUERY_STRING)。 //获取 javascript 发送过来的字符。 sscanf(data, %d, amp。 status)。 //解包,获取 想要的字符。 Printf(“%d”,Strcmp(status,”admin1234”))。 //strcmp 函数式用来匹 配账户密码是否与 admin1234 是否相同,相同则返回 0,否则是非 0 的,然 后将值通过输出函数返回给 javascript。 登陆成功的界面会进入控制台界面,然后就可以对家庭一些设备进行选择性的控制。 其中界面如图 310: 17 图 310 点击 LED 灯,发消息,温湿度的监控会显示不同的网页。 其中跳转代码如下: = g_url+/。 //跳转到灯的控制网页 = g_url+/。 //跳转到发送短信网页 = g_url+/。 //跳转到获取温湿度网页 ( 2) LED 灯的控制界面与 CGI 的编写 项目中 LED 灯的控制是智能家居中一个重要的组成部分,为了能让项目具有稳定可靠性, LED 灯的状态必须能够与时时与网页同步。 在 LED 灯的控制界面中,用户可以点击界面的 LED 灯控制按钮,对开发板相对应的灯进行操作。 当灯熄灭时,点击则会打开 LED 灯,当灯打开时,点击则会开启。 这样用户可以在远地办公,也能及时关闭家中未关闭的灯光,也可以提前回家的时候开启家里的灯火。 并能提倡节约用电,绿色环保生活。 图 311 是 LED灯的控制界面 18 图 311 其中 CGI 主要处理代码如下: (1)获取状态信息: Int data。 Read(led,amp。 data,sizeof(data))。 If(data amp。 0x02) /先判断第一个灯的信息 Led1 = „1‟。 Else Led1 = ‟0‟。 If(daa amp。 0x04) //第二个灯的信息 Led2 = „1‟。 Else Led2 = „0‟。 If(data amp。 0x08) //第三个灯的信息 Led3 = ‟1‟。 Else Les3 = „0‟。 Printf(“%c,%c,%c”,led1,led2,led3)。 //把灯的信息发给页面 Close(led)。 CGI 先是获取当前 LED 灯的状态信息。 19 Printf( “%c, %c,%c”,led1,led2,led3)。 通过 printf 输出,将信息发给网页,网页通过。毕业论文-基于linux系统的智能家居远程控制系统设计
相关推荐
表示要求 必须 满足尺度不变性、 位移不变性和旋转不变性 这 3 个特征。 尺度不变性是满足的。 在滤波提取算法中 ,位移不变性是通过确定指纹图像的中心参考点来实现的。 图像的旋转不变性可以通过在匹配阶段建立多角度旋转特征向量来实现。 滤波特征的提取算法包括 4 个步骤 : 一是: 确定指纹图像的中心参考点 , 以及要处理的指纹区域 , 记为 ROI 区域 ; 二是: 以参考点为中心 , 对
onfiguration [1]. In particular, for a motor built in a pletely sealed pressor, a shaft sensor is difficult to apply due to the degradation of the sensor reliability in high temperature and the need
. 活塞故障 由于发动机的长期使用摩擦、磨损及安装、调整维修不当等原因造成发动机活塞销套磨损以后必然使连杆铜套与活塞之间的间隙增大,这将导致在内燃机运转时连杆与活塞销的冲击作用增强。 这种冲击激励的变化会影响活塞横向撞击气缸套并使机体的振动响应发生变化。 汽车发动机典型故障定性分析 曲柄连杆机构典型故障定性分析 连杆小头铜套磨损后使间隙增大,导致连杆与活塞的冲击作用增强
先要对 硫酸管道 所处的环境以及 硫酸管道 输送进行调查,抓住做到对不同的状况,发挥硫酸管道 防腐的最佳方法,提高硫酸管道防腐的整体技术水平。 在酸碱管道最常见的腐蚀性介质有土壤、水、酸碱液体和大气 【 7】。 ( 1)水腐蚀性调查主要包括: ① 用于与水接触的钢的腐蚀速率的测定。 ② 根据工程测量溶解的 CO2, H2S 的实际要求, pH 值和电导率。 ( 2) 腐蚀性酸和碱碱液态水,硫化
阵字符 160种和 5*10点阵字符 32种。 CGRAM是为用户编写特殊字符 留用的,它的容量仅 64字节、可以自定义 8个 5*7点阵字符或者 4个 5*10点阵字符。 AC可以存储 DDRAM和 CGRAM的地址,如果地址码随指令写入 IR,则 IR自动把地址码装入 AC,同时选择 DDRAM或者 CGRAM单元。 LM016L的各引脚功能为: D0~ D7(三态)为数据总线;