温差电池在线监测系统设计
2019-12-20郝秀,应骏
郝 秀, 应 骏
(上海师范大学 信息与机电工程学院,上海 200234)
0 引 言
通过调研发现,在温差电池的研发过程中,科研人员需要长期对温差电池的冷热源温度及其电池产生的开路电压,在不同季节、不同环境、不同时段进行实时监控以及数据记录[12]。为了减小研究代价提高科研效率,功能完备的电池在线监测系统显得十分必要。因此,根据需求,本文设计融合多种通信方式、高精度、高灵活性的温差电池在线监测系统。系统由采样模块,通信模块和相关软件组成。在设计过程中,充分考虑到温差电池在线监测系统的智能化发展方向、远程集中管理和在线维护的发展趋势[4,5]。
1 在线监测系统设计
在线监测系统的采集终端由单片机(microcontroller unit,MCU)主控,无线局域网(WiFi)通信模块,信号桥接电路,电源模块组成。搭建Openfile作为云服务器,并部署数据库,监测终端则有个人计算机(personal computer,PC)端Spark软件或者安卓APK两种选择。前端信号为1路温差片输出电压信号以及贴在温差片两侧的Pt1000温度传感器通过惠斯通电桥转换的电压信号输入STM32的SDADC。系统总体框架如图1所示。
图1 系统总体框图
1.1 硬件设计
系统主控选用STM32F373,其SDADC的采样精度达到16 bit高于普通MCU,高性能,资源丰富。WiFi采用安信可科技生产的高性价比,与物联网领域应用度很高的模块ESP8266[6]。WiFi的电源受STM32控制,可以根据不同采样传输频率执行不同的休眠策略,降低系统功耗。
在电源方面,除了给处理器供电,还需要产生精确的正负参考电压Vref,模拟电压部分原理如图2所示,由于温差电池的两侧温度差可能出现反转,因此需要支持负电压采样(动态范围-1~+1 V),故运算放大器SGM8552X88的输入电压为信号电压Vin加上1.2Vref,STM32的SDADC分别对VolADC和1.2Vref进行采样之后再取差值,可以消除共模干扰[7]。
图2 模拟电路原理
1.2 软件设计
系统软件主要包括ESP8266程序与STM32程序两个部分。两个芯片均搭载FreeRTOS实时操作系统,模块间的通信采用UART,并自定了AT_Command命令来作为信息交互协议[8]。在系统启动时,STM32通过串口进行配置ESP8266需要的目标AP的信息,服务器的IP和Domain等信息。STM32软件框架如图3所示,主要功能包括:接收用户通过串口配置网络信息并将网络信息写进Flash,开机上电对WiFi模块进行初始化,按照一定频率采集温度和电压信息,将采集的信息通过通用非同步收发器(universal asynchronous receiver/transmitter,UART)传输给WiFi模块,并接收来自远程客户端的命令。命令包括采样频率的设置,实时查询电压和温度值。
图3 STM32软件框图
ESP8266软件主要分为两个线程,网络线程以及消息处理线程,两个线程之间通过消息队列通信,当UART收到主控消息或者网络线程收到服务器的消息均通过消息队列发送到消息处理线程集中处理。
网络线程主要是负责保持WiFi连接以及与服务器的连接。Socket采用TCP/IP的方式,应用层协议采用XMPP。该线程实现了XMPP登录,添加好友请求处理,发送消息(message),发送状态信息(presence),服务器心跳包处理等功能。线程采用阻塞方式读取网络数据,设置读取超时机制,由于服务器设置为每隔120 s客户端(idle client)发送ping包,考虑网络延时,故将读取超时时间设置为150 s,如果超时则重新连接服务器[9]。读取到数据之后,对数据进行解析,如果是ping包或者添加好友请求则回复请求,自定义消息则发送到消息软件流程如图4所示[10]。
图4 Esp8266软件框图
消息处理线程主要负责处理来自服务器的自定义命令,包括查询软件版本,查询当前温度和电压,设置采样间隔等,以及处理来自UART的配置命令以及发送消息,发送状态信息等请求,软件流程如图3所示。 ESP8266为整个系统的应用消息收发中心,无论STM32还是远程客户端与其通信均用同一种AT_Command命令,如果消息是WiFi模块自身支持的命令则执行,否则就转发给MCU或者服务器。部分命令格式定义如下:
#define AP_INFO “AT+SET+SSID:%s;PWD:%s” ∥配置WiFi热点信息命令
#define SET_IP “AT+SET+DOMAIN:%s;IP:%s” ∥配置服务器信息
#define SEND_MSG “AT+SET+MSG:%s” ∥发送消息已添加好友
#define CHANGE_PRE “AT+SET+PRE=%s” ∥改变设备状态信息
#define GET+VOL “AT+GET+VOL” ∥获取当前电压值
2 系统测试与数据分析
该监测系统的测试环境是在浙江大学材料实验室,温差电池嵌入墙体,通过室内外的温度差来产生电压,设计了监控界面为PC端的Spark软件,监控账号ID为Sensor,1#设备为采集设备的ID,其中状态信息为WiFi模块的16进制介质访问控制(media access control,MAC)地址,用以区分设备,会话界面为采集设备每隔10 min上传1次监测信息,T1,T2分别为温差电池两侧温度,其中T2为室内空调控制温度,V为输出电压,该系统可以帮助科研人员分析不同的季节不同天气不同时间段的数据,大大减少测试和收集数据工作量。
如图5所示,为一天各时段的数据信息,可见温度之间差值大。
图5 采集数据曲线
3 结束语
本文解决了温差电池科研人员需要对电池的状态进行长期不间断监测,数据需要长期记录的问题,设计了一种基于物联网功能完备的高精度、高灵活性温差电池在线监测系统。远程监控界面也大大减小了科研人员对于温差电池的研究代价,提高科研效率。但目前的设计仍存在一定改进之处,在目前的系统中,供电方式仍采用外部供电,如果功耗能达到一定的量级,采用温差电池储能的方式自供电,那么监测系统的应用会更具实用价值。