智能家居系统项目报告(第五组)

时间:2024.4.20

实习项目报告书

                          深圳亿道电子有限公司 

                      四川师范大学计算机科学院学院

                      五组: 徐勇,李萍,高攀,康逸飞,王洁

1.前言... 3

1.1项目背景介绍... 3

2.软件需求说明... 3

2.1 项目概述... 3

2.2 客户分析... 3

2.3实现技术... 4

3.总体设计... 4

3.1 系统功能和特点... 4

3.2 系统框架图... 5

4.详细设计(项目实施)... 5

4.1硬件原理图设计/PCB设计... 5

4.2 元器件的焊接... 7

4.3电路板调试... 7

4.4 单片机程序调试... 8

4.5 单片机与ARM串口通信... 8

4.6 本地控制(嵌入式Linux操作系统)... 10

4.6.1交叉编译工具的移植... 10

4.6.2 Qt/Qtopia的移植与编程... 11

4.7远程监控... 14

4.7.1网络通信编程... 14

5.实习收获... 15


1.前言

1.1项目背景介绍

 据近期的一项国家统计资料显示,中国富有阶层正在形成,该部分家庭户均年收入在5.6万元以上,人口约4460万人,1400多万户,占城市人口的 10%,总人口的3.5%,占全社会消费购买力总和6万亿元的17%左右,因此主要针对这部分人的智能家居系统其市场总量为1400万套。正是在这种情况下,近两年来,智能家居系统的销售数量和总销售额都呈现连续攀升的势头,并且随着人们消费意识的提高,还会有更多的人选用。

   中国在住宅小区、商业办公场所使用智能管理系统的需求将达到50-60亿人民币,在20##年以后的三年内,每年将以不低于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.0

l  视频处理-- Intel开源的OpenCV

l  GSM通信     -- SMS的AT指令集

l  处理器芯片:PXA270

3.总体设计

3.1 系统功能和特点

安全监控:包括各种报警探测器的讯息采集,开关门报警等如门磁、紧急按钮、红外探测、煤气探测、火警探测等,并完成与住宅小区物业管理和110报警的联网。

3.2 系统框架图

4.详细设计(项目实施)

4.1硬件原理图设计/PCB设计

根据功能分析,设计出合理的原理图,

PCB设计:
根据原理图,可以进行PCB原理图的设计.

4.2 元器件的焊接

1 )电阻器焊接

  按图将电阻器准确装人规定位置。要求标记向上,字向一致。装完同一种规格后再装另一种规格,尽量使电阻器的高低一致。焊完后将露在印制电路板表面多余引脚齐根剪去。

  2 )电容器焊接

  将电容器按图装人规定位置,并注意有极性电容器其 “ + ” 与 “ - ” 极不能接错,电容器上的标记方向要易看可见。先装玻璃釉电容器、有机介质电容器、瓷介电容器,最后装电解电容器。

  3 )二极管的焊接

  二极管焊接要注意以下几点:第一,注意阳极阴极的极性,不能装错;第二,型号标记要易看可见;第三,焊接立式二极管时,对最短引线焊接时间不能超过 2S 。

  4 )三极管焊接

  注意 e 、 b 、 c 三引线位置插接正确;焊接时间尽可能短,焊接时用镊子夹住引线脚,以利散热。焊接大功率三极管时,若需加装散热片,应将接触面平整、打磨光滑后再紧固,若要求加垫绝缘薄膜时,切勿忘记加薄膜。管脚与电路板上需连接时,要用塑料导线。

  5 )集成电路焊接

  首先按图纸要求,检查型号、引脚位置是否符合要求。焊接时先焊边沿的二只引脚,以使其定位,然后再从左到右自上而下逐个焊接。

  对于电容器、二极管、三极管露在印制电路板面上多余引脚均需齐根剪去。

  焊接顺序

  元器件装焊顺序依次为:电阻器、电容器、二极管、三极管、集成电路、大功率管,其它元器件为先小后大。

4.3电路板调试

