APP下载

基于手机短消息的无线智能油机监控系统

2012-01-18张敬普郑均辉

电子设计工程 2012年24期
关键词:油机SIM卡串口

张敬普,郑均辉

(1.平顶山学院 软件学院,河南 平顶山 467000;2.平顶山学院 计算机科学与技术学院,河南 平顶山 467000)

手机短信远程监控技术是控制技术与现代通信技术结合实现系统远程监控的一种便捷、有效的方式[1]。它借助手机短信无线通信形式完成短信报警、远程数据传输、超远程工业设备遥控等任务,无需线路铺设,因而不受作业现场条件限制,可广泛应用于工业控制、数据传输和系统环境如变电站、电表、水塔、水库或环保监测点等监测数据的无线传输和无线自动警报。

本系统是依据移动通讯基站发电机的使用范围广、数量大、缺乏相关的管理手段而针对性开发的智能化设备。目的是使管理人员能实时监测发电机各种运行参数。现行的发电机由于没有智能化管理设备,启动操作、运行信息采集全靠人工执行、反馈[2]。而本设备可以使发电机根据设定条件自行发电,或远程控制发电并对其进行智能化管理。本系统采用单片机自动检测并控制油机的运行状态,通过GSM网络实时传输油机信息,为这种简短的、突发性和频繁少量的数据传输提供了一种高效、低成本的途径。在本系统中,单片机主要用于对油机的数据采集,PC计算机主要用于数据显示和数据管理。PC计算机和单片机通过对GSMModem发送AT命令来实现相互间的串行通信。

1 系统结构和工作原理

该系统的基本结构由带有手机芯片的短信数据传输板,油机智能控制器,监控服务器3部分构成,如图1所示。短信数据传输板,通过带有手机卡的GSM模块与之相连,它实现油机智能控制器与GSM模块的透明传输。油机智能控制器板为带有单片机的智能控制器。通过汇编语言和C语音编程,它能按照要求采集监视的各种数据,并依据协议规定的二进制编码规则,将数据组成一祯,填充到短消息的数据位中,然后通过短信数据传输板向监控服务器发送。监控服务器通过短信猫与计算机的串口(RS-232)相连,当现场油机智能控制器向它发送短消息时,与串口相连的手机卡就会通知它有消息到来,并通知该消息存储在芯片的哪个存储区内。监控服务器可以分析得到的信息,并将特定的命令发送到短信猫上,同时将该存储区内的数据读到计算机中,并按规定的解码方法进行解码,这样就可以得到现场油机智能控制器发送的数据。在现场油机智能控制器发送到监控服务器的短消息中包含该站唯一的SIM卡号以及发送时间等信息,监控服务器就可以清楚的知道是哪一个现场油机发送来的数据,并将这些数据放到相应的数据库中,供显示、查询、统计使用。

图1 系统结构图Fig.1 Structure diagram of the system

2 系统硬件设计

2.1 油机智能控制器

本模块由51单片机、AD转换ADC0804、锁存器74HC574、电子开关CD4051、双向总线发送器/接收器74HC245、时钟DS2887、存储器 24C02、液晶屏 LCD1602、RS232串口以及用于模拟量处理的运算放大器、电源等核心部件构成。

单片机采用STC89C51系列MCU,最高工作速度可达90 MHz,片内FLASH程序存储器和8 K左右的片内EEROM,多达36个通用I/O口。

以上器件组成发电机智能控制器板,智能控制器与油机相连从而控制油机,连接图如图2所示。在单片机的统一控制下完成对油机发电机的智能逻辑控制,并由串口通过协议(自定义的)实现远程监控。

2.2 短信数据传输板

图2 油机接线图Fig.2 Wiring diagram of oil machine

采用51增强型1T单片机、西门子GSM模块 (TC35)为核心及RS232串口、开关电源等部件构成。单片机采用STC12C5AA0S2增强型1T双串口MCU,实现GSM模块与发电机智能控制器板的数据透传。

2.3 短信猫

以西门子GSM模块 (TC35i)为核心及RS232串口、开关电源等部件构成。GSM模块实现接收控制器发出的短信,并与服务器进行通讯,完成服务器软件对发电机的控制、数据处理等任务。

2.4 TC35i硬件设计

TC35i无线GSM模块,集成了标准的RS232接口以及SIM卡,可以在PC机上用AT命令通过串口对它进行设置、调试[3]。这使它成为在声音和数据通讯上通用的一个GSM双频终端产品。因此,在无线短信工业控制、远程通讯,现场监控等诸多无线通讯领域应用中会给工作带来极大的便利[4]。

