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