化騰飛
太原理工大學新型傳感器與智能控制教育部和山西省重點實驗室,山西太原030024
基于MSP430F149單片機與AM2301傳感器的溫濕度計設計
化騰飛
太原理工大學新型傳感器與智能控制教育部和山西省重點實驗室,山西太原030024
為提升家居生活的安全性、便利性、舒適性、藝術性及實現(xiàn)環(huán)保節(jié)能,需實時監(jiān)測家居環(huán)境的溫濕度、亮度等條件,以便更好地了解家居環(huán)境并進而對家居環(huán)境進行智能控制。鑒于此,基于高性能、低功耗單片機MSP430F149通過單總線方式控制溫濕度傳感器AM2301,實現(xiàn)了智能溫濕度計對家居環(huán)境中溫度、濕度進行監(jiān)測。當家居環(huán)境中的溫濕度過高、過低時都會有相應的LED燈閃爍警告;并且通過LabVIEW設計實現(xiàn)了上位機軟件顯示溫濕度數(shù)據(jù),方便通過PC機實時查看家居環(huán)境中的溫濕度值。為智能家居的環(huán)境監(jiān)測做了基礎工作,并方便基于MSP430F149單片機做進一步擴展工作,為實現(xiàn)智能家居奠定了基礎。
MSP430F149;AM2301傳感器;溫濕度監(jiān)測與報警;LabVIEW上位機軟件;智能家居
溫濕度和亮度與人們的家居生活息息相關,合適的溫濕度和亮度使得人們的家居生活便利、舒適、健康、安全。目前常用的溫濕度計主要分兩種:一種是傳統(tǒng)的溫濕度計,溫度用水銀柱來顯示,濕度用機械式指針顯示,價格便宜,但是精度不高,不易讀數(shù)[1];還有一種是基于LCD顯示溫濕度值的數(shù)字式溫濕度計,這種溫濕度計具有測量方便、簡單、靈活等特點,可以大幅度提高溫濕度監(jiān)測的精度,示數(shù)也更加直觀易讀。但是目前這種數(shù)字式溫濕度計基本上是基于51單片機所實現(xiàn),使用液晶屏或LED數(shù)碼管顯示溫濕度示數(shù)[1,2],性能較差,不便于擴展其他功能,界面不友好,且功耗較大。
本文基于高性能、低功耗單片機MSP430F149和溫濕度傳感器AM2301設計實現(xiàn)溫濕度計,并基于LabVIEW實現(xiàn)上位機軟件監(jiān)測家居環(huán)境溫濕度,電路簡單,性能可靠,通過MSP430F149μs級精確定時采集、控制溫濕度傳感器確保溫濕度計的高精度,人機交互界面友好,并且MSP430F149單片機資源豐富,可以擴展其他智能家居應用,擴展性強。
本文所設計得溫濕度計系統(tǒng)框圖如圖1所示。MSP430F149單片機通過單總線控制溫濕度傳感器AM2301測量家居環(huán)境溫濕度并接收AM2301傳回得數(shù)據(jù)。在收到AM2301傳回的溫濕度數(shù)據(jù)后,MSP430F149校驗該數(shù)據(jù)是否正確,如果數(shù)據(jù)校驗出錯,則重新采集;如果數(shù)據(jù)校驗正確,則轉換該數(shù)據(jù)為10進制數(shù)據(jù)并通過RS232發(fā)送到PC機,PC機通過LabVIEW接收并顯示溫濕度數(shù)據(jù)。MSP430F149單片機還會判斷溫濕度值是否處于人體舒適范圍內,只要溫度或濕度中任何一項指標過高或過低,都會有相應的LED燈均勻閃爍報警。
圖1 溫濕度計系統(tǒng)框圖Fig.1 System diagram of hygrothermograph
1.1 溫濕度傳感器AM2301簡介
溫濕度傳感器AM2301是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。傳感器包括一個電容式感濕元件和一個高精度NTC測溫元件,并與一個高性能8位單片機相連接。產品為3引線,連接方便。AM2301各個引腳功能說明如表1所示[3]。
表1 AM2301引腳說明表Table 1 Direction for the pin of AM2301
AM2301的供電電壓范圍為3.5V~5.5V,信號傳輸距離可達20 m以上[3]。數(shù)據(jù)線SDA引腳為三態(tài)結構,用于讀/寫傳感器數(shù)據(jù),采用單總線方式通信。SDA作為微處理器(主機)與AM2301之間通信和同步的通道,一次傳送40位數(shù)據(jù),高位先出,通信協(xié)議如圖2所示[3]。
圖2AM2301單總線通信協(xié)議Fig.2 Signal bus communication protocol of AM2301
圖2中,在起始狀態(tài)時,主機把SDA拉低一段時間,通知傳感器準備數(shù)據(jù)。接著主機釋放總線,傳感器把SDA拉低80μs以響應主機的起始信號。然后傳感器一次性從SDA串出40位數(shù)據(jù)。濕度和溫度數(shù)據(jù)的分辨率均是16 Bit,高位在前。傳感器串出的濕(溫)度值是實際濕(溫)度值的10倍,溫度最高位(Bit15)等于1表示負溫度,等于0表示正溫度。校驗位=濕度高位+濕度低位+溫度高位+溫度低位。
主機從AM2301讀取的溫濕度數(shù)據(jù)總是前一次的測量值,如兩次測量間隔時間很長,需連續(xù)兩次測量并以第二次測得的值為實時溫濕度值,同時兩次讀取間隔時間最小為2 s[3]。
1.2 MSP430F149單片機定時器分析
由于溫濕度傳感器AM2301單總線通信時工作時序十分重要,且工作時序很多是μs級時間間隔,因此精確的延時程序十分必要。使用MSP430F149定時器A(Timer_A)可輕松實現(xiàn)μs級延時程序。
MSP430系列單片機的Timer_A由一個16位定時器和多路比較/捕獲通道組成,每個比較/捕獲通道都以16位定時器的定時功能為核心進行單獨的控制。Timer_A具有以下特性[4]:
(1)輸入時鐘可以有多種選擇,可是慢時鐘,快時鐘及外部時鐘;
(2)產生的定時脈沖或PWM(脈寬調制)信號沒有軟件帶來的誤差;
(3)具有完善的中斷服務功能;
(4)4種計數(shù)功能選擇(停止模式、增計數(shù)模式、連續(xù)計數(shù)模式、增/減計數(shù)模式)。
本文基于增計數(shù)模式實現(xiàn)μs級延時程序。MSP430單片機的捕獲/比較寄存器CCR0用作Timer_A增計數(shù)模式的周期寄存器,因為CCR0為16位寄存器,所以該模式適用于定時周期小于65536的連續(xù)繼續(xù)情況。計數(shù)器TAR可增計數(shù)到CCR0的值,當計數(shù)值與CCR0的值相等時,定時器復位并從0開始重新計數(shù)。增計數(shù)模式的計數(shù)過程如圖3所示[4]。
圖3 增計數(shù)模式下計數(shù)器計數(shù)過程Fig.3 Counting process of counter under the up-mode
在增計數(shù)模式工作過程中,當定時器的值等于CCR0的值時,設置捕獲比較中斷標志(CCIFG0)位1,而當定時器從CCR0回到0時,設置定時器溢出標志(TAIFG)為1[4]。
應用增計數(shù)模式實現(xiàn)μs級延時程序時,設置Timer_A輸入時鐘為外部時鐘(8 MHz)并8分頻,則Timer_A的時鐘頻率為1 MHz,即計數(shù)器每計數(shù)一次時間為1μs,讓計時器計數(shù)到CCR0,則可實現(xiàn)CCR0μs的精確延時函數(shù)。
2.1 硬件電路設計
由于AM2301采取單總線的通信方式,3引線連接。所以其硬件電路搭建非常簡單。系統(tǒng)連接框圖如圖4所示。
圖4 系統(tǒng)連接框圖Fig.4 System connection diagram
AM2301與MSP430單片機通過單總線SDA連接,并且SDA通過連接5.1 kΩ電阻R1上拉到VCC,這樣當單總線閑置時,其狀態(tài)為高電平。MSP430F149單片機通過P1.0管腳控制AM2301工作并接收AM2301返回得溫濕度數(shù)據(jù),MSP430F149將溫濕度數(shù)據(jù)校驗、分析、轉換為10進制數(shù)據(jù)并通過RS232發(fā)送到PC機顯示,同時MSP430F149判斷溫濕度值是否處于人體舒適溫度范圍,如果溫度過高則L1閃爍,溫度過低L2閃爍,濕度過高L3閃爍,濕度過低L4閃爍。
2.2 軟件編程實現(xiàn)
本溫濕度計的軟件部分由兩部分組成:MSP430F149單片機端的對于AM2301的控制、信號采集、分析與處理并將溫濕度數(shù)據(jù)發(fā)送到上位機;上位機接收溫濕度數(shù)據(jù)并解析、顯示。2.2.1單片機端軟件實現(xiàn)MSP430F149單片機端軟件實現(xiàn)流程圖如圖5所示。圖5中AM2301上電初始化后即進入休眠模式,MSP430F149發(fā)送起始信號喚醒AM2301。MSP430F149接收到AM2301響應信號后立即讀取40 bit溫濕度信號和校驗信號,并對該數(shù)據(jù)進行校驗。如果校驗出錯,則重新獲取溫濕度數(shù)據(jù);如果校驗成功將則將AM2301傳輸?shù)?6進制數(shù)據(jù)轉換為10進制數(shù)據(jù)并通過串口發(fā)送到上位機顯示。MSP430F149還要對所接收數(shù)據(jù)進行判斷,以確定該溫濕度數(shù)據(jù)是否符合人體感覺舒適范圍,如果不符合,則根據(jù)判斷結果驅動相應的LED燈閃爍報警。這樣即完成了一次溫濕度數(shù)據(jù)采集、校驗、處理、顯示工作。接著MSP430單片機定時等待下一次采集時間到來并重新開始這一流程。
圖5 MSP430F149軟件實現(xiàn)流程圖Fig.5 Flow diagram of software implementation based on MSP430F149
本溫濕度計根據(jù)市售溫濕度計標準設置人體舒適溫度范圍為18℃~24℃;人體舒適濕度范圍為35%~55%。根據(jù)AM2301數(shù)據(jù)手冊設置定時采集時間為2 s。
2.2.2 上位機軟件實現(xiàn)溫濕度傳感器上位機軟件主要功能是通過串口接收MSP430F149發(fā)送得10進制溫濕度數(shù)據(jù)并顯示。通過LabVIEW實現(xiàn)得上位機軟件示例如圖6所示。
圖6基于LabVIEW的溫濕度計Fig.6 Hygrothermograph based on LabVIEW design
圖6中基于LabVIEW的溫濕度計上位機顯示示例主要包括兩部分:圖形化顯示的前面板和數(shù)據(jù)流編程的程序框圖。前面板主要有連接端口設置、溫度計顯示(模擬/數(shù)字)、濕度計顯示(模擬/數(shù)字)和軟件運行控件;程序框圖主要有串口配置程序、溫濕度數(shù)據(jù)字符串解析、顯示程序和串口資源釋放程序。
對設計與實現(xiàn)得溫濕度計進行測試,使用安捷倫示波器觀察AM2301單總線上的信號波形,以確保和單總線通信時序保持一致,并對比確認顯示得溫濕度數(shù)據(jù)是否正確。使用安捷倫示波器觀察AM2301單總線的信號波形如圖7所示。
圖7AM2301單總線數(shù)據(jù)信號Fig.7 Data signals on signal bus of AM2301
圖7中,MSP430F149先發(fā)出2 ms的起始信號,將單總線狀態(tài)拉低,然后釋放單總線,此時由于上拉電阻R1的作用,單總線處于高電平狀態(tài)。大約30μs之后,AM2301響應MSP430起始信號,返回80μs的低電平和80μs的高電平信號。緊接著AM2301依次發(fā)送40 bit的濕度信號、溫度信號和校驗信號。發(fā)送完成后AM2301自動轉入低功耗模式,直到下一次MSP430單片機起始信號來臨。
在測試過程中使用法克曼家用溫濕度計做參照,對比測試結果如圖8所示。
圖8 AM2301與Fackelmann溫濕度計的測定結果比較Fig.8 Comparison of results determined withAM2301 and Fackelmann Hygrothermgraph
由圖8(a)可知基于AM2301的溫濕度計采集得溫度數(shù)據(jù)與法克曼溫濕度計采集得溫度數(shù)據(jù)基本規(guī)律一致,AM2301溫濕度計采集得溫度數(shù)據(jù)比法克曼溫濕度計采集得溫度數(shù)據(jù)略高,但最高不超過0.5℃。由圖8(b)可知AM2301溫濕度計采集得濕度數(shù)據(jù)與法克曼溫濕度計采集得濕度數(shù)據(jù)基本相近,兩組數(shù)據(jù)相差最大不超過0.6%。在本測試環(huán)境下,由于溫度始終高于24℃,濕度始終低于35%,狀態(tài)指示燈L1和L4始終閃爍。
使用高性能、低功耗單片機MSP430F149通過單總線方式控制溫濕度傳感器AM2301工作及接收AM2301采集得家居環(huán)境溫濕度數(shù)據(jù),并對該溫濕度數(shù)據(jù)進行校驗、分析、轉換最終通過串口發(fā)送到PC機;分析判斷家居環(huán)境中溫濕度值是否處于人體舒適范圍,如果不是,則有相應的LED閃爍報警。基于LabVIEW實現(xiàn)了溫濕度計顯示上位機程序示例,可以通過模擬和數(shù)字兩種方式既形象又直觀地讀取溫濕度值。MSP430F149單片機和上位機程序都可以擴展功能,程序擴展性強,為智能家居監(jiān)測與應用奠定了基礎。
[1]秦偉何.基于AM2301溫濕度計設計[J].湖南農機,2012,39(9):59-60
[2]李志強,黃順,郭華新.基于SHT10的數(shù)字溫濕度計設計[J].機械與電氣,2007,108:35-36
[3]AM2301_DHT21溫濕度傳感器[EB/OL].[2013-04-08].http://wenku.baidu.com/view/2453871c866fb84ae45c8d34.html
[4]沈建華,楊艷琴,瞿驍曙.MSP430系列16位超低功耗單片機原理與應用[M].北京:清華大學出版社,2004:151-161
Design for Hygrothermograph Based on MSP430F149 Single-chip Microcomputer andAM2301 Sensor
HUATeng-fei
Key Laboratory of Advanced Transducers and Intelligent Control System,Ministry of Education and Shanxi Province,Taiyuan University of Technology,Taiyuan 030024,China
To enhance the security,convenience,comfort,artistry,security of home life and implement environment protection and energy saving,real-time monitoring of the temperature,humidity,brightness and other home environment conditions is necessary so that home environment could be better informed and intelligent controlled.Smart hygrothermograph based on high-performance and low-power micro-controller MSP430F149 and temperature&humidity sensor AM2301 which is controlled by MSP430F149 through signal is realized to track the temperature and humidity in home environment.A particular LED would be flashing to warn that the temperature or humidity in home environment was too high or too low.A PC software was also designed and realized by LabVIEW to easily view the temperature and humidity in home environment through PC.Some basic work of smart home environment monitoring has been done and further expansion work could be done based on MSP430F149.It laid the foundation for the future studies on the smart home.
MSP430F149;temperature&humidity sensor AM2301;temperature and humidity monitoring and alarm;PC software based on LabVIEW;smart home
TP368.2
A
1000-2324(2015)01-0143-05
2013-05-12
2013-05-22
化騰飛(1989-),男,山西介休人,碩士,主要從事嵌入式系統(tǒng)、測試測量技術及儀器的研究.E-mail:feifei8888568568@163.com