摘要:隨著人民生活水平的提高,對生活居所的環境品質和安全提出了更高的要求,對家居環境溫濕度的監測以及對瓦斯濃度、光強的監測對人們的生活和安全有及其重要的作用,本文研究了基于NRF905的分散節點的多點傳輸無線監測系統,較為詳細地介紹了該系統的組成結構、工作原理、硬件構成、軟件設計和測試結果。本系統試驗運行良好可靠性高,且非常方便進行節點數擴展,具有較好的推廣應用前景。
關鍵詞:NRF905;智能家居;節點;監測;STC12C5A16S2
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1674-7712 (2012) 18-0112-03
智能家居是利用先進的電子技術、網絡通訊技術等,將家庭中各種與信息相關的通訊設備,家用電器和家庭保安裝置通過家庭總線技術(HBS)連接到一個家庭智能化系統上進行集中的或異地的監視、控制和家庭事務性管理,并保持這些家庭設施與住宅環境的有機地結合在一起的系統。智能家居不僅具有傳統的居住功能,并且通過在家中建立的通訊網絡,實現對家庭中的各種與信息相關的設備、家用電器及保安裝置,進行集中的或遠程的監測和管理,使人們的生活更加安全、便利、舒適和符合環保。在日常生活和室內商業活動中,為保證各項工作在某恒定的氣體濃度、溫度、濕度、光照等安全范圍內進行,對溫濕度、光照度的監測及控制具有極其重要的意義。
本系統設計一個基于NRF905的無線智能家居監測系統,主要是在端節點采集氣體濃度、溫度、濕度、光照強度等相關信息,然后通過NRF905無線射頻模塊傳送相應信息到主機,實時采集到的信息在主機和主人設定的預警值進行比較計算,如果超出預警閾值設定,則發出報警信號。
一、系統原理介紹
本系統主要由主機和端節點1、2、3構成。主機主要包括微處理器模塊、LCD顯示模塊、時鐘模塊、數據儲存模塊、NRF905無線射頻模塊、報警模塊和鍵盤設定模塊構成,實現萬年歷時鐘實時顯示,并對各個端節點數據進行實時獲取到主機集中存儲和顯示,采集到的信息數據和主人設定的預警值進行比較計算,如果超出預警閾值設定,則蜂鳴器發出報警信號。
端節點主要包括無線射頻模塊、溫濕度采集模塊、溫度采集模塊、瓦斯濃度檢測模塊和光照采集模塊構成。端節點1考慮為主臥室包括NRF905無線射頻模塊和溫濕度采集模塊,對采集到的溫濕度數據通過無線模塊發送給主機;端節點2考慮為廚房主要包括NRF905無線射頻模塊、溫度采集模塊和瓦斯氣體濃度采集模塊,對采集到的溫度和瓦斯氣體濃度數據通過無線模塊發送給主機;端節點3考慮為客廳主要包括NRF905無線射頻模塊、光照采集模塊和溫濕度采集模塊,對采集到的溫濕度數據、光照強度數據通過無線模塊發送給主機。
二、系統硬件設計
(1)主機微處理器。由于主機需要多個I/O口線與LCD顯示模塊、時鐘模塊、數據儲存模塊、NRF905無線射頻模塊、報警模塊和鍵盤設定模塊進行連接,因此微處理器采用DIP40封裝的單片機STC12C5A16S2來實現。單片機STC12C5A16S2含有16K字節Flash閃速存儲器,1280字節內部RAM,1個時鐘/機器周期,高速,高可靠,2路PWM,8路10位高速A/D轉換,40個I/O口線,具有超強抗干擾性,寬電壓,不怕電源動。內部集成高可靠復位電路,外部復位電路可徹底省掉,也可繼續使用。
(2)顯示模塊。顯示模塊選擇主控為ST7920的帶字庫的LCD12864液晶顯示模塊來顯示信息。ST7920控制器的LCD產品可以提供8位,4位并行和串行三種工作接口,能夠顯示多數常用的漢字及ASCII碼,適用于各類儀小型設備的顯示領域,是比較常用的顯示器,為了節省對微處理器IO口的占用,我們采用LCD12864液晶顯示模塊串行工作模式,LCD12864串行液晶接口基本電路圖如圖2所示。
(3)主機時鐘和數據存儲模塊。主機采用DS1302時鐘芯片,DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM數據。DS1302內部有一個31×8的用于臨時性存放數據的RAM寄存器,使用非常方便。
數據存儲模塊采用AT24C256為主芯片,24C256是美國Atmel公司的低功耗CMOS型E2PROM內含32K×8位存儲空間具有工作電壓寬(2.5-5.5V)、擦寫次數多(大于10000次)、寫入速度快(小于10ms)、抗干擾能力強、數據不易丟失、體積小等特點。而且他是采用了I2C總線式進行數據讀寫的串行器件占用很少的資源和IO線并且支持在線編程進行數據實時的存取十分方便。時鐘和數據存儲電路圖如圖3所示。
(4)鍵盤和主機報警設計模塊。鍵盤采用4個輕觸開關,有鍵按下時單片機對應的IO口P20-P23某一個引腳得到低電平,通過對P20-P23的掃描判斷有哪一個鍵按下。報警模塊采用5V有源蜂鳴器外加三極管來驅動實現,當實際值超過設定的閾值時,P24輸出低電平,Q9導通,蜂鳴器響,實現報警功能。鍵盤設定和主機報警電路如圖4所示。
(一)NRF905無線射頻模塊
主機和端節點都需要配置NRF905模塊,NRF905是挪威NordicVLSI公司推出的單片射頻收發器,工作電壓為1.9~3.6V,32引腳QFN封裝(5×5mm),工作于433/868/915MHz三個ISM(工業、科學和醫學)頻道,頻道之間的轉換時間小于650us。NRF905由電源管理、晶體振蕩器、低噪聲放大器、頻率合成器、接收解調器、功率放大器、晶體振蕩器和調制器組成,不需外加濾波器,曼徹斯特編碼/解碼由片內硬件完成,無需用戶對數據進行曼徹斯特編碼,使用SPI接口與微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的輸出功率發射時電流只有11mA,工作于接收模式時的電流為12.5mA,內建空閑模式與關機模式,易于實現節能。
NRF905有兩種工作模式分別是ShockBurstTM接收模式和ShockBurstTM發送模式。ShockBurstTM模式與射頻數據包有關的高速信號處理都在NRF905片內進行,數據速率由微控制器配置的SPI接口決定,數據在微控制器中低速處理,但在NRF905中高速發送,因此中間有很長時間的空閑,這很有利于節能。由于NRF905工作于ShockBurstTM模式,因此使用低速的微控制器也能得到很高的射頻數據發射速率。在ShockBurstTM接收模式下,當一個包含正確地址和數據的數據包被接收到后,地址匹配(AM)和數據準備好(DR)兩引腳通知微控制器。在ShockBurstTM發送模式,NRF905自動產生字頭和CRC校驗碼,當發送過程完成后,數據準備好引腳通知微處理器數據發射完畢。由以上分析可知,NRF905的ShockBurstTM收發模式有利于節約存儲器和微控制器資源,同時也減小了編寫程序的時間。
因NRF905工作電壓和微處理器工作電壓不同,因此NRF905射頻模塊與微處理器IO口之間串接1K電阻作為限流電阻。主機微處理器與NRF905射頻模塊之間的連接如下圖5。
(二)端節點硬件設計
端節點硬件系統微處理器主要采用STC5206AD,與之連接的主要包括NRF905無線射頻模塊、DHT11溫濕度采集模塊、DS18B20溫度采集模塊、MQ-5瓦斯濃度檢測模塊和光敏電阻光照采集模塊構成。
(1)端節點微處理器。端節點因為所需要的IO口較少,但是需要進行模數轉換獲取數據,因此微處理器我們采用STC5206AD,端節點微處理器與NRF905模塊之間的連線同主機微處理器與NRF905模塊連接相同,見上圖5。
(2)DHT11溫濕度一體化采集模塊。DHT11是一款高度集成的溫濕度傳感器芯片,提供全標定的數字輸出。它采用專利的CMOSens技術,確保產品具有極高的可靠性和卓越的長期穩定性。傳感器包括一個電容性聚合體測濕敏感元件、一個用能隙材料制成的測溫元件。并在同一芯片上14位的A\D轉換器以及串行接口電路實現無縫連接。因此DHT11具有品質卓越、超快響應、抗干擾、能力強、極高的性價比等優點。每個傳感器芯片都在極為精確的濕度腔室中進行標定以鏡面、冷凝式濕度計為參照。標準系數以程序形式存儲在OTP內存中,在標定的過程中使用單總線的串行接口。
(3)溫度采集和瓦斯氣體檢測模塊。DS18B20數字溫度計是DALLAS公司生產的單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。DS18B20的每個器件上都有獨一無二的序列號,實際應用中不需要外部任何元器件即可實現測溫。測量溫度范圍在-55°到+125°之間,分辨率用戶可以從9位到12位選擇,精度非常高。
瓦斯氣體檢測我們采用MQ-5氣體傳感器,它使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫(SnO2)。當傳感器所處環境中存在可燃氣體時,傳感器的電導率隨空氣中可燃氣體濃度的增加而增大。使用簡單的電路即可將電導率的變化轉換為與該氣體濃度相對應的輸出信號。
MQ-5氣體傳感器對甲烷等可燃性氣體有較好的靈敏度,對乙醇,煙霧幾乎不響應。它具有快速的響應回復特性,長期的使用壽命和可靠的穩定性等優點。廣泛適用于可燃性氣體監測裝置。優良的抗乙醇,煙霧干擾能力。通過微處理器STC5206AD片內自帶的ADC采集獲取電壓VRL,根據傳感器內阻計算公式RS為=(VCC/VRL-1)×RL,內阻RS和瓦斯濃度在常溫下基本呈線性關系,因此經過補償算法,可以通過計算出RS的大小測得瓦斯濃度。溫度采集和瓦斯氣體檢測模塊原理圖見圖7。
(4)溫濕度和光強度檢測模塊。溫濕度采集和第2小節介紹相同,這里不再復述。光強度檢測主要通過光敏電阻和一個固定電阻構成分壓電路,光敏電阻的阻值根據接收到光的強弱而發生改變,分到的電壓就會發生變化,然后將得到的電壓送入P11進行ADC采集從而得到準確的光強度值。
三、系統軟件設計
由于主機微處理器STC12C5A16S2和端節點微處理器STC5206AD內核支持C51語言程序設計,故采用C語言進行軟件開發,是軟件具有可讀性強、可移植強的特點。主機初始化進行時鐘數據設定和NRF905參數設定,然后進行鍵盤掃描獲取預設值,接著往從機發送地址信號,對應的端節點將會發出正確應答信號,主機接收到應答信號后,就可以進行數據接收,并通過校驗碼判定接收數據是否正確,如果數據不正確則重新發送地址信號進行數據重新接收,如果接收數據正確則進行數據存儲,并進行時鐘數據讀取和接收到的端節點數據在LCD12864的同時顯示,最后把接收到的數據和鍵盤設定的數據進行閾值判斷是否超限,如果超限則發出報警信號,如果不超限則返回重新進行。
端節點主要是在節點進行環境的數據采集,并等待接收地址信號與主機握手,如接收的地址和本機地址溫和,則握手成功,之后就發送數據,主機接收到數據后進行校驗數據是否正確,如果數據不正確則端節點重新發送數據,如果數據正確則返回重新進行。主機程序流程圖見圖8,端節點程序流程圖見圖9。
四、測試結果
先給主機和端節點進行供電,調節某一信息的報警門限閾值,節點將數據傳送給主機顯示,主機所將顯示的溫濕度、溫度、瓦斯濃度及光照強度數據和實際終端儀器測試的進行對照,同時觀察期報警效果。光照部分我們根據室內最大亮度100%電壓值和最暗亮度0%電壓值作為參照值,進行1000個刻度的劃分。因節點3的溫濕度測試情況和節點1大致相同,不再列表。
通過我們反復測量的數據可知,節點1由于DHT11本身測量精度的問題,整個測量數據還是存在誤差,這是由于DHT11器件本身問題導致,但數據誤差處于正常范圍之內。節點2采用的DS18B20溫度數據誤差明顯小于DHT11的溫度采集數據。節點2的瓦斯濃度和節點3光照部分我們都是通過單片機內部10位高精度AD采樣,達到千分之一的分辨率,達到較好的精度。從整體測量數據看,我們的結果是在預期范圍內的,報警功能全部無誤,能夠實現監測安全的要求。
五、結語
本系統具有人性化人機交互界面,操控簡單,采集溫濕度、瓦斯濃度、光強等多個節點,數據全面。由于NRF905是基于節點的射頻雙工通信系統,內部有自己的地址和加密方式,很容易的實現對多點實時監測,具有可無人值守,節約資源,可靠性高,成本低,便于擴展節點數等優點,其監測范圍可以在500米以內,可以廣泛運用家居和室內商業活動等需要進行環境監控的場所。
參考文獻:
[1]楊加國.單片機原理與應用及C51程序設計[M].北京:清華大學出版社,2008.
[2]深圳宏晶科技.STC12C5A60S2產品選型手冊[Z],2010.
[3]周洪,胡文山,張立明.智能家居控制系統[M].北京:中國電力出版社,2006.
[4]鄭君剛.基于無線傳感器網絡技術智能家居報警系統設計[J].沈陽建筑大學學報(自然科學版),2008,2:345-348.
[5]于昕梅,彭鶴挺.智能家居控制系統設計[J].電腦開發與應用,2009,1:58-60.
[作者簡介]陳海彬(1980.3-),男,福建漳平市人,本科,學士,助教,泉州信息職業技術學院,研究方向:自動化控制、嵌入式系統。