楊飛宇 吳菲 唐修權








摘? 要:隨著科技的發展,智能家居逐漸進入大眾的視野,它能有效提高人們的生活質量。根據目前的市場狀況,設計一套基于STM32的智能家居系統,該系統采用藍牙無線通信技術,結合溫濕度采集、光照檢測、人體感應等功能,實現了手機遠程監測室內環境和控制室內設備的目標,此外,該系統還設有自動控制模式和安防預警模式。測試結果表明,該系統準確度較高,運行穩定,能夠滿足對家庭環境的實時檢測和安防預警,在室內環境檢測和家庭安防領域具有一定的應用推廣價值。
關鍵詞:STM32單片機;光照檢測;安防預警;智能家居
中圖分類號:TN929.5? 文獻標識碼:A? 文章編號:2096-4706(2023)08-0189-04
Abstract: With the development of technology, smart home has gradually entered the public's vision, which can effectively improve people's quality of life. According to the current market situation, a set of smart home system based on STM32 is designed. The system uses Bluetooth wireless communication technology, combined with temperature and humidity collection, light detection, human body sensing and other functions, to achieve the goal of remote monitoring of indoor environment and control of indoor equipment by mobile phones. In addition, the system also has automatic control mode and security warning mode. The test results show that the system has high accuracy and stable operation, and can meet the real-time detection and security warning of the home environment. It has certain application and promotion value in the field of indoor environment detection and home security.
Keywords: STM32 Single-Chip Microcomputer; light detection; security warning; smart home
0? 引? 言
物聯網技術的興起,讓各式各樣的家電設備實現了連接,形成智能家居系統,人們開始對家庭環境的智能化、個性化和安全性有了要求,基于此智能家居開始提供對家庭環境的實時監控、智能預警等智能服務[1-3]。本文以家庭環境實時檢測和控制為課題,研究設計一套智能家居系統,該系統能夠提供對家庭環境的實時檢測和智能預警功能,旨在科學改善室內環境,滿足人們對居住環境舒適度和智能化的需求[4]。本文針對智能家居的環境監測與智能控制加入藍牙控制模塊,實現手機APP終端與藍牙模塊的通信,進而達到對整個智能家居系統的直觀監測與控制。
1? 系統結構設計
本系統以ST公司的STM32F103C8T6微控制為核心,采用光強、溫濕度和人體紅外檢測傳感器實現信息采集,采用TI公司的CC2640藍牙通信芯片與用戶手機進行信息交互,用戶手機端采用APP通過藍牙接收信息,并對家居系統進行控制[5]。本系統大致分為四個部分:傳感器數據采集、MCU數據處理、藍牙數據傳輸和手機APP客戶端,如圖1所示。
數據采集工作由各個傳感器完成,主要采集溫濕度、光照強度、有無人經過等信息;數據處理即是由STM32F103C8T6對傳感器采集到的數據進行處理,做好發送和顯示的準備[6];藍牙數據傳輸即是使用串口將MCU處理的數據通過藍牙模塊發送到手機APP端,手機APP端也可通過藍牙發送設計好的指令字符串,控制整個系統的相應動作;手機APP客戶端主要是便于人機交互,保證系統操作的便捷。
除此以外,系統還加入了鍵盤和0.96寸OLED屏顯示,使之可在沒有手機的情況依然可以使用,拓寬了系統的適用范圍。本系統成本低廉,性能穩定,能夠很好地完成室內環境實時檢測和控制功能。
2? 硬件系統設計
家庭環境實時檢測和控制系統的硬件部分主要包括三個部分:第一部分是室內環境信號采集,包括由DHT11采集溫濕度,由HC-SR501感應是否有人經過,由BH1750監測光強信息;第二部分是對采集的信號進行處理和控制,包括用設定程序控制電機正反轉以模擬窗簾的開合,實現系統的自動控制,或用鍵盤或手機APP發送指令實現手動控制;第三部分是藍牙數據傳輸,采用CC2640芯片的DX-BT20藍牙模塊,實現STM32單片機與手機APP的數據互傳。
2.1? 藍牙模塊硬件設計
本系統選用DX-BT20芯片作為藍牙通信模塊,采用TI公司的CC2640芯片,支持高速傳輸,功耗較低。CC2640是一款面向Bluetooth Smart應用的無線MCU,此器件屬于CC26xx系列經濟高效、超低功耗2.4 GHz RF器件。該系列器件為改善系統性能和降低功耗,藍牙協議棧部分采用一個單獨的ARM Cortex-M0獨立運行,它的工作頻率是48 MHz,與主處理器相同[7]。
2.2? 室內環境采集硬件設計
本系統采用DHT11溫濕度傳感器模塊獲取室內溫度和濕度數據[8],這款產品技術成熟,已經在很多測量場景中進行了應用,能保證長期使用的穩定性和可靠性。溫度測量范圍是0~50 ℃,誤差為±2 ℃;濕度測量范圍是20~90 %RH,誤差為±5 %RH;該模塊與STM32單片機之間的通信方式為單總線數據格式的同步通信。
本系統的光照強度傳感器模塊選用BH1750光傳感器。該傳感器是一種采用雙線IIC接口的數字光亮度集成電路傳感器,可以檢測較寬范圍的光強度變化。在本次設計中,用它來檢測室內環境的光照強度,單片機可根據它測量的環境光強度值來自動控制窗戶的打開與關閉。該數字光強檢測傳感器的工作電壓為3~5 V,光照度可測的數據范圍是0~65 535 Lux,可直接通過內置的16位模數轉換器進行數字輸出,進行精度達1 Lux的高精度測量。光照傳感器模塊BH1750在工作時檢測周圍光線變化,其SDA、SCL引腳接在STM32F103C8T6單片機的PB6、PB7接口。在系統上電進入工作狀態后,單片機將通過IIC協議讀取光照光感器內部寄存器數據,每500毫秒循環讀取一次。BH1750模塊通過兩個IIC接口與單片機相連進行通信。
本系統采用HC-SR501作為人體紅外感應模塊,它具有工作穩定的優點,其內置的是RD-624紅外傳感探頭,并配合菲涅爾透鏡,使反應更加靈敏,適用各類自動感應設備。
本系統采用DS1302作為時鐘模塊。它是由DALLAS公司研發的涓流充電時鐘芯片,能夠實時提供秒、分、日、月和年的信息。其通信方式為同步時鐘的SPI通信,傳輸數據快,響應度高,該模塊還使用了一個紐扣式電池,保證系統掉電后時間不會停止。
2.3? 電機驅動模塊設計
考慮到住戶窗簾導軌長短不同的情況,為了能夠很好地模擬窗簾的打開和關閉,這就要求電機不僅能正反轉,指定角度也需要很精確,以適應不同長度的導軌,于是本設計中采用型號為28BYJ-48的步進電機進行模擬。該步進電機用5~12 V電壓供電,選用ULN2003驅動芯片,該芯片是一款高壓、大電流輸出轉換器。該驅動模塊可以實現電機的正向轉、反向轉和停止三個工作狀態,能夠很好地模擬窗簾的開啟和關閉狀態。
3? 軟件系統設計
本系統的軟件部分包括STM32主控程序的設計、藍牙通信的設計以及手機APP程序的設計。其中,STM32的主控程序中主要包括傳感器數據的采集和步進電機的控制,手機APP部分主要包括藍牙數據收發程序的編寫和界面設計[9,10]。
3.1? 主控程序設計
為了能夠實時處理和傳輸各個傳感器采集的信息,本次設計的程序將對DHT11溫濕度傳感器模塊、BH1750光照傳感模塊以及人體紅外傳感模塊等不斷進行循環掃描,及時更新和處理數據。主程序首先進行系統的初始化,之后再運行其他功能模塊,并在不同模式下采取不同的程序邏輯。主程序流程圖如圖2所示。
3.2? 人體紅外檢測程序設計
人體紅外檢測可分為兩種模式:正常模式和安防模式。正常模式下,當檢測到有人移動時,只記錄這次檢測到人移動的時間,并將數據發送至手機APP。而在安防模式下,除了將數據發送給用戶,還將在APP中提醒有人闖入,蜂鳴器也會隨之觸發,以警告闖入者。人體紅外檢測程序流程圖如圖3所示。
3.3? 藍牙數據傳輸設計
藍牙傳輸協議在安卓手機系統上一直以來都得到了很好的支持。Android上的藍牙應用開發主要是使用安卓系統中提供的藍牙通信相關的類庫來實現的。單片機首先對管腳進行配置,然后對串口的波特率進行設置,最后配置串口中斷模式。完成串口初始化后,上位機開啟藍牙,找到需要通信的藍牙設備,然后創建藍牙接字和IO流,最后通過IO流與單片機進行通信。
3.4? 手機APP軟件設計
手機APP程序主要由藍牙數據收發、數據處理、顯示視窗等部分組成。首先,手機需要搜索藍牙設備,程序預先將UUID寫入,為連接做好準備。連接成功后,需要在APP程序中將藍牙工作模式設置為串口通信模式,這樣才能與連接到單片機串口上的藍牙模塊通信,接收到的數據要經過一個數據處理函數,否則會因為進制問題而產生亂碼。數據接收成功后,將處理好的數據通過手機APP上的顯示視窗完成顯示。發送數據前,也需要對數據進行相應的處理,并且為了使用戶收到的數據沒有多余的內容,需要提前將所發送數據包中不必要的內容刪除,讓用戶收到最有用的數據。手機APP與藍牙通信部分流程圖如圖4所示。
手機藍牙與單片機上的藍牙模塊能夠正常通信后,就能進行手機APP在用戶層的開發。在手機APP界面上將設定好的各個指令字符以按鈕、開關等形式展示,按下對應的按鈕其實就是發送相應的指令,避免了手動輸入指令及發送的麻煩,更是方便了用戶的使用。
4? 系統測試
在設計完成后,需要對系統的功能、穩定性等進行一個全面的測試,以確定本系統是否達到了預期目標,并驗證系統的穩定性。對該系統的測試主要分為硬件測試和軟件測試兩個部分:硬件測試包括各個傳感器的數據測試和藍牙數據傳輸測試;軟件測試主要是對手機APP的功能測試,測試APP里的數據收發功能,以及單片機能否對手機APP的功能按鈕做出相應的反應。
4.1? 硬件系統測試及測試結果
4.1.1? 溫濕度傳感器測試
DHT11溫濕度傳感器測試可以通過該系統測得值與專業儀器測得值相對比的方式實現,測試方法是在同一時間、同一地點,記錄該系統測試的溫濕度值和市面上測試儀器測得的溫濕度值,將數值進行對比,對比得到的表格如表1和表2所示。
由以上兩個表得出的數據可知,沒有出現不合理的誤差,數據都接近于實際值,表明測量溫濕度的模塊工作正常且穩定。
4.1.2? 光強傳感器測試
將光強傳感器BH1750置于不同的光照環境下,經過多次測試,光強傳感器顯示的數值變化靈敏,在室內角落的光強數值在10~20之間變化,在室內燈光下的光強數值在40~50之間變化,白天面朝窗戶時光強數值在100以上,表明該模塊正常工作,部分測試結果如表3所示。
該模塊除了監測光強的功能外,還要結合步進電機,讓它根據光照值大小實現對窗簾的自動控制功能。在手動模式下,可以通過按鍵或手機發送指令控制步進電機的正反轉,如表4所示為自動模式下根據設定的光強閾值改變電機正反轉的結果。由以上結果可知兩者工作配合正常。
4.2? 軟件系統測試及測試結果
手機APP主界面包括環境監測數據窗口、人體紅外傳感器觸發記錄窗口、設備控制按鈕和模式選擇開關四大部分,該APP通過手機藍牙連接單片機上的藍牙模塊與單片機進行通信,其主界面如圖5所示。
環境監測數據顯示窗口主要用于顯示當前時間的環境數據,該部分下方設有一個下拉列表,用戶可根據需要選擇數據更新頻率。APP相關截圖如圖6所示。
設備控制按鈕部分和模式選擇開關部分的原理基本相同,即每個按鈕對應一個提前設定好功能的字符,按下按鈕后,手機APP通過藍牙將指定字符發送給單片機,單片機完成對應的指令,經過測試,每個按鈕都能正常工作,該部分界面如圖7所示。
該部分可用于無線操控各個設備,藍牙連接好后,按下不同按鈕后單片機會正確執行對應命令,說明該部分功能正常。在模式選擇開關部分,若打開自動控制,單片機就會比較當前光強與設定閾值來自動控制步進電機的正反轉;若打開安全預警模式,人體紅外檢測模塊一旦被觸發,除顯示和記錄觸發時間外,同時蜂鳴器也會發出警報聲,警示闖入者。
5? 結? 論
根據目前智能家居系統的現實情況和市場的客觀需求,結合STM32單片機技術、藍牙無線通信技術和移動客戶端技術,設計出一種能在手機APP上通過藍牙遠程控制家居以及實時監測顯示室內環境數據的小型智能家居系統。本文詳細闡述了通過STM32微處理器將環境監測、自動控制和藍牙數據傳輸功能整合在一個系統中的實現過程和方法,可充分利用該微處理的資源,成本較為低廉。經過測試得知,本系統測量數據準確度較高,很好地實現了室內環境實時測量和控制功能,能夠滿足用戶對便捷、安全、高效智能生活的需求。
參考文獻:
[1] 童耀南,王欣,曹鸝晨,等.基于物聯網技術的室內環境在線監測系統設計 [J].湖南理工學院學報:自然科學版,2020,33(1):24-28.
[2] 徐蘊函.無線藍牙技術下的智能家居生活與安防系統應用 [J].中國新通信,2018,20(9):130-131.
[3] 謝夢怡.無線技術在智能家居的應用 [J].數字技術與應用,2016(2):59+61.
[4] 韋義宏,粟能鑫,謝宗民.淺析無線技術在智能家居中的應用 [J].中國科技投資,2013(Z1):143.
[5] 侯靜云,陳磊,趙靜.基于物聯網的室內環境實時監測系統設計 [J].蚌埠學院學報,2022,11(5):67-71.
[6] 梁浩林,何永玲,馮博華.基于STM32的室內物聯網控制系統 [J].物聯網技術,2022,12(8):97-99.
[7] 何峰.智能家居總線與無線技術分析 [J].科技創新與應用,2022,12(15):138-142.
[8] 葛敏婕,趙子涵.基于藍牙技術的物聯網室內定位系統 [J].物聯網技術,2021,11(11):52-57.
[9] 張洪濤.幾種常見無線技術在智能家居中的應用分析 [J].電腦知識與技術,2021,17(1):69-70.
[10] 孫軍.基于物聯網的室內空氣質量監測儀的設計與實現 [D].北京:華北電力大學,2020.
作者簡介:楊飛宇(1997—),男,漢族,河南周口人,碩士研究生在讀,主要研究方向:嵌入式系統與智能儀器;吳菲(1995—),男,漢族,重慶人,碩士研究生在讀,主要研究方向:計算機軟件;唐修權(1997—),男,漢族,重慶人,碩士研究生在讀,主要研究方向:計算機軟件。