杨宝 龙德亮
摘 要:针对现代化小区对远程水温水位测控的需求,设计了一款基于GPRS的远程无线通信的水温水位系统。系统分为数据采集、无线传输和PC机显示三部分;数据采集部分采用STM32微处理器,实现对多路信号的数据采集;无线传输部分通过SIM900A模块接入GPRS网络,来实现对数据的传输;PC机实时显示水温水位情况。经测试,PC机与各测控制节点通过GPRS通讯,通讯稳定,可靠性高。
关键词:GPRS;STM32微处理器;SIM900A模块;水温;水位
The research of remote monitoring and control system
for water temperature and water level based on GPRS
YANG Bao,LONG Dei-Liang(College of Physics and Electronic,Shandong Normal University,Jinan 250014,China)
Abstract:To satisfy the demand of modern community for monitoring of remote water temperature and water level, an oberserving and controlling system was designed based on GPRS, which can implement the long-distance wireless communication.The system is divided into two parts of data acquisition and wireless transmission; data acquisition part adopts STM32 Microprocessor to implement data acquisition of multi-channel signals; wireless transmission part implements the transmission of data through the SIM900A accessing to GPRS network, to realize the data transmission;The PC real-time displays water temperature level.After the test, the PC and the controlling node through the GPRS communication,which is stable and high reliability.
Key words:GPRS;Microcontroller STM32;SIM900A module;water temperature;water level
隨着城市化建设的快速发展,智能住宅小区不断涌现,小区中生产和供应热水的太阳能集热热水工程设备、多分散安装在各个楼顶,通常管理人员需要上到楼顶才能实现控制和管理,十分不便。而远程测控系统能够对生产和供应热水的设备进行远程测控,降低管理成本,管理方便。
一般测控网络多采用RS-485作为现场总线[1],但由于其存在着传输距离小于1km、通讯失败率高的局限性,决定了RS-485不适合远距离通讯。与RS-485相比,无线通信GPRS[2]具有传输距离远,通讯失败率低,而且还具有永远在线、自动切换、高速传输等优点。因此采用GPRS来设计远程水温水位测控系统,具有明显的使用价值和现实意义。
1 系统的组成
本系统在设计上采用了模块化设计,由微处理器、电源模块、水温采集模块、水位采集模块、继电器控制模块、实时时钟模块、按键输入模块、数据显示模块和GPRS模块[3]组成,可根据具体情况只选用其中的部分模块。
首先水温水位采集模块将采集到的数据送入微控制器,处理后可由显示模块显示。该数据可以通过GPRS模块发出。用户可通过联网的远程计算机收到该数据,然后通过远程联网向终端发送命令,进而操纵终端上的继电器,来完成数据的控制执行。系统框图如图1所示。
2 硬件设计
2.1 微处理器
本设计选用的是意法半导体公司生产的微处理器STM32F103RBT6。它是一款基于Cortex M3[4]内核、高性能、低成本、低功耗的微控制器,在软件和引脚封装方面同其他STM32系列处理器是兼容的。
它的时钟频率达到72MHz,能实现高端运算。内嵌128KB FLASH程序存储器。具有丰富的外设,I2C接口,USART、SPI等串行接口以及最大翻转率l8MHz的GPIO。更重要的是它拥有最快1us转换速度的双12位精度ADC,如此快速采集、高性能的ADC非常适用于数据的快速采集和快速处理上,这也是本系统选择它作为核心控制器的一个重要原因。
2.2 无线通信模块[2]
本设计选用的是SIMCom公司生产的SIM900A[5]模块。它是一款工业级双频GSM/GPRS模块,完全采用SMT封装形式。该模块内嵌TCP/IP协议,扩展的TCP/IP命令让用户能够很容易使用TCP/IP协议,采用工业标准接口,工作频率为GSM/GPRS 850/900/1800/1900MHz,可以低功耗实现语音、SMS、数据和传真信息的传输。另外,SIM900A的尺寸大小为24*24*3mm,适用于紧凑型产品设计。
该模块支持RS232串口和LVTTL串口,并带硬件流控制,支持5V~24V的超宽工作范围,使得本模块可以非常方便的与单片机进行连接,从而实现该设计所需要的GPRS数据传输功能。
该模块与用户移动应用的物理接口为68个贴片焊盘,提供了模块和电路板的所有硬件接口:键盘和SPI显示接口;主串口和调试串口;一路音频接口,包含一个麦克风输入和一个扬声器输出;可编程通用输入输出接口。SIM900A的功能框图如图2所示。
2.3 水温水位采集模块
温度测量选用DALLAS半导体公司生产的1-Wire接口数字温度传感器DS18B20[6]。
与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。测量温度范围为-55℃~+125℃,精度为±0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~l2位的数字值读数方式。它工作在3-5.5V的电压范围,采用多种封装形式,从而使系统设计灵活、方便,设定分辨率及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
水位测量选用PTH601水位传感器[6],它采用扩散硅压阻芯体或陶瓷压阻芯体,316全不锈钢结构,主要适用于河流、地下水位、水库、水塔及容器等的液位测量与控制。量程: 100mmH2O~100mH2O、500mmH2O~500mH2O(水位高/深度); 综合精度:0.2%FS、0.5%FS、1.0%FS;输出信号:4~20mA(二线制)、0~5V、1~5V、0~10V(三线制);供电电压:24DCV;介质温度:0~85℃。
2.4 实时时钟模块
由于本设计需要完成基于时间的判断和操作,故选用PHILIPS公司生产的串行日历时钟芯片PCF8563[7]。它是一款采用CMOS优化技术的低功耗实时时钟芯片,具有可编程时钟输出、中断输出、低电压检测和内部寄存器在每次读∕写自动递增等功能。芯片所有的地址和数据都通过I2C总线传输,最大的总线速度为4000kbps。
STM32[8]自带的I2C总线接口与PCF8563通讯,时钟电路如图3所示。为了防止在意外掉电后需要对PCF8563进行重新设置,加入了后备电源3.6V后备电源。
3 软件设计
系统软件设计方面包括采集端程序设计、基于SIM900A利用AT指令[5]进行自动数据收发。
3.1 采集端程序设计
开机后首先进行初始化,系统不断与事先设置好的服务器IP建立网络连接。一旦连接成功,就按照系统设置的模式开始水温和水位的采集,数据收集完毕后通过GPRS模块传到PC机上;如果系统受到结束采集的命令,即刻断网进入建立网络连接等待状态。软件流程图如图4所示。
3.2 利用AT指令进行自动数据收发
首先,通过RS232将PC机与SIM900A模块连接,设置相应串口参数:波特率-9600、奇偶校验-无、数据位-8、停止位-1。然后输入相应的AT命令控制GSM模块工作。
主要步骤如下:
⑴在数据接收端建立监听服务器。
⑵通过PC机发送相应AT命令控制SIM900A模块進行TCP连接。此处需要进行GPRS模块工作的相关设置,设置网络,设置协议,设置接入点等等,并向对方IP发起连接。相关AT命令解释详见表1。
AT指令介绍
AT指令是指终端设备TE和终端适配器TA之间以及数据终端设备DTE和数据电路终端设备之间的接口标准。20世纪90年代初,AT指令仅被用于Modem的操作,在经历了一系列演后指令被加入GSM07.05标准。SIM900A的AT命令接口默认使用IRA字符集,除此之外还支持GSM07.07格式,UCS2,HEX,PCCP,PCDN字符集。
⑶当监听端收到GPRS模块端发来的连接请求,进行连接,连接成功后可以在监听端观察到GPRS模块所获得的临时IP地址。
⑷发送数据。若在接收端可以看见该数据,就说明收到了该数据,从而实现了TCP数据传输。
4 结束语
基于GPRS的远程水温水位测控系统以STM32为主控制芯片,采用无线通信技术。此技术通讯稳定,较好地解决了现代化小区对水温水位的远程测控问题。在软/硬件设计中均采用了模块化的结构,灵活性高和适用性好。在太阳能热水工程快速普及居民小区的今天,该系统具有良好的应用前景。
[参考文献]
[1]张修太,马金元,翟亚芳,等.基于RS485的温度采集系统设计[J].微计算机信息,2010,26(10):102-104.ZHANG Xiu-Tai,MA Jin-Yuan,ZHAI Ya-Fang,et,al.The design of temperature acquisition system based on RS485[J].Mocrocomputer Information,2010,26(10):102-104.
[2][美]R.J.Bates.朱洪波,沈越泓,等,译.通用分组无线业务(GPRS)技术与应用[M].北京:人民邮电出版社,2004.
[3]夏华.无线通信模块设计与物联网应用开发[M].北京:电子工业出版社,2011.
[4][英]Joseph Yiu.宋岩,译.ARM Cortex-M3权威指南[M].北京:北京航空航天大学出版社,2009.
[5]翟顺,王卫红,张衍,等.基于SIM900A的物联网短信报警系统[J].现代电子技术,2012,35(5):86-89.ZHAI Shun,WANG Wei-Hong,ZHANG Yan,et,al.IOT SMS alarm system based on SIM900A[J].Modern Electronic Technique,2012,35(5):86-89.
[6]刘丽霞.基于GPRS的地下水水位水温监测系统研究[J].制造业自动化,2010,32(4):80-82.LIU Li-xia.Research on ground Water level and temperature monitoring system based on GPRS[J].Manufacturing Automation,2010,32(4):80-82.
[7]王公堂,于国栋.基于CAN总线的远程水温水位测控系统的研究[J].电子设计工程,2011,19(5):92-94.WANG Gong-tang,YU Guo-dong.The Research of remote monitoring and control system for water temperature and water level based on CAN bus[J].Electronic Design Engineering,2011,19(5):92-94.
[8]李楠,李建义,张红亮,等.基于STM32的环境监控终端的设计与实现[J].北华航天工业学院学报,2013,23(1):15-18.Li Nan,LI Jian-Yi,ZHANG Hong-Liang,et,al.The design and implementation of environmental monitoring terminal based on STM32[J].Journal of North China Institute of Aerospace Engineering,2013,23(1):15-18.