APP下载

基于单片机的移动无线温度监控系统设计

2021-01-12吴文珍安学海

关键词:控件温度传感器串口

吴文珍,安学海

( 东北石油大学 计算机与信息技术学院,黑龙江 大庆 163318)

随着嵌入式和物联网的发展,出现了很多性能高,功耗低,可扩展性好的嵌入式芯片以及由这些芯片开发的系统。这些系统已经被应用在工业生产[1]、医疗仪器[2]、智慧农业[3]、气象水利监测[4]等各个领域,并且运行稳定、表现优异、提高了工作效率、节省了大量的人力和物力。

温度,这一物理量,在生活、生产中已经成为很重要的指标。近到我们的体温,我们生活环境的温度,远到气象预报温度数据的获取,工农业生产温度的监控,无时无刻不需要温度信息的获取,并且对历史温度信息的分析有助于更好的生产生活。

基于以上原因,本文的目的是设计一款监测环境温度在-55~125 ℃、测量误差不高于±1 ℃、移动监控、模块化、可存储检测信息用于后期分析的温度监控系统,该系统采用DS18B20作为温度传感器,LCD1602作为显示模块,LED和喇叭作为声光告警模块,电磁继电器作为温度控制模块,键盘用于设置温度限值和启停温度控制设备。

1 系统总体设计

系统硬件总体结构如图1所示。本系统硬件使用宏晶公司生产的STC90C516RD+40I单片机作为主控制器,DALLAS公司生产的DS18B20单总线数字温度传感器作为温度采集设备、LCD1602作为显示模块、红色绿色LED灯和喇叭作为声光告警模块、电磁继电器作为温度控制模块、矩阵键盘作为输入设备。下位机系统软件设计使用Keil集成开发环境,上位机温度监测软件采用Visual Studio编写。

图1 系统总体结构Fig.1 Overall structure of the system

系统通过单片机实时检测数字温度传感器DS18B20采集的温度信息,使用LCD1602显示,并将获得的温度信息与设置的温度限值相比较。当温度低于下限时,系统进行声光告警,绿色LED灯亮,同时启动温度控制电路升温;当温度高于上限时,系统进行声光告警,红色LED灯亮,同时启动温度控制电路降温。通信模块使用通用异步串行口(UART),用于与手机、电脑等上位机通信、系统软件的下载和系统的调试和升级。监测系统中的单片机系统与手机、电脑等上位机终端通信可以采用有线和无线两种方式,但以无线通信为主。有线通信采用USB转UART芯片,通过USB线进行通信,适合在系统测试和升级时使用。无线通信又包含短距离通信和长距离通信,短距离采用汇承公司的HC-05蓝牙串口模块通信和HC-25 WIFI模块,局域网透传或作为服务器由上位机设备直接连接进行透传;长距离需要云平台支持,采用亿佰特公司的E34-2G4D20D串口模块进行通信。系统通信方式和模块可根据用户实际需求选择。

2 硬件电路设计

2.1 温度采集电路设计

温度采集电路的主要器件为温度传感器,如今温度传感器各式各样,主要有四种类型:热电偶式温度传感器、热敏电阻式温度传感器、电阻温度检测器(RTD)和IC温度传感器。IC温度传感器又包括模拟输出[5]和数字输出两种类型。热电偶式温度传感器,虽然有结实、无需供电、温度范围宽、适应各种大气环境的优点,但是测量的温度和收到的电压是非线性关系,导致操作和使用比较麻烦;热敏电阻式温度传感器,虽然体积小、测温速度快、灵敏度高,但是比较脆弱,大电流会产生自热,如果热敏电阻暴露在高热中,将导致永久性损坏;电阻温度检测器,虽然有温度范围宽、重现性和稳定性好、精度高的优点,但是内部含有玻璃、陶瓷等脆弱物质,温度测量电路复杂,并且成本和IC温度传感器相比非常高;IC温度传感器具有精确度高、温度和输出线性关系好、敏感度好、电路简单、功耗小、价格低等特点。综合来看,IC温度传感器比较适合作为系统的测温元件,由于单片机属于数字处理器,所以选择IC数字输出的温度传感器。

DS18B20是常用的数字温度传感器。其输出的是数字信号,具有体积小、硬件开销低、抗干扰能力强、精度高、负压不会烧毁的特点。独特的单线接口方式,仅需要一条口线即可实现微处理器与DS18B20的双向通讯且接线方便,封装后可应用于多种场合。DS18B20测温范围为-55~125 ℃,精度在±0.5 ℃,工作电源3.0~5.5 V/DC (可用数据线寄生电源),使用中不需要任何外围元件,通过指令获取测量结果,测量结果以9~12位数字量串行传送。DS18B20内置了专门用于存储高低温报警触发值TH和TL的非易失性电可擦除EEPROM,掉电后数据不丢失,上电复位时数据从EEPROM载入到中间结果暂存器,确保报警门限数据的完整性和安全性[6]。此传感器还支持多点组网功能,可以多个DS18B20连接在一条数据线上,实现多点测温。基于以上特性本系统采用DS18B20单总线温度传感器测温。

