欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    嵌入式项目书.docx

    • 资源ID:1707503       资源大小:436.35KB        全文页数:41页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式项目书.docx

    课 程 设 计课程名称: 嵌入式设计 设计题目: 智能家居监控系统 班 级: 20122111 学 号: 2012211127 姓 名: 指导教师: 完成时间: 2015/12/9 哈尔滨工程大学教务处 制嵌入式设计报告智能家居监控系统班级:教师评语:教师签名:2015年12月课程设计题目智能家居监控系统目的和背景 智能家居又称智能住宅,正朝着具备无线远程控制、多媒体控制、高速数据传输等功能 的方向发展,其关键技术为兼容性强的家庭控制器和满足信息传输需要的家庭网络。目前, 传输网络多采用综合布线技术,限制了系统应用场所,而且费用较高,采用无线方式构建灵 活便捷的智能家居安全监控系统,成为当前的主流趋势。目前,应用于智能家居的无线通信技术主要包括 Ir-DA 红外线技术、蓝牙技术和 Zigbee 技术等,Ir-DA 属于短距离、点对点的半双工通信方式,使用不便且失误率高,不适用于家 庭的组网方式;蓝牙技术则因为网络容量有限,成本较高,不适于节点较多的家庭网络应用。本项目通过采用传输范围适中、安全可靠、网络容量大的 Zigbee 技术,设计智能家居 远程监控系统。主要内容1) 信息显示。2) 照明控制。3) 家电控制。4) 入侵监测。5) 烟感监测。6) 温度、 湿度监测。7) 远程监控, 数据透传。8) 选项设置。采用的工具方法硬件环境 1: NEUEBD-ARM 开发套件硬件环境 2: CC2530 开发套件软件环境:1. UCOS2.5.1,提供 UCOS 内核构建2. ADS1.2、 IAR7.51,提供集成开发环境进度安排1-2天:完成项目要求书、模块计划书、系统设计书、RTM3-4天:完成模块概要设计、模块概要设计书、模块接口定义书、模块间 EVENT 流和数据流系统图5-7天:完成模块详细设计 模块详细设计书8-13天:完成模块代码 模块代码14-16天:完成项目报告参考资料1 目的和背景 智能家居又称智能住宅,正朝着具备无线远程控制、多媒体控制、高速数据传输等功能 的方向发展,其关键技术为兼容性强的家庭控制器和满足信息传输需要的家庭网络。目前, 传输网络多采用综合布线技术,限制了系统应用场所,而且费用较高,采用无线方式构建灵 活便捷的智能家居安全监控系统,成为当前的主流趋势。目前,应用于智能家居的无线通信技术主要包括 Ir-DA 红外线技术、蓝牙技术和 Zigbee 技术等,Ir-DA 属于短距离、点对点的半双工通信方式,使用不便且失误率高,不适用于家 庭的组网方式;蓝牙技术则因为网络容量有限,成本较高,不适于节点较多的家庭网络应用。本项目通过采用传输范围适中、安全可靠、网络容量大的 Zigbee 技术,设计智能家居 远程监控系统。2 功能描述和模块设计图1:智能家居监控平台示意图1) LCD 主菜单显示显示当前时间日期,电器开关状态,是否闹钟开启。显示用户操作菜单。显示设置菜单。2) 照明控制使用 LED、 AD( 1 个) 硬件资源。使用 LED 可模仿家中主要房间的照明。通过照明控制子菜单控制灯亮灭。如果开启了自动光控功能,通过 AD 采集的光照参数可实现照明的自动开关。另外可通过小键盘模拟电灯开关。3) 家电控制使用 LED 硬件资源。通过家电控制子菜单对家中电器进行开关控制。相应家电开关信息以及闹钟是否开启都在 LCD 主菜单中有显示。通过设置菜单传递的信息可定时开关电器以及实现闹钟功能。定时时间到 LCD 屏会自动弹出提示框并且家电状态发生改变。4) 入侵报警控制使用红外传感器硬件资源。使用红外传感器或接近开关采集数据,判断有无人员进入室内。报警参数有默认值,也可由用户设置, 可通过设置功能完成。如遇报警,报警信息在屏幕上显示,同时发出触发蜂鸣器报警。5) 温湿度控制使用温湿度传感器硬件资源。使用温湿度传感器采集温湿度数据,将监测数据显示在 LCD 上。报警参数有默认值,也可由用户设置, 可通过设置功能完成。如遇报警, 触发蜂鸣器动作,同时开启空调。6) 远程监控。终端系统将发生的事件数据定期通过 Zigbee 传输到服务器,服务器可根据实际情况进行家电设备的远端控制。7) 设置功能完成以下内容的设置:哪些房间采用自动控制功能。3 系统结构图2 系统结构图图3 通信协议框架图4 设计参考框架4 代码实现4.1模块的实现4.1.1账户登录模块函数名称函数类型概要说明lineEditTextChanged(QString s)模块内部函数判断文本是否发生改变的槽函数zeroClicked()nineClicked()模块内部函数09的数字输入键盘loginBtnClicked()模块外部函数登陆按键,进入主页面forgrtPasswordClicked()模块外部函数忘记密码按键,进入密码修改页面 4.1.2主界面模块函数名称函数类型概要说明mainWidget2smartHomeAppliances()模块外部函数点击按钮进入智能家电模块。mainWidget2securityWidget()模块外部函数点击按钮进入安防系统模块。mainWidget2toolWidget()模块外部函数点击按钮进入工具娱乐模块。Back_clicked模块外部函数返回登陆界面。4.1.3智能家电模块函数名称函数类型概要说明smartHomeAppliances2lightWidget()模块外部函数点击按钮进入灯控界面。smartHomeAppliances2waterHeaterWidget()模块外部函数点击按钮进入热水器控制界面。smartHomeAppliances2temperatureWidget()模块外部函数点击按钮进入空调控制界面。smartHomeAppliances2humidityWidget()模块外部函数点击按钮进入加湿器控制界面。smartHomeAppliances2curtainWidget()模块外部函数点击按钮进入窗帘控制界面。smartHomeAppliances2televisionWidget()模块外部函数点击按钮进入电视控制界面Back_clicked模块外部函数返回上一界面 4.1.3.1灯控模块 函数名称函数类型概要说明lightTurnOn()模块外部函数点击按钮打开灯。lightTurnOff()模块外部函数点击按钮关闭灯Back_clicked模块外部函数返回上一界面 4.1.3.2温度模块函数名称函数类型概要说明changeSwitch(int a)模块内部函数显示空调的开光状态。addTemClicked()模块内部函数显示空调的温度。addTemClicked()模块外部函数点击按钮发送温度加信息。subTemClicked();模块外部函数点击按钮发送温度减信息。Back_clicked模块外部函数返回上一界面 4.1.3.3湿度模块函数名称函数类型概要说明showRh(int rh)模块内部函数显示当前湿度。changeSwitch(int a)模块内部函数显示当前开关状态。changeOnClicked()模块外部函数点击按钮发送开状态。changeOffClicked()模块外部函数点击按钮发送关状态。addBtnClicked();模块外部函数点击按钮发送湿度加状态。subBtnClicked();模块外部函数点击按钮发送湿度减状态。Back_clicked模块外部函数返回上一界面 4.1.3.4热水器模块函数名称函数类型概要说明showTem(int tem);模块内部函数显示当前温度。changeSwitch(int a)模块内部函数显示开关状态。changeOnClicked()模块外部函数点击按钮发送开状态。changeOffClicked()模块外部函数点击按钮发送关状态。addBtnClicked();模块外部函数点击按钮发送升高水温状态。subBtnClicked();模块外部函数点击按钮发送降低水温状态。Back_clicked模块外部函数返回上一界面 4.1.3.5窗帘模块函数名称函数类型概要说明showSlider( int ti );模块内部函数显示窗帘的位置。sliderValue(int a);模块内部函数读取窗帘的当前位置。Back_clicked模块外部函数返回上一界面 4.1.3.6电视模块函数名称函数类型概要说明openTvClicked();模块外部函数点击按钮发送电视开的信号。closeTvClicked();模块外部函数点击按钮发送电视关的信号addVmeClicked();模块外部函数点击按钮发送音量+信号subVolumeClicked();模块外部函数点击按钮发送音量减信号addProgramClicked()模块外部函数点击按钮发送节目+信号subProgramClicked();模块外部函数点击按钮发送节目-信号Back_clicked模块外部函数返回上一界面 4.1.4安防模块函数名称函数类型概要说明securityWidget2infraredWidget();模块外部函数点击按钮进入红外报警。security2LockWidget();模块外部函数点击按钮进入远程控制门锁security2SmokeWidget();模块外部函数点击按钮进入烟雾报警Back_clicked模块外部函数返回上一界面 4.1.4.1红外报警模块函数名称函数类型概要说明showLocation(int a);模块内部函数显示触发的位置changeOnClicked();模块外部函数点击按钮发送红外开启信号changeOfficked();模块外部函数点击按钮发送红外开启信号Back_clicked模块外部函数返回上一界面 4.1.4.2烟雾报警模块函数名称函数类型概要说明changeSmoke(int);模块内部函数显示当前烟雾的浓度。Back_clicked模块外部函数返回上一界面 4.1.4.3门锁控制模块函数名称函数类型概要说明changeLockState(int );模块内部函数显示当前门的锁的状态changeOn()模块外部函数点击按钮发送门开的状态changeOff();模块外部函数点击按钮发送门开的状态Back_clicked模块外部函数返回上一界面 4.1.5小工具模块函数名称函数类型概要说明toolWidget2calendarWidget();模块外部函数点击按钮进入日历toolWidget2stopwatchWidget()模块外部函数点击按钮进入秒表toolWidget2cWidget()模块外部函数点击按钮进入计算器toolWidget2alarmWidget()模块外部函数点击按钮进入闹钟toolWidget2mianWindow()模块外部函数点击按钮进入画板toolWidget2gameWidget()模块外部函数点击按钮进入2048游戏toolWidget2clockWidget()模块外部函数点击按钮进入时钟 4.1.5.1日历模块函数名称函数类型概要说明selfinfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。button_schedual_clicked模块外部函数点击按钮进入日程界面Select_cases模块外部函数选择代办事项,并显示代办事项的具体内容Back_clicked模块外部函数返回上一界面 4.1.5.2时钟模块函数名称函数类型概要说明selfinfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。button_schedual_clicked模块外部函数点击按钮进入日程界面Select_cases模块外部函数选择代办事项,并显示代办事项的具体内容Back_clicked模块外部函数返回上一界面 4.1.5.3闹钟模块函数名称函数类型概要说明selfinfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。button_schedual_clicked模块外部函数点击按钮进入日程界面Select_cases模块外部函数选择代办事项,并显示代办事项的具体内容Back_clicked模块外部函数返回上一界面 4.1.5.4秒表模块函数名称函数类型概要说明startStopwatchClicked()模块内部函数秒表开始计时resetStopwatchClicked()模块内部函数秒表重新计时stopStopwatchClicked()模块内部函数秒表停止计时 4.1.5.5画板模块函数名称函数类型概要说明void open()模块内部函数打开图片void save()模块内部函数保存图片void penColor()模块内部函数改变画笔颜色void penWidth()模块内部函数改变画笔宽度void penBrush()模块内部函数笔刷 4.1.5.6计算器模块函数名称函数类型概要说明selfinfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。button_schedual_clicked模块外部函数点击按钮进入日程界面Select_cases模块外部函数选择代办事项,并显示代办事项的具体内容Back_clicked模块外部函数返回上一界面 4.1.5.7小游戏模块函数名称函数类型概要说明selfinfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。resizeEvent(QResizeEvent *)模块内部函数窗口尺寸改变触发的事件onScoreInc(int)模块内部函数处理分数增加信号的槽函数onGameOver()模块内部函数处理游戏结束信号的槽函数onWin()模块内部函数处理游戏获胜信号的槽函数Main.c:#include <QApplication>#include <QTextCodec>#include "head.h"#include "openpassword.h"int sfd;void init_network();int main(int argc, char *argv) QApplication a(argc, argv); QTextCodec:setCodecForCStrings(QTextCodec:codecForName("utf-8"); QTextCodec:setCodecForLocale(QTextCodec:codecForName("utf-8"); QTextCodec:setCodecForTr(QTextCodec:codecForName("utf-8"); openPassword w; w.show(); init_network(); return a.exec();void init_network() sfd=socket(AF_INET,SOCK_DGRAM,0); if(sfd<0) qDebug("socket()failed!"); return; struct sockaddr_in addr; bzero(&addr,sizeof(addr); addr.sin_family = AF_INET; addr.sin_port=htons(9999); addr.sin_addr.s_addr = htonl(INADDR_ANY); int ret; ret=bind(sfd,(struct sockaddr*)&addr,sizeof(addr); if(ret != 0) qDebug("bind() failed!"); return; #include "mainwidget.h"#include "ui_mainwidget.h"#include "head.h"#include <QTime>/#include <QTimer>mainWidget:mainWidget(QWidget *parent) : QWidget(parent), ui(new Ui:mainWidget) ui->setupUi(this);ui->dateTimeEdit->setDate(QDate:currentDate();/ ui->dateTimeEdit->setTime(QTime:currentTime();/ QTimer *timer=new QTimer(this); connect(timer,SIGNAL(timeout(),this,SLOT(timeoutslot();/timeoutslot() timer->start(1000); sha = new smartHomeAppliances; sw = new securityWidget; tw = new toolWidget;mainWidget.c:mainWidget:mainWidget() delete ui;void mainWidget:show() QWidget:show(); showFullScreen();void mainWidget:mainWidget2smartHomeAppliances() QPalette palette; palette.setBrush(QPalette:Background,QBrush(QImage( ":/new/prefix1/jiaju.png").scaled(size(), Qt:IgnoreAspectRatio, Qt:SmoothTransformation); sha->setPalette(palette); sha->setAutoFillBackground(true); sha->setAutoFillBackground(true); sha->show(); / sha->show();void mainWidget:mainWidget2securityWidget() QPalette palette; palette.setBrush(QPalette:Background,QBrush(QImage( ":/new/prefix1/anfang.png").scaled(size(), Qt:IgnoreAspectRatio, Qt:SmoothTransformation); sw->setPalette(palette); sw->setAutoFillBackground(true);/ sw->setAutoFillBackground(true); / sha->show(); sw->show();void mainWidget:mainWidget2toolWidget() / tw->show(); QPalette palette; palette.setBrush(QPalette:Background,QBrush(QImage( ":/new/prefix1/tool.png").scaled(size(), Qt:IgnoreAspectRatio, Qt:SmoothTransformation); tw->setPalette(palette); tw->setAutoFillBackground(true); tw->setAutoFillBackground(true); tw->show();void mainWidget:timeoutslot() QDate date = ui->dateTimeEdit->date(); QTime time = ui->dateTimeEdit->time(); QTime time1(23,59,59); if(time = time1) date = date.addDays(1); time = time.addSecs(1); ui->dateTimeEdit->setDate(date); ui->dateTimeEdit->setTime(time)冰箱控制:#include "infraredwidget.h"#include "ui_infraredwidget.h"#include "head.h"infraredWidget:infraredWidget(QWidget *parent) : QWidget(parent), ui(new Ui:infraredWidget) ui->setupUi(this);infraredWidget:infraredWidget() delete ui;void infraredWidget:show() QWidget:show(); showFullScreen();void infraredWidget:changeOnClicked() struct sockaddr_in peer_addr; bzero(&peer_addr,sizeof(peer_addr); peer_addr.sin_family = AF_INET; peer_addr.sin_port = htons(INFRARED_PORT); peer_addr.sin_addr.s_addr = inet_addr(INFRARED_IP); int a=1; sendto(sfd,&a,sizeof(a),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr); ui->textBrowser->append("");void infraredWidget:changeOffClicked() struct sockaddr_in peer_addr; bzero(&peer_addr,sizeof(peer_addr); peer_addr.sin_family = AF_INET; peer_addr.sin_port = htons(INFRARED_PORT); peer_addr.sin_addr.s_addr = inet_addr(INFRARED_IP); int a=0; sendto(sfd,&a,sizeof(a),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr); ui->textBrowser->append("");void infraredWidget:showLocation(int a) if(a=0) ui->textBrowser->append(); if(a=1) ui->textBrowser->append("); 门锁控制:#include "lockwidget.h"#include "ui_lockwidget.h"#include<QLabel>#include<QAbstractButton>#include"head.h"lockWidget:lockWidget(QWidget *parent) : QWidget(parent), ui(new Ui:lockWidget) ui->setupUi(this); / rt = new recvThread; /QObject:connect(rt, SIGNAL( lockStateChange(int), / this, SLOT(changeLockState(int); / rt->start();lockWidget:lockWidget() delete ui;void lockWidget:show() QWidget:show(); showFullScreen();void lockWidget:changeOn() / ui->btn1->setChecked(true); ui->lineEdit->setText("The gate is ON!"); struct sockaddr_in addr; bzero(&addr, sizeof(addr); addr.sin_family = AF_INET; addr.sin_port = htons(7002); addr.sin_addr.s_addr = inet_addr("192.168.1.222");/ int kind = 5; / / sendto(sfd, &kind, sizeof(kind), 0, (struct sockaddr*)&addr, sizeof(addr); int bool2=1; sendto(sfd, &bool2, sizeof(bool2), 0, (struct sockaddr*)&addr, sizeof(addr);/ ui->label_2->setText("the GATE is On!");void lockWidget:changeOff() ui->lineEdit->setText("The gate is OFF!"); / ui->btn2->setChecked(true); / ui->label_2->setText("the Gate is OFF!"); struct sockaddr_in addr; bzero(&addr, sizeof(addr); addr.sin_family = AF_INET; addr.sin_port = htons(7002); addr.sin_addr.s_addr = inet_addr("192.168.1.87");/ int kind = 5; / / sendto(sfd, &kind, sizeof(kind), 0, (struct sockaddr*)&addr, sizeof(addr); int bool2=0; sendto(sfd, &bool2, sizeof(bool2), 0, (struct sockaddr*)&addr, sizeof(addr);void lockWidget:changeLockState(int bool1) if(bool1=0) / ui->setupUi(this); / ui->Ui_lockWidget; / close(); / show(); /update();/ repaint(); ui->lineEdit->setText("the GATE is OFF!"); / qApp->processEvents(); / this->updateGeometry(); / qDebug("recv1111"); else if (bool1=1) / ui->btn1->setCheckable(true); / ui->btn1->setFocus(); / ui->btn2->setChecked(false); / ui->btn1->setChecked(true); / ui->label_2->update(); / ui->label_2->setText("the GATE is On!"); / this->changeOff(); / this->changeOn(); / ui->setupUi(this); / ui->retranslateUi(lockWidget); / update(); ui->lineEdit->setText("the GATE is ON!"); / this->updateGeometry(); / qDebug("recv 2222"); 远程灯控:#include "lockwidget.h"#include "ui_lockwidget.h"#include<QLabel>#include<QAbstractButton>#include"head.h"lockWidget:lockWidget(QWidget *parent) : QWidget(parent), ui(new Ui:lockWidget) ui->setupUi(this); / rt = new recvThread; /QObject:connect(rt, SIGNAL( lockStateChange(int), / this, SLOT(changeLockState(int); / rt->start();lockWidget:lockWidget() delete ui;void lockW

    注意事项

    本文(嵌入式项目书.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开