版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、"纟爾濾z理2 4課程設(shè)計課程名稱: 嵌入式設(shè)計設(shè)計題目:智能家居監(jiān)控系統(tǒng)班 級: 20122111學(xué) 號: 2012211127姓 名:指導(dǎo)教師: 完成時間: 2015/12/9哈爾濱工程大學(xué)教務(wù)處制嵌入式設(shè)計報告智能家居監(jiān)控系統(tǒng)班 級 :教師評語:教師簽名:2015年12月課程設(shè)計題目智能家居監(jiān)控系統(tǒng)目的和背景智能家居又稱智能住宅,正朝著具備無線遠程控制、多媒體 控制、高速數(shù)據(jù)傳輸?shù)裙δ?的方向發(fā)展,其關(guān)鍵技術(shù)為兼容性強 的家庭控制器和滿足信息傳輸需要的家庭網(wǎng)絡(luò)。目前,傳輸網(wǎng)絡(luò)多采用綜合布線技術(shù),限制了系統(tǒng)應(yīng)用場所,而且費用較高,采 用無線方式構(gòu)建靈活便捷的智能家居安全監(jiān)控系統(tǒng),
2、成為當前的 主流趨勢。目前,應(yīng)用于智能家居的無線通信技術(shù)主要包括 Ir-DA紅外 線技術(shù)、監(jiān)牙技術(shù)和Zigbee技術(shù)等,Ir-DA屬于短距離、點對 點的半雙工通信方式,使用不便且失誤率高,不適用于家 庭的組 網(wǎng)方式;藍牙技術(shù)則因為網(wǎng)絡(luò)容量有限,成本較高,不適于節(jié)點 較多的家庭網(wǎng)絡(luò)應(yīng)用。本項目通過采用傳輸范圍適中、安全可靠、網(wǎng)絡(luò)容量大的 Zigbee技術(shù),設(shè)計智能豕居 遠程監(jiān)控系統(tǒng)。主要內(nèi)容1)信息顯示。2)照明控制。3)家電控制。4)入侵監(jiān)測。5)煙感監(jiān)測。6)溫度、濕度監(jiān)測。7)遠程監(jiān)控,數(shù)據(jù)透傳。8)選項設(shè)置。采用的工具方法硬件環(huán)境1 : NEUEBD-ARMF發(fā)套件 硬件環(huán)境2 : CC
3、2530開發(fā)套件軟件環(huán)境:1. UCOS2.5.1,提供UCOS內(nèi)核構(gòu)建2. ADS1.2、IAR7.51,提供集成開發(fā)環(huán)境進度安排1-2天:完成項目要求書、模塊計劃書、系統(tǒng)設(shè)計書、RTM3-4天:完成模塊概要設(shè)計、模塊概要設(shè)計書、模塊接口定義書、 模塊間EVENT流和數(shù)據(jù)流系統(tǒng)圖5-7天:完成模塊詳細設(shè)計模塊詳細設(shè)計書8-13天:完成模塊代碼 模塊代碼14-16天:完成項目報告參考資料1目的和背景智能家居又稱智能住宅,正朝著具備無線遠程控制、多媒體控制、高速數(shù)據(jù)傳輸?shù)?功能的方向發(fā)展,其關(guān)鍵技術(shù)為兼容性強的家庭控制器和滿足信息傳輸需要的家庭網(wǎng) 絡(luò)。目前,傳輸網(wǎng)絡(luò)多采用綜合布線技術(shù),限制了系統(tǒng)
4、應(yīng)用場所,而且費用較高,采 用無線方式構(gòu)建靈 活便捷的智能家居安全監(jiān)控系統(tǒng),成為當前的主流趨勢。目前,應(yīng)用于智能家居的無線通信技術(shù)主要包括Ir-DA 紅外線技術(shù)、藍牙技術(shù)和Zigbee技術(shù)等,Ir-DA屬于短距離、點對點的半雙工通信方式,使用不便且失誤率高, 不適用于家 庭的組網(wǎng)方式;藍牙技術(shù)則因為網(wǎng)絡(luò)容量有限,成本較高,不適于節(jié)點較 多的家庭網(wǎng)絡(luò)應(yīng)用。本項目通過采用傳輸范圍適中、安全可靠、網(wǎng)絡(luò)容量大的Zigbee技術(shù),設(shè)計智能家居遠程監(jiān)控系統(tǒng)。2功能描述和模塊設(shè)計圖1:智能家居監(jiān)控平臺示意圖1)LCD主菜單顯示顯示當前時間日期,電器開關(guān)狀態(tài),是否鬧鐘開啟。顯示用戶操作菜單。顯示設(shè)置 菜單。2
5、)照明控制使用LED、AD( 1個)硬件資源。使用LED可模仿家中主要房間的照明。通過照明控制子菜單控制燈亮滅。如果開啟了自動光控功能,通過AD采集的光照參數(shù)可實現(xiàn)照明的自動開關(guān)。另外可通過小鍵盤模擬電燈開關(guān)。3)家電控制使用LED硬件資源。通過家電控制子菜單對家中電器進行開關(guān)控制。相應(yīng)家電開關(guān) 信息以及鬧鐘是否開啟都在LCD主菜單中有顯示。通過設(shè)置菜單傳遞的信息可定時 開關(guān)電器以及實現(xiàn)鬧鐘功能。定時時間到 LCD屏?xí)詣訌棾鎏崾究虿⑶壹译姞顟B(tài)發(fā) 生改變。4)入侵報警控制使用紅外傳感器硬件資源。使用紅外傳感器或接近開關(guān)采集數(shù)據(jù),判斷有無人員進 入室內(nèi)。報警參數(shù)有默認值,也可由用戶設(shè)置,可通過設(shè)
6、置功能完成。如遇報警,報警信息在屏幕上顯示,同時發(fā)出觸發(fā)蜂鳴器報警。5)溫濕度控制使用溫濕度傳感器硬件資源。使用溫濕度傳感器采集溫濕度數(shù)據(jù),將監(jiān)測數(shù)據(jù)顯示 在LCD上。報警參數(shù)有默認值,也可由用戶設(shè)置,可通過設(shè)置功能完成。如遇報警,觸發(fā)蜂鳴器動作,同時開啟空調(diào)。6)遠程監(jiān)控。終端系統(tǒng)將發(fā)生的事件數(shù)據(jù)定期通過 Zigbee傳輸?shù)椒?wù)器,服務(wù)器可根據(jù)實際情 況進行家電設(shè)備的遠端控制。7)設(shè)置功能完成以下內(nèi)容的設(shè)置:哪些房間采用自動控制功能。3系統(tǒng)結(jié)構(gòu)溫度濕度”采繪嘆塊E虹夕卜 感頭奠塊揑制1燈克1摧制1Zigbee無線傳感網(wǎng)絡(luò)協(xié)諛器-串口誦倍控制系統(tǒng)SmartHome控制系統(tǒng)圖2系統(tǒng)結(jié)構(gòu)圖1
7、77;冊SAPATS4WLME-5AF圖3通信協(xié)議框架睦用層建輯圧集功層圖4設(shè)計參考框架4代碼實現(xiàn)4.1模塊的實現(xiàn)4.1.1賬戶登錄模塊函數(shù)名稱函數(shù)類型概要說明lineEditTextChanged(QString s)模塊內(nèi)部函數(shù)判斷文本是否發(fā)生改變的槽函數(shù)zeroClicked() nin eClicked()模塊內(nèi)部函數(shù)09的數(shù)字輸入鍵盤logi nBtn Clicked()模塊外部函數(shù)登陸按鍵,進入主頁面forgrtPasswordClicked()模塊外部函數(shù)忘記密碼按鍵,進入密碼修改頁面4.1.2 主界面模塊函數(shù)名稱函數(shù)類型概要說明mai nWidget2smartHomeAppl
8、ia nces()模塊外部函數(shù)點擊按鈕進入智能家電模塊。mai nWidget2securityWidget()模塊外部函數(shù)點擊按鈕進入安防系統(tǒng)模塊。mai nWidget2toolWidget()模塊外部函數(shù)點擊按鈕進入工具娛樂模塊。Back_clicked模塊外部函數(shù)返回登陸界面。4.1.3智能家電模塊函數(shù)名稱函數(shù)類型概要說明smartHomeApplia nces2lightWidget()模塊外部函數(shù)點擊按鈕進入燈控界面。smartHomeApplia nces2waterHeaterWidget()模塊外部函數(shù)點擊按鈕進入熱水器控制界面。smartHomeApplia nces2te
9、mperatureWidget()模塊外部函數(shù)點擊按鈕進入空調(diào)控制界面。smartHomeApplia nces2humidityWidget()模塊外部函數(shù)點擊按鈕進入加濕器控制界面。smartHomeApplia nces2curta in Widget()模塊外部函數(shù)點擊按鈕進入窗簾控制界面。smartHomeApplia nces2televisi on Widget()模塊外部函數(shù)點擊按鈕進入電視控制界面Back_clicked模塊外部函數(shù)返回上一界面4.1.3.1 燈控模塊函數(shù)名稱函數(shù)類型概要說明lightTurn 0n()模塊外部函數(shù)點擊按鈕打開燈。lightTurnOff()模
10、塊外部函數(shù)點擊按鈕關(guān)閉燈Back_clicked模塊外部函數(shù)返回上一界面4.1.3.2 溫度模塊函數(shù)名稱函數(shù)類型概要說明cha ngeSwitch(i nt a)模塊內(nèi)部函數(shù)顯示空調(diào)的開光狀態(tài)。addTemClicked()模塊內(nèi)部函數(shù)顯示空調(diào)的溫度。addTemClicked()模塊外部函數(shù)點擊按鈕發(fā)送溫度加信息。subT emClicked();模塊外部函數(shù)點擊按鈕發(fā)送溫度減信息。Back_clicked模塊外部函數(shù)返回上一界面4.133濕度模塊函數(shù)名稱函數(shù)類型概要說明showRh(i nt rh)模塊內(nèi)部函數(shù)顯示當前濕度。cha ngeSwitch(i nt a)模塊內(nèi)部函數(shù)顯示當前開關(guān)
11、狀態(tài)。changeOn Clicked()模塊外部函數(shù)點擊按鈕發(fā)送開狀態(tài)。cha ngeOfClicked()模塊外部函數(shù)點擊按鈕發(fā)送關(guān)狀態(tài)。addBt nClicked();模塊外部函數(shù)點擊按鈕發(fā)送濕度加狀態(tài)。subBt nClicked();模塊外部函數(shù)點擊按鈕發(fā)送濕度減狀態(tài)。Back_clicked模塊外部函數(shù)返回上一界面4.134熱水器模塊函數(shù)名稱函數(shù)類型概要說明showTem(i nt tem);模塊內(nèi)部函數(shù)顯示當前溫度。cha ngeSwitch(i nt a)模塊內(nèi)部函數(shù)顯示開關(guān)狀態(tài)。changeOn Clicked()模塊外部函數(shù)點擊按鈕發(fā)送開狀態(tài)。cha ngeOfClick
12、ed()模塊外部函數(shù)點擊按鈕發(fā)送關(guān)狀態(tài)。addBt nClicked();模塊外部函數(shù)點擊按鈕發(fā)送升咼水溫狀態(tài)。subBt nClicked();模塊外部函數(shù)點擊按鈕發(fā)送降低水溫狀態(tài)。Back_clicked模塊外部函數(shù)返回上一界面4.1.3.5窗簾模塊函數(shù)名稱函數(shù)類型概要說明showSlider( int ti );模塊內(nèi)部函數(shù)顯示窗簾的位置。sliderValue(i nt a);模塊內(nèi)部函數(shù)讀取窗簾的當前位置。Back_clicked模塊外部函數(shù)返回上一界面4.1.3.6電視模塊函數(shù)名稱函數(shù)類型概要說明ope nTvClicked();模塊外部函數(shù)點擊按鈕發(fā)送電視開的信號。closeTv
13、Clicked();模塊外部函數(shù)點擊按鈕發(fā)送電視關(guān)的信號addVmeClicked();模塊外部函數(shù)點擊按鈕發(fā)送音量+信號subVolumeClicked();模塊外部函數(shù)點擊按鈕發(fā)送音量減信號addProgramClicked()模塊外部函數(shù)點擊按鈕發(fā)送節(jié)目+信號subProgramClicked();模塊外部函數(shù)點擊按鈕發(fā)送節(jié)目-信號Back_clicked模塊外部函數(shù)返回上一界面4.1.4 安防模塊函數(shù)名稱函數(shù)類型概要說明securityWidget2 in fraredWidget();模塊外部函數(shù)點擊按鈕進入紅外報警。security2LockWidget();模塊外部函數(shù)點擊按鈕進
14、入遠程控制門鎖security2SmokeWidget();模塊外部函數(shù)點擊按鈕進入煙霧報警Back_clicked模塊外部函數(shù)返回上一界面4.141紅外報警模塊函數(shù)名稱函數(shù)類型概要說明showLocati on (i nt a);模塊內(nèi)部函數(shù)顯示觸發(fā)的位置cha ngeOn Clicked();模塊外部函數(shù)點擊按鈕發(fā)送紅外開啟信號cha ngeOfficked();模塊外部函數(shù)點擊按鈕發(fā)送紅外開啟信號Back_clicked模塊外部函數(shù)返回上一界面4.1.4.2 煙霧報警模塊函數(shù)名稱函數(shù)類型概要說明cha ngeSmoke(i nt);模塊內(nèi)部函數(shù)顯示當前煙霧的濃度。Back_clicked
15、模塊外部函數(shù)返回上一界面4.1.4.3 門鎖控制模塊函數(shù)名稱函數(shù)類型概要說明cha ngeLockState(i nt );模塊內(nèi)部函數(shù)顯示當前門的鎖的狀態(tài)cha ngeOn()模塊外部函數(shù)點擊按鈕發(fā)送門開的狀態(tài)changeOff ();模塊外部函數(shù)點擊按鈕發(fā)送門開的狀態(tài)Back_clicked模塊外部函數(shù)返回上一界面4.1.5小工具模塊函數(shù)名稱函數(shù)類型概要說明toolWidget2calendarWidget();模塊外部函數(shù)點擊按鈕進入日歷toolWidget2stopwatchWidget()模塊外部函數(shù)點擊按鈕進入秒表toolWidget2cWidget()模塊外部函數(shù)點擊按鈕進入計算
16、器toolWidget2alarmWidget()模塊外部函數(shù)點擊按鈕進入鬧鐘toolWidget2mia nWin dow()模塊外部函數(shù)點擊按鈕進入畫板toolWidget2gameWidget()模塊外部函數(shù)點擊按鈕進入2048游戲toolWidget2clockWidget()模塊外部函數(shù)點擊按鈕進入時鐘4.1.5.1日歷模塊函數(shù)名稱函數(shù)類型概要說明selfi nfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個人基本信息,顯示醫(yī)生的打卡時間。butt on _schedual_clicked模塊外部函數(shù)點擊按鈕進入日程界面Select_cases模塊外部函數(shù)選擇代辦事項,并顯示代辦事項的具體
17、內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面4.1.5.2 時鐘模塊函數(shù)名稱函數(shù)類型概要說明selfi nfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個人基本信息,顯示醫(yī)生的打卡時間。butt on _schedual_clicked模塊外部函數(shù)點擊按鈕進入日程界面Select_cases模塊外部函數(shù)選擇代辦事項,并顯示代辦事項的具體內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面4.1.5.3 鬧鐘模塊函數(shù)名稱函數(shù)類型概要說明selfi nfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個人基本信息,顯示醫(yī)生的打卡時間。butt on _schedual_clicked模塊外部函數(shù)點擊按鈕進
18、入日程界面Select_cases模塊外部函數(shù)選擇代辦事項,并顯示代辦事項的具體內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面4.1.5.4 秒表模塊函數(shù)名稱函數(shù)類型概要說明startStopwatchClicked()模塊內(nèi)部函數(shù)秒表開始計時resetStopwatchClicked()模塊內(nèi)部函數(shù)秒表重新計時stopStopwatchClicked()模塊內(nèi)部函數(shù)秒表停止計時4.1.5.5 畫板模塊函數(shù)名稱函數(shù)類型概要說明void ope n()模塊內(nèi)部函數(shù)打開圖片void save()模塊內(nèi)部函數(shù)保存圖片void pen Color()模塊內(nèi)部函數(shù)改變畫筆顏色void pen Wi
19、dth()模塊內(nèi)部函數(shù)改變畫筆寬度void pen Brush()模塊內(nèi)部函數(shù)筆刷4.1.5.6 計算器模塊函數(shù)名稱函數(shù)類型概要說明selfi nfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個人基本信息,顯示醫(yī)生的打卡時間。butt on _schedual_clicked模塊外部函數(shù)點擊按鈕進入日程界面Select_cases模塊外部函數(shù)選擇代辦事項,并顯示代辦事項的具體內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面4.1.5.7 小游戲模塊函數(shù)名稱函數(shù)類型概要說明selfi nfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個人基本信息,顯示醫(yī)生的打卡時間。resizeEvent(QResize
20、Event *)模塊內(nèi)部函數(shù)窗口尺寸改變觸發(fā)的事件on Score In c(i nt)模塊內(nèi)部函數(shù)處理分數(shù)增加信號的槽函數(shù)on GameOver()模塊內(nèi)部函數(shù)處理游戲結(jié)束信號的槽函數(shù)onWin ()模塊內(nèi)部函數(shù)處理游戲獲勝信號的槽函數(shù)Main.c: #include <QApplication>#include <QTextCodec>#include "head.h"#include "openpassword.h"int sfd;void init_network();int main(int argc, char *ar
21、gv)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();v
22、oid 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
23、,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->setupU
24、i(this);ui->dateTimeEdit->setDate(QDate:currentDate();/ ui->dateTimeEdit->setTime(QTime:currentTime();/QTimer *timer=new QTimer(this);timer->start(1000);connect(timer,SIGNAL(timeout(),this,SLOT(timeoutslot();/timeoutslot()sha = new smartHomeAppliances;sw = new securityWidget;tw = new
25、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:IgnoreAspectRati
26、o,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.pn
27、g").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:Ba
28、ckground,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->da
29、te();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"#includ
30、e "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;bzer
31、o(&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 in
32、fraredWidget: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
33、(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<QAbstractButt
34、on>#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
35、: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(
36、"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 GA TE is On!");void lockWidget:ch
37、angeOff()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_ad
38、dr("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);/u
39、i->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->
40、;setChecked(false);/ ui->btn1->setChecked(true);/ ui->label_2->update();/ui->label_2->setText("the GA TE is On!");/ this->changeOff();/ this->changeOn();/ ui->setupUi(this);/ ui->retranslateUi(lockWidget);/ update();ui->lineEdit->setText("the GATE i
41、s 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:lockWidg
42、et)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-
43、>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*)&
44、amp;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);/
45、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*)&
46、amp;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
47、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-&g
48、t;setText("the GA TE 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 "humidityw
49、idget.h"#include "ui_humiditywidget.h"#include "head.h"humidityWidget:humidityWidget(QWidget *parent) :QWidget(parent),ui(new Ui:humidityWidget)ui->setupUi(this);humidityWidget:humidityWidget()delete ui;void humidityWidget:show()QWidget:show(); showFullScreen();void humid
50、ityWidget:showRh(int rh) ui->lcdNumber->display(rh);void humidityWidget:changeSwitch(int a)if(a=1)ui->closeButton->setChecked(false); ui->openButton->setChecked(true);else if(a=0)ui->openButton->setChecked(false);ui->closeButton->setChecked(true);void humidityWidget:cha
51、ngeOnClicked()struct sockaddr_in peer_addr;bzero(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(HUMIDITY_PORT);peer_addr.sin_addr.s_addr = inet_addr(HUMIDITY_IP);int type=1;sendto(sfd,&type,sizeof(type),0,(struct sockaddr*)&peer_addr,sizeof(peer_ad
52、dr);int a=1;sendto(sfd,&a,sizeof(a),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr);void humidityWidget:changeOffClicked()struct sockaddr_in peer_addr;bzero(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(HUMIDITY_PORT);peer_addr.sin_addr.s_addr =
53、inet_addr(HUMIDITY_IP);int type=1;sendto(sfd,&type,sizeof(type),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr);int a=0;sendto(sfd,&a,sizeof(a),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr);void humidityWidget:addBtnClicked()int rh = ui->lcdNumber->intValue();rh +;if(rh>
54、=100)rh=10;ui->lcdNumber->display(rh);struct sockaddr_in peer_addr;bzero(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(HUMIDITY_PORT);peer_addr.sin_addr.s_addr = inet_addr(HUMIDITY_IP);int type=2;sendto(sfd,&type,sizeof(type),0,(struct sockaddr*
55、)&peer_addr,sizeof(peer_addr); void humidityWidget:subBtnClicked()int rh = ui->lcdNumber->intValue();rh -;if(rh<=0)rh=0;ui->lcdNumber->display(rh);struct sockaddr_in peer_addr; bzero(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(HUMIDIT
56、Y_PORT);peer_addr.sin_addr.s_addr = inet_addr(HUMIDITY_IP);int type=2;sendto(sfd,&type,sizeof(type),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr); sendto(sfd,&rh,sizeof(rh),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr);電視模塊:#include "televisionwidget.h"#include "ui_televisionwidget.h"#inclu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版學(xué)校節(jié)日慶典活動承包運營合同3篇
- 2025年度個人商標權(quán)抵押擔保許可協(xié)議書4篇
- 二零二五年度高速公路邊坡草皮修復(fù)合同模板3篇
- 網(wǎng)絡(luò)素養(yǎng)在學(xué)生職業(yè)發(fā)展中的重要性
- 二零二五年度車輛牌照租賃數(shù)據(jù)共享協(xié)議4篇
- 當代企業(yè)網(wǎng)絡(luò)安全風(fēng)險評估與防范措施匯報
- 教學(xué)資料數(shù)字化的應(yīng)用場景及案例分析
- 二零二五年度承臺基坑開挖施工勞務(wù)分包合同施工人員資質(zhì)要求4篇
- 數(shù)海導(dǎo)航小學(xué)數(shù)學(xué)知識框架構(gòu)建
- 安全知識教育在兒童成長中的角色
- 體育概論(第二版)課件第三章體育目的
- 無人駕駛航空器安全操作理論復(fù)習(xí)測試附答案
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡介
- 老年人心理健康量表(含評分)
- 《小兒靜脈輸液速度》課件
- 營銷人員薪酬標準及績效考核辦法
- 醫(yī)院每日消防巡查記錄表
- 運輸企業(yè)重大危險源辨識及排查制度
- 運動技能學(xué)習(xí)與控制課件第五章運動中的中樞控制
評論
0/150
提交評論