TC35i模块有40个引脚,通过一个ZIF(Zero Insertion Force,零阻力插座)连接器引出。这40个引脚可以划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。

TC35i的第1~5引脚是正电源输入脚通常推荐值4.2 V,第6~10引脚是电源地。11、12为充电引脚,可以外接锂电池,13为对外输出电压 (共外电路使用),14为ACCU-TEMP接负温度系数的热敏电阻,用于锂电池充电保护控制。

15脚是启动脚IGT,系统加电后为使TC35i进入工作状态,必须给IGT加一个大于100 ms的低脉冲,电平下降持续时间不可超过1 ms。

16~23 为数据输入/输出, 分别为 DSR0、RING0、RxD0、TxD0、CTS0、RTS0、DTR0 和 DCD0。 tc35i模块的数据输入/输出接口实际上是一个串行异步收发器,符合ITU-TRS232接口标准。它有固定的参数:8位数据位和1位停止位,无校验位,波特率在300 bps~115 kbps之间可选,默认9 600。硬件握手信号用RTS0/CTS0,软件流量控制用XON/XOFF,CMOS电平,支持标准的AT命令集。

其中18脚RXD、19脚TXD为TTL的串口通讯脚,需要和单片机或者PC通讯。

TC35i使用外接式SIM卡,24~29为SIM卡引脚,SIM卡同 TC35i是 这 样 连 接 的:SIM 上 的 CCRST、CCIO、CCCL、CCVCC和CCGND通过SIM卡阅读器与TC35i的同名端直接相连,ZIF连接座的CCIN引脚用来检测SIM卡是否插好,如果连接正确,则CCIN引脚输出高电平,否则为低电平。

TC35i的第32脚SYNC引脚有两种工作模式,一种是指示发射状态时的功率增长情况,另一种是指示TC35i的工作状态,可用AT命令AT+SYNC进行切换,本模块使用的是后一种。当LED熄灭时,表明TC35i处于关闭或睡眠状态;当LED为600 ms亮/600 ms熄时,表明SIM卡没有插入或TC35i正在进行网络登录;当LED为75 ms亮/3 s熄时,表明TC35i已登录进网络,处于待机状态。

30、31、32 脚为控制脚, 其中 30 为 RTC backup,31 为Power down,32 为 SYNC。

35~38 为语音接口,35、36 接扬声器放音。37、38 可以直接接驻极体话筒来采集声音(37是话筒正端,39是话筒负端)。

3 服务器监控软件设计

服务器监控软件主要实现远程油机的控制、油机状态信息显示、故障报警及油机运行数据统计等功能。此监控软件系统主要包括数据访问、串口通信、数据显示等3大部分。此软件的开发环境是VS.NET2005,语言是C#。

3.1 数据访问

本模块主要实现对数据库的操作,即实现油机状态信息数据的存和取数据库的操作。在本系统中,为了更好的维护代码,所有涉及数据库的操作都封装在DBAccess类中。此类包含的主要方法有以下几个:

ExecuteNonQuery (ref OleDbCommand cmd,string query,params OleDbParameter[]param)

本方法主要实现对数据库的更新、删除等操作。

OleDbParameter[]GetParameters(params object[]arr)

本方法主要实现SQL语句中参数创建的操作

OleDbDataReader ExecuteReader (ref OleDbCommand cmd,string query,params OleDbParameter[]param)

本方法主要实现查询数据库并返回数据库游标的操作。

ExecuteScalar (ref OleDbCommand cmd, string query,params OleDbParameter[]param)

本方法主要实现查询数据库并返回唯一结果的操作。

3.2 串口通信

本系统采用的西门子GSM模块支持GSM07.05所定义的AT[5]命令集的指令。因此,MCU通过UART串行接口直接向GSM模块下发AT命令,就可以方便简洁地实现基于GSM的短信息SMS的收发、查寻和管理[6]。所以,本模块的主要功能是通过计算机串口向GSM模块发送特定的AT命令。

.NET Framework 2.0类库提供了对串口通信功能的支持,使用其中的SerialPort类可以方便的实现所需要串口通信的多种功能。通过创建一个新的SerialPort对象,就可以在.NET程序中控制串口通信的全过程。使用SerialPort类实现串口通信的一般流程是设置通讯端口号及波特率、数据位、停止位和校验位,再打开端口连接,发送数据和接收数据,最后关闭端口连接这几个步骤。

在本系统中所有涉及串口的操作都封装在类GSMModem类中,下面简单介绍DataReceived事件以及发送AT命令的函数SendAT。

1)DataReceived 函数