可以把电源部分先装好,然后就上电检测电源输出电压是否正常。如果在上电时您没有太大的把握(即使有很大的把握,也建议您加上一个保险丝,以防万一),可考虑使用带限流功能的可调稳压电源。先预设好过流保护电流,然后将稳压电电源的电压值慢慢往上调,并监测输入电流、输入电压以及输出电压。如果往上调的过程中,没有出现过流保护等问题,且输出电压也达到了正常,则说明电源部分正确。反之,则要断开电源,寻找故障点,并重复上述步骤,直到电源正常为止。接下来逐渐安装其它模块,每安装好一个模块,就上电测试一下,上电时也是按照上面的步骤,以避免因为设计错误或/和安装错误而导致过流而烧坏元件。

4.4 单片机程序调试

分别有:LED显示,LED响应按钮显示,测试存储器实验,定时实验等

4.5 单片机与ARM串口通信

#include <reg52.h>

#include"string.h"

sbit P1_0=P1^0;

sbit P1_1=P1^1;

sbit P1_2=P1^2;

sbit P1_3=P1^3;

sbit P2_0 = P2^0; 

sbit P2_1 = P2^1;

sbit P2_2 = P2^2;

int count=5;

bit Contrl;

void Inital()

{           

       TMOD = 0x20;

       SCON = 0x50;

       PCON = 0x00;

       TH1 = 0xFD;

       TL1 = 0xFD;

       TR1 = 1;

       ES  = 1;

       EA =1 ;

    P2 = 0xFF ;

      

}

void  delay()

{      

      unsigned  int i,j,m;

    for(i=20;i>0;i--)

       for(j=30;j>0;j--)

       for(m=256;m>0;m--);

}

void send(unsigned char a )

{    

       SBUF = a;   

       while(!TI);

       TI = 0;

}

void recieve()     interrupt  4

{

       unsigned char b;

      

       b = SBUF;

       RI = 0;

       if(b == '%' )

              count=0;

       else if (count<5)

       {  

              count++;

              if (b=='0')

                     Contrl = 1;

              else

                     Contrl = 0;

       }                                

       switch ( count)   

       {

              case 1:P1_0=Contrl;break;

             case 2:P1_1=Contrl;break;

             case 3:P1_2=Contrl;break;

             case 4:P1_3=Contrl;break;

       }

       }

void  main()

