GSM通信在水位远程检测系统中的应用
摘 要:介绍一种利用单片机及GsM无线收发模块构成的水位显示及远程检测系统。在系统中,设计一种简易的水位检测方法以测得水位的状况,通过单片机显示系统在水位现场以LED的方式显示出来,并通过与之相连的GSM模块将水位信息以一种无线的方式发送给远程终端,起到检测的作用。
关键词:GSM GSl00 串口通信 远程检测 S9C2051
引 言
供水系统中的水塔和高位水池等设备由于所处地势高,上下极为不便,有时水即将用完也不知道,造成需用水时却无水可用的情况。此外,在向池中注入水的过程中,由于不知道水位的情况,也就无法控制注水量的多少,这会严重影响正常的工作效率。为此需要对水位进行自动显示、监测和报警。传统的水位检测系统一般通过有线方式与监控中心取得联系,这种方式不但维护起来困难,而且在很大程度上限制了其在时空上的拓展性。采用GSM模块与单片机构成的系统则能够解决以上的问题。通过单片机的并行I/0口可以很方便的实现水位的显示功能。现有的GSM网络在全国范围内实现了联网和漫游,具有网络能力强的特点,用户无需另外组网,在极大提高网络覆盖范围的同时为客户节省了昂贵的建网费用和维护费用。当采用GSM模块时,就可以通过一种无线通信的方式以实现远程终端监控和报警的功能。
1 水位的测试及显示系统
水位的测试通常有两种方法;超声波水位探测仪和干簧管式水位显示仪。这两种方法虽然可行但不切实际,本文设计了一种简易的水位检测方法。该水位检测部分由绝缘支架、电极、导管和浮球几部分构成,如图1所示。浮子由1个直径15 cm的不锈钢球与1根长105 cm、外径15 mm的不锈钢管焊接而成。导管是一根外径20 mm、内径17 mm的PVC塑料管。支架由长80 cm的电工导轨制作而成。其余部分安装在1个长25 cm、宽20 cm、厚5 cm的塑料盒内。
水位测试系统与单片机的并行I/0口、电阻、电源及LED发光二极管共同组成水位检测显示系统,如图2所示。
电极K1、K2和K3的另一端分别与单片机的并行I/C口P1.1、P1.2和P1.3相连,而对应的l/O口则通过电阻串LED接电源的正极。当水位达到水满位置时,此时通过水的导电,电极开关K1、K2和K3都导通,相应Pl口接地置低,3个发光二极管都点亮;当水位达到正常水位时,K2和K3导通,而K1断开,相应P1.2和P1.3置低,2个二极管点亮;当水位达到缺水位置时,此时只有K3导通,对应只有IJFD3被点亮。通过二极管灯点亮个数的显示,在现场给水池注水时,就能很清楚的知道水位的状况,这样就能够正确的注水了。
2 水位远程检测系统硬件组成
水位远程检测系统实际是一个无线数据的收发系统。该系统主要是通过现有的移动通信网络来实现无线数据的传送。它主要由两部分组成,即微控制器芯片89C2051和GSM无线短信芯片G100A。
2.1 微控制器
微控制器采用Atrnel公司推出的一种小型单片机89C2051,其片内含有2 KB的Flash程序存储器和128 B的片内RAM。89C2051共20引脚,其中P1口8脚,可以作为一般的准双向端口,在引脚的驱动能力上,具有很强的下拉能力,工作电压为2.7~6 V。当工作电压在3 V时,电流相当于6 V工作时的1/4,空闲时为1 mA,掉电时仅为20 nA。这样小的功耗很适合于电池供电的小型控制系统。主要特点为采用Flash存储器技术,其软件、硬件与MCS-51完全兼容,程序的电可擦写特性,使得开发与试验比较容易。
2.2 GSM无线短信芯片
GSM无线短信模块G100A是由北京捷麦公司推出的,该模块采用全SMT组装,工艺先进、可靠性高,工作电压范围为5~15 v。其内置的德国西门子公司GSM模块Tc35使得模块操作简单,无须学习复杂的GSM模块AT指令集。G100A的串口具有TTL、RS232和RS485半双工三种形式,标准配置为RS232。
2.3 系统硬件接口连接
整个水位远程检测系统由上位机和下位机构成,其中上位机主要是指移动终端即手机,而下位机是由GSM无线收发模块及与其相连的单片机构成,其电路连接原理图如图3所示。
下位机安装在水池附近,而微控制器C2051与G100A之间是通过串口RS232相连的,即TX、RX和GND三条线,图3中以网络标号相连。由于各自的工作电压不太一样,在这里采用电平转换芯片MAX3232以实现电平转换。单片机的并行I/O口通过网络标号P1.1、P1.2和P1.3分别与水位测试系统中的电极按键K1、K2和K3的一端相连。当水位在不同状态时,由于按键的作用使得对应的P1.1、Pl_2和P1.3电平的状态也不一致。这样就可以通过检测P1口的状态,并将其状态以短消息的形式由GSM模块发送出去,手机终端收到短信后就可以判断水位的状态。这样就完成了水位的远程检测功能。
3 水位数据无线传输的软件实现
由于G100A型GSM数传模块采用的是三线制串口.即TX、RX和GND三条线,故它们之间的数据传输遵循串行数据的格式,其传输数据格式为:1个起始位、8个数据位和1个停止位,且无校验(即5l系列单片机串行通信的方式1)。串口速率为固定的9600 bps。单片机将采集到的水位信息即P1.1、P1.2和P1.3的置零状态通过串口传送给GSM模块,当GSM模块收到远程上位机发送过来的请求得到水位信息后,它就相应的按照某种固定的数据格式将水位信息发送出去。
GSM数据发送和接收的过程没有其他任何握手和数据流控制线,只需按照G100A型GSM数传模块所要求的数据传送格式即可。
GSM短信模块G100A是用GSM模块的短信息功能来传输数据的,所以在使用它传输数据时要用到电话号码。数据包中用6个8位二进制字节表示电话号码,每个字节中的高4位和低4位均用BCD码表示l位十进制的电话号码,这样每个字节可表示两位电话号码,6个字节共可表示12位电话号码。因为现行的电话号码均为11位,而6字节能表示12位十进制的BcD数,所以在传输数据表示电话号码时要在电话号码的前面补0以凑足12位。假设电话号码是13501237654,转换成6字节BCD码后变为01H 35H 01H 23H 76H 54H。
3.1数据包格式
无论是数据还是命令都用下面的格式来表示:
不管是命令还是数据,都有一个包头D7H,接着就是一个控制字节。本模块规定:当控制字节大于147时,数据包为命令,否则就为数据。比如命令D7H FFH参数,D7H为包头,FFH为控制字节,因FFH>147,故参数为命令字节。模块就是靠数据包的第二个字节来识别发给它的信息是命令信息还是数据信息的。
3. 1.1 发送用户数据的格式
根据数据包格式,发送用户数据格式如下:
其中,UDL表示要发送的除包头D7H以外总的数据长度,包括STA、UD和它本身的字节长度。STA和UDL的字节长度一般是固定的,为l+6=7字节。STA为接收方的电话号码,即目的地址,号码需要进行格式转换。UD表示要发送的有效数据,其总长度不大于140字节,因为短信息的数据长度不能超过140字节。
假设要发送OOH、11H、22H、331H、44H和55H,共6个字节数据,接收方的电话号码(目的地址)是13655436789,UDL=ODH(13个字节),STA:01H 36H55H 43H 67H 89H,UD=OOH 1lH 22H 33H 44H 55H,发送格式如下:
3.1.2 接收用户数据的格式
接收用户数据格式如下:
与发送用户数据格式不同的是SOA,它是发送方的电话号码,即源地址。
假设收到上面发送来的OOH、11H、22H、33H、44H和55H,共6字节数据,发送方的电话号码(源地址)是13920855795,UDL=0DH(13个字节),SOA=OlH 39H20H 85H 57H 95H,UD=OOH 11H 22FI 33H 44H 55H,接收到的数据格式如下:
3.2 命令集
GIOOA型GSM数传模块含有丰富的命令,通过对不同命令的操作来实现数据的正确收发过程,其命令集如表1所列。
当按照GIOOA型GSM数传模块所要求的数据格式及命令传送数据时,就不需要使用复杂的G
4 结论
本简易水位测试系统实用方便,系统通过水位的变化来控制与单片机I/0口相连的LED变化,这种显示效果可以很好的控制水位。在远程检测系统中,通过采用单片机的串口可以实时的将水位信息传送给(GSM模块。在无请求时,其水位信息暂存在单片机中,且不断的更新水位信息。当用户需要时,会根据用户的需要自动的通过串口将最新的水位信息送给GSM模块。由于GSM短信模块采用G100A,使得无线数据的传送变得极为容易,用户操作起来也非常方便。
该系统的种种特点完全可以扩展到其他的领域使用,如长江水位的防汛工作。如果用户想要了解长江的水位情况,只需要发送一个短信,就可以及时的了解水位状况,而不需要亲临现场。
评论