• 473.00 KB
  • 15页

智能家居系统设计项目报告第五组

  • 15页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'-实习项目报告书深圳亿道电子有限公司四川师范大学计算机科学院学院五组:徐勇,李萍,高攀,康逸飞,王洁.-- -1.前言31.1项目背景介绍32.软件需求说明32.1项目概述32.2客户分析32.3实现技术43.总体设计43.1系统功能和特点43.2系统框架图54.详细设计(项目实施)54.1硬件原理图设计/PCB设计54.2元器件的焊接74.3电路板调试74.4单片机程序调试84.5单片机与ARM串口通信84.6本地控制(嵌入式Linux操作系统)104.6.1交叉编译工具的移植104.6.2Qt/Qtopia的移植与编程114.7远程监控144.7.1网络通信编程145.实习收获15.-- -1.前言1.1项目背景介绍 据近期的一项国家统计资料显示,中国富有阶层正在形成,该部分家庭户均年收入在5.6万元以上,人口约4460万人,1400多万户,占城市人口的10%,总人口的3.5%,占全社会消费购买力总和6万亿元的17%左右,因此主要针对这部分人的智能家居系统其市场总量为1400万套。正是在这种情况下,近两年来,智能家居系统的销售数量和总销售额都呈现连续攀升的势头,并且随着人们消费意识的提高,还会有更多的人选用。中国在住宅小区、商业办公场所使用智能管理系统的需求将达到50-60亿人民币,在2005年以后的三年内,每年将以不低于30%的速度增长。应该说智能家居产品潜在市场巨大,以前智能家居市场主要在南方沿海地区和内地大中型城市,现在已经辐射到西部地区。2.软件需求说明2.1项目概述该方案可通过传感器与家电控制扩展模块控制烟雾、红外、煤气传感器及摄像头模块来实现对家庭异常状况的采集,并通过RS232与本地控制中心进行上下位机通讯及信息交互,通过与本地控制中心相连的GSM通讯模块及无线/有线网络与户主进行互动并实现使用网络和手机短信对系统的远程控制与监视,达到家庭防火,防盗,防煤气泄露,异常景象抓拍等安全监控功能。2.2客户分析l居住空间90-120平方,所以对信号的传输距离要求不是很高;l用户在选择智能家居时都希望今后能够升级换代;l对于智能家居产品的需求也不会一样,所以要能够满足不同用户的个性化较需求;l不用一般不喜欢砸墙砸洞l家庭成员的年龄、文化均不一样,所以要使用简单化,才能被家人接受;l舒适,快乐,给人享受.-- -2.3实现技术l协议:RS232协议,TCP/IP协议等l系统:采用Linux系统l软件开发平台--嵌入式Qt-2.3.7;l用户界面—嵌入式Qtopia-1.7.0l视频处理--Intel开源的OpenCVlGSM通信--SMS的AT指令集l处理器芯片:PXA2703.总体设计3.1系统功能和特点安全监控:包括各种报警探测器的讯息采集,开关门报警等如门磁、紧急按钮、红外探测、煤气探测、火警探测等,并完成与住宅小区物业管理和110报警的联网。基于ARM芯片的控制中心(Linux操作系统,PXA270芯片)单片机模块(AT98S51)烟雾传感器(用开关控制发送信号)红外传感器(开关控制)煤气传感器(开关控制)控制对应的LED显示响应消息发送消息.-- -3.2系统框架图家电控制模块传感器基于AEM10的本地控制中心UART远程监控中心NETUSB摄像头GPRS模块USBUART4.详细设计(项目实施)4.1硬件原理图设计/PCB设计根据功能分析,设计出合理的原理图,串口MCS-51单片机(AT98S5)SP3223EB(串口芯片)排针(接外设)光耦排针(外设)LED继电器LED灯显示.-- -PCB设计:根据原理图,可以进行PCB原理图的设计..-- -4.2元器件的焊接1)电阻器焊接  按图将电阻器准确装人规定位置。要求标记向上,字向一致。装完同一种规格后再装另一种规格,尽量使电阻器的高低一致。焊完后将露在印制电路板表面多余引脚齐根剪去。  2)电容器焊接  将电容器按图装人规定位置,并注意有极性电容器其“+”与“-”极不能接错,电容器上的标记方向要易看可见。先装玻璃釉电容器、有机介质电容器、瓷介电容器,最后装电解电容器。  3)二极管的焊接  二极管焊接要注意以下几点:第一,注意阳极阴极的极性,不能装错;第二,型号标记要易看可见;第三,焊接立式二极管时,对最短引线焊接时间不能超过2S。  4)三极管焊接  注意e、b、c三引线位置插接正确;焊接时间尽可能短,焊接时用镊子夹住引线脚,以利散热。焊接大功率三极管时,若需加装散热片,应将接触面平整、打磨光滑后再紧固,若要求加垫绝缘薄膜时,切勿忘记加薄膜。管脚与电路板上需连接时,要用塑料导线。  5)集成电路焊接  首先按图纸要求,检查型号、引脚位置是否符合要求。焊接时先焊边沿的二只引脚,以使其定位,然后再从左到右自上而下逐个焊接。  对于电容器、二极管、三极管露在印制电路板面上多余引脚均需齐根剪去。  焊接顺序  元器件装焊顺序依次为:电阻器、电容器、二极管、三极管、集成电路、大功率管,其它元器件为先小后大。4.3电路板调试可以把电源部分先装好,然后就上电检测电源输出电压是否正常。如果在上电时您没有太大的把握(即使有很大的把握,也建议您加上一个保险丝,以防万一),可考虑使用带限流功能的可调稳压电源。先预设好过流保护电流,然后将稳压电电源的电压值慢慢往上调,并监测输入电流、输入电压以及输出电压。如果往上调的过程中,没有出现过流保护等问题,且输出电压也达到了正常,则说明电源部分正确。反之,则要断开电源,寻找故障点,并重复上述步骤,直到电源正常为止。接下来逐渐安装其它模块,每安装好一个模块,就上电测试一下,上电时也是按照上面的步骤,以避免因为设计错误或/和安装错误而导致过流而烧坏元件。.-- -4.4单片机程序调试分别有:LED显示,LED响应按钮显示,测试存储器实验,定时实验等4.5单片机与ARM串口通信#include#include"string.h"sbitP1_0=P1^0;sbitP1_1=P1^1;sbitP1_2=P1^2;sbitP1_3=P1^3;sbitP2_0=P2^0;sbitP2_1=P2^1;sbitP2_2=P2^2;intcount=5;bitContrl;voidInital(){TMOD=0x20;SCON=0x50;PCON=0x00;TH1=0xFD;.-- -TL1=0xFD;TR1=1;ES=1;EA=1;P2=0xFF;}voiddelay(){unsignedinti,j,m;for(i=20;i>0;i--)for(j=30;j>0;j--)for(m=256;m>0;m--);}voidsend(unsignedchara){SBUF=a;while(!TI);TI=0;}voidrecieve()interrupt4{unsignedcharb;b=SBUF;RI=0;if(b=="%")count=0;elseif(count<5){count++;if(b=="0")Contrl=1;elseContrl=0;}switch(count){case1:P1_0=Contrl;break;case2:P1_1=Contrl;break;case3:P1_2=Contrl;break;case4:P1_3=Contrl;break;.-- -}}voidmain(){Inital();while(1){if(P2_0==0){send("#");send("$");send("#");send("1");}elseif(P2_1==0){send("#");send("$");send("#");send("2");}elseif(P2_2==0){send("#");send("$");send("#");send("3");}P2=0xFF;delay();}}4.6本地控制(嵌入式Linux操作系统)4.6.1交叉编译工具的移植l先把虚拟机的Tools装上,建立共享目录,在/mnt/hgfs下面可以找到共享目录,可以实现虚拟机和主机的文件共享。l把Boot-XSBase270_010005.tar.gz.-- -拷贝到工项目下,在linux环境下复制到linux自己的目录下,再用tar–zxvf进行解压释放,用ls查看目录,再用makeclean清楚以前的编译的结果。最后用make进行编译。至此bootLoader安装完成。l随后进行内核的编译。先把linux-2.4.21-51Board_EDR.tar.gz拷贝到共享目录下,用同样的方法进行解压。然后进入/pxa270/kernel目录下,用makeclean清除以前编译,再make.随后makexsbase270_config,再次用makeoldconfig,再次用makedep寻找依赖关系,最后makezImagell最后进行驱动程序分析、bootLoader分析4.6.2Qt/Qtopia的移植与编程lQt/Qtopia的移植、使用与编程、l基于ARM微处器编译和运行平台设置环境参量•exportQTDIR=$PWD/qt-2.3.7-arm•exportLD_LIBRARY_PATH=$QTDIR/lib•exportPATH=$QTDIR/bin:$PATH•exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++编译•./configure-xplatformlinux-arm-g++•Make设置环境变量•exportQTDIR=$PWD/qt-2.3.7-arm•exportQPEDIR=$PWD/qtopia-1.7.0-arm•exportLD_LIBRARY_PATH=/usr/lib:$QTDIR/lib:$QPEDIR/lib•exportPATH=$QTDIR/bin:$PATH•exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++编译•./configure-platformlinux-arm-g++•make编译步骤:tarxfzqt-embedded-2.3.10-free.tar.gzexportQTEDIR=$PWD/qt-2.3.10-targettarxfzqt-x11-2.3.2.tar.gzexportQT2DIR=$PWD/qt-2.3.2tarxfzqtopia-free-source-2.1.1.tar.gz(解压后qtopia-free-2.1.1改名为qtopia-2.1.1-target)exportQPEDIR=$PWD/qtopia-2.1.1-targettarxfztmake-1.13.tar.gzexportTMAKEDIR=$PWD/tmake-1.13exportTMAKEPATH=$PWD/tmake-1.13/lib/qws/linux-arm-g++exportPATH=$TMAKEDIR/bin:$PATH.-- -cdqt-2.3.2exportQTDIR=$QT2DIRexportPATH=$QTDIR/bin:$PATHexportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH./configure-no-xftmakemake-Ctools/qvfbcd..cdqt-2.3.10-targetexportQTDIR=$PWDexportPATH=$QTDIR/bin:$PATHexportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHmkdirbincp$QT2DIR/bin/uicbincp$QT2DIR/tools/qvfb/qvfbbincp$QPEDIR/src/qt/qconfig-qpe.hsrc/tools/./configure-xplatformlinux-arm-g++-qconfigqpe-qvfb-thread-system-jpeg-gif-depths4,8,16,32makecd..hybus-arm-linux-R1.1tarxzfe2fsprogs-1.35.tar.gzcde2fsprogs-1.35./configure-host=arm-linux-with-cc=arm-linux-gcc-with-linker=arm-linux-ld-enable-elf-shlibs-prefix=/usr/local/hybus-arm-linux-R1.1/arm-linuxmakeinstalllib/uuid/ cd..cdqtopia-2.1.1-hostexportPATH=$QPEDIR/bin:$PATHexportLD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATHcpsrc/libraries/qtopia/custom-linux-ipaq-g++.cppsrc/libraries/qtopia/custom-linux-arm-g++.cppcpsrc/libraries/qtopia/custom-linux-ipaq-g++.hsrc/libraries/qtopia/custom-linux-arm-g++.h./configure-xplatformlinux-arm-g++makelQt编程工具的使用方法Step2:设置Qt环境exportQTDIR=/usr/local/arm-linux/qt_toolchain/qt-2.3.7exportQPEDIR=/usr/local/arm-linux/qt_toolchain/qtopia-1.7.0exportLD_LIBRARY_PATH=/usr/local/arm-linux/qt_toolchain/qt-2.3.7/lib:$LD_LIBRARY_PATHexportLD_LIBRARY_PATH=/usr/local/arm-linux/qt_toolchain/qt-2.3.2/lib:$LD_LIBRARY_PATH.-- -exportTMAKEDIR=/usr/local/arm-linux/qt_toolchain/tmake-1.11exportTMAKEPATH=/usr/local/arm-linux/qt_toolchain/tmake-1.11/lib/qws/linux-arm-g++exportPATH=/usr/local/arm-linux/qt_toolchain/tmake-1.11/bin:$PATHStep3:使用Desinger进行图形化设计#cd/usr/local/arm-linux/qt_toolchain/qt-2.3.2/bin#./designerStep4:编译.h和.cpp文件#uic-otest.htest.ui#uic-otest.cpp-impltest.htest.uiStep5:修改main.cpp文件#include#include"test.h"intmain(intargc,char**argv){QApplicationa(argc,argv);Form1w;w.show();returna.exec();}Step6:修改tmake文件的相关配置#vim$TMAKEDIR/lib/qws/linux-arm-g++/tmake.confTMAKE_LINK=arm-linux-g++.-- -TMAKE_LINK_SHLIB=arm-linux-g++TMAKE_LIBS_QT=-lqte-ltsStep7:编译工程文件#progen-tapp.t-otest.pro#tmake-oMakefiletest.proStep8:编译#makeclean#makeSetp9:完成C++父类与子类继承之间的转换4.7远程监控4.7.1网络通信编程(1)、基于PC平台的server网络程序编译将光盘提供的server的源代码复制到硬盘中(假设将源码复制在/root/work目录下)•对源码进行编译[root@localhoswork]$cdserver[root@localhostserver]$make•在PC机上运行server程序,运行界面如图1所示[root@localhostserver]$./server(2)、基于目标平台的client网络程序编译将光盘提供的client.tar的源代码复制到硬盘中,设置交叉编译工具参数(arm-linux-g++)对源代码进行编译[root@localhostwork]$cdclient[root@serialarm]$make将编译好的程序client下载到开发板的/usr/qpe/bin目录下在目标板上利用chmod命令修改client的属性[root@bin]$chmod755client在开发板的/usr/qpe/apps/Applications目录下新建client.desktop文件(内容如下);[DesktopEntry]Comment=AnetworkProgramExec=clientIcon=ClockType=ApplicationName=Clock.-- -Name[zh_CN]=网络通讯测试5.实习收获l通过这次实习,我们了解了并掌握了开发一个项目的流程,从项目立案到需求分析再到进行实际的项目开发和后期的测试和维护。并了解学会了现在的公司中实际做项目中的对各种成本的估计和人员的安排以及开发周期的正确估计。l通过这次实习我们深刻开发一个项目团队合作的重要性。硬件人员和软件人员只有合理的分工并要互相了解对方的进度和功能,项目才能事半功倍的完成。l通过这次实习,让我更加深刻的了解了当前流行的嵌入式技术,基于ARM的嵌入式技术在现实中运用越来越广泛,而嵌入式技术对人员的要求是:要有扎实的软硬基础知识,又要有开发项目的实际经验。所以要成为一个嵌入式的工程师,应该要亲身去从事几个项目的开发,并要有相应的老师指导和勤奋的进取心。才能有所成就。这也让我深刻的理解了嵌入式人才”难以复制性”的独特性。l通过这次实习也在一定程度上规范了我们编码的规范和养成良好的编习惯。.--'