void sp_DataReceived(object sender,Serial Data Received EventArgs e)

{try{

string temp=sp.ReadLine();//读取串口数据

if(temp.Length>8)

{if(temp.Substring(0, 6) == “+CMTI:”) //判断收到的数据是否是短信 {newMsgIndex=Convert.ToInt32(temp.Split(',')[1]);//存储新信息序号

OnRecieved(this, e); //触发事件,进行短信内容的分析、存储、显示等操作 }}}}

2)SendAT 函数

public string SendAT(string ATCom){

sp.DataReceived-=sp_DataReceived; //注销事件关联,为发送做准备

try{sp.Write(ATCom+ “ ”);}//发送 AT 指令

catch (Exception ex)

{sp.DataReceived+=sp_DataReceived;throw ex;}

//接收数据 循环读取数据 直至收到“OK”或“ERROR”

try{while (temp.Trim() !="OK"&&temp.Trim()!="ERROR")

{temp=sp.ReadLine (); result+=temp; }return result;}

catch (Exception ex) {throw ex; }

finally{sp.DataReceived+=sp_DataReceived;//事件重新绑定正常监视串口数据}}

3.3 数据显示

此模块主要包括油机的控制(如开机、关机、状态等)、油机状态数据的显示、历史数据统计、油机错误告警、参数设置及显示、数据查询等功能。此模块的核心是辅助线程通过串口得到的数据,而主线程更新界面,两个线程通过委托机制进行交互。辅助线程从串口得到数据后调用OnRecieved函数也即gm_OnRecieved函数,此函数伪码如下:

void gm_OnRecieved(object sender, EventArgs e){

s=gm.ReadNewMsg();//读取新的短信内容

分析短信内容并把相关内容存入到数据库中

Invoke (RecievedMsg, msgcont);//通过 Invoke 方法委托主线程去更新界面,RecievedMsg参数是一个函数,即更新界面的函数,msgcont是RecievedMsg函数的参数,即更新的内容。

}

4 结 论

在设计过程中规定了一套传送二进制数据的编码和解码规则,可以最大限度的利用短消息提供的140个字节来传送信息,这是利用短消息传送数据的关键。在此之前,本地电信公司采用人工管理发电油机,费用很高。采用该系统后,费用大大降低,并且维护量也很小。该套系统还可以应用于各种远程监控的领域中,具有很好的应用前景。

[1]唐明董,张俊波,刘建勋.基于GSM模块的短信平台服务器设计与实现[J].微计算机应用,2007,28(2):l74-177.TANG Ming-dong,ZHANG Jun-bo,LIU Jian-xun.Design and implementation of a SMSplatform by using GSM modems[J].Microcomputer Applications,2007,28(2):l74-177.

[2]王喜军.基于B/S模式的抽油机远程监控系统设计[J].通信与信息处理,2010,29(9):47-49.WANG Xi-jun.Remote monitoring system for pumping unit based on B/S[J].Communication and Information Processing,2010,29(9):47-49.

[3]陈凯,秦实宏.基于GSM模块TC35I的收发控制系统设计[J].武汉工程大学学报,2011,33(1):91-94.CHEN Kai,QIN Shi-hang.Design of receive and transmit control system based on GSM module TC35i[J].Journal of Wuhan Institute of Technology,2011,33(1):91-94.

[4]李伟,闫述,杨波.基于手机短信的无线传感器网络的远程数据传输[J].煤田地质与勘探,2009,37(5):57-60.LI Wei,YAN Shu,YANG Bo.Remote data transmission of wireless sensor networks based on mobile telephone short message[J].Coal Geology&Exploration,2009,37(5):57-60.

[5]Wavecom公司.AT Commands Interface[EB/OL].(2007-07-26).http://www.atasun.net/download.

[6]王喜军.基于B/S模式的抽油机远程监控系统设计[J].自动化技术与应用,2010,29(9):47-49.WANG Xi-jun.Remote monitoring system for pumping unit based on B/S[J].Techniques of Automation and Applications,2010,29(9):47-49.

猜你喜欢

油机SIM卡串口
浅谈AB PLC串口跟RFID传感器的通讯应用
SIM卡防盗很关键 小喻教你如何给它“上保险”
大数据中心高压油机供电模式探讨
铁路GSM-R SIM卡读写次数测试方法研究
SIM卡的“减肥史”
数字电源内部数据传输的串口通信方法实现
10kV油机在大型数据中心的并机控制与切换方案探讨
USB接口的多串口数据并行接收方法探索
基于CRUISE软件1.6L油机匹配某轻卡动力总成分析
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信