基于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 最好地用作远程接口设备,用于采集和存储样本并将此数据提供给客户端,以处理显示数据的计算密集型任务。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !