雷建和+萬斌+錢晶+劉明
摘 要: 設計一種室內環境信息采集系統。系統中單片機STM32F103ZET6和STM32F103RBT6分別作為中央節點控制器和局部節點控制器并通過濕度傳感器、光照傳感器、PM2.5傳感器、煙霧傳感器、步進電機、音樂模塊、語音模塊控制器來完成溫濕度、光照度、PM2.5的采集與顯示、背景音樂的播放控制、室內燈光的自動調節、室內百葉窗控制。由于需要采集和控制客廳、臥室、廚房等建筑單元的環境參數,故采用分布控制式控制系統,每個建筑單元的采集、控制節點以及中央控制器和局部控制器都掛在CAN總線上,所以其具有模塊化、可擴展的特點并能實現各控制器之間的通信。經過實際調試和運行結果表明,該系統可達到設計和教學要求。
關鍵詞: CAN總線; 傳感器; 信息采集; STM32; 通信; 控制器
中圖分類號: TN431.1?34; TP273 文獻標識碼: A 文章編號: 1004?373X(2018)02?0026?04
Abstract: An indoor environment information acquisition system is designed in this paper. The STM32F103ZET6 and STM32F103RBT6 microcontrollers are used respectively as the central node controller and the local node controller to accomplish acquisition and display of temperature, humidity, illuminance and PM2.5, and play control of background music, automatic dimming of indoor lamplight and control of indoor shutter by using temperature and humidity sensor, light illumination sensor, PM2.5 sensor, smoke sensor, stepper motor, music module controller and voice module controller. The distributed control system is used due to the need to collect and control the environment parameters of the living room, bedroom, kitchen and other building units. The central node controller, the local node controller, the acquisition node and the control node of each building unit are all collected to the CAN bus to make the system have characteristics of modularization and expansibility, and realize communication between controllers. The actual debugging and operation results show that the system can meet the design and teaching requirements.
Keywords: CAN bus; sensor; information acquisition; STM32; communication; controller
隨著科技水平的不斷提高,室內智能建筑環境在人們生活中出現的頻率越來越高,人們已經不再滿足于傳統的建筑模式。因此對家庭環境的要求便成為了智能建筑和環境監測的發展動力。室內環境信息采集系統就是為解決室內環境監測和控制而設計的。我國的室內環境采集如今向著網絡化、智能化方向發展。童懷、王朝華等人設計了基于Android的智能家居系統[1],通過單片機建立一個智能家居控制網關并利用基于Android手機的控制系統進行家居信息控制采集;南忠良,孫國新設計了一種基于ZigBee技術的智能家居系統[2],通過利用ZigBee模塊、單片機和PC機對家居信息進行控制采集。
本文設計的室內環境信息采集系統,采用CAN總線組網構成分布式控制系統[3],完成室內環境狀況的檢測、數據處理、數據發送以及環境狀況顯示,具有高性能、高可靠性的特點[4]。
1 室內環境信息采集系統方案設計
1.1 系統的功能實現
該系統采用STM32作為控制器芯片[5],將各控制器節點掛載在CAN總線上,來完成通信,將臥室、廚房內的CAN節點采集來的數據通過CAN總線發送到客廳內的CAN節點上面[6],并通過ALIENTEK 7寸TFTLCD觸摸屏顯示和監控。該系統功能框圖如圖1所示。
該系統主要完成以下功能:
1) 設計實現在公共區域根據光照度自動調光,根據照度有效調節控制百葉窗等;
2) 實現對家居背景音樂的點播和控制;
3) 實現時鐘和日歷的實時顯示;
4) 實現對室內環境如溫度、濕度、光照度、PM2.5等實時檢測和顯示;
5) 實現對室內燃氣泄漏或管道壓力超限及時預計或報警[7];
6) 實現對室內插座等電源回路的定時控制。
1.2 主控單片機的選擇
本設計系統采用單片機STM32F103ZET6,其具有512 kB FLASH,64 kB SRAM,外擴的SPI FLASH,16 MB的W25Q128 為本系統開發提供充足的存儲資源[8]。endprint
2 系統硬件選擇及模塊電路設計
1) CAN總線模塊。在本系統設計中STM32自帶CAN控制器,因此,只需將芯片的PA11和PA12與CAN收發器的1管腳和4管腳相連即可。另外,多個CAN節點掛載在CAN總線上時,收發器6管腳和7管腳上的電阻需要去掉;雙CAN通信時不需要去掉。CAN收發器原理圖如圖2所示。
2) MP3模塊。在該系統中要完成背景音樂的播放和控制,選擇ATK?VS1053 MP3。ATK?VS1053通過SPI接口與STM32單元中的SPI1通信,將存儲在SD卡的音樂文件取出來,發送到VS1053進行音頻解碼,實現音樂播放等功能。MP3模塊引腳與STM32相連說明見表1。
表1中:RST是復位信號;DREQ是數據請求信號,來通知STM32,VS1053是否做好接收數據的準備;其他管腳則是VS1053的SPI通信管腳。MP3模塊與STM32接口圖如圖3所示。
3) 觸摸屏液晶顯示電路。本設計系統中,需要完成控制器參數的顯示,其顯示模塊選用ALIENTEK開發的7 寸 TFTLCD 模塊。
4) 語音播放模塊。WTW?16P語音模塊采用WT588D?20SS 作為核心控制電路。外部只需要接上電源、控制端以及揚聲器就能正常工作。
5) 溫濕度度檢測模塊電路設計。DHT21是帶有自校準的輸出數字信號的溫濕度復合傳感器[10]。DHT21溫濕度傳感器模塊與STM32單片機的PB13管腳相連接。當其信號線小于20 m時,信號線要加上5 kΩ的上拉電阻。
6) 亮度檢測模塊電路設計。為了實現室內調光和節約能源,需要檢測室內光照環境,選擇BH1750FVI光照傳感器,其數據傳輸方式采用是兩線式串行總線方式。亮度檢測模塊BHT1750SCL,SDA與STM32單片機的PB10,PB11相連接,以I2C總線傳輸數據。光照傳感器BHT1750原理圖如圖4所示。
7) PM2.5模塊設計。PM2.5傳感器用 GP2Y1010
AU0F 。GP2Y1010AU0傳感器3管腳與STM32的PB7相連,點亮該傳感器內部的LED;5管腳VO與單片機的PA0相連,是模擬量輸出。
8) 聲光報警模塊電路。本文采用MQ?2煙霧傳感器來采集廚房內的可燃氣體濃度。當濃度大于設定值時,PB8管腳電平置高,來使蜂鳴器動作,來通知用戶燃氣泄漏,做好安全措施。
9) 客廳燈光設計。在辦公區域或家居內根據不同情景模式需要,選擇性打開LED燈。
10) 百葉窗模塊設計。根據室內光照強度,單片機會發出相應的控制信號,來控制步進電機旋轉相應的角度,從而調節百葉窗的開度。
11) 系統硬件搭建。根據系統硬件選擇完成最終搭建,系統硬件搭建如圖5所示。
3 軟件系統設計
3.1 系統總體程序設計
完成了系統的硬件設計之后,相當于完成了“軀干”部分,要想使系統正常、穩定工作,還得為系統注入軟件程序。系統在上電之后,會先對系統的各個模塊進行初始化,初始化就是將系統的各個部分設置成默認值。系統程序流程圖如圖6所示。
3.2 觸摸屏界面程序設計
觸摸屏界面是該系統人機交互的主要途徑,觸摸屏在使用前需要進行初始化。LCD顯示設計流程圖如圖7所示。
3.3 CAN總線通信模塊的軟件設計
CAN節點的功能主要是發送和接收數據,首先應對STM32中關于CAN的控制器進行初始化。CAN控制器初始化配置,需要對中斷進行設置,優先級設置為最高;配置CAN用的I/O管腳;設置CAN的通信速度為450 kbit/s。
1) CAN發送數據流程圖如圖8所示。
2) CAN接收數據流程圖如圖9所示。
圖9表明了CAN接收數據的流程,但是缺少從FIFO中讀出報文,FIFO存儲3個報文之后,在下個報文到來之前,必須先讀出一個報文,否則FIFO將溢出,丟失數據。只要FIFO讀出一個報文,掛號就減1,FIFO不為0,就可以讀出報文。
3.4 溫濕度采集程序設計
本系統選用的溫濕度傳感器(DHT21)工作方式為單總線。數據通信協議包括起始信號、響應信號、溫度數據、濕度數據、校驗位。起始信號:數據總線拉低,通知傳感器準備數據。響應信號:把總線拉低80 μs,再拉高80 μs以響應主機的起始信號。濕度數據:前16位為濕度信號,高位在前,傳感器的值為實際濕度值的10倍。溫度數據:中間16位為溫度信號,最高位為1,表示負溫度信號,最高位為0,表示正溫度信號。校驗位:校驗位為8位數據。
4 結 論
本文主要研究室內環境信息采集系統設計。通過分布式控制系統對客廳、臥室、廚房等建筑單元的環境參數進行采集控制,最終經過實際搭建運行調試,能夠達到實際使用和教學要求。
參考文獻
[1] 王朝華,陳德艷,黃國宏,等.基于Android的智能家居系統的研究與實現[J].計算機技術與發展,2012,22(6):225?228.
WANG Zhaohua, CHEN Deyan, HUANG Guohong. Research and implementation of smart home based on Android platform [J]. Computer technology and development, 2012, 22(6): 225?228.
[2] 南忠良,孫國新.基于ZigBee技術的智能家居系統設計[J].電子設計工程,2010,18(7):117?119.
NAN Zhongliang, SUN Guoxin. Design of smart home system based on ZigBee [J]. Electronic design engineering, 2010, 18(7): 117?119.endprint
[3] YANG Chunjie, YAO Ji. The design of distributed control system based on CAN bus [C]// Proceedings of international conference on Electronic & Mechanical Engineering and Information Technology. [S.l.: s.n.], 2011, 8: 3956?3958.
[4] 陳益慶.CAN總線原理及應用研究[J].商,2014(49):165.
CHEN Yiqing. Principle and application of CAN bus [J]. Business, 2014(49): 165.
[5] 李琳,王曉東.一種基于單片機的防火防盜報警系統:CN104123819A[P].2014?10?29.
LI Lin, WANG Xiaodong. A fire alarm system based on single chip microcomputer: CN104123819A [P]. 2014?10?29.
[6] 李曉虹,劉克福.基于單片機和CAN總線的智能家居控制系統[J].智能建筑與城市信息,2010(1):56?59.
LI Xiaohong, LIU Kefu. Smart home control system based on single chip microcomputer and CAN bus [J]. Intelligent building & city information, 2010(1): 56?59.
[7] 趙雨斌,苗滿香,陳宇.基于CAN總線的樓宇智能監控報警系統研究與設計[J].核電子學與探測技術,2008(5):657?661.ZHAO Yubin, MIAO Manxiang, CHEN Yu. Research and design of building intelligent monitoring alarm system based on CAN bus [J]. Nuclear electronics & detection technology, 2008(5): 657?661.
[8] 馬淑華,王鳳文,張美金.單片機原理與接口技術[M].2版.北京:北京郵電大學出版社,2011.
MA Shuhua, WANG Fengwen, ZHANG Meijin. Principle and interface technology of single chip microcomputer [M]. 2nd ed. Beijing: Beijing University of Posts and Telecommunications Press, 2011.
[9] Anon. ARM??based 32?bit MCU STM32F103xx firmware library [DB/OL]. [2016?10?12]. http://www.doc88.com/p?6791552
898506.html.
[10] 趙繼文.傳感器與應用電路設計[M].北京:科學出版社,2002.
ZHAO Jiwen. Sensor and application circuit design [M]. Beijing: Science Press, 2002.endprint