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