基于IP的網(wǎng)絡(luò)傳感器監(jiān)視器可以通過微型互聯(lián)網(wǎng)接口(MxTNI)的組合輕松創(chuàng)建?) 平臺、1-Wire 傳感器和相應(yīng)的 Java??軟件。MxTNI平臺提供TCP/IP網(wǎng)絡(luò)堆棧和設(shè)計基于IP的網(wǎng)絡(luò)傳感器所需的本地控制功能。內(nèi)置的Java運(yùn)行時環(huán)境和1-Wire外設(shè)接口庫,允許使用1-Wire器件輕松控制和通信。
本應(yīng)用筆記演示了基于IP的網(wǎng)絡(luò)溫度監(jiān)測器,以及可在支持Java的瀏覽器中執(zhí)行的可下載小程序控制界面。它采用MxTNI驗(yàn)證模塊和DS1920 i按鈕或DS1820 1-Wire溫度傳感器。小程序控制傳感器并顯示采集的時間和溫度樣本。通過瀏覽到 MxTNI 的 IP 地址自動下載小程序,并使用 MxTNI 運(yùn)行時環(huán)境提供服務(wù)。
介紹
ADI公司的微型網(wǎng)絡(luò)接口(MxTNI)平臺提供設(shè)計基于IP的網(wǎng)絡(luò)傳感器所需的TCP/IP網(wǎng)絡(luò)堆棧和本地控制功能。內(nèi)置的Java運(yùn)行時環(huán)境和1-Wire外設(shè)接口庫,允許使用1-Wire器件輕松控制和通信。本應(yīng)用筆記演示了基于IP的網(wǎng)絡(luò)溫度監(jiān)測器,以及可在支持Java的瀏覽器中執(zhí)行的可下載小程序控制界面。它采用MxTNI驗(yàn)證模塊和DS1920 i按鈕或DS1820 1-Wire溫度傳感器。小程序控制傳感器并顯示采集的時間和溫度樣本。通過瀏覽到 MxTNI 的 IP 地址自動下載小程序,并使用 MxTNI 運(yùn)行時環(huán)境提供服務(wù)。
系統(tǒng)概述
此應(yīng)用程序使用 TINIm390 或 TINIm400 驗(yàn)證模塊。DS1920連接到MxTNI的外部1-Wire總線。MxTNI提供以太網(wǎng)連接,并用作1-Wire主站。
MxTNI 1線接口庫
MxTNI運(yùn)行時環(huán)境的API支持1-Wire器件,包括適配器庫和1-Wire特定容器,公開其各自的功能。該應(yīng)用使用DSPortAdapter和OneWireContainer10,其中包含與DS1920通信所需的方法。要開始1-Wire通信,MxTNI請求默認(rèn)適配器:
DSPortAdapter ourAccess = OneWireAccessProvider.getDefaultAdapter();
接下來,MxTNI針對1-Wire器件(本例中為0x10)所需的族碼,并接收對其容器的引用。
ourAccess.targetFamily(0x10); ourAccess.findFirstDevice(); OneWireContainer10 tc = ( OneWireContainer10 ) ourAccess.getDeviceContainer();
使用參考的容器,MxTNI現(xiàn)在可以訪問DS1920的所有功能。i按鈕的功能使用以下方法向應(yīng)用程序公開。
readDevice(); writeDevice(); doTemperatureConvert(byte[] state); getTemperature(byte[] state); setTemperatureAlarm(int alarmType, double alarmValue, byte[] state); isAlarming(); (inherited from OneWireContainer)
要感知溫度,請使用readDevice讀取i按鈕的狀態(tài)信息,然后通過調(diào)用doTemperatureConvert,然后調(diào)用getTemperature來讀取轉(zhuǎn)換后的溫度來執(zhí)行溫度測量。
DS1920內(nèi)置高低溫報警功能,可通過編程方式設(shè)置,當(dāng)測得的溫度值超出設(shè)定范圍時通知主機(jī)。要使用溫度警報,請使用 setTemperatureAlarm 方法設(shè)置它們,該方法傳遞TemperatureContainer.ALARM_HIGH或TemperatureContainer.ALARM_LOW作為參數(shù),以及新的警報值和狀態(tài)。通過在容器上調(diào)用 isAlarming 方法,可以監(jiān)視設(shè)置的警報的狀態(tài)。
在此應(yīng)用程序中,ButtonControl.java處理溫度樣本,而AlarmMonitor.java檢查警報。
MxTNI服務(wù)器軟件
MxTNI為傳入的HTTP請求實(shí)現(xiàn)了一個簡單的Web服務(wù)器。圖 1 顯示了客戶端和服務(wù)器之間的交互。它分為四個線程,顯示 MxTNI 溫度服務(wù)器的各個部分。它通過包含嵌入式小程序的簡單 HTML 索引頁提供連接。此小程序由客戶端下載并用于控制溫度采樣和顯示數(shù)據(jù)。Web 服務(wù)器由 TempButtonHost.java 實(shí)現(xiàn)。
MxTNI還維護(hù)一個等待入站連接的服務(wù)器套接字。建立連接后.java SockListen會解密命令并調(diào)用TempCommand.java來執(zhí)行它。TempCommand 調(diào)用所需的方法來執(zhí)行命令,并在必要時利用 AppletComm.java將信息發(fā)送回客戶端。
圖1.小程序和MxTNI軟件流程圖。
圖2.Applet和MxTNI流程圖繼續(xù)。
MxTNI 樣品緩沖液
MxTNI使用SampleHold.java維護(hù)一個時間和溫度緩沖區(qū),該緩沖區(qū)在MxTNI的文件系統(tǒng)中存儲多達(dá)300個樣本,因此樣本數(shù)據(jù)是持久的。SampleHold使用RandomAccessFile來保存檢索時間和溫度采樣應(yīng)用程序所需的所有信息。
溫度 i按鈕控制小程序
顯示的控制小程序如圖3所示。小程序的主要用途是控制DS1920的采樣,并以有意義的格式顯示采樣。圖表概述了紅色、藍(lán)色和黑色之間的變化,具體取決于當(dāng)前的報警條件。MxTNI的當(dāng)前溫度顯示在圖表下方;華氏和攝氏刻度都可用。該圖可沿溫度軸和時間軸進(jìn)行縮放,以使采樣數(shù)據(jù)更易于解釋。當(dāng)范圍正確時,高跳變點(diǎn)和低跳變點(diǎn)都顯示在圖表上,高點(diǎn)和低跳變點(diǎn)顯示為紅色,低點(diǎn)顯示為藍(lán)色。這些是從圖形右側(cè)的控件調(diào)整的。小程序還可以控制在給定時間段內(nèi)要采集的樣本數(shù)量。它還提供用于啟動和停止采樣、清除緩沖區(qū)和關(guān)閉溫度服務(wù)器的控件。如果收到關(guān)閉命令,則會保存所有小程序配置數(shù)據(jù),以便小程序可以跨會話維護(hù)狀態(tài)。
圖3.溫度控制小程序。
小程序由幾個類組成:
TempApplet.java是實(shí)現(xiàn)AWT內(nèi)容的主要類。
TempGraph.java實(shí)現(xiàn)了溫度與時間的關(guān)系圖。
TiniComm.java,TiniListen.java在MxTNI和小程序之間進(jìn)行通信。
結(jié)論
使用MxTNI運(yùn)行時環(huán)境和1-Wire庫,可以輕松創(chuàng)建復(fù)雜的溫度采樣器件。此應(yīng)用程序展示了如何將 MxTNI 最好地用作遠(yuǎn)程接口設(shè)備,用于采集和存儲樣本并將此數(shù)據(jù)提供給客戶端,以處理顯示數(shù)據(jù)的計算密集型任務(wù)。
審核編輯:郭婷
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753072 -
溫度傳感器
+關(guān)注
關(guān)注
48文章
2940瀏覽量
156015 -
1-Wire
+關(guān)注
關(guān)注
0文章
49瀏覽量
21306
發(fā)布評論請先 登錄
相關(guān)推薦
評論