中国矿业大学(北京)机电与信息工程学院 罗 章 贾程乾 于津璎 李佩锦 甘琳巧 刘 帅
该采集终端是为各种变送器配套设计的无线信号采集装置。主要针对外部变送器采集物理信号后转换得到的电信号,在ARM系统控制下,借助ESP8266模块转换为Wi-Fi信号,通过无线局域网将数据传送到上位机,最后由上位机相匹配的软件对数据进行处理。实现了外部物理信号的实时监测。
引言:在工农业生产及日常生活中,对于各种信号(如温度、湿度、压力、流量等)的采集非常广泛。传统信号采集中采用人工测量及有线传输方式有诸多弊病,浪费人力成本,容易出错,布局布线困难等。针对上述问题,结合信号采集无线化的发展方向,本文设计了基于Wi-Fi模块ESP8266的信号采集终端,实现了采集信号的无线传输。
该信号采集终端结构框图如图1所示,主要包括ARM主控芯片、Wi-Fi模块及电源电路。ARM主控芯片是采集终端的控制中心,负责实现信号的采集、处理与传输等,通过UART通用异步收发传输器在主控ARM芯片与ESP8266之间进行串口数据传输,Wi-Fi模块实现内部电信号与无线Wi-Fi信号的相互转换,电源电路为各功能模块及需要供电的外接传感器系统供电。
图1 信号采集终端结构图
该采集系统的主控芯片选用了STM32F103C8T6,该芯片是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C~85°C。主控芯片外部接有晶振(8MHZ)、复位及输入输出电路,如图2所示。STM32F103C8T6的IO口被其相应的功能占用一部分,外部变送器的OUT端输出口与STM32F103C8T6未占用的IO口连接,进行ADC模数转换,图中A1、A2为两个模拟量输入口,D1、D2为两个数字量输入口,输入端(RXD0)与输出端(TXD0) 两个串口分别与ESP8266的串口TXD1、RXD1连接,建立数据通信渠道。ADC采样的参考电压为3.3V,分辨率为12位,这样模拟信号就转换为数字信号。ARM主控芯片又通过硬件UART收发传输器将数字量传输到ESP8266芯片中。
图2 STM32F103C8T6接口电路图
Wi-Fi模块采用乐鑫公司的ESP8266模块,ESP8266系列芯片是乐鑫信息科技在2015年推出的Wi-Fi芯片,该芯片凭借其高集成度、低功耗和易用性在物联网应用领域获得了肯定,是实现基于Wi-Fi远程控制最好选择。ESP8266是一款串口转Wi-Fi 的透传模块,支持soft AP模式、station模式、或者soft AP +station共存模式(曹振民,陈年生,马强,武凌,武婧.基于ESP8266的无线控制电路设计[J].工业控制计算机,2017,30(01):68-69)。这里采用station模式,即把ESP8266当作一个客户端,可将其连接到Wi-Fi无线网络上,进行互联网或局域网通信,实现联网功能。ESP8266的接口电路设计如图3所示,其串口输入端(RXD1)、输出端(TXD1)分别与ARM芯片STM32F103的串口输出端、输入端连接,其复位端(RST)直接连接至ARM芯片的复位端。
图3 Wi-Fi模块接口电路图
ESP8266的Wi-Fi模块与无线路由器或者无线热点连接有两种连接方式。一种是直接通过软件编程,在程序中设置无线路由器或者无线热点的网络名称、密匙、网关和掩码,程序载入运行之后即可连接;另一种是先通过手机连接同一路由器或者无线热点,再在手机上通过配用的APP软件给ESP8266的Wi-Fi 模块发送路由器或者无线热点的密码进行智能连接,这样也可使ESP8266模块与无线网络连接起来。
电源电路如图4所示,3.3V稳压芯片AMS117-3.3给ARM芯片、Wi-Fi模块供电,同时留出外接引出端,给外接的需3.3V电压供电的传感器系统供电。另外5V稳压芯片ASM117-5提供了5V电压,可以给外接需5V电压供电的传感器系统供电。整个信号采集终端采用电池供电方式,供电范围6V~18V之间,可采用锂电池串联供电。
图4 电源电路图
UDP中文名是用户数据包协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,即一种简单的网络通讯协议(黄玉金,杨越,薛伟,张天成.无线模块的AT指令UDP透传设计[J].电子产品世界,2018,25(01):34-36+33)。
ESP8266的UDP传输方式分为两种:UDP限定透传、UDP自由传输。UDP自由传输不能使用透传模式,但是可以给任意UDP主机发送数据,改变设定的UDP主机端口号即可。UDP限定透传可以使用透传模式,但是只能限定一个远程UDP主机,事先设定好端口号不能更改,因此不能给其他的UDP主机发送,即一对一的数据传输方式。
UDP传输模式的基本框图如图5。通过将ESP8266模块与上位机连入同一个路由器中,ESP8266模块与上位机构成一个小型的无线局域网,这样就搭建好了数据通讯的环境,可以实现上位机与ESP8266直接进行数据传输。
图5 无线局域网传输模式示意图
云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务,其管理方式比物理服务器更简单高效。当上位机或手机无法与开发板连接到同一路由器上时,UDP传输模式就无法再发挥作用,此时我们可以选用云服务器模式来实现异地远程的数据传输。
该采集终端选择的云服务器有Yeelink云服务器和OneNet云服务器,基本结构框图如图6所示。云服务器模式的数据传输中,先将ESP8266的Wi-Fi模块与路由器或无线热点连接,再在软件编程中用void Load_Net_Parameters(void)这个函数设置网络参数以及工作模式,选用好合适的参数后下载到数据采集终端的ARM主控芯片中。接着我们要联网的上位机登录相关的云服务器,注册并登录自己的账号,在账号中添加自己需要的设备信息并且建立一个接受上传数据的设备,这样我们就可以看到上传数据的图表了。
图6 云服务器传输模式示意图
该采集终端连接的上位机软件,可以根据外部采集的物理信号进行相应的设计,按照用户需求定制界面,本文不做详细介绍。这里主要介绍作为下位机的采集终端内针对ARM主控芯片和Wi-Fi模块的软件编程。
图7 软件设计流程图
下位机软件通过Keil 软件进行编写调试和烧录。主体程序流程图如图7所示。该采集终端软件编程中,首先设置好ESP8266的协议(UDP)和工作模式,配置Wi-Fi连接的信息,设置好相应的主机IP地址,连接好网络后就能进行数据传输了。软件中按照设置好的采样间隔触发定时器中断,然后对输入的模拟信号利用ARM主控芯片进行ADC采样,获取模拟输入端口采集到的数据信号,最后通过串口读写将数据发送到ESP8266模块,按照Wi-Fi模式向上位机或云服务器进行无线传输。
通过实验测试,按照上述方法构建的采集终端性能稳定,可靠地实现了多路变送器物理信号的实时采集与无线传输。由于采用了通用无线路由器进行网络连接,设备组网灵活,可根据需要进行本地数据采集,或云端远程传输。通过采用更高主频的ARM主控芯片还可进一步提升数据采集速度,并在采集终端完成一些数据分析处理功能。可见这种无线信号采集终端简便易行,稳定可靠,有着很好的应用前景。