基于單片機(jī)和 WiFi 的智能室內(nèi)環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
智能家居系統(tǒng)的概念在 20 世紀(jì)就被提出,但其產(chǎn)業(yè)化近年才逐步開始,目前處于初期形成與長(zhǎng)期發(fā)展的臨界點(diǎn)。智能家居可以通俗地理解為以住宅為平臺(tái),利用物聯(lián)網(wǎng)技術(shù)將家中的音視頻設(shè)備、照明系統(tǒng)、窗簾控制及空調(diào)控制等多種設(shè)備連接起來(lái),提供多種多樣的功能,如手機(jī)或電腦遠(yuǎn)程電器控制功能、溫濕度參數(shù)檢測(cè)功能、光照強(qiáng)度檢測(cè)功能等 [1]。智能家居的控制方式豐富多樣,如本地控制、手機(jī)遠(yuǎn)程控制、網(wǎng)絡(luò)控制、定時(shí)控制等,多樣的控制方式可以避免繁瑣的過(guò)程從而提高效率。其目標(biāo)是為用戶提供舒適安全及高效便利的生活環(huán)境,提升生活品質(zhì)。一個(gè)完整的智能家居環(huán)境監(jiān)控系統(tǒng)主要包括環(huán)境信息采集、通信模塊及控制與執(zhí)行機(jī)構(gòu)三部分,其設(shè)計(jì)方案與實(shí)現(xiàn)方法多種多樣。
與智能家居類似,工農(nóng)業(yè)生產(chǎn)中(如獨(dú)立工業(yè)生產(chǎn)車間、農(nóng)業(yè)蔬菜大棚)與室內(nèi)工作場(chǎng)合也提出了類似的智能室內(nèi)環(huán)境監(jiān)控要求。本文設(shè)計(jì)一種基于單片機(jī)技術(shù)與 WiFi 技術(shù)的智能室內(nèi)環(huán)境監(jiān)控系統(tǒng),該系統(tǒng)是智能化監(jiān)控需求的實(shí)現(xiàn)方式和應(yīng)用設(shè)計(jì),能夠?qū)崿F(xiàn)室內(nèi)環(huán)境參數(shù)檢測(cè)與設(shè)備控制功能, 具有一定的應(yīng)用價(jià)值。
1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
本文系統(tǒng)由三部分組成 :負(fù)責(zé)采集數(shù)據(jù)的控制節(jié)點(diǎn),以STC89C52 單片機(jī)為控制核心,并選配相應(yīng)的溫濕度傳感器、光照傳感器及繼電器模塊 ;負(fù)責(zé)廣播信息的 AP 節(jié)點(diǎn),構(gòu)建WiFi 網(wǎng)絡(luò),實(shí)現(xiàn)單片機(jī)與手機(jī) APP 之間的信息交互 ;安裝有應(yīng)用軟件的手機(jī)移動(dòng)終端,既可接收顯示傳感器數(shù)據(jù),也可發(fā)送指令至單片機(jī),控制電器設(shè)備通斷 [2-3]。系統(tǒng)結(jié)構(gòu)框圖如圖 1 所示。
系統(tǒng)主要有兩個(gè)功能 :一是客戶端功能,用戶接入 WiFi 網(wǎng)關(guān)后可通過(guò) APP 客戶端實(shí)時(shí)了解室內(nèi)環(huán)境信息(傳感器檢測(cè)到的溫濕度、光照強(qiáng)度等);二是設(shè)備控制功能,用戶打開手機(jī) APP,通過(guò)點(diǎn)擊操作按鈕即可控制電器設(shè)備通斷。
2 單片機(jī)系統(tǒng)硬件設(shè)計(jì)
單片機(jī)部分主要負(fù)責(zé)檢測(cè)室內(nèi)的環(huán)境參數(shù),如檢測(cè)溫濕度、光照強(qiáng)度及執(zhí)行電器通斷控制。該部分以 STC89C52 單片機(jī)為核心,溫濕度傳感器選用 DHT11 模塊,光照傳感器選用數(shù)字光強(qiáng)強(qiáng)度傳感器 GY-30 模塊 [4]。
DHT11 溫濕度傳感器可測(cè)量相對(duì)濕度與溫度,采用數(shù)字輸出方式,具有超長(zhǎng)的信號(hào)傳輸距離、超低能耗等特點(diǎn)。該傳感器采用單總線通信協(xié)議,與 STC89C52 單片機(jī)之間的數(shù)據(jù)交換由此單總線(DATA)完成。本文設(shè)計(jì)中,以 1 路信號(hào)為例,單總線外接一個(gè) 4.7 kΩ 的上拉電阻,與單片機(jī) P1.2口連接,當(dāng)總線空閑時(shí),被上拉電阻拉高為高電平。
光照傳感器 GY-30 的光譜靈敏度特性接近視覺(jué)靈敏度, 對(duì)應(yīng)廣泛的輸入光范圍,且功耗低。該傳感器支持 I2C 總線接口,輸出對(duì)應(yīng)亮度的數(shù)字值。STC89C52 單片機(jī)通過(guò) I2C 接口向傳感器發(fā)送控制命令并讀取環(huán)境光照數(shù)據(jù)。本文設(shè)計(jì)中,以 1 路信號(hào)為例,光照傳感器的 I2C 總線時(shí)鐘線 SCL、數(shù)據(jù)線 SDA 分別與單片機(jī) P1.0,P1.1 端口連接。
電器設(shè)備通斷控制選用松樂(lè) SRD-05VDC-SL-C 電磁繼電器模塊。該繼電器有 5 個(gè)引腳,2 個(gè)引腳為繼電器線圈端子,3 個(gè)引腳為繼電器的觸點(diǎn)引出端,其中一個(gè)是公共端, 與另外兩個(gè)觸點(diǎn)分別構(gòu)成一對(duì)常閉觸點(diǎn)(NC)與一對(duì)常開觸點(diǎn)(NO)。本文設(shè)計(jì)中,擴(kuò)展 3 個(gè)電磁繼電器控制 3 臺(tái)電器設(shè)備,單片機(jī)接收來(lái)自手機(jī)的電器設(shè)備通斷控制信號(hào),經(jīng)P2.0 ~ P2.2 端口輸出到繼電器線圈,實(shí)現(xiàn)電器設(shè)備通斷。單片機(jī)系統(tǒng)接線關(guān)系如圖 2 所示。
3 無(wú)線數(shù)據(jù)傳輸設(shè)計(jì)
數(shù)據(jù)傳輸采用 WiFi 網(wǎng)絡(luò)實(shí)現(xiàn), 選用海凌科電子公司設(shè)計(jì)生產(chǎn)的嵌入式 UART-WiFi(串口 - 無(wú)線網(wǎng))模塊HLK-M35。該模塊使用 IEEE 802.11 協(xié)議棧網(wǎng)絡(luò)標(biāo)準(zhǔn), 無(wú)線傳輸速率高達(dá) 150 Mbit/s,信道可達(dá) 14 個(gè),頻率范圍為
2.4G~2.4835GHz,發(fā)射功率為 14~18dbm,有串口及GPIO接口,串口波特率最高為 115200bit/s,傳輸距離可達(dá)100~300 m,TCP最大連接數(shù)為 4,工作溫度為 -20~70 ℃。它基于通用串行接口,內(nèi)置 TCP/IP協(xié)議棧,可實(shí)現(xiàn)用戶串口 - 無(wú)線網(wǎng)(WiFi)之間的轉(zhuǎn)換。HLK-M35模塊可以配置為無(wú)線STA或 AP,以便實(shí)現(xiàn)串口轉(zhuǎn) WiFi STA或串口轉(zhuǎn) WiFiAP。
HLK-M35 模塊支持串口透明傳輸模式,其優(yōu)點(diǎn)是串口可即插即用。當(dāng)模塊以透明傳輸模式運(yùn)行時(shí),用戶只需配置必要的參數(shù)。得電后,該模塊可自動(dòng)連接到設(shè)置的無(wú)線網(wǎng)絡(luò)與服務(wù)器。
本文設(shè)計(jì)中,HLK-M35 模塊設(shè)置為 AP 熱點(diǎn)模式,手機(jī)可直接連接該模塊,方便對(duì)用戶設(shè)備進(jìn)行監(jiān)控 [5-6]。HLK-M35 模塊的 RX 及 TX 端與單片機(jī)收發(fā)端 P3.0,P3.1交叉連接。
4 軟件設(shè)計(jì)
軟件設(shè)計(jì)包括單片機(jī)系統(tǒng)程序設(shè)計(jì)與手機(jī)控制中心 APP軟件開發(fā)兩部分,兩者協(xié)同工作,共同實(shí)現(xiàn)環(huán)境信息的采集、處理、傳輸、顯示與設(shè)備操控。
4.1 數(shù)據(jù)采集與處理單片機(jī)主控程序設(shè)計(jì)
單片機(jī)系統(tǒng)上電后,單片機(jī)以及各模塊初始化,開串口中斷進(jìn)入無(wú)限循環(huán),后續(xù)依次為溫濕度數(shù)據(jù)采集、光照數(shù)據(jù)采集、判斷手機(jī)控制信號(hào)等。溫濕度傳感器和光照傳感器均為每隔 1 ms 采集一次環(huán)境參數(shù)數(shù)據(jù)并發(fā)送至串口,串口按照濕度數(shù)據(jù)、溫度數(shù)據(jù)、光照數(shù)據(jù)依次調(diào)用子函數(shù)發(fā)送,發(fā)送完畢后軟件將 TI 清零。在串口發(fā)送數(shù)據(jù)的同時(shí)等待串口接收中斷,當(dāng)有手機(jī)發(fā)來(lái)控制指令信息時(shí),串口接收并解析數(shù)據(jù),控制繼電器動(dòng)作,通斷電器設(shè)備 [7]。單片機(jī)系統(tǒng)主程序流程如圖 3 所示。
4.2 手機(jī) APP 軟件設(shè)計(jì)
本文采用安卓系統(tǒng)手機(jī)作為上位機(jī),開發(fā)的手機(jī) APP 具備三種功能 :建立與服務(wù)器連接,在手機(jī)界面查看室內(nèi)溫濕度和光照強(qiáng)度信息,點(diǎn)擊手機(jī)界面按鈕控制電器設(shè)備通斷。
程序設(shè)計(jì)主流程如圖 4 所示。
手機(jī) APP 在 Android Studio 環(huán)境下采用 Java 語(yǔ)言開發(fā)。程序開發(fā)采用多線程技術(shù),為避免主線程被阻塞,監(jiān)聽服務(wù)器消息放于子線程中運(yùn)行,使用 Runnable 接口的方式定義子線程。
由于 Android 不允許在子線程中進(jìn)行 UI 操作,故采用異步消息處理 Handler,在子線程中監(jiān)控服務(wù)器,然后根據(jù)what 值在 Handler 中進(jìn)行判斷,處理 message 中的信息,刷新 UI 中的溫濕度和光照強(qiáng)度數(shù)據(jù)。部分關(guān)鍵 Java 程序如下 :
當(dāng)利用手機(jī)按鈕控制電器設(shè)備通斷時(shí),在 MainActivity中為每個(gè)按鈕的點(diǎn)擊事件注冊(cè)監(jiān)聽器。每當(dāng)點(diǎn)擊按鈕時(shí),就會(huì)執(zhí)行 OnClickListener()。此類功能主要用到 UI、服務(wù)、提示、Socket 等技術(shù) [8-10]。
實(shí)驗(yàn)結(jié)果表明,本文系統(tǒng)很好地實(shí)現(xiàn)了環(huán)境參數(shù)的獲取、顯示及電器控制。手機(jī) APP 實(shí)驗(yàn)界面如圖 5 所示。
5 結(jié) 語(yǔ)
本文設(shè)計(jì)了一種基于單片機(jī)與 WiFi 的智能室內(nèi)環(huán)境監(jiān)控系統(tǒng),利用手機(jī)即可實(shí)現(xiàn)對(duì)室內(nèi)環(huán)境參數(shù)的檢測(cè)與設(shè)備控制。該系統(tǒng)包括以 STC89C52 單片機(jī)為核心的數(shù)據(jù)采集與電器控制節(jié)點(diǎn)、由 HLK-M35 通信模塊構(gòu)建的負(fù)責(zé)廣播信息的WiFi AP 節(jié)點(diǎn)及安裝有應(yīng)用軟件的手機(jī)移動(dòng)終端三部分。實(shí)驗(yàn)結(jié)果表明,三者協(xié)同工作,能夠完成室內(nèi)環(huán)境智能監(jiān)控系統(tǒng)要求的溫濕度、光照強(qiáng)度自動(dòng)檢測(cè)、電器設(shè)備控制等功能,具有高可靠性、良好的適用性及擴(kuò)展性,是一種較好的智能室內(nèi)參數(shù)檢測(cè)與設(shè)備控制的實(shí)現(xiàn)方式。