版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于QTCreator平臺的下智能家居恒溫恒濕控制系統(tǒng)設計摘要:在科技發(fā)展的網(wǎng)絡時代,物聯(lián)網(wǎng)技術融入人們的日常生活中。依據(jù)物聯(lián)網(wǎng)環(huán)境下監(jiān)控智能家居環(huán)境參數(shù),實現(xiàn)更科學、人性化的智能家居體驗,本文基于在QTCreator平臺上開發(fā)一款智能家居恒溫恒濕系統(tǒng)。通過C++語言軟件編程實現(xiàn)采集溫度和濕度傳感器所檢測到的信號數(shù)據(jù),并通過TCP/IP網(wǎng)絡數(shù)據(jù)傳輸控制協(xié)議,采用Json數(shù)據(jù)傳輸格式發(fā)送給系統(tǒng)服務端,服務端將數(shù)據(jù)保存到MySql數(shù)據(jù)庫,同時經(jīng)系統(tǒng)分析、處理后將數(shù)據(jù)后發(fā)給所需用戶。該系統(tǒng)實現(xiàn)的物聯(lián)網(wǎng)環(huán)境下,所有家居物品WiFi互聯(lián)。系統(tǒng)不僅可自主控制溫濕度在舒適的范圍,也提供用戶存在可交互界面,用于人工設置目標溫濕度值的功能。關鍵詞:恒溫恒濕控制;溫濕度監(jiān)測;物聯(lián)網(wǎng)家居;溫濕度遙控器目錄1緒論 11.1項目背景 11.2項目的研究方向與發(fā)展前景 12項目總體設計方案 32.1項目模塊劃分 32.2數(shù)據(jù)傳輸?shù)臄?shù)據(jù)協(xié)議 32.3數(shù)據(jù)傳輸協(xié)議約定 52.3.1STM32上報協(xié)議 52.3.2STM32接收協(xié)議 72.3.3服務端與客戶端協(xié)議 82.4數(shù)據(jù)庫選擇與搭建 112.4.1創(chuàng)建數(shù)據(jù)庫 112.4.2設計數(shù)據(jù)庫表結(jié)構(gòu) 113硬件部分選擇 143.1處理器的選擇 143.2溫濕度檢測傳感器的選擇 143.3通信模塊的選擇 154程序設計與運行 174.1程序設計 174.2程序運行結(jié)果圖 205總結(jié) 22參考文獻 231緒論1.1項目背景眾所周知,我國領土963.406萬立平方公里,是世界上領土排名第三的超級大國,國土幅員遼闊,江河眾多。由華夏的龍脈秦嶺將中國的氣候一分為二。秦嶺以南氣候濕潤,多雨。秦嶺以北氣候干燥,多風。而且每片地域的氣候又各不相同,有年年干旱少雨的西北嘉峪關,有年年洪澇濕潤的珠江。當我走過烈日炎炎的戈壁灘,見過一望無際的大草原,來到寒風凜冽的雪域高原。我發(fā)現(xiàn)南北人們的生活環(huán)境不是每個地區(qū)都可以是四季如春。隨著時代的日益進步和科學技術水平的高速發(fā)展,人們對生活質(zhì)量的需求也隨之增高,其中就包括家居環(huán)境的四季如春,因此,順應科技發(fā)展的潮流,非常迫切地開發(fā)出一套智能家居恒溫恒濕控制系統(tǒng)。讓人們的生活質(zhì)量有所改善[1]~[2]。國內(nèi)外,智能家居技術發(fā)展現(xiàn)狀還處于起步階段,智能家居與傳統(tǒng)家居共存。當前智能家居的技術成果可以算得上是比較成熟了,但是傳統(tǒng)的家電比重依然占據(jù)絕對的主導地位,同時部分廠商虛假的宣傳自家智能家居的功能而實際上無法達到這個效果,讓大多數(shù)年輕的消費者望而生畏,再加上高昂的研發(fā)成本,使得這些電子廠商只側(cè)重發(fā)展代理商卻忽視了對代理商的技術培訓和扶持廠商(市面上的大部分公司),大多數(shù)人不懂得智能家居的使用方式,縱使是目前智能家居市場占有率前列的小米也同樣存在這些問題。但智能家居和AI一樣是第三次產(chǎn)業(yè)革命的核心一員,也是智能家居發(fā)展的必由之路。智能家居的發(fā)展前途必然是一片光明,偉大的。隨著技術更新發(fā)展,智能家居的作用也將不僅僅只局限于“家居”方面,將會在今后的日子中發(fā)揮越來越重要的作用,就好像生活中的管家,可以定期檢測到大家的身體狀況,也好比一個可以照看老人小孩的職業(yè)護士,更可以對幼兒進行全方位家庭教育,智能將成為人民生活中重要的一員。我們完全可以想象未來智能家居的發(fā)展方向一定是多元化的,開放化的,有著各式各樣的標準和協(xié)議,將會讓任何一個家庭中的每一個人都享受科技帶來的體驗和樂趣。1.2項目的研究方向與發(fā)展前景根據(jù)調(diào)查,人們對于恒溫恒濕控制方面的市場產(chǎn)品的了解還比較匱乏,不了解該產(chǎn)品的定位,和研究方向。對于溫濕度還停留在自身的感知中。同時,市場上也沒有一款結(jié)構(gòu)簡單、操作方便、功耗小、成本低等優(yōu)點,方便家庭普及推廣使用的恒溫恒濕控制系統(tǒng)的產(chǎn)品。在一些偏遠的鄉(xiāng)村,人們還處于風扇和暖爐改善房屋的生活質(zhì)量。為此,來改善大家的生活水準。本文基于QTCreator平臺研發(fā)一款物聯(lián)網(wǎng)環(huán)境下可實現(xiàn)遠程操作控制的智能家居恒溫恒濕控制系統(tǒng)[7],該系統(tǒng)運行穩(wěn)定可靠、功耗低、操作方便、性價比較高[3]~[4]。在科技發(fā)展的今天,對于恒溫恒濕控制系統(tǒng)的需求也越來越多,比如國家高精尖的恒溫恒濕的生物實驗研究室,化學實驗室,恒溫恒濕保存箱等。在農(nóng)業(yè)方面,菜農(nóng)種植的有機蔬菜,和反季節(jié)蔬菜,也是時時刻刻需要恒溫恒濕的環(huán)境。相比以往的人力種植看管,該項目將節(jié)省大量的人力物力。人們的家庭生活質(zhì)量,臥室,書房,還有儲存糧食的糧倉。恒溫恒濕的需求越來越多。處于科研和生活的方方面面。
2項目總體設計方案2.1項目模塊劃分 系統(tǒng)項目共分為四大模塊,分別是硬件部分,服務器部分,客戶端部分,數(shù)據(jù)庫部分。各模塊之間通過數(shù)據(jù)進行聯(lián)系,以達到模塊間的低耦合性。硬件部分:硬件啟動后,先給服務器發(fā)送鏈接數(shù)據(jù),實現(xiàn)硬件和服務器互聯(lián)關系。同時,會在單位時間內(nèi),由溫濕度傳感器采集溫濕度數(shù)據(jù),將數(shù)據(jù)傳到硬件處理器,之后處理器將數(shù)據(jù)和采集數(shù)據(jù)的硬件信息進行打包,發(fā)送到服務器。同時,硬件接收到服務器發(fā)來的數(shù)據(jù)命令,通過處理器將命令發(fā)送給相關傳感器。同時,處理器將硬件執(zhí)行完的數(shù)據(jù)打包回饋給服務器。服務器部分:服務器是該項目的中間橋梁,完成信息的接收和發(fā)送。服務器在開啟后,首先,程序通過輸入的IP地址,用戶名,數(shù)據(jù)庫名和密碼鏈接到數(shù)據(jù)庫,之后清空數(shù)據(jù)庫的設備鏈接鏈表。以刷新設備的連接情況。同時,初始化網(wǎng)絡,接收數(shù)據(jù),根據(jù)不同的數(shù)據(jù)類型,解析數(shù)據(jù),實現(xiàn)不同數(shù)據(jù)的分類,同時,根據(jù)解析來的數(shù)據(jù),執(zhí)行相應的操作。并將每次解析到的數(shù)據(jù)保存到數(shù)據(jù)庫。客戶端部分:啟動客戶端后,上報服務器連接請求,保存至服務器的設備鏈表,以實現(xiàn)服務器溫濕度數(shù)據(jù)的分發(fā)。同時,將從服務器接收到的數(shù)據(jù)進行解析,將溫濕度數(shù)據(jù)顯示在當前鏈接表格中,每次刷新最后一次的溫濕度數(shù)值。當溫濕度超標是,得到用戶指令,發(fā)送命令給服務器。同時接收服務器返回的數(shù)據(jù)上報結(jié)果。數(shù)據(jù)庫部分:保存服務器每次接收到的溫濕度數(shù)據(jù),和當前的設備鏈接情況。同時,保存所有的命令下達內(nèi)容,和相應的設備編號,同時,將數(shù)據(jù)的執(zhí)行結(jié)果也進行保存。2.2數(shù)據(jù)傳輸?shù)臄?shù)據(jù)協(xié)議 恒溫恒濕控制系統(tǒng),硬件與服務器,服務器與客戶端間的通信,都將采用TCP/IP通信協(xié)議[12](詳見表2.1)。表2.1TCP網(wǎng)絡與UDP網(wǎng)絡區(qū)別TCPUDP是否可靠可靠不可靠是否有連接面向連接無連接報文面向字節(jié)流面向報文效率傳輸效率低傳輸效率高雙工性全雙工一對一,一對多,多對一,多對多流量控制滑動窗口無堵塞控制慢開始,擁塞避免,快重傳,快恢復無傳輸速度慢快使用場景效率要求低,準確性要求高或者要求有連接的場景效率要求高,準確性要求低TCP/IP協(xié)議: 用來檢測網(wǎng)絡傳輸中差錯的傳輸控制協(xié)議TCP[13]~[15] 負責對不同網(wǎng)絡的地址進行互連的鏈接協(xié)議IP2)TCP/IP的分層管理:TCP/IP協(xié)議也遵循分層管理的思想。TCP/IP協(xié)議族按層次分別為應用層,傳輸層,網(wǎng)絡層,數(shù)據(jù)鏈路層,物理層。將TCP/IP協(xié)議用分層思想解析之后,可以看到如果后期某個地方設計修改,那么就無需全部替換,只需要將變動的層替換。而且從設計上來說,也變得簡單了。處于應用層上的應用可以只考慮分派給自己的任務,而不在需要了解任務的對方在哪,任務怎樣傳輸,如何確保到達率等問題。a、物理層:所謂的物理層,是指光纖、電纜或者電磁波等真實存在的物理媒介。這些媒介可以傳送物理信號,比如亮度、電壓或者振幅。對于數(shù)字應用來說,我們只需要兩種物理信號來分別表示0和1,比如用高電壓表示1,低電壓表示0,就構(gòu)成了簡單的物理層協(xié)議。針對某種媒介,電腦可以有相應的接口,用來接收物理信號,并解讀成為0/1序列。由此實現(xiàn)相鄰計算機節(jié)點之間數(shù)據(jù)的比特流透明傳送,也就是負責信號數(shù)據(jù)傳輸,該層的協(xié)議既和鏈路有關,也和傳輸?shù)慕橘|(zhì)有關。簡單的說就是把計算機連接起來的物理方式。b、數(shù)據(jù)鏈路層:控制網(wǎng)絡層與物理層間的信息傳輸,主要負責的是物理線路上進行可靠的數(shù)據(jù)傳遞。為了保證傳輸?shù)目煽?,?shù)據(jù)鏈路層將從網(wǎng)絡層接收到的數(shù)據(jù)包分割成特定長度的的可被物理層傳輸?shù)膸?。幀就是用來移動?shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)包,它不僅包含原始數(shù)據(jù),還包含發(fā)送方和接收方的物理地址以及糾錯和控制信息。包中的地址確定了幀將發(fā)送到何處,而糾錯和控制信息則確保幀無差錯到達。比如在傳遞數(shù)據(jù)時,接收點效驗到接收到的數(shù)據(jù)中有差錯,將通知發(fā)送方重新發(fā)送這一幀。c、網(wǎng)絡層:制定如何將數(shù)據(jù)從發(fā)送方傳達到接收方。該層通過路由選擇算法,為報文頭選擇最方便和穩(wěn)定的路線。綜合考慮發(fā)送阻礙,網(wǎng)絡擁塞程度,服務質(zhì)量以及可選擇的路由等來決定從網(wǎng)絡中的A節(jié)點到B節(jié)點的最佳途徑。同時該層控制數(shù)據(jù)鏈路層與傳輸層之間的數(shù)據(jù)接收和轉(zhuǎn)發(fā),建立、維持通訊和終止網(wǎng)絡的連接。具體地說,數(shù)據(jù)鏈路層的數(shù)據(jù)在這一層被轉(zhuǎn)換為數(shù)據(jù)包,然后通過路徑選擇、分段組合、順序、進/出路由等控制,將信息從一個網(wǎng)絡設備傳送到另一個網(wǎng)絡設備。d、傳輸層:傳輸層為任意兩個主機上的應用程序提供穩(wěn)定的端到端的通信服務。傳輸層有兩個傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。其中,TCP是一個可靠的面向連接的協(xié)議,UDP是不可靠的或者說無連接的協(xié)議[12]。e、應用層:應用程序收到傳輸層的數(shù)據(jù)后,接下來就要進行解讀。解讀必須事先規(guī)定好格式,應用層就是規(guī)定應用程序的數(shù)據(jù)格式。主要協(xié)議有:HTTP、FTP、Telent等。3)端口號: 所謂的端口,就好像是宿舍的門牌號,客戶端通過IP地址找到對應的服務器端,并且服務器端又有多個端口,每一個應用程序?qū)粋€端口號,好像門牌號的端口號,因此客戶端才能訪問到該服務器。為了方便將端口作出區(qū)分,約定將每個端口進行特定的編號,這就是端口號。通過協(xié)議和端口號可以確定傳輸層的數(shù)據(jù)交給那個進程處理。2.3數(shù)據(jù)傳輸協(xié)議約定 數(shù)據(jù)傳輸將采用超輕量級(Light-Meight)、基于文本的(Text-Based)、可讀的(Human-Readable)格式的數(shù)據(jù)交換格式,JSON數(shù)據(jù)傳輸格式,大多用于存儲和交換文本信息的語言,類似于xml。進行數(shù)據(jù)傳輸[8],相比XML(另一種常見的數(shù)據(jù)交換格式),文件更小,傳輸效率更快。協(xié)議約定:數(shù)據(jù)report_type字段1)件數(shù)據(jù)上報2)硬件命令上報3)客戶端下發(fā)命令4)服務端上報命令5)服務端上報數(shù)據(jù)6)服務端上報通知7)客戶端連接服務端協(xié)議2.3.1STM32上報協(xié)議1)stm32上報溫濕度數(shù)據(jù)協(xié)議:report_typedevice_iddevice_typehumiditytemperature字符協(xié)議字段說明(詳見表2.2):
表2.2stm32上報溫濕度數(shù)據(jù)協(xié)議字段名類型是否為空默認值其它說明report_type數(shù)字NO無參考report_type字段說明device_id數(shù)字NO無設備IDdevice_type數(shù)字NO無設備類型1硬件,2客戶端humidity浮點NO無濕度temperature浮點NO無溫度01010112.334.5注意:協(xié)議采用json格式例如:{ "report_type":1, "device_id":1, "device_type":1, "humidity":5.5, "temperature":6.6}2)stm32上報命令執(zhí)行結(jié)果協(xié)議(詳見表2.3):report_typedevice_iddevice_typemajor_cmdmin_cmdcmd_result.表2.3stm32上報命令執(zhí)行結(jié)果協(xié)議字段名類型是否為空默認值其它說明report_type數(shù)字NO無參考report_type字段說明device_id數(shù)字NO無設備IDdevice_type數(shù)字NO無設備類型1硬件,2客戶端major_cmd數(shù)字NO無主命令碼min_cmd數(shù)字NO無次命令碼cmd_result數(shù)字NO0命令值,1成功,0失敗注意:json格式例如:{"report_type":2, "device_id":1, "device_type":1, "major_cmd":5, "min_cmd":6,"cmd_result":17}2.3.2STM32接收協(xié)議將網(wǎng)絡名稱和密碼寫入硬件,使硬件連接到網(wǎng)絡中,stm32參數(shù)配置協(xié)議,參數(shù)配置協(xié)議為字符協(xié)議(詳見表2.4)。格式:ApSsidApPwdIPPortdeviceID表2.4stm32參數(shù)配置協(xié)議字段名類型是否為空默認值其它說明ApSsid字符NO無Wifi熱點名稱ApPwd字符NO無wifi熱點密碼IP字符NO無服務端IP地址Port數(shù)字NO無服務端端口號deviceID數(shù)字NO無設備ID注意:協(xié)議個字段分隔符采用一個空格,各字段值中不允許出現(xiàn)空格 Wifi熱點名稱和密碼為英文字符例如:stkjwifiap1234560360005stm32接收命令協(xié)議。命令接收協(xié)議為二進制協(xié)議,9個字節(jié)(詳見表2.5)。表2.5stm32接收命令協(xié)議字段名類型是否為空默認值其它說明FF二進制NO無Stm32接收命令協(xié)議頭device_id二進制NO無設備IDdevice_type二進制NO無設備類型major_cmd二進制NO無主命令碼min_cmd二進制NO無次命令碼cmd_val二進制NO0x00命令值reserve1二進制NO0x00預留reserve2二進制NO0x00預留FF二進制NO無協(xié)議尾注意:協(xié)議各字段無分隔符,各字段值中不允許出現(xiàn)空格.支持的主命令與次命令如下表(詳見表2.6):表2.6主命令與次命令主命令次命令說明11Led開0Led關例如,設備id為5,設備類型為1的開燈命令命令例如:FF05010101000000FF2.3.3服務端與客戶端協(xié)議1)服務端命令接收協(xié)議(詳見表2.7):表2.7服務端命令接收協(xié)議字段名類型是否為空默認值其它說明report_type數(shù)字NO無參考report_type字段說明h_device_id數(shù)字NO無硬件設備IDc_device_id數(shù)字NO無客戶端設備IDh_device_type數(shù)字NO無硬件設備類型1硬件設備,2客戶端c_device_type數(shù)字NO無硬件設備類型1硬件設備,2客戶端major_cmd數(shù)字NO無主命令碼min_cmd數(shù)字NO無次命令碼cmd_val數(shù)字NO0命令值reserve1數(shù)字NO0預留reserve2數(shù)字NO0預留注意:json格式例如:{"report_type":3,"h_device_id":12,"c_device_id":13,"h_device_type":1,"c_device_type":2,"major_cmd":5,"min_cmd":6,"cmd_val":17,"reserve1":17,"reserve2":17}2)服務端通知客戶端的通知協(xié)議(詳見表2.8):
表2.8服務端通知客戶端的通知協(xié)議字段名類型是否為空默認值其它說明report_type數(shù)字NO無參考report_type字段說明device_id數(shù)字NO無設備IDdevice_type數(shù)字NO無設備類型2客戶端notify_type數(shù)字NO無通知類型,1更新設備列表reserve1數(shù)字NO0預留reserve2數(shù)字NO0預留注意:json格式例如:{"report_type":6, "device_id":12, "device_type":13, "notify_type":1,"reserve1":0,"reserve2":0}3)服務端上報命令執(zhí)行結(jié)果協(xié)議(詳見表2.9)表2.9服務端上報命令執(zhí)行結(jié)果協(xié)議字段名類型是否為空默認值其它說明report_type數(shù)字NO無參考report_type字段說明h_device_id數(shù)字NO無硬件設備IDc_device_id數(shù)字NO無客戶端設備IDh_device_type數(shù)字NO無硬件設備類型1硬件設備,2客戶端c_device_type數(shù)字NO無硬件設備類型1硬件設備,2客戶端major_cmd數(shù)字NO無主命令碼min_cmd數(shù)字NO無次命令碼cmd_result數(shù)字NO0命令值1成功0失敗2沒有找到設備3命令硬件在執(zhí)行中,不允許下發(fā)相同命令注意:json格式例如:{"report_type":4, "h_device_id":12,"c_device_id":13 "h_device_type":1, "c_device_type":2, "major_cmd":5, "min_cmd":6,"cmd_result":17,}4)服務端上報數(shù)據(jù)協(xié)議(詳見表2.10)表2.10服務端上報數(shù)據(jù)協(xié)議字段名類型是否為空默認值其它說明report_type數(shù)字NO無參考report_type字段說明h_device_id數(shù)字NO無硬件設備IDc_device_id數(shù)字NO無客戶端設備IDh_device_type數(shù)字NO無硬件設備類型1硬件設備,2客戶端c_device_type數(shù)字NO無硬件設備類型1硬件設備,2客戶端humidity浮點NO無濕度temperature浮點NO無溫度注意:協(xié)議采用json格式例如:{ "report_type":5,"h_device_id":12,"c_device_id":13 "h_device_type":1, "c_device_type":2, "humidity":5.5, "temperature":6.6}5)客戶端連接服務端協(xié)議(詳見表2.11)表2.11客戶端連接服務端協(xié)議字段名類型是否為空默認值其它說明report_type數(shù)字NO無參考report_type字段說明device_id數(shù)字NO無設備IDdevice_type數(shù)字NO無設備類型1硬件,2客戶端例如:{"report_type":7, "device_id":1, "device_type":2}2.4數(shù)據(jù)庫選擇與搭建數(shù)據(jù)庫使用MySQL數(shù)據(jù)庫,MySQL是一個精巧的SQL數(shù)據(jù)庫管理系統(tǒng),而且是開源的數(shù)據(jù)管理系統(tǒng),是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務器[9]~[11]。MySQL主要目標是快速、穩(wěn)定和易用。MySQL數(shù)據(jù)庫的最常用標準化語言為SQL結(jié)構(gòu)化查詢語言。存儲大量數(shù)據(jù),為了更加方便的查詢和操作且同時保持數(shù)據(jù)信息的一致、完整共享和安全通過組合分析,產(chǎn)生出新的有用信息。完整化語言為MySql結(jié)構(gòu)化查詢語言。將數(shù)據(jù)放到表中,表再放到庫中。一個數(shù)據(jù)庫中同時可以有多個數(shù)據(jù)表結(jié)構(gòu),每個表都有且只有一個對應的名字,用來標識自己。表名具有唯一性。表具有一些特性,這些特性定義了數(shù)據(jù)在表中如何存儲,類似java中“類”的設計。表結(jié)構(gòu)通過列來組成,稱之為字段。所有的表都是通過一個或多個列組成的,每一列都類似java中的“屬性”。同時表中的數(shù)據(jù)是按行存放的,每行就類似于java中的“對象”。2.4.1創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫名為dht11并指定字符集為utf8:createdatabaseifnotexistsdth11defaultcharsetutf8;2.4.2設計數(shù)據(jù)庫表結(jié)構(gòu)1)數(shù)據(jù)采集記錄表(詳見表2.12)表2.12硬件數(shù)據(jù)采集記錄表字段名類型是否為空主鍵默認值其它說明idint(10)NOYES無ID自增device_idvarchar(60)NONO無設備IDdevice_typevarchar(60)NONO無設備類型humidityvarchar(60)NONO無濕度temperaturevarchar(60)NONO無溫度record_timetimestampNONOCURRENT_TIMESTAMP當前時間創(chuàng)建數(shù)據(jù)采集表結(jié)構(gòu)MYSQL語句CREATETABLE`dht11_data_record`(`id`int(10)NOTNULLAUTO_INCREMENT,`device_id`varchar(60)NOTNULL,`device_type`varchar(60)NOTNULL,`humidity`varchar(60)NOTNULL,`temperature`varchar(60)NOTNULL,`record_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(`id`))2)設備表創(chuàng)建設備表MYSQL語句CREATETABLE`dht11_device_record`(`device_id`varchar(60)NOTNULL,`device_type`varchar(60)NOTNULL,`record_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(`device_id`,`device_type`))表中數(shù)據(jù)插入要求:在表中沒有device_id對應數(shù)據(jù)時插入,如果有數(shù)據(jù)時更新,插入語句如下:insertintodht11_device_record(device_id,record_time)values('1',now())ONDUPLICATEKEYUPDATErecord_time=now().3)命令記錄表(詳見表2.13)表2.13命令記錄表字段名類型是否為空主鍵默認值其它說明idint(10)NOYES無ID自增device_idvarchar(60)NONO無設備IDdevice_typevarchar(60)NONO無設備類型major_cmdVarchar(60)NONO無主命令碼min_cmdVarchar(60)NONO無次命令碼cmd_valVarchar(60)NONO無命令值cmd_reslutvarchar(60)NONO‘0’執(zhí)行結(jié)果record_timetimestampNONOCURRENT_TIMESTAMP時間CREATETABLE`dht11_cmd_record`(`id`int(10)NOTNULLAUTO_INCREMENT,`device_id`varchar(60)NOTNULL,`device_type`varchar(60)NOTNULL,`major_cmd`varchar(60)NOTNULL,`min_cmd`varchar(60)NOTNULL,`cmd_val`varchar(60)NOTNULL,`cmd_result`varchar(60)NOTNULLDEFAULT'0',`record_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(`id`))3硬件部分選擇3.1處理器的選擇圖3.1STM32c8t6系列處理器處理器將采用STM32c8t6系列處理器(圖3.1),作為當下的主流處理器,這個系列處理器專門為場合要求較高性能、低成本、低功耗的嵌入式應用設計ARM
Cortex?-M0,M0+,M3,M4和M7內(nèi)核[3]~[4]。3.2溫濕度檢測傳感器的選擇圖3.2dht11溫濕度傳感器中文名:溫濕度傳感器(圖3.2)外文名:DHT11[5]供電電壓:3.3V~5.5VDC輸出信號:單總線的數(shù)字信號溫度檢測范圍:濕度在5~95%RH,溫度在-20~+60℃濕度檢測精度:濕度在±5%RH,溫度在±2℃分辨率:濕度在1%RH,溫度在0.1℃互相轉(zhuǎn)換:可互換電壓指示燈顏色:紅色模組腳位說明:VCC:外接3.3V~5VGND:外接GND,接地,電源負極DATA:數(shù)位資料輸出腳位,串行數(shù)據(jù),單總線NC:空腳DHT11溫濕度檢測模塊測量環(huán)境溫濕度(圖3.3)。該模塊為單總線傳感器,需要將FPGA的一個GPIO設置為in-out類型才能作為信號線。根據(jù)DHT11溫濕度傳感器時序圖進行對應操作后,可以得到當前的溫度與濕度。圖3.3DHT11溫濕度檢測模塊電路圖 3.3通信模塊的選擇采用ESP8266型號WiFi模塊[6](圖3.4)。通過ESP8266與服務器相連時,需要輸入對應的AT配置命令。由FPGA通過串口向ESP8266發(fā)送AT配置命令,最終實現(xiàn)與云服務器的TCP通信,構(gòu)建FPGA與pc端之間的通信“橋梁”。圖3.4ESP8266WiFi網(wǎng)絡模塊為此,本文基于WIFI無線通信模塊,設計出了一種基于物聯(lián)網(wǎng)環(huán)境下的的智能家居遠程控制系統(tǒng)。該系統(tǒng)具有結(jié)構(gòu)簡單、操作方便、功耗小、成本低等優(yōu)點,便于家庭普及推廣使用。
4程序設計與運行4.1程序設計本程序由大體分為三個模塊,各模塊間是使用tcp網(wǎng)絡傳輸協(xié)議,使用json數(shù)據(jù)傳輸協(xié)議。數(shù)據(jù)庫與服務器處于本地通訊。(圖4.1)圖4.1程序模塊框圖服務器軟件啟動后,首先鏈接數(shù)據(jù)庫,再打開tcp服務端,已保證硬件和客戶端兩媒介數(shù)據(jù)庫正常,之后清理數(shù)據(jù)庫已連接表,以保證當前連接表的時效性。之后將開始正常的接收socket的數(shù)據(jù)。(如圖4.2)圖4.2服務器流程圖客戶端軟件啟動后,首先鏈接數(shù)據(jù)庫,再鏈接tcp服務端,之后向服務器發(fā)送鏈接請求,存放與服務器的list鏈表中,以保證服務器每次向客戶端發(fā)送的數(shù)據(jù)正常接收。(圖4.3)圖4.3用戶端流程圖 智能家居恒溫恒濕系統(tǒng)的設計,是基于在QTCreator平臺上開發(fā),具體采用C++語言編程實現(xiàn)。因為QTCreator具有很好的跨平臺特性,只需要封裝生成文件就可以實現(xiàn)移植到windows平臺。4.2程序運行結(jié)果圖運行服務器程序后,首先連接數(shù)據(jù)庫,成功之后,再次創(chuàng)建服務器。最后重置數(shù)據(jù)庫中的設備表數(shù)據(jù)。之后服務器將處于被動接收數(shù)據(jù),同時保存處理,再轉(zhuǎn)發(fā)。(詳見圖4.4)圖4.4服務器界面運行圖運行客戶端程序后,進入程序界面,首先連接數(shù)據(jù)庫,成功之后,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)環(huán)境部衛(wèi)星環(huán)境應用中心招聘筆試真題2024
- 2024年中國儲備糧管理集團有限公司廣西分公司招聘考試真題
- 黑龍江公安警官職業(yè)學院《結(jié)構(gòu)力學》2025 學年第二學期期末試卷
- 2025寧夏中衛(wèi)市選聘行政執(zhí)法監(jiān)督員20人參考考試試題及答案解析
- 2025年甘肅省臨夏州康樂縣融媒體中心招聘編輯記者、播音員筆試重點題庫及答案解析
- 2025年數(shù)字政府建設報告
- 2025年上海市復旦大學智能醫(yī)學研究院招聘周欣課題組行政助理崗位備考題庫及完整答案詳解一套
- c 課程設計的報告
- 2025江蘇蘇州大學科研助理崗位招聘10人考試核心試題及答案解析
- 2025年公安部第一研究所公開招聘預報名公安部第一研究所備考題庫及答案詳解1套
- 數(shù)字與圖像處理-終結(jié)性考核-國開(SC)-參考資料
- 肝硬化并糖尿病護理查房
- 初中七年級主題班會:成為自己的主人(課件)
- 鄭伯克段于鄢-2
- TCSUS-智能水表技術標準
- 利用EXCEL畫風機特性曲線-模版
- 人體工效評估程序
- 西南大學PPT 04 實用版答辯模板
- 國家開放大學電大《政治學原理》形考任務1及4網(wǎng)考題庫答案
- 管理百年智慧樹知到答案章節(jié)測試2023年
- 國家開放大學《刑法學(1)》形成性考核作業(yè)1-4參考答案
評論
0/150
提交評論