基于ARM的遠程溫度監測報警系統的設計與實現
摘要:設計了一個基于ARM的遠程溫度監測報警系統。該溫度監測報警系統以Tiny6410為平臺,通過DS18B20溫度傳感器采集溫度,利用數據庫存儲溫度、時間值并通過網頁顯示溫度數據。此外,通過在網頁上設置溫度閾值范圍,對超出范圍的溫度點利用蜂鳴器報警,溫度監測范圍是-55℃~125℃。
本文引用地址:http://www.j9360.com/article/201610/305828.htm0 引言
溫度監測廣泛應用于社會生活的各個領域,如家電、汽車、材料、電力電子等。在很多生產過程中,溫度的監測和控制都直接和安全生產、提高生產效率、保證產品質量、節約能源等重大技術經濟指標相聯系。隨著生活水平的提高和科學技術的進步,無論是工業還是農業或者是日常生活中對溫度監測的要求越來越高。溫度監測的精度以及不同控制對象的控制方法選擇都起著至關重要的作用,在很多領域中溫度可能較高或較低,使我們無法靠近或無法實現人力監控,或者在某些環境下溫度監測比較危險。因此,需要設計一種可實現智能監測的監測系統,以滿足對溫度監測日益迫切的需求。
基于此,本文設計了一個基于ARM的遠程溫度監測報警系統,該系統利用ARM處理器的強大功能,通過讀取溫度傳感器數據,并與設定閾值進行比較,然后對溫度進行監測報警。通過內嵌的操作系統μCLinux獲得極好的實時性,并且通過TCP/IP協議能與PC機很快的通訊。
1 系統硬件
1.1 ARM平臺
該遠程溫度監測報警系統使用Tiny6410開發板,它是一款以ARM11芯片(三星S3C6410)作為主處理器的嵌入式核心板,該CPU基于ARM1176 JZF—S核設計,內部集成了強大的多媒體處理單元,支持Mpeg4,H.264/H.263等格式的視頻文件硬件編解碼,可同時輸出至LCD和TV顯示,它還帶有3D圖形硬件加速器,以實現OpenGL ES 1.12.0加速渲染。Tiny6410采用高密度6層板設計,尺寸為64×50 mm,它集成了128 M/256M DDR RAM,SLC NAND Flash(256M/1GB)或MLC NAND Flash(2GB)存儲器,采用5 V的電壓供電,實現CPU必需的各種核心電壓轉換,還帶有專業復位芯片,通過2.0 mm間距的排針,引出各種常見的接口資源,以供開發者進行快捷的二次開發使用。
1.2 DS18B20數字溫度計
DS18B20數字溫度計提供9位(二進制)溫度讀數,指示器件的溫度。信息經過單線接口送入DS18B20或從DS18B20送出。DS18B20的電源可以由數據線本身提供而不需要外部電源。它的測量范圍從-55℃~+125℃,精度為0.5℃。可在1 s內把溫度變換成數字。
每一個DS18B20包括一個唯一的64位長的序號,序號值存放在DS1820內部的ROM中。DS1820中還有用于貯存測得的溫度值的兩個8位存貯器RAM,編號為0號和1號。DS18B20有3個引腳,引腳1(GND)的功能是接地,引腳2(DQ)的功能是實現數字輸入、輸出,引腳3(VDD)的功能是可選+5 V的電源。
本文設計的遠程溫度監測報警系統硬件部分如圖1所示。

2 軟件設計
2.1 溫度閾值的設置和存儲
用戶通過web網頁界面設置溫度闕如圖2所示,然后將設定好的溫度閾值通過CGI程序以長整型的形式存入緩存文件中,供應用程序調用。

2.2 溫度的采集與存儲
系統通過DS18B20對周圍環境的溫度進行采集,每隔十秒采集一次。DS18B20將溫度采集值存入到傳感器驅動設定好的文件中。系統后臺從設備文件中讀取溫度值與其對應的時間值,并把這些數據存入到數據庫中。
2.3 溫度報警的實現
首先程序從緩存文件中讀取網頁上設定好的溫度閾值,如果發現從設備文件中讀取的當前溫度值不在閾值范圍內,應用程序就控制蜂鳴器鳴響。如果高于上限報警器每隔1 s響一次,低于下限則報警器響5 s,在閾值區間內則蜂鳴器不報警。傳感器如果測量的溫度值恢復正常的話,就會關閉蜂鳴器,否則會一直響鈴報警。
2.4 遠程異常溫度信息查看
當用戶登陸網頁查看異常溫度信息時,CGI程序會自動打開數據庫,通過命令查詢數據庫中的全部信息,將異常溫度信息及發生的時間提取出來,最后在網頁上呈現出這些異常信息。
遠程溫度監測報警系統各功能模塊關系如圖3所示。

3 測試結果
首先在web頁面上將溫度閾值分別設置為:溫度下限12℃和溫度上限24℃。然后通過DS18B20數字溫度計對室內環境溫度進行采集,每隔10 s采集一次,其中包括對一杯溫度為40℃的熱水進行監測30 s。溫度采集開始時間是2013年5月6日上午11時,采集總時間為2 min,室溫為20℃。溫度采集結果如圖4所示。

由圖4可以看出,2 min內共采集到12條數據,其中包括對熱水溫度采集的3條數據。在圖4的左邊一列給出溫度采集時間,右邊一列給出對應時刻的溫度值。
在對圖4所示的溫度值進行采集過程中,由于杯中熱水溫度40℃不在閾值范圍內,即大于溫度上限24℃,所以蜂嗚器會自動報警鳴響,報警器每隔1 s響一次,直到在2013年5月6日11:01:30時溫度采集值20.75℃處于閾值范圍內才關閉蜂鳴器。為了獲取溫度報警時的相關信息,可登陸網頁查看所需報警溫度信息,CGI程序自動從數據庫中提取出對應溫度信息,并將這些信息呈現在網頁上,如圖5所示。

評論