当今现代化建设和国民经济发展迅速,社会对生产环境和生活环境意识的要求也越来越高。人们的日常生活和周围环境的温湿度息息相关,石油、化工、航天、制药、档案保管、粮食存储等领域对温湿度也有着较高的要求。因此,对温湿度的监测和控制已成为生产过程中非常重要的技术。无线网络的飞速发展使得远程数据传输得到广泛的应用,GPRS通信技术以其不需要架设通信线路、组网灵活方便、覆盖面广等独特的优势使其在无线数据传输系统中越来越被重视。
为此,本文提出了一种基于GPRS的环境温湿度监测系统,采用MSP430单片机及SIM300无线通信模块构成数据采集终端,能够连续实时的对监测现场的环境温湿度进行监控,监控中心的上位机软件用C++编程实现,能够对数据采集终端进行远程控制。
1 监测系统总体构成
本方案针对没有网络环境,或者网络环境不稳定,无法直接接入Intemet的监测中心,无需公网IP地址,也无需申请APN专线,采用两个GPBS无线模块进行发送和接收,通过GPRS内网的点对点TCP连接即可完成数据通信。
监测系统由数据采集终端和监测中心服务端两部分构成。数据采集终端负责温湿度数据的采集和发送。监测中心服务端由一个GPRS无线模块作为接收端,将接收到的数据传给监测中心PC机,通过上位机软件分析处理,实现采集数据的实时显示、曲线显示、数据存储等功能。系统整体结构如图1所示。
2 系统硬件设计
系统硬件即数据采集终端,以MSP430单片机为核心,包括一个高精度的温湿度传感器AM2303,电源模块,串口模块,GPRS通信模块SIM-300等。MSP430单片机由I/O口采集数字温湿度传感器AM2303的信号,经分析处理,再通过RS-232串口将温湿度数据发送给SIM300无线模块由其通过GPRS网络发送至监控中心服务端。硬件结构框图如图2所示。
2.1 电源模块
系统外部输入电压为5 V,由于温湿度传感器AM2303供电电压为3.3~6V,MSP430单片机工作电压为3.3 V,GPBS无线模块SIM300工作电压为4.2 V,因此本系统需要提供3.3 V和4.2 V电压。温湿度传感器AM2303直接采用5 V输入电压:3.3 V电源部分采用SM公司的SM1117芯片来实现;对于SIM300模块采用的4.2 V供电,由于该电源部分的输出电流必须达到2 A,因此采用MICREL公司的MIC29302芯片。具体电路图分别如图3、图4所示。
数据采集程序部分由数据采集和数据转换两部分构成。数据采集从传感器获得40 bit温湿度数据,数据转换主要进行十进制转换,ASCII编码和正负温度判定。温湿度传感器AM2303采用单总线数据格式,一次通信时间5 ms左右,主机(MCU)发送一次开始信号后,AM2303从低功耗模式转换到高速模式,等待主机开始信号结束后,AM2303发送响应信号,送出40 bit的数据,并触发一次信号采集。AM2303通信时序如图7所示。
2.2 温湿度传感器模块
AM2303数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中可随时调用这些校准系数。AM2303采用单线制串行接口,系统集成简单。测温与测湿的范围分别为-40~125℃和0~99%RH。
2.3 GPRS无线模块
GPRS无线模块采用SIMCOM公司的SIM300模块,SIM300是一款三频段GSM/GPBS模块,能够提供GPRS多信道类型多达10个。该模块内部还集成了TCP/IP协议栈,并且扩展了TCP/IP AT指令,便于用户开发数据传输设备。系统采用ZIF连接器外接SIM卡,单片机通过发送AT指令与SIM300进行通信,实现连接网络、数据发送等功能。
3 系统软件设计
系统软件由下位机软件和上位机软件两部分组成,下位机软件即数据采集终端的软件采用C语言编写,上位机软件即监测中心服务端软件采用Bodand公司的C++Builder作为开发平台。
3.1 数据采集终端软件设计
整个数据采集终端软件部分包括初始化程序、数字温湿度传感器采集程序、串口程序、网络连接命令收发程序、测试程序等若干部分。总体程序流程图如图5所示。
MSP430单片机通过RS-232串口以AT指令形式与SIM300无线模块进行通信。若单片机发送指令正确,则SIM300模块将返回“OK”,错误则返回“ERROR”或者其他格式的指令,单片机通过判断无线模块返回的指令来决定下一步执行的程序,直到成功连接上GPRS网络。网络连接程序流程图如图6所示。
本系统采用TCP点对点连接方式进行GPRS连接,数据采集终端需要先获得服务端的IP地址,所以服务端以短信形式发送本地IP给数据采集终端,数据采集终端提取IP地址后再进行本地设置,发起连接。
3.2 监测中心服务端软件设计
本文中监测中心软件开发平台采用C++Builder进行编程设计。在服务端外接一个GPRS无线模块作为接收端,使用C++Bulkler中的MSCOMM串口控件完成串口通信,进行数据读取,同时可对回传数据进行分析、实时显示及图形化显示,还可控制数据采集终端的采集时间间隔,达到远程监控的目的。监测中心软件还建立了数据库,可调用和查看存盘的数据及图形记录,并进行打印。软件界面由实时监控单元、历史数据单元和GPRS连接单元3部分组成。监测中心界面如图8所示。
4 实验结果与分析
使用本系统对标准的温度源及湿度源进行测量,测量结果如图9、图10所示。
从图中数据可以看出,测温误差不超过±0.2℃,湿度误差在25℃的理想条件下不超过±2%RH,在低温环境下不超过3%RH,能满足实际应用的需求。同时通过长时间稳定性试验,长期采集数据稳定,掉线率低,且因为没有直接接入Internet,流量少,若每隔一分钟采集一次数据,连续采集一个月数据流量不超过45M。
5 结束语
本系统主要针对没有网络环境的监测中心,硬件接入简单。通过对软件的修改也可满足不同GPRS接入方式的应用,扩展性能较好,同时具备掉线自动重连,电池电量监测等功能,能够广泛应用于各种温湿度监测环境。