




免費(fèi)預(yù)覽已結(jié)束,剩余36頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課 程 設(shè) 計(jì)課程名稱: 嵌入式設(shè)計(jì) 設(shè)計(jì)題目: 智能家居監(jiān)控系統(tǒng) 班 級(jí): 20122111 學(xué) 號(hào): 2012211127 姓 名: 指導(dǎo)教師: 完成時(shí)間: 2015/12/9 哈爾濱工程大學(xué)教務(wù)處 制嵌入式設(shè)計(jì)報(bào)告智能家居監(jiān)控系統(tǒng)班級(jí):教師評(píng)語(yǔ):教師簽名:2015年12月課程設(shè)計(jì)題目智能家居監(jiān)控系統(tǒng)目的和背景 智能家居又稱智能住宅,正朝著具備無(wú)線遠(yuǎn)程控制、多媒體控制、高速數(shù)據(jù)傳輸?shù)裙δ?的方向發(fā)展,其關(guān)鍵技術(shù)為兼容性強(qiáng)的家庭控制器和滿足信息傳輸需要的家庭網(wǎng)絡(luò)。目前, 傳輸網(wǎng)絡(luò)多采用綜合布線技術(shù),限制了系統(tǒng)應(yīng)用場(chǎng)所,而且費(fèi)用較高,采用無(wú)線方式構(gòu)建靈 活便捷的智能家居安全監(jiān)控系統(tǒng),成為當(dāng)前的主流趨勢(shì)。目前,應(yīng)用于智能家居的無(wú)線通信技術(shù)主要包括 Ir-DA 紅外線技術(shù)、藍(lán)牙技術(shù)和 Zigbee 技術(shù)等,Ir-DA 屬于短距離、點(diǎn)對(duì)點(diǎn)的半雙工通信方式,使用不便且失誤率高,不適用于家 庭的組網(wǎng)方式;藍(lán)牙技術(shù)則因?yàn)榫W(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)目要求書、模塊計(jì)劃書、系統(tǒng)設(shè)計(jì)書、RTM3-4天:完成模塊概要設(shè)計(jì)、模塊概要設(shè)計(jì)書、模塊接口定義書、模塊間 EVENT 流和數(shù)據(jù)流系統(tǒng)圖5-7天:完成模塊詳細(xì)設(shè)計(jì) 模塊詳細(xì)設(shè)計(jì)書8-13天:完成模塊代碼 模塊代碼14-16天:完成項(xiàng)目報(bào)告參考資料1 目的和背景 智能家居又稱智能住宅,正朝著具備無(wú)線遠(yuǎn)程控制、多媒體控制、高速數(shù)據(jù)傳輸?shù)裙δ?的方向發(fā)展,其關(guān)鍵技術(shù)為兼容性強(qiáng)的家庭控制器和滿足信息傳輸需要的家庭網(wǎng)絡(luò)。目前, 傳輸網(wǎng)絡(luò)多采用綜合布線技術(shù),限制了系統(tǒng)應(yīng)用場(chǎng)所,而且費(fèi)用較高,采用無(wú)線方式構(gòu)建靈 活便捷的智能家居安全監(jiān)控系統(tǒng),成為當(dāng)前的主流趨勢(shì)。目前,應(yīng)用于智能家居的無(wú)線通信技術(shù)主要包括 Ir-DA 紅外線技術(shù)、藍(lán)牙技術(shù)和 Zigbee 技術(shù)等,Ir-DA 屬于短距離、點(diǎn)對(duì)點(diǎn)的半雙工通信方式,使用不便且失誤率高,不適用于家 庭的組網(wǎng)方式;藍(lán)牙技術(shù)則因?yàn)榫W(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)示意圖1) LCD 主菜單顯示顯示當(dāng)前時(shí)間日期,電器開(kāi)關(guān)狀態(tài),是否鬧鐘開(kāi)啟。顯示用戶操作菜單。顯示設(shè)置菜單。2) 照明控制使用 LED、 AD( 1 個(gè)) 硬件資源。使用 LED 可模仿家中主要房間的照明。通過(guò)照明控制子菜單控制燈亮滅。如果開(kāi)啟了自動(dòng)光控功能,通過(guò) AD 采集的光照參數(shù)可實(shí)現(xiàn)照明的自動(dòng)開(kāi)關(guān)。另外可通過(guò)小鍵盤模擬電燈開(kāi)關(guān)。3) 家電控制使用 LED 硬件資源。通過(guò)家電控制子菜單對(duì)家中電器進(jìn)行開(kāi)關(guān)控制。相應(yīng)家電開(kāi)關(guān)信息以及鬧鐘是否開(kāi)啟都在 LCD 主菜單中有顯示。通過(guò)設(shè)置菜單傳遞的信息可定時(shí)開(kāi)關(guān)電器以及實(shí)現(xiàn)鬧鐘功能。定時(shí)時(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)警信息在屏幕上顯示,同時(shí)發(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)作,同時(shí)開(kāi)啟空調(diào)。6) 遠(yuǎn)程監(jiān)控。終端系統(tǒng)將發(fā)生的事件數(shù)據(jù)定期通過(guò) Zigbee 傳輸?shù)椒?wù)器,服務(wù)器可根據(jù)實(shí)際情況進(jìn)行家電設(shè)備的遠(yuǎn)端控制。7) 設(shè)置功能完成以下內(nèi)容的設(shè)置:哪些房間采用自動(dòng)控制功能。3 系統(tǒng)結(jié)構(gòu)圖2 系統(tǒng)結(jié)構(gòu)圖圖3 通信協(xié)議框架圖4 設(shè)計(jì)參考框架4 代碼實(shí)現(xiàn)4.1模塊的實(shí)現(xiàn)4.1.1賬戶登錄模塊函數(shù)名稱函數(shù)類型概要說(shuō)明lineEditTextChanged(QString s)模塊內(nèi)部函數(shù)判斷文本是否發(fā)生改變的槽函數(shù)zeroClicked()nineClicked()模塊內(nèi)部函數(shù)09的數(shù)字輸入鍵盤loginBtnClicked()模塊外部函數(shù)登陸按鍵,進(jìn)入主頁(yè)面forgrtPasswordClicked()模塊外部函數(shù)忘記密碼按鍵,進(jìn)入密碼修改頁(yè)面 4.1.2主界面模塊函數(shù)名稱函數(shù)類型概要說(shuō)明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ù)名稱函數(shù)類型概要說(shuō)明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ù)名稱函數(shù)類型概要說(shuō)明lightTurnOn()模塊外部函數(shù)點(diǎn)擊按鈕打開(kāi)燈。lightTurnOff()模塊外部函數(shù)點(diǎn)擊按鈕關(guān)閉燈Back_clicked模塊外部函數(shù)返回上一界面 4.1.3.2溫度模塊函數(shù)名稱函數(shù)類型概要說(shuō)明changeSwitch(int a)模塊內(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ù)名稱函數(shù)類型概要說(shuō)明showRh(int rh)模塊內(nèi)部函數(shù)顯示當(dāng)前濕度。changeSwitch(int a)模塊內(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ù)名稱函數(shù)類型概要說(shuō)明showTem(int tem);模塊內(nèi)部函數(shù)顯示當(dāng)前溫度。changeSwitch(int a)模塊內(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ù)名稱函數(shù)類型概要說(shuō)明showSlider( int ti );模塊內(nèi)部函數(shù)顯示窗簾的位置。sliderValue(int a);模塊內(nèi)部函數(shù)讀取窗簾的當(dāng)前位置。Back_clicked模塊外部函數(shù)返回上一界面 4.1.3.6電視模塊函數(shù)名稱函數(shù)類型概要說(shuō)明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ù)名稱函數(shù)類型概要說(shuō)明securityWidget2infraredWidget();模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入紅外報(bào)警。security2LockWidget();模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入遠(yuǎn)程控制門鎖security2SmokeWidget();模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入煙霧報(bào)警Back_clicked模塊外部函數(shù)返回上一界面 4.1.4.1紅外報(bào)警模塊函數(shù)名稱函數(shù)類型概要說(shuō)明showLocation(int a);模塊內(nèi)部函數(shù)顯示觸發(fā)的位置changeOnClicked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送紅外開(kāi)啟信號(hào)changeOfficked();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送紅外開(kāi)啟信號(hào)Back_clicked模塊外部函數(shù)返回上一界面 4.1.4.2煙霧報(bào)警模塊函數(shù)名稱函數(shù)類型概要說(shuō)明changeSmoke(int);模塊內(nèi)部函數(shù)顯示當(dāng)前煙霧的濃度。Back_clicked模塊外部函數(shù)返回上一界面 4.1.4.3門鎖控制模塊函數(shù)名稱函數(shù)類型概要說(shuō)明changeLockState(int );模塊內(nèi)部函數(shù)顯示當(dāng)前門的鎖的狀態(tài)changeOn()模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送門開(kāi)的狀態(tài)changeOff();模塊外部函數(shù)點(diǎn)擊按鈕發(fā)送門開(kāi)的狀態(tài)Back_clicked模塊外部函數(shù)返回上一界面 4.1.5小工具模塊函數(shù)名稱函數(shù)類型概要說(shuō)明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)入畫板toolWidget2gameWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入2048游戲toolWidget2clockWidget()模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入時(shí)鐘 4.1.5.1日歷模塊函數(shù)名稱函數(shù)類型概要說(shuō)明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生的打卡時(shí)間。button_schedual_clicked模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入日程界面Select_cases模塊外部函數(shù)選擇代辦事項(xiàng),并顯示代辦事項(xiàng)的具體內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面 4.1.5.2時(shí)鐘模塊函數(shù)名稱函數(shù)類型概要說(shuō)明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生的打卡時(shí)間。button_schedual_clicked模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入日程界面Select_cases模塊外部函數(shù)選擇代辦事項(xiàng),并顯示代辦事項(xiàng)的具體內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面 4.1.5.3鬧鐘模塊函數(shù)名稱函數(shù)類型概要說(shuō)明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生的打卡時(shí)間。button_schedual_clicked模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入日程界面Select_cases模塊外部函數(shù)選擇代辦事項(xiàng),并顯示代辦事項(xiàng)的具體內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面 4.1.5.4秒表模塊函數(shù)名稱函數(shù)類型概要說(shuō)明startStopwatchClicked()模塊內(nèi)部函數(shù)秒表開(kāi)始計(jì)時(shí)resetStopwatchClicked()模塊內(nèi)部函數(shù)秒表重新計(jì)時(shí)stopStopwatchClicked()模塊內(nèi)部函數(shù)秒表停止計(jì)時(shí) 4.1.5.5畫板模塊函數(shù)名稱函數(shù)類型概要說(shuō)明void open()模塊內(nèi)部函數(shù)打開(kāi)圖片void save()模塊內(nèi)部函數(shù)保存圖片void penColor()模塊內(nèi)部函數(shù)改變畫筆顏色void penWidth()模塊內(nèi)部函數(shù)改變畫筆寬度void penBrush()模塊內(nèi)部函數(shù)筆刷 4.1.5.6計(jì)算器模塊函數(shù)名稱函數(shù)類型概要說(shuō)明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生的打卡時(shí)間。button_schedual_clicked模塊外部函數(shù)點(diǎn)擊按鈕進(jìn)入日程界面Select_cases模塊外部函數(shù)選擇代辦事項(xiàng),并顯示代辦事項(xiàng)的具體內(nèi)容Back_clicked模塊外部函數(shù)返回上一界面 4.1.5.7小游戲模塊函數(shù)名稱函數(shù)類型概要說(shuō)明selfinfowidget()模塊內(nèi)部函數(shù)顯示醫(yī)生個(gè)人基本信息,顯示醫(yī)生的打卡時(shí)間。resizeEvent(QResizeEvent *)模塊內(nèi)部函數(shù)窗口尺寸改變觸發(fā)的事件onScoreInc(int)模塊內(nèi)部函數(shù)處理分?jǐn)?shù)增加信號(hào)的槽函數(shù)onGameOver()模塊內(nèi)部函數(shù)處理游戲結(jié)束信號(hào)的槽函數(shù)onWin()模塊內(nèi)部函數(shù)處理游戲獲勝信號(hào)的槽函數(shù)Main.c:#include #include #include head.h#include openpassword.hint 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(sfd0) 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 /#include 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.hinfraredWidget: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#include#includehead.hlockWidget: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); 遠(yuǎn)程燈控:#include lockwidget.h#include ui_lockwidget.h#include#include#includehead.hlockWidget: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); 濕度檢測(cè):#include humiditywidget.h#include ui_humiditywidget.h#include head.hhumidityWidget:humidityWidget(QWidget *parent) : QWidget(parent), ui(new Ui:humidityWidget) ui-setupUi(this);humidityWidget:humidityWidget() delete ui;void humidityWidget:show() QWidget:show(); showFullScreen();void humidityWidget: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:changeOnClicked() 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_add
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆四川省眉山一中辦學(xué)共同體化學(xué)高一下期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 供電公司外委管理辦法
- 虛擬展覽技術(shù)-洞察及研究
- DeepSeek與區(qū)塊鏈技術(shù)推動(dòng)大灣區(qū)港群一體化發(fā)展
- 智慧教室材料管理辦法
- 養(yǎng)蜂管理辦法(試行)
- 村級(jí)資金使用管理辦法
- 公司內(nèi)部招待管理辦法
- 農(nóng)村便利設(shè)施管理辦法
- 探究《水滸傳》精彩章節(jié)
- 毀林毀草違規(guī)行為集中整治實(shí)施方案
- 日本2025年食品過(guò)敏原培訓(xùn)
- 中新天津生態(tài)城教育系統(tǒng)招聘教職人員筆試真題2024
- GB/T 45817-2025消費(fèi)品質(zhì)量分級(jí)陶瓷磚
- DB37∕T 5302-2024 既有城市橋梁現(xiàn)場(chǎng)檢測(cè)及承載能力評(píng)估技術(shù)標(biāo)準(zhǔn)
- 安徽省池州市貴池區(qū)2024-2025學(xué)年八年級(jí)下學(xué)期數(shù)學(xué)期末檢測(cè)試卷(含答案)
- 正畸接診標(biāo)準(zhǔn)化流程
- 中心靜脈壓(CVP)監(jiān)測(cè)與護(hù)理
- 酒店前臺(tái)接待禮儀與溝通技巧練習(xí)題
- 床上用品采購(gòu) 投標(biāo)方案
- 口腔工藝管理課件
評(píng)論
0/150
提交評(píng)論