版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程設(shè)計(jì)課程名稱(chēng):嵌入式設(shè)計(jì)設(shè)計(jì)題目:智能家居監(jiān)控系統(tǒng)班級(jí):2111學(xué)號(hào):姓名:指引教師:完畢時(shí)間:/12/9哈爾濱工程大學(xué)教務(wù)處制
嵌入式設(shè)計(jì)報(bào)告智能家居監(jiān)控系統(tǒng)班級(jí):教師評(píng)語(yǔ):教師簽名:12月課程設(shè)計(jì)題目智能家居監(jiān)控系統(tǒng)目和背景智能家居又稱(chēng)智能住宅,正朝著具備無(wú)線(xiàn)遠(yuǎn)程控制、多媒體控制、高速數(shù)據(jù)傳播等功能方向發(fā)展,其核心技術(shù)為兼容性強(qiáng)家庭控制器和滿(mǎn)足信息傳播需要家庭網(wǎng)絡(luò)。當(dāng)前,傳播網(wǎng)絡(luò)多采用綜合布線(xiàn)技術(shù),限制了系統(tǒng)應(yīng)用場(chǎng)合,并且費(fèi)用較高,采用無(wú)線(xiàn)方式構(gòu)建靈活便捷智能家居安全監(jiān)控系統(tǒng),成為當(dāng)前主流趨勢(shì)。當(dāng)前,應(yīng)用于智能家居無(wú)線(xiàn)通信技術(shù)重要涉及Ir-DA紅外線(xiàn)技術(shù)、藍(lán)牙技術(shù)和Zigbee技術(shù)等,Ir-DA屬于短距離、點(diǎn)對(duì)點(diǎn)半雙工通信方式,使用不便且失誤率高,不合用于家庭組網(wǎng)方式;藍(lán)牙技術(shù)則由于網(wǎng)絡(luò)容量有限,成本較高,不適于節(jié)點(diǎn)較多家庭網(wǎng)絡(luò)應(yīng)用。本項(xiàng)目通過(guò)采用傳播范疇適中、安全可靠、網(wǎng)絡(luò)容量大Zigbee技術(shù),設(shè)計(jì)智能家居遠(yuǎn)程監(jiān)控系統(tǒng)。重要內(nèi)容1)信息顯示。2)照明控制。3)家電控制。4)入侵監(jiān)測(cè)。5)煙感監(jiān)測(cè)。6)溫度、濕度監(jiān)測(cè)。7)遠(yuǎn)程監(jiān)控,數(shù)據(jù)透?jìng)鳌?)選項(xiàng)設(shè)立。采用工具辦法硬件環(huán)境1:NEUEBD-ARM開(kāi)發(fā)套件硬件環(huán)境2:CC2530開(kāi)發(fā)套件軟件環(huán)境:1.UCOS2.5.1,提供UCOS內(nèi)核構(gòu)建2.ADS1.2、IAR7.51,提供集成開(kāi)發(fā)環(huán)境進(jìn)度安排1-2天:完畢項(xiàng)目規(guī)定書(shū)、模塊籌劃書(shū)、系統(tǒng)設(shè)計(jì)書(shū)、RTM3-4天:完畢模塊概要設(shè)計(jì)、模塊概要設(shè)計(jì)書(shū)、模塊接口定義書(shū)、模塊間EVENT流和數(shù)據(jù)流系統(tǒng)圖5-7天:完畢模塊詳細(xì)設(shè)計(jì)模塊詳細(xì)設(shè)計(jì)書(shū)8-13天:完畢模塊代碼模塊代碼
14-16天:完畢項(xiàng)目報(bào)告參照資料1目和背景智能家居又稱(chēng)智能住宅,正朝著具備無(wú)線(xiàn)遠(yuǎn)程控制、多媒體控制、高速數(shù)據(jù)傳播等功能方向發(fā)展,其核心技術(shù)為兼容性強(qiáng)家庭控制器和滿(mǎn)足信息傳播需要家庭網(wǎng)絡(luò)。當(dāng)前,傳播網(wǎng)絡(luò)多采用綜合布線(xiàn)技術(shù),限制了系統(tǒng)應(yīng)用場(chǎng)合,并且費(fèi)用較高,采用無(wú)線(xiàn)方式構(gòu)建靈活便捷智能家居安全監(jiān)控系統(tǒng),成為當(dāng)前主流趨勢(shì)。當(dāng)前,應(yīng)用于智能家居無(wú)線(xiàn)通信技術(shù)重要涉及Ir-DA紅外線(xiàn)技術(shù)、藍(lán)牙技術(shù)和Zigbee技術(shù)等,Ir-DA屬于短距離、點(diǎn)對(duì)點(diǎn)半雙工通信方式,使用不便且失誤率高,不合用于家庭組網(wǎng)方式;藍(lán)牙技術(shù)則由于網(wǎng)絡(luò)容量有限,成本較高,不適于節(jié)點(diǎn)較多家庭網(wǎng)絡(luò)應(yīng)用。本項(xiàng)目通過(guò)采用傳播范疇適中、安全可靠、網(wǎng)絡(luò)容量大Zigbee技術(shù),設(shè)計(jì)智能家居遠(yuǎn)程監(jiān)控系統(tǒng)。2功能描述和模塊設(shè)計(jì)圖1:智能家居監(jiān)控平臺(tái)示意圖LCD主菜單顯示顯示當(dāng)前時(shí)間日期,電器開(kāi)關(guān)狀態(tài),與否鬧鐘啟動(dòng)。顯示顧客操作菜單。顯示設(shè)立菜單。照明控制使用LED、AD(1個(gè))硬件資源。使用LED可模仿家中重要房間照明。通過(guò)照明控制子菜單控制燈亮滅。如果啟動(dòng)了自動(dòng)光控功能,通過(guò)AD采集光照參數(shù)可實(shí)現(xiàn)照明自動(dòng)開(kāi)關(guān)。此外可通過(guò)小鍵盤(pán)模仿電燈開(kāi)關(guān)。家電控制使用LED硬件資源。通過(guò)家電控制子菜單對(duì)家中電器進(jìn)行開(kāi)關(guān)控制。相應(yīng)家電開(kāi)關(guān)信息以及鬧鐘與否啟動(dòng)都在LCD主菜單中有顯示。通過(guò)設(shè)立菜單傳遞信息可定期開(kāi)關(guān)電器以及實(shí)現(xiàn)鬧鐘功能。定期時(shí)間到LCD屏?xí)詣?dòng)彈出提示框并且家電狀態(tài)發(fā)生變化。4)入侵報(bào)警控制使用紅外傳感器硬件資源。使用紅外傳感器或接近開(kāi)關(guān)采集數(shù)據(jù),判斷有無(wú)人員進(jìn)入室內(nèi)。報(bào)警參數(shù)有默認(rèn)值,也可由顧客設(shè)立,可通過(guò)設(shè)立功能完畢。如遇報(bào)警,報(bào)警信息在屏幕上顯示,同步發(fā)出觸發(fā)蜂鳴器報(bào)警。5)溫濕度控制使用溫濕度傳感器硬件資源。使用溫濕度傳感器采集溫濕度數(shù)據(jù),將監(jiān)測(cè)數(shù)據(jù)顯示在LCD上。報(bào)警參數(shù)有默認(rèn)值,也可由顧客設(shè)立,可通過(guò)設(shè)立功能完畢。如遇報(bào)警,觸發(fā)蜂鳴器動(dòng)作,同步啟動(dòng)空調(diào)。6)遠(yuǎn)程監(jiān)控。終端系統(tǒng)將發(fā)生事件數(shù)據(jù)定期通過(guò)Zigbee傳播到服務(wù)器,服務(wù)器可依照實(shí)際狀況進(jìn)行家電設(shè)備遠(yuǎn)端控制。7)設(shè)立功能完畢如下內(nèi)容設(shè)立:哪些房間采用自動(dòng)控制功能。3系統(tǒng)構(gòu)造圖2系統(tǒng)構(gòu)造圖圖3通信合同框架圖4設(shè)計(jì)參照框架4代碼實(shí)現(xiàn)4.1模塊實(shí)現(xiàn)4.1.1賬戶(hù)登錄模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明lineEditTextChanged(QStrings)模塊內(nèi)部函數(shù)判斷文本與否發(fā)生變化槽函數(shù)zeroClicked()~nineClicked()模塊內(nèi)部函數(shù)0~9數(shù)字輸入鍵盤(pán)loginBtnClicked()模塊外部函數(shù)登陸按鍵,進(jìn)入主頁(yè)面forgrtPasswordClicked()模塊外部函數(shù)忘掉密碼按鍵,進(jìn)入密碼修改頁(yè)面4.1.2主界面模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明mainWidget2smartHomeAppliances()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入智能家電模塊。mainWidget2securityWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入安防系統(tǒng)模塊。mainWidget2toolWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入工具娛樂(lè)模塊。Back_clicked模塊外部函數(shù)返回登陸界面。4.1.3智能家電模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明smartHomeAppliances2lightWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入燈控界面。smartHomeAppliances2waterHeaterWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入熱水器控制界面。smartHomeAppliances2temperatureWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入空調(diào)控制界面。smartHomeAppliances2humidityWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入加濕器控制界面。smartHomeAppliances2curtainWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入窗簾控制界面。smartHomeAppliances2televisionWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入電視控制界面Back_clicked模塊外部函數(shù)返回上一界面4.1.3.1燈控模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明lightTurnOn()模塊外部函數(shù)點(diǎn)擊按鈕打開(kāi)燈。lightTurnOff()模塊外部函數(shù)點(diǎn)擊按鈕關(guān)閉燈Back_clicked模塊外部函數(shù)返回上一界面4.1.3.2溫度模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明changeSwitch(inta)模塊內(nèi)部函數(shù)顯示空調(diào)開(kāi)光狀態(tài)。addTemClicked()模塊內(nèi)部函數(shù)顯示空調(diào)溫度。addTemClicked()模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送溫度加信息。subTemClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送溫度減信息。Back_clicked模塊外部函數(shù)返回上一界面4.1.3.3濕度模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明showRh(intrh)模塊內(nèi)部函數(shù)顯示當(dāng)前濕度。changeSwitch(inta)模塊內(nèi)部函數(shù)顯示當(dāng)前開(kāi)關(guān)狀態(tài)。changeOnClicked()模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送開(kāi)狀態(tài)。changeOffClicked()模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送關(guān)狀態(tài)。addBtnClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送濕度加狀態(tài)。subBtnClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送濕度減狀態(tài)。Back_clicked模塊外部函數(shù)返回上一界面4.1.3.4熱水器模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明showTem(inttem);模塊內(nèi)部函數(shù)顯示當(dāng)前溫度。changeSwitch(inta)模塊內(nèi)部函數(shù)顯示開(kāi)關(guān)狀態(tài)。changeOnClicked()模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送開(kāi)狀態(tài)。changeOffClicked()模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送關(guān)狀態(tài)。addBtnClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送升高水溫狀態(tài)。subBtnClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送減少水溫狀態(tài)。Back_clicked模塊外部函數(shù)返回上一界面4.1.3.5窗簾模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明showSlider(intti);模塊內(nèi)部函數(shù)顯示窗簾位置。sliderValue(inta);模塊內(nèi)部函數(shù)讀取窗簾當(dāng)前位置。Back_clicked模塊外部函數(shù)返回上一界面4.1.3.6電視模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明openTvClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送電視開(kāi)信號(hào)。closeTvClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送電視關(guān)信號(hào)addVmeClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送音量+信號(hào)subVolumeClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送音量減信號(hào)addProgramClicked()模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送節(jié)目+信號(hào)subProgramClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送節(jié)目-信號(hào)Back_clicked模塊外部函數(shù)返回上一界面4.1.4安防模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明securityWidget2infraredWidget();模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入紅外報(bào)警。security2LockWidget();模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入遠(yuǎn)程控制門(mén)鎖security2SmokeWidget();模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入煙霧報(bào)警Back_clicked模塊外部函數(shù)返回上一界面4.1.4.1紅外報(bào)警模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明showLocation(inta);模塊內(nèi)部函數(shù)顯示觸發(fā)位置changeOnClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送紅外啟動(dòng)信號(hào)changeOfficked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送紅外啟動(dòng)信號(hào)Back_clicked模塊外部函數(shù)返回上一界面4.1.4.2煙霧報(bào)警模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明changeSmoke(int);模塊內(nèi)部函數(shù)顯示當(dāng)前煙霧濃度。Back_clicked模塊外部函數(shù)返回上一界面4.1.4.3門(mén)鎖控制模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明changeLockState(int);模塊內(nèi)部函數(shù)顯示當(dāng)前門(mén)鎖狀態(tài)changeOn()模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送門(mén)開(kāi)狀態(tài)changeOff();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送門(mén)開(kāi)狀態(tài)Back_clicked模塊外部函數(shù)返回上一界面4.1.5小工具模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明toolWidget2calendarWidget();模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入日歷toolWidget2stopwatchWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入秒表toolWidget2cWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入計(jì)算器toolWidget2alarmWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入鬧鐘toolWidget2mianWindow()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入畫(huà)板toolWidget2gameWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入2048游戲toolWidget2clockWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入時(shí)鐘4.1.5.1日歷模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生打卡時(shí)間。button_schedual_clicked模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入日程界面Select_cases模塊外部函數(shù)選取代辦事項(xiàng),并顯示代辦事項(xiàng)詳細(xì)內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面4.1.5.2時(shí)鐘模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生打卡時(shí)間。button_schedual_clicked模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入日程界面Select_cases模塊外部函數(shù)選取代辦事項(xiàng),并顯示代辦事項(xiàng)詳細(xì)內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面4.1.5.3鬧鐘模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生打卡時(shí)間。button_schedual_clicked模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入日程界面Select_cases模塊外部函數(shù)選取代辦事項(xiàng),并顯示代辦事項(xiàng)詳細(xì)內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面4.1.5.4秒表模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明startStopwatchClicked()模塊內(nèi)部函數(shù)秒表開(kāi)始計(jì)時(shí)resetStopwatchClicked()模塊內(nèi)部函數(shù)秒表重新計(jì)時(shí)stopStopwatchClicked()模塊內(nèi)部函數(shù)秒表停止計(jì)時(shí)4.1.5.5畫(huà)板模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明voidopen()模塊內(nèi)部函數(shù)打開(kāi)圖片voidsave()模塊內(nèi)部函數(shù)保存圖片voidpenColor()模塊內(nèi)部函數(shù)變化畫(huà)筆顏色voidpenWidth()模塊內(nèi)部函數(shù)變化畫(huà)筆寬度voidpenBrush()模塊內(nèi)部函數(shù)筆刷4.1.5.6計(jì)算器模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生打卡時(shí)間。button_schedual_clicked模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入日程界面Select_cases模塊外部函數(shù)選取代辦事項(xiàng),并顯示代辦事項(xiàng)詳細(xì)內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面4.1.5.7小游戲模塊函數(shù)名稱(chēng)函數(shù)類(lèi)型概要闡明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生打卡時(shí)間。resizeEvent(QResizeEvent*)模塊內(nèi)部函數(shù)窗口尺寸變化觸發(fā)事件onScoreInc(int)模塊內(nèi)部函數(shù)解決分?jǐn)?shù)增長(zhǎng)信號(hào)槽函數(shù)onGameOver()模塊內(nèi)部函數(shù)解決游戲結(jié)束信號(hào)槽函數(shù)onWin()模塊內(nèi)部函數(shù)解決游戲獲勝信號(hào)槽函數(shù)Main.c:#include<QApplication>#include<QTextCodec>#include"head.h"#include"openpassword.h"intsfd;voidinit_network();intmain(intargc,char*argv[]){QApplicationa(argc,argv);QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));openPasswordw;w.show();init_network();returna.exec();}voidinit_network(){sfd=socket(AF_INET,SOCK_DGRAM,0);if(sfd<0){qDebug("socket()failed!");return;}structsockaddr_inaddr;bzero(&addr,sizeof(addr));addr.sin_family=AF_INET;addr.sin_port=htons(9999);addr.sin_addr.s_addr=htonl(INADDR_ANY);intret;ret=bind(sfd,(structsockaddr*)&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(newUi::mainWidget){ui->setupUi(this);ui->dateTimeEdit->setDate(QDate::currentDate());//ui->dateTimeEdit->setTime(QTime::currentTime());//QTimer*timer=newQTimer(this);connect(timer,SIGNAL(timeout()),this,SLOT(timeoutslot()));//timeoutslot()timer->start(1000);sha=newsmartHomeAppliances;sw=newsecurityWidget;tw=newtoolWidget;}mainWidget.c:mainWidget::~mainWidget(){deleteui;}voidmainWidget::show(){QWidget::show();showFullScreen();}voidmainWidget::mainWidget2smartHomeAppliances(){QPalettepalette;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();}voidmainWidget::mainWidget2securityWidget(){QPalettepalette;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();}voidmainWidget::mainWidget2toolWidget(){//tw->show();QPalettepalette;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();}voidmainWidget::timeoutslot(){QDatedate=ui->dateTimeEdit->date();QTimetime=ui->dateTimeEdit->time();QTimetime1(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(newUi::infraredWidget){ui->setupUi(this);}infraredWidget::~infraredWidget(){deleteui;}voidinfraredWidget::show(){QWidget::show();showFullScreen();}voidinfraredWidget::changeOnClicked(){structsockaddr_inpeer_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);inta=1;sendto(sfd,&a,sizeof(a),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));ui->textBrowser->append("");}voidinfraredWidget::changeOffClicked(){structsockaddr_inpeer_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);inta=0;sendto(sfd,&a,sizeof(a),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));ui->textBrowser->append("");}voidinfraredWidget::showLocation(inta){if(a==0){ui->textBrowser->append();}if(a==1){ui->textBrowser->append(");}}門(mén)鎖控制:#include"lockwidget.h"#include"ui_lockwidget.h"#include<QLabel>#include<QAbstractButton>#include"head.h"lockWidget::lockWidget(QWidget*parent):QWidget(parent),ui(newUi::lockWidget){ui->setupUi(this);//rt=newrecvThread;//QObject::connect(rt,SIGNAL(lockStateChange(int)),//this,SLOT(changeLockState(int)));//rt->start();}lockWidget::~lockWidget(){deleteui;}voidlockWidget::show(){QWidget::show();showFullScreen();}voidlockWidget::changeOn(){//ui->btn1->setChecked(true);ui->lineEdit->setText("ThegateisON!");structsockaddr_inaddr;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");//intkind=5;////sendto(sfd,&kind,sizeof(kind),0,(structsockaddr*)&addr,sizeof(addr));intbool2=1;sendto(sfd,&bool2,sizeof(bool2),0,(structsockaddr*)&addr,sizeof(addr));//ui->label_2->setText("theGATEisOn!");}voidlockWidget::changeOff(){ui->lineEdit->setText("ThegateisOFF!");//ui->btn2->setChecked(true);//ui->label_2->setText("theGateisOFF!");structsockaddr_inaddr;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");//intkind=5;////sendto(sfd,&kind,sizeof(kind),0,(structsockaddr*)&addr,sizeof(addr));intbool2=0;sendto(sfd,&bool2,sizeof(bool2),0,(structsockaddr*)&addr,sizeof(addr));}voidlockWidget::changeLockState(intbool1){if(bool1==0){//ui->setupUi(this);//ui->Ui_lockWidget;//close();//show();//update();//repaint();ui->lineEdit->setText("theGATEisOFF!");//qApp->processEvents();//this->updateGeometry();//qDebug("recv1111");}elseif(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("theGATEisOn!");//this->changeOff();//this->changeOn();//ui->setupUi(this);//ui->retranslateUi(lockWidget);//update();ui->lineEdit->setText("theGATEisON!");//this->updateGeometry();//qDebug("recv2222");}}遠(yuǎn)程燈控:#include"lockwidget.h"#include"ui_lockwidget.h"#include<QLabel>#include<QAbstractButton>#include"head.h"lockWidget::lockWidget(QWidget*parent):QWidget(parent),ui(newUi::lockWidget){ui->setupUi(this);//rt=newrecvThread;//QObject::connect(rt,SIGNAL(lockStateChange(int)),//this,SLOT(changeLockState(int)));//rt->start();}lockWidget::~lockWidget(){deleteui;}voidlockWidget::show(){QWidget::show();showFullScreen();}voidlockWidget::changeOn(){//ui->btn1->setChecked(true);ui->lineEdit->setText("ThegateisON!");structsockaddr_inaddr;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");//intkind=5;////sendto(sfd,&kind,sizeof(kind),0,(structsockaddr*)&addr,sizeof(addr));intbool2=1;sendto(sfd,&bool2,sizeof(bool2),0,(structsockaddr*)&addr,sizeof(addr));//ui->label_2->setText("theGATEisOn!");}voidlockWidget::changeOff(){ui->lineEdit->setText("ThegateisOFF!");//ui->btn2->setChecked(true);//ui->label_2->setText("theGateisOFF!");structsockaddr_inaddr;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");//intkind=5;////sendto(sfd,&kind,sizeof(kind),0,(structsockaddr*)&addr,sizeof(addr));intbool2=0;sendto(sfd,&bool2,sizeof(bool2),0,(structsockaddr*)&addr,sizeof(addr));}voidlockWidget::changeLockState(intbool1){if(bool1==0){//ui->setupUi(this);//ui->Ui_lockWidget;//close();//show();//update();//repaint();ui->lineEdit->setText("theGATEisOFF!");//qApp->processEvents();//this->updateGeometry();//qDebug("recv1111");}elseif(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("theGATEisOn!");//this->changeOff();//this->changeOn();//ui->setupUi(this);//ui->retranslateUi(lockWidget);//update();ui->lineEdit->setText("theGATEisON!");//this->updateGeometry();//qDebug("recv2222");}}濕度檢測(cè):#include"humiditywidget.h"#include"ui_humiditywidget.h"#include"head.h"humidityWidget::humidityWidget(QWidget*parent):QWidget(parent),ui(newUi::humidityWidget){ui->setupUi(this);}humidityWidget::~humidityWidget(){deleteui;}voidhumidityWidget::show(){QWidget::show();showFullScreen();}voidhumidityWidget::showRh(intrh){ui->lcdNumber->display(rh);}voidhumidityWidget::changeSwitch(inta){if(a==1){ui->closeButton->setChecked(false);ui->openButton->setChecked(true);}elseif(a==0){ui->openButton->setChecked(false);ui->closeButton->setChecked(true);}}voidhumidityWidget::changeOnClicked(){structsockaddr_inpeer_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);inttype=1;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));inta=1;sendto(sfd,&a,sizeof(a),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));}voidhumidityWidget::changeOffClicked(){structsockaddr_inpeer_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);inttype=1;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));inta=0;sendto(sfd,&a,sizeof(a),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));}voidhumidityWidget::addBtnClicked(){intrh=ui->lcdNumber->intValue();rh++;if(rh>=100){rh=10;}ui->lcdNumber->display(rh);structsockaddr_inpeer_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);inttype=2;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));sendto(sfd,&rh,sizeof(rh),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));}voidhumidityWidget::subBtnClicked(){intrh=ui->lcdNumber->intValue();rh--;if(rh<=0){rh=0;}ui->lcdNumber->display(rh);structsockaddr_inpeer_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);inttype=2;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));sendto(sfd,&rh,sizeof(rh),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));}電視模塊:#include"televisionwidget.h"#include"ui_televisionwidget.h"#include"head.h"televisionWidget::televisionWidget(QWidget*parent):QWidget(parent),ui(newUi::televisionWidget){ui->setupUi(this);}televisionWidget::~televisionWidget(){deleteui;}voidtelevisionWidget::show(){QWidget::show();showFullScreen();}voidtelevisionWidget::addProgramClicked(){structsockaddr_inpeer_addr;bzero(&peer_addr,sizeof(peer_addr));peer_addr.sin_family=AF_INET;peer_addr.sin_port=htons(TV_PORT);peer_addr.sin_addr.s_addr=inet_addr(TV_IP);inttype=2;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));intb=1;sendto(sfd,&b,sizeof(b),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));}voidtelevisionWidget::subProgramClicked(){structsockaddr_inpeer_addr;bzero(&peer_addr,sizeof(peer_addr));peer_addr.sin_family=AF_INET;peer_addr.sin_port=htons(TV_PORT);peer_addr.sin_addr.s_addr=inet_addr(TV_IP);inttype=2;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));intb=0;sendto(sfd,&b,sizeof(b),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));}voidtelevisionWidget::addVolumeClicked(){structsockaddr_inpeer_addr;bzero(&peer_addr,sizeof(peer_addr));peer_addr.sin_family=AF_INET;peer_addr.sin_port=htons(TV_PORT);peer_addr.sin_addr.s_addr=inet_addr(TV_IP);inttype=3;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));intc=1;sendto(sfd,&c,sizeof(c),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));}voidtelevisionWidget::subVolumeClicked(){structsockaddr_inpeer_addr;bzero(&peer_addr,sizeof(peer_addr));peer_addr.sin_family=AF_INET;peer_addr.sin_port=htons(TV_PORT);peer_addr.sin_addr.s_addr=inet_addr(TV_IP);inttype=3;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));intc=0;sendto(sfd,&c,sizeof(c),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));}voidtelevisionWidget::openTvClicked(){structsockaddr_inpeer_addr;bzero(&peer_addr,sizeof(peer_addr));peer_addr.sin_family=AF_INET;peer_addr.sin_port=htons(TV_PORT);peer_addr.sin_addr.s_addr=inet_addr(TV_IP);inttype=1;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));inta=1;sendto(sfd,&a,sizeof(a),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));ui->addProgram->setEnabled(true);ui->addVolum->setEnabled(true);ui->subVolum->setEnabled(true);ui->subProgram->setEnabled(true);}voidtelevisionWidget::closeTvClicked(){structsockaddr_inpeer_addr;bzero(&peer_addr,sizeof(peer_addr));peer_addr.sin_family=AF_INET;peer_addr.sin_port=htons(TV_PORT);peer_addr.sin_addr.s_addr=inet_addr(TV_IP);inttype=1;sendto(sfd,&type,sizeof(type),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));inta=0;sendto(sfd,&a,sizeof(a),0,(structsockaddr*)&peer_addr,sizeof(peer_addr));ui->addProgram->setEnabled(false);ui->addVolum->setEnabled(false);ui->subVolum->setEnabled(false);ui->subProgram->setEnabled(false);}熱水器模塊:#include"waterheaterwidget.h"#include"ui_waterheaterwidget.h"#include"head.h"waterHeaterWidget::waterHeaterWidget(QWidget*parent):QWidget(parent),ui(newUi::waterHeaterWidget){ui->setupUi(this);}waterHeaterWidget::~waterHeaterWidget(){deleteui;}voidwaterHeaterWidget::show(){QWidget::show();showFullScreen();}voidwaterHeaterWidget::showTem(inttem){ui->lcdNumber->display(tem);}voidwaterHeaterWidget::changeSwitch(inta){if(a==1){ui->closeButton->setChecked(false);u
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年道釘項(xiàng)目可行性研究報(bào)告
- 2024年熱收縮材料項(xiàng)目可行性研究報(bào)告
- 2024年中國(guó)路軌壓板市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)美術(shù)陳列櫥市場(chǎng)調(diào)查研究報(bào)告
- 青海大學(xué)昆侖學(xué)院《供應(yīng)鏈電子商務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 青海大學(xué)《市場(chǎng)風(fēng)險(xiǎn)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 青海建筑職業(yè)技術(shù)學(xué)院《食品保藏學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 青海柴達(dá)木職業(yè)技術(shù)學(xué)院《倉(cāng)儲(chǔ)與配送管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 初中體育項(xiàng)目技巧及規(guī)則介紹
- 個(gè)人職業(yè)規(guī)劃與能力提升
- 起重機(jī)械安全日管控、周排查、月調(diào)度制度
- 人教版七年級(jí)《道德與法治》上冊(cè)各單元測(cè)試題 期末測(cè)試題(8套,含答案)
- 2023高考普通高等學(xué)校招生全國(guó)統(tǒng)一考試數(shù)學(xué)試題合集(共9套)
- T-CCTASH 002-2022 夾軌器標(biāo)準(zhǔn)規(guī)范
- WMT8-2022二手乘用車(chē)出口質(zhì)量要求
- 退役軍人技能培訓(xùn)課件
- 醫(yī)院住院病人滿(mǎn)意度調(diào)查表
- 藥店安全檢查與風(fēng)險(xiǎn)防控
- C語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng) 完整版
- 2024年醫(yī)療器械培訓(xùn)計(jì)劃
- 排球場(chǎng)租用協(xié)議
評(píng)論
0/150
提交評(píng)論