基于ATmega16的無線溫度監(jiān)測系統(tǒng)
隨著社會的發(fā)展和進(jìn)步,越來越多的場合對溫度的要求日臻嚴(yán)格,溫度監(jiān)控系統(tǒng)的應(yīng)用日趨受到重視。在農(nóng)業(yè)發(fā)展領(lǐng)域,農(nóng)業(yè)大棚、冷庫、培育溫室等眾多場合都需要溫度測量技術(shù)。傳統(tǒng)的測溫系統(tǒng)都是有線系統(tǒng),對于一些需要多點測溫的場合,使用傳統(tǒng)有線測溫方式在布設(shè)、維護(hù)和更新方面存在著很多不便。為了解決這個問題,設(shè)計了一種基于單片機(jī)和無線收發(fā)模塊的無線溫度監(jiān)控系統(tǒng),結(jié)合溫度傳感器可以很方便構(gòu)建一個多點分布式智能無線溫度監(jiān)控系統(tǒng)。
1 無線溫度監(jiān)控系統(tǒng)構(gòu)成
系統(tǒng)主要由兩部分組成。如圖1所示,第一部分是節(jié)點溫度測量系統(tǒng),第二部分是溫度顯示管理終端。節(jié)點溫度測量系統(tǒng)負(fù)責(zé)測量溫度,并將溫度值通過無線通信發(fā)送到溫度顯示管理終端。管理終端接收溫度信息并進(jìn)行顯示和發(fā)出警報信號,而且在特殊情況下管理終端還可以逆向發(fā)送調(diào)控信息給節(jié)點溫度測量系統(tǒng),實現(xiàn)對溫度的調(diào)控。
1.1 節(jié)點溫度測量系統(tǒng)設(shè)計
節(jié)點溫度測量系統(tǒng)構(gòu)成如圖2所示,系統(tǒng)核心控制芯片采用AVR系列的單片機(jī)ATmega16。這是一款精簡指令集的單片機(jī),高速度、低功耗,具有Sleep功能及CMOS技術(shù),并具有高度保密性,可多次燒寫的Flash,具有多重密碼保護(hù)鎖死功能。另外內(nèi)置看門狗定時器(WDT)和片內(nèi)有RC振蕩器,使用起來非常方便。具有休眠省電功能和閑置低功耗功能,在實用性方面性價比相對較高。
溫度傳感器模塊采用數(shù)字溫度傳感器DS18B20,它是美國Dallas半導(dǎo)體公司推出的一種智能數(shù)字溫度傳感器。DS18B20在與MCU連接時僅需要一條線(即單總線接口,加電源為三線接口)即可實現(xiàn)微處理器與DS18B20的雙向通訊。使用DS18B20可以節(jié)省系統(tǒng)資源、使系統(tǒng)結(jié)構(gòu)更趨簡單。DS18B20測溫范圍是-55℃~+125℃,固有測溫分辨率0.5℃。工作電源為3 V~5V/DC。在使用中不需要任何外圍元件,測量結(jié)果以9~12位數(shù)字量方式串行傳送。DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。其中64位光刻ROM中存儲的是該DS18B20的地址序列號碼。其號碼的排列是:最初8位(28H)是產(chǎn)品類型標(biāo)號,接著的48位是DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM中的地址序列碼可以區(qū)分每一個DS18B20,從而實現(xiàn)在同一根總線上掛接多個DS18B20。根據(jù)DS18B20的通訊協(xié)議,MCU(單片機(jī))控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:
(1)每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位操作
(2)復(fù)位成功后發(fā)送一條ROM指令
(3)最后發(fā)送RAM指令
這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500 μs,然后釋放,當(dāng)DS18B20收到信號后等待16~60μs左右,后發(fā)出60~240μs的低脈沖,主CPU收到此信號表示復(fù)位成功。論文設(shè)計的測溫系統(tǒng)中每一個DS18B20在與MCU連接時各占用一個I/O口,則MCU控制DS18B20完成溫度轉(zhuǎn)換的步驟如圖3所示。
nRF24L01是Nordic公司推出的高集成的單片無線收發(fā)器件。芯片具備自動應(yīng)答和自動重發(fā)功能,速度可達(dá)2 Mbps,126個可選工作頻道,很短的頻道切換時間,可用于跳頻,其輸出功率,頻道選擇以及協(xié)議設(shè)置都可以通過SPI口進(jìn)行設(shè)置。其Enhanced Shock Burst模式可以同時控制應(yīng)答及重發(fā)功能而無需增加微控制器的工作量。nRF24L01還具備同一頻道接收六路不同通道數(shù)據(jù)的功能,利用FDMA技術(shù)最多可實現(xiàn)750個點的數(shù)據(jù)采集,這使它成為無線溫度測量系統(tǒng)硬件實現(xiàn)的最佳選擇。nRF24L01模塊在與MCU進(jìn)行數(shù)據(jù)傳輸時,可以使用MCU普通的I/O口,系統(tǒng)中直接利用ATmega16的固有資源SPI通信口,這樣從一定程度上簡化了軟件設(shè)計過程。
液晶顯示模塊采用LCD1602液晶顯示器,模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。因為1602識別的是ASCII碼,設(shè)計中可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如A’。系統(tǒng)中1602采用的是8位數(shù)據(jù)線驅(qū)動,其控制端和數(shù)據(jù)傳輸均通過單片機(jī)的I/O口直接控制,電路如圖4所示。
MCU-ATmega16、溫度傳感器DS18B20和液晶顯示器模塊1602都是用5 V供電電源。系統(tǒng)供電電源為5 V,可以直接使用。nRF24L01無線收發(fā)模塊需要3.3 V供電,所以采用REG1117-3.3芯片進(jìn)行電源電壓變換,產(chǎn)生3.3 V電源供nRF24L01使用。ATmega16的SPI口在與nRF24L01無線收發(fā)模塊相接時,由于ATmega16輸出驅(qū)動電流偏大,可能會損壞無線模塊,所以要串聯(lián)2 k電阻以保護(hù)無線模塊。
1.2 溫度顯示管理終端
在溫度顯示管理終端,首先由無線收發(fā)模塊nRF24L01通過天線將節(jié)點溫度測量系統(tǒng)發(fā)送的溫度信息進(jìn)行接收。通過單片機(jī)SPI串口將溫度信息數(shù)據(jù)采集到MCU,溫度不在正常監(jiān)測范圍則聲音模塊發(fā)出聲音報警。最后通過RS232通信,將溫度數(shù)據(jù)送到PC進(jìn)行顯示和處理。整個系統(tǒng)的通信屬于雙工通信,在必要情況下,電路功能可以擴(kuò)展,實現(xiàn)PC發(fā)出控制信號,通過反方向通信調(diào)節(jié)各個節(jié)點的溫度。
2 結(jié)束語
本文設(shè)計的無線溫度監(jiān)測系統(tǒng)結(jié)構(gòu)簡單,實現(xiàn)容易,系統(tǒng)性能好。適合多種場合進(jìn)行無線溫度監(jiān)測。
評論