{

       Inital() ;

       while( 1 )

       {    

              if(P2_0 == 0)

              {

                     send ( '#' );

                     send ( '$' );

                     send ( '#' );

                     send ( '1' );

                    

              }

              else if (  P2_1 == 0)

              {

                     send ( '#' );

                     send ( '$' );

                     send ( '#' );

                     send ( '2' );

              }

          else if  ( 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查看目录,再用make clean 清楚以前的编译的结果。最后用make进行编译。至此bootLoader

安装完成。

l  随后进行内核的编译。先把linux-2.4.21-51Board_EDR.tar.gz拷贝到共享目录下,用同样的方法进行解压。然后进入/pxa270/kernel目录下,用make clean 清除以前编译,再make. 随后make xsbase270_config,再次用make oldconfig,再次用make dep寻找依赖关系,最后make zImage

l   

l  最后进行驱动程序分析、bootLoader分析

4.6.2 Qt/Qtopia的移植与编程

l  Qt/Qtopia的移植、使用与编程、

l  基于ARM微处器编译和运行平台

设置环境参量

?         export QTDIR=$PWD/qt-2.3.7-arm

?         export LD_LIBRARY_PATH=$QTDIR/lib

?         export PATH=$QTDIR/bin:$PATH

?         export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++

编译

?         ./configure -xplatform linux-arm-g++

?         Make

设置环境变量

?    export QTDIR=$PWD/qt-2.3.7-arm

?    export QPEDIR=$PWD/qtopia-1.7.0-arm

?    export LD_LIBRARY_PATH=/usr/lib:$QTDIR/lib:$QPEDIR/lib

?    export PATH=$QTDIR/bin:$PATH

?    export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++

编译

?    ./configure -platform linux-arm-g++

?    make

编译步骤:

tar xfz qt-embedded-2.3.10-free.tar.gz
export QTEDIR=$PWD/qt-2.3.10-target
tar xfz qt-x11-2.3.2.tar.gz
export QT2DIR=$PWD/qt-2.3.2
tar xfz qtopia-free-source-2.1.1.tar.gz(解压后qtopia-free-2.1.1改名为qtopia-2.1.1-target)
export QPEDIR=$PWD/qtopia-2.1.1-target
tar xfz tmake-1.13.tar.gz
export TMAKEDIR=$PWD/tmake-1.13
export TMAKEPATH=$PWD/tmake-1.13/lib/qws/linux-arm-g++
export PATH=$TMAKEDIR/bin:$PATH
cd qt-2.3.2
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -no-xft
make
make -C tools/qvfb
cd ..
cd qt-2.3.10-target
export QTDIR=$PWD
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
mkdir bin
cp $QT2DIR/bin/uic bin
cp $QT2DIR/tools/qvfb/qvfb bin
cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/
./configure -xplatform linux-arm-g++ -qconfig qpe -qvfb -thread -system-jpeg -gif -depths 4,8,16,32
make
cd ..
hybus-arm-linux-R1.1
tar xzf e2fsprogs-1.35.tar.gz
cd e2fsprogs-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-linux
make install lib/uuid/ 

cd ..
cd qtopia-2.1.1-host
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
cp src/libraries/qtopia/custom-linux-ipaq-g++.cpp src/libraries/qtopia/custom-linux-arm-g++.cpp
cp src/libraries/qtopia/custom-linux-ipaq-g++.h src/libraries/qtopia/custom-linux-arm-g++.h
./configure -xplatform linux-arm-g++
make

l  Qt编程工具的使用方法

Step 2:设置Qt环境

export QTDIR=/usr/local/arm-linux/qt_toolchain/qt-2.3.7

export QPEDIR=/usr/local/arm-linux/qt_toolchain /qtopia-1.7.0

export LD_LIBRARY_PATH=/usr/local/arm-linux/qt_toolchain /qt-2.3.7/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/usr/local/arm-linux/qt_toolchain /qt-2.3.2/lib:$LD_LIBRARY_PATH

export TMAKEDIR=/usr/local/arm-linux/qt_toolchain/tmake-1.11

export TMAKEPATH=/usr/local/arm-linux/qt_toolchain /tmake-1.11/lib/qws/linux-arm-g++

export PATH=/usr/local/arm-linux/qt_toolchain /tmake-1.11/bin:$PATH

Step 3 :使用Desinger进行图形化设计

       #cd /usr/local/arm-linux/qt_toolchain /qt-2.3.2/bin

       #./designer

Step 4: 编译.h和.cpp文件

       # uic -o test.h test.ui

       #uic -o test.cpp -impl test.h test.ui

Step 5: 修改main.cpp文件

#include <qapplication.h>

#include "test.h"

int main( int argc, char ** argv )

{

    QApplication a( argc, argv );

    Form1 w;

    w.show();

    return a.exec();

}

      

Step 6: 修改tmake文件的相关配置

       #vim $TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf

       TMAKE_LINK = arm-linux-g++

       TMAKE_LINK_SHLIB = arm-linux-g++

       TMAKE_LIBS_QT = -lqte -lts

Step 7: 编译工程文件

       #progen -t app.t -o test.pro

       #tmake -o Makefile test.pro

Step 8: 编译

#make clean

#make

Setp 9: 完成C++父类与子类继承之间的转换

4.7远程监控

4.7.1网络通信编程

(1)、基于PC平台的server网络程序编译

将光盘提供的server的源代码复制到硬盘中(假设将源码复制在/root/work目录下)

?    对源码进行编译

[root@localhos work]$cd server

[root@localhost server]$make

?    在PC机上运行server程序,运行界面如图1所示

[root@localhost server]$./server

(2)、基于目标平台的client网络程序编译

将光盘提供的client.tar的源代码复制到硬盘中,设置交叉编译工具参数(arm-linux-g++)

对源代码进行编译

[root@localhost work]$cd client

[root@serialarm]$make

将编译好的程序client下载到开发板的/usr/qpe/bin目录下

在目标板上利用chmod命令修改client的属性

[root@bin]$ chmod 755 client

在开发板的/usr/qpe/apps/Applications目录下新建client.desktop文件(内容如下);

[Desktop Entry]

Comment=A network Program

Exec=client

Icon=Clock

Type=Application

Name=Clock

Name[zh_CN]=网络通讯测试

5.实习收获

l  通过这次实习,我们了解了并掌握了开发一个项目的流程,从项目立案到需求分析再到进行实际的项目开发和后期的测试和维护。并了解学会了现在的公司中实际做项目中的对各种成本的估计和人员的安排以及开发周期的正确估计。

l  通过这次实习我们深刻开发一个项目团队合作的重要性。硬件人员和软件人员只有合理的分工并要互相了解对方的进度和功能,项目才能事半功倍的完成。

l  通过这次实习,让我更加深刻的了解了当前流行的嵌入式技术,基于ARM的嵌入式技术在现实中运用越来越广泛,而嵌入式技术对人员的要求是:要有扎实的软硬基础知识,又要有开发项目的实际经验。所以要成为一个嵌入式的工程师,应该要亲身去从事几个项目的开发,并要有相应的老师指导和勤奋的进取心。才能有所成就。这也让我深刻的理解了嵌入式人才”难以复制性”的独特性。

l  通过这次实习也在一定程度上规范了我们编码的规范和养成良好的编习惯。

更多相关推荐:
智能家居开题报告 模板

毕业设计论文开题报告题目一种基于物联网的智能家居系统设计学院班级学生姓名开题日期专业学号指导教师23456

智能家居开题报告

智能家居开题报告1选题名称智能家居网络与软件系统方案设计21选题的背景智能家居的概念出现的很早但是一直未曾有真正的具体案例出现这是运用与家庭的通讯设备电器等设备通过传输系统连接到一个智能系统上以实现智能家居能给...

智能家居开题报告

烟台大学文经学院毕业设计开题报告学生姓名:学号:专业:通信工程设计题目:智能家居控制系统班级:文通104-1指导教师:2014年3月1日3.本课题拟采用的研究手段(途径)和可行性分析研究手段:1.通过查阅资料了…

智能家居的开题报告

燕山大学本科毕业设计(论文)开题报告课题名称:基于单片机AT89C2051和无线通信模块nRF2401的智能家居(收)课题性质:理工类:工程设计课题来源:自选学院(系):信息科学与工程学院专业:电子信息工程年级…

智能家居毕业设计开题报告

毕业设计论文开题报告题目一种智能家居系统的设计学院班级学生姓名开题日期专业学号指导教师一种智能家居系统的设计开题报告34567

智能家居开题报告最终版

中国科学技术大学软件学院软件工程实验项目环节开题报告成员名单熊亚平孙海安李启超导师李春杰工程领域研究方向开题时间中国科学技术大学软件学院填表日期20xx年11月25日项目名一简况23二选题依据4三课题内容及具体...

智能家居开题报告

毕业设计论文开题报告专业班级姓名指导教师姓名指导教师职称20xx年3月1日3本课题拟采用的研究手段途径和可行性分析研究手段1通过查阅资料了解无线传感器网络的智能家居系统组成和功能智能家居系统的组成智能家居控制器...

毕业论文基于单片机的智能窗帘 开题报告

附件3毕业设计论文开题报告学生填

基于单片机的智能台灯开题报告

参考文献1赵国强智能台灯科学启蒙20xx第Z1期2赵继文传感器与应用电路设计北京北京科学出版社20xx363黄继昌电子元器件应用手册北京北京人民邮电出版社20xx年54赵辉Protel99电子线路CAD北京北京...

开题报告-智能家居中压力传感器的数据实时采集与存储

开题报告智能家居中压力传感器的数据实时采集与存储一选题背景研究意义及文献综述1选题背景随着通信技术的创新发展各种新技术的综合应用打破人们传统的生产生活方式给人类社会带来了巨大的变化信息技术的提高以及人们生活水平...

开题报告智能电动窗帘控制器设计

淮阴工学院毕业设计论文开题报告学生姓名专业设计论文题目指导教师20xx年2月20日学号测控技术与仪器智能电动窗帘控制器设计软件部分叶小婷毕业设计论文开题报告毕业设计论文开题报告毕业设计论文开题报告毕业设计论文开...

通信20xx_巴少晶_ 智能家庭Zigbee组网与信息采集技术的研究_开题报告

山东大学本科毕业论文设计开题报告姓名巴少晶学号20xx00120xx1学院信息科学与工程学院专业通信工程指导教师填表日期许宏吉山东大学教务处制论文写作计划

智能家居开题报告(33篇)