联网温度监测

描述

基于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-Wire

图1.小程序和MxTNI软件流程图。

1-Wire

图2.Applet和MxTNI流程图继续。

MxTNI 样品缓冲液

MxTNI使用SampleHold.java维护一个时间和温度缓冲区,该缓冲区在MxTNI的文件系统中存储多达300个样本,因此样本数据是持久的。SampleHold使用RandomAccessFile来保存检索时间和温度采样应用程序所需的所有信息。

温度 i按钮控制小程序

显示的控制小程序如图3所示。小程序的主要用途是控制DS1920的采样,并以有意义的格式显示采样。图表概述了红色、蓝色和黑色之间的变化,具体取决于当前的报警条件。MxTNI的当前温度显示在图表下方;华氏和摄氏刻度都可用。该图可沿温度轴和时间轴进行缩放,以使采样数据更易于解释。当范围正确时,高跳变点和低跳变点都显示在图表上,高点和低跳变点显示为红色,低点显示为蓝色。这些是从图形右侧的控件调整的。小程序还可以控制在给定时间段内要采集的样本数量。它还提供用于启动和停止采样、清除缓冲区和关闭温度服务器的控件。如果收到关闭命令,则会保存所有小程序配置数据,以便小程序可以跨会话维护状态。

1-Wire

图3.温度控制小程序。

小程序由几个类组成:

TempApplet.java是实现AWT内容的主要类。

TempGraph.java实现了温度与时间的关系图。

TiniComm.java,TiniListen.java在MxTNI和小程序之间进行通信。

结论

使用MxTNI运行时环境和1-Wire库,可以轻松创建复杂的温度采样器件。此应用程序展示了如何将 MxTNI 最好地用作远程接口设备,用于采集和存储样本并将此数据提供给客户端,以处理显示数据的计算密集型任务。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分