APP下载

一种低成本的无线微型温测系统设计

2019-02-08胡念祖肖新帅

山东工业技术 2019年1期

胡念祖 肖新帅

摘 要:随着WIFI信号的覆盖与普及,测温系统温度数据以无线传输成为可能。本文设计了一种基于WIFI和嵌入式WEB服务器的低成本远程室温测量系统,通过CGI技术和HTML+JS技术,使得用户通过手机端的任意浏览器都可以实时的查看温度。经过现场实验测试,表明了该方案的可行性,实用性,经济性。

关键词:WIFI;嵌入式WEB;CGI;远程温度监控

DOI:10.16640/j.cnki.37-1222/t.2019.01.137

1 引言

传统的室温监测仪已经从水银式物理指示器过渡到现在的电力电子式数字显示,测量温度范围和测量精度也根据不同的需求多种多样。简单便携的温度测量设备移动方便成本较低,但只能近距离的采集,用户也只能近距离的获取温度数值。对测温有轻微特殊要求的场合,在满足测量需求的同时,往往需要考虑通信设计、路线布局、上位机显示或LCD液晶屏显示的问题[1]。本系统从硬件设计上非常简单,仅仅需要一个温度传感器和一个能提供WEB服务器和WIFI通信的单片机就可以实现[2],在软件编程方面较传统设计复杂,包括WEB服务器的设计、无线通信的配置等。最终用户可以通过移动手机要任意一种浏览器通过访问指定的IP地址,就可以随时随地的获取温度值。

本系统的成本低廉,主要体现在以下三个方面:第一,涉及到的单个模块成本低廉,且所需的模块数量较少。第二,不需要LCD液晶显示模块或者其他上位机显示装置。第三,后续使用维护零成本,仅需要5V的电源就可以满足需求,同时功耗也低。

2 总体设计

本系统包括感应终端、服务器终端、用户终端三部分。其中感应终端就是温度传感器,本设计采用简单通用的DS18B20,仅需一根线就可以实现与MCU的双向通信,测温范围为-55~125℃。服务器终端设计采用ESP8266作为中央控制芯片,该芯片是32位的低功耗微型MCU,内置高速的缓存器,支持 STA工作模式。ESP8266既要对DS18B20进行配置,获取有效的温度数值,又要完成与WIFI信号的可靠连接,还要完成本地嵌入式WEB服务器的初始配置等工作。用户终端是指用户访问手机浏览器的监控画面,该前端界面虽然位于用户手机,但其显示效果的开发有效文件却位于能提供WEB服务的单片机中,最终所编程的文件也要下载到单片机中,以便供用户访问。

3 系统的软件设计

3.1 感应终端软件设计

初始化DS18B20所通信的IO口,MCU对DS18B20发出复位信号并等待回应,然后发送相应的准备命令,待准备完成后读取两个字节的温度二进制代码,由前五个位判断测量值正负并转换成相应的时实温度数值。

3.2 WIFI通信设计

ESP8266与所在环境路由器发射的WIFI信号可靠连接是有效温度数据能够通信的前提,网络协议是网络技术通信的基本条件。WIFI通讯所需的802.11 b/g/n标准就包含于国际上其中一种通用参考模型TCP/IP协议中。ESP8266自身集成的LWIP协议就是迷你版的TCP/IP协议,因此可以很好的解决关于以太网控制器等相关组件的网络通信问题。为了无线连接成功,首先要配置模块的station模式接受WIFI信号,找到WIFI所在的通道获取频段数据,根据事先提供的账号和密码进行连接,如果连接成功则在调试串口中输出相应的连接状态,同时输出器路由所分配的IP地址和端口。

3.3 WEB服务器的设计

在成功连接已知WIFI的基础上,获取当前连接WIFI后路由器所分配的IP地址和子网掩码等信息,该路由器所分配的IP地址就可以作为用户终端所请求温度数据的访问地址。ESP8266支持server和client两种服务器模式,此时我们使用server工作模式来提供WEB服务。通讯方式支持TCP通信和UDP通讯,为了可靠的连接,保证通讯的无差错性,设计中选择使用TCP协议打开某一端口,在定时器中实施监听该指定的端口以接受用户终端的请求。同时定时器还要在temp=ds18b20ReadTemp()函数中发送已获取的温度数据给用户终端。

CGI程序是连接外部用户浏览器与本地服务器的一个独立的接口[3]。通过CGI程序的设计,用户可以调用服务器中的程序。CGI定义了接口的规范,既要对接收的外部程序进行处理,又要把处理结果反馈给服务器端。本设计中数据的交互是单向的,只有服务器终端向用户端发送温度数据的过程,因此CGI只需要判断请求头及请求方式是否正确就可以。如果正确,则调用服务器发送温度数值给用户终端。

3.4 用户终端程序设计

HTML是一种描述性语言,包含了除了文字以外的信息表达形式,其特征的标识符可以很好的被各种浏览器所识别,进而在浏览器端按照事先定義的规范进行展示。HTML包括head和body两部分。在设计中head的部分仅定义了系统的标题,给用户以直观的展示。body中发送GET请求获取响应类型为TEXT类型的数据包。

JavaScript是一种脚本语言,运行在HTML中可以使静态网页表出现动态的效果。为了使温度数值自动的实时更新,本设计就使用了JS脚本来实现。同时为了减轻服务器端接收请求命令并响应的压力,本设计中使用异步请求方式,只需向服务器端发送一次请求就可以连续的获取温度数值,从而达到局部更新的效果。

4 结论

本文对温度采集模块和能够提供WEB服务的单片机进行了研究,设计了一种低成本的微型温度监测系统,同时满足了移动性和远程性,使得用户通过手机打开指定的IP地址就可以获得实时温度数值,具有一定的应用前景。

参考文献:

[1]宋佩利,赵春祥,连蓉.基于LabVIEW的数据采集及处理系统设计[J].现代工业经济和信息化,2018,8(03):43-47.

[2]陈冉.基于B/S结构的无线控制系统在数控设备上的应用研究[D].深圳:深圳大学,2017.

[3]翟玉石.基于嵌入式Web的无线视频监控系统的研究与实现[J].吉林省教育学院学报,2014,30(11):151-152.