DS18B20采用寄生电源时,需要单片机I/O口既要供电又要传输数据,导致读取温度时间慢、电源电压不稳定,所以在本系统中采用外部电源供电方式,电路原理图如图2所示,DQ数据线和单片机P2.0引脚相连,单总线要求接小于5 kΩ的电阻,系统中使用4.7 kΩ电阻[7]。

图2 DS18B20电路原理图Fig.2 Schematic diagram of DS18B20 circuit

2.2 温度显示电路设计

系统采用LCD1602显示温度和告警信息。LCD1602需要5 V外接电源供电,单片机P0口的P00~P07接LCD的数据引脚DB0~DB7,P25引脚接LCD的寄存器选择引脚RS,P26引脚接LCD的读写操作选择引脚R/W,P27引脚接LCD的使能信号引脚E。单片机通过向LCD读写命令和数据实现LCD的显示功能。显示电路原理图如图3所示。

图3 显示电路原理图Fig.3 Schematic diagram of display circuit

2.3 温度控制电路设计

温度控制电路包括升温和降温两个部分,主要由ULN2003芯片驱动两个电磁继电器启动温控设备工作。由于升温电路和降温电路原理相同,本文以降温电路为例说明,降温设备使用带有扇叶的直流电机M模拟。降温电路如图4所示,单片机P2.1引脚与ULN2003芯片in1引脚相连,ULN2003芯片out1引脚连接继电器J1 ,当温度超过温度上限时,单片机P2.1引脚输出高电平,通过电磁继电器启动直流电机工作,带动风扇工作,从而达到降温的目的。升温电路由单片机P2.2引脚与ULN2003芯片in2引脚相连,ULN2003芯片out2引脚连接继电器J2构成。

图4 降温电路和喇叭电路Fig.4 Cooling circuit and speaker circuit

2.4 通信模块电路设计

为了满足不同工作环境的需求,本系统的通信模块利用单片机串口通信,采用有线通信和无线通信两种接口方式,由用户根据实际需要选择合适的通信接口,并使用对应的通信模块。本系统以无线通信为主,通信双方必须使用相同的模块来保障正常通信,无线通信示意图如图5所示。

图5 无线通信示意图Fig.5 Wireless communication diagram

有线通信接口采用USB转串口芯片CH340[8]。此芯片性价比非常高,通信误码率小,并且PC机等设备一般都有USB接口,适合在系统安装和调试时使用,也可使用USB进行短距离有线通信。对强电磁干扰等不适合无线通信的环境下可连接USB转RS485等模块使用,进行长距离有线传输。

无线通信接口是将UART信号线、电源线、地线以及相应的控制线引出,并以排座的形式连接无线模块,目的是让用户便捷地安装和更换通信模块。无线通信接口可连接蓝牙模块HC-05、WIFI模块HC-25、无线射频模块E34-2G4D20D之中任意一种模块。系统通信模块电路图如图6所示。

图6 通信模块电路图Fig.6 Circuit diagram of communication module

HC-05模块是全双工蓝牙串口模块,适合于室内、车内等短距离测温环境,可和手机、电脑等含有蓝牙的设备通信。蓝牙由于其功耗低、智能设备普及率高的特点,非常适合短距离测温环境,测温成本也会降低很多。

HC-25模块是WIFI串口模块,适合于智能家居、智慧温室等智能场景下使用,支持和电脑、手机的通信。在智能场景下的网络支持较好,可通过路由器和云平台进行局域网环境监测和远程监测。HC-25作为服务器也可以和手机、电脑等含WIFI的上位机设备进行直接连接通信,可一个模块连接多个设备,但通信距离不能超过80 m,可应用在较近距离的通信场景中。

E34-2G4D20D模块为无线射频通信模块,通信距离2 km,2.4 G跳频传输,支持全双工和半双工通信。但该模块成本高,没有设备可以直接收到它的信号,需要使用另一个同型号模块才可以通信,还需要把模块接口转换为USB接口才可以和含有USB或OTG的设备进行通信,适合在2 km以内且无网络的测温环境下使用,可应用在野外作业中。此模块在本系统中为全双工通信模式,通信双方的模块设置其M0、M1引脚分别为高电平和低电平即可。

2.5 声光告警及输入电路设计

声光告警采用LED灯和喇叭完成。系统使用红色和绿色LED灯各一个,采用共阳极连接,使用P3.6、P3.7分别连接两个LED的阴极。喇叭由芯片ULN2003驱动,喇叭电路如图4所示。

输入设备采用矩阵键盘,与单片机P1口连接,主要用于设置温度的上下限,也可作为升温设备、降温设备和照明灯带等其他设备的直接开关功能键;矩阵键盘采用行列反转方式扫描,其扫描速度快,可减少其他程序的等待时间。

采用ULN2003驱动可以增加系统驱动能力和模块化程度,本系统预留一个继电器J3和一个LED灯带基座,可根据用户要求连接其他设备和照明设备,由按键控制开启和关闭。

3 下位机系统软件设计

系统的软件设计采用模块化设计的编程思想,系统程序主要由初始化模块、温度采集模块、温度显示模块、温度控制模块和数据通信模块组成。系统中采用看门狗,使系统在干扰过后自动复位重启,防止系统死机。软件系统流程如图7所示。

图7 软件系统流程Fig.7 Process of software system

初始化模块用于对定时器、串口、温度传感器、显示模块、看门狗、中断的初始化。温度采集模块用于获取温度传感器采集的温度。温度显示模块用于在LCD1602上显示温度信息和告警信息。温度控制模块由温度控制继电器接通。通信模块用于温度监测系统的上位机和下位机的通信:下位机向上位机发送温度信息,上位机可通过六字节的ASCII码远程设置下位机的温度限值,其中前三字节为温度下限,后三字节为温度上限,支持-55~125 ℃之间的整数温度值的设置。

4 上位机温度监测软件设计

本系统上位机(PC机)温度监测软件,使用C#语言编写,串口通信使用C#中SerialPort串口类实现,信息存储使用Access数据库,数据显示使用C#中DateGridView控件和chart控件实现,导出文件使用C#中 system.IO实现大量数据的导出。本软件实现如下功能:接收实时温度、设置温度上下限并发送给下位机、温度超限监测及警报、温度定时存储、温度数据查看和走势图、过期历史温度数据删除、历史温度数据导出。

根据下位机发送来的温度数值及格式,以及获取的时间格式可知,数据库表的结构为时间和温度字段:时间为主键,存储年月日时分秒;温度数据需要存储到小数点后三位。由于系统为单点测温系统,所以不需要其他表和字段[9]。温度存储表见表1。

表1 温度存储表Tab.1 Temperature storage Table

本软件串口通信参数的设置由用户来完成,仅需要设置端口号即可。软件显示当前时间和当前温度,并使用醒目字体、字号和字体颜色显示提示信息。软件设置温度区间时,温度区间数据在软件中保存并与接收到的温度数据比较,显示提示信息,与此同时,温度限值信息经过处理,转换成单片机可识别的数据,然后发送给单片机。

温度数据的存储和实时查询使用C#中timer定时器控件实现,根据实际情况可更改定时器的定时时间来保存和读取数据。软件通过获取的时间和温度数据,在定时器事件触发时,自动进行保存操作,存储到Access数据库温度存储表中。实时查询可自动刷新显示前一天至当前时间24 h的历史温度数据。在查询、删除和导出数据时,通过使用两个C#中提供的DataTimePicker控件选择开始和结束时间,根据控件中获得的时间数据,在Accesss数据库中获取这个时间段的数据,然后进行查询、删除和导出操作。查询数据通过DateGridView控件和chart控件显示:DateGridView控件显示具体的时间和温度;chart控件通过折线图显示温度的走势,横轴为时间,纵轴为温度,并可以放大选区内的曲线,获得短时间内详细的数据走势。导出文件利用IO流的方式导出,其优点在于可以进行大量数据导出,其导出文件格式为CVS,导出文件名默认为导出时间,可使用office Excel和WPS表格软件打开,导出的温度数据文件为后期的数据分析提供方便,可为数据分析软件提供原始数据[10]。

上位机的温度监测软件有两个界面,如图8所示。图8(a)是软件的初始界面,界面由串口设置、时间和温度显示、温度区间设置、提示四个功能部分组成,其中温度区间设置可以远程控制下位机的温度限值,设置温度有小数时,软件四舍五入处理为整数,并组合成指令发送给下位机;点击初始界面的查看温度数据按钮进入图8(b)所示的界面,该界面用于历史温度记录的显示、导出和删除功能,由时间选择、功能按钮、数据表和折线图四部分组成,可以直观展示数据及走势。监测人员可以同时查看两个界面的数据。

(a)初始界面

(b)历史温度数据界面 图8 上位机温度监测软件界面Fig.8 Temperature monitoring software interface of upper computer

5 结束语

本文设计了一套基于STC90C516RD+单片机、单总线数字温度传感器DS18B20、LCD1602显示模块和串口通信的移动无线温度监测系统。上位机利用C#程序语言的优势,使用户界面更直观、操作更简单。无线模块的多种选择使温度监测系统更加适合多场景作业,例如远程温度监测、移动温度监测和野外温度监测等。实验表明,系统具有工作可靠、测温精度高、可扩展性好、可模块组装、免布线、便携、可移动测温等特点,满足大多数环境温度监测的需要。

猜你喜欢

控件温度传感器串口
基于HSIC的日光温室温度传感器优化配置策略
基于C++Builder 的电子邮件接收程序设计*
微机电系统温度传感器研究进展及产业现状综述
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
浅谈温度传感器原理及其应用
MCS—51单片机中的多串口通讯技术的应用
Spreadsheet控件在Delphi数据库系统中的编程与应用