惠鹏飞,姚仲敏,陶佰睿,苗凤娟
(齐齐哈尔大学通信与电子工程学院,黑龙江 齐齐哈尔 161006)
责任编辑:薛 京
近几年来,国内外发生的多起重大森林火灾,给生态环境带来严重破坏,也严重威胁着人们的生命和财产安全,做好森林防火工作对保护生态环境和国家的可持续发展具有重大意义。传统的森林火灾的监测措施主要以探测火源和预防为主,采用地面巡防、航空巡防等方法,这些方法难以反映森林的温度、湿度、空气中二氧化碳含量等气象因素动态变化的情况,从而导致监测信息实时性较差,监测效果并不十分理想,实际应用情况受到限制[1-2]。
本文基于单片机和GPRS技术,设计了森林防火预警远程数据传输系统,该系统能够对森林各位置的数据进行实时监测,并及时将相关数据发送到数据中心,通过对森林各项指标的分析,了解森林各地点的信息情况,做到防患于未然,在第一时间消除隐患,减小人力、物力的浪费以及经济损失。设计结果表明,该系统可在森林防火领域广泛推广,具有重要的理论参考价值和实用价值。
传输系统包括硬件和软件两部分,数据采集端的系统硬件以单片机和GPRS模块为核心。软件设计包括上位机软件、下位机软件以及数据库。单片机通过使用AT命令控制GPRS模块工作,将森林内的信息数据传输出去,实现数据传输的过程,对森林的各项信息进行实时监测,数据存储在数据库内,可以对数据库内的数据进行查询。
利用串口实现单片机与GPRS模块的互联,GPRS模块采用SIMCON公司开发的具有GSM/GPRS双频特性的SIM300模块。GPRS无线通信已经被模块化,用户只需要负责GPRS模块与自己的处理器之间的通信,即可实现GPRS无线通信[3-4]。上位机软件设计主要以 Borland C++Builder6.0界面编程软件为开发平台,利用Socket套接接口组件实现网络通信,利用ADO控件实现与SQL Server 2000数据库进行连接。在下位机软件设计中,主要包括系统程序的设计和AT指令的发送,采用Keil4编写单片机程序,从而实现单片机发送AT指令,控制GPRS模块工作。系统结构框图如图1所示。
图1 系统结构框图
SIM300模块拥有天线连接器和天线焊点两种RF天线接口,内部集成了TCP/IP协议栈,同时扩展了TCP/IPAT指令[5]。SIM300模块的双串行通信接口,包括串口1和串口2,其中串口1的接口具有7根数据、状态线,可以用作GPRS服务和发送控制模块AT命令,同时可以使用多路复用功能,此功能不能和串口2同时使用,默认比特率为115 200 bit/s[6]。串口2的接口只有TXT和RXD两根数据线,没有状态和控制线,此外,串口2只能用来传输AT命令。
以MCU为控制端的无线通信模块应用开发,通常是用单片机直接与模块的串口连接,然后在MCU中编写程序来控制模块,SIM300模块的串口管脚工作电平是TTL电平,单片机的串口管脚的工作电平也是TTL电平,因此,SIM300模块的串口线直接与单片机的串口线进行连接。
SIM300的供电采用LM2576芯片。LM2576芯片是一款高电流、高精度、低压差稳压器,能提供降压开关稳压器的各种功能,能驱动3 A的负载,有优异的线性和负载调整能力,在固定输出电压和输出负载条件下保证输出电压 +4%误差[7]。SIM300 模块的工作电压是3.4 ~4.5 V,模块在发送是电流约2 A,会因线路阻抗产生压降使VBAT电压不稳,因此,对模块的供电不大于2 A流量。电源电路图如图2所示。
图2 电源电路图
电源对模块非常重要,一旦电源上产生扰动、干扰,都可能造成模块的死机,因此在电源管脚上应放置电容,并行连接。
本系统选择BorlandC++Builder 6.0作为软件界面设计的工具。系统主界面主要包括GSM、GPRS和查询窗口3个部分,使用者通过点击按钮进入软件管理。主菜单界面添加MainMenu组件,添加GSM、GPRS和查询3个按键,当登录软件界面后,打开主菜单界面,点击按键,可进行信息查询。
通过主菜单进入到GPRS界面,当程序执行后将显示网络连接到的本地IP地址,以及程序中设置的PC端口等信息,同时当点击“IP_Get”按钮后,将获取到公网IP地址。GRPS界面主要包括公网地址IP、本地地址IP、对方IP、GPRS发送和GPRS接收等编辑显示框。
查询界面设计包括对对森林温度、湿度、空气中二氧化碳含量、风速以及监测地点的数据显示。在ComboBox编辑框内可以搜索Temperature,Humanity等信息,通过点击Button组件的“搜索”按键,显示数据库中所存储的数据变化情况,从而及时了解影响森林火灾发生的数据信息,查询部分界面设计主要用于实现对数据库信息的查询和显示功能。调整组件布局后GPRS界面如图3所示。
图3 GPRS界面(截图)
选择SQL Server 2000作为数据库平台,数据库全面支持Web,可以利用Web分析、处理、查询数据,因此,这种数据库解决方案是完全支持Web的。它具有的客户机/服务器(C/S)体系结构,采用了Transact-SQL语言在客户机与服务器之间传递客户机的请求与服务器的处理结果。数据库表根据实体属性定义各个字段名称,设置主键可以避免表内容的重复冲突,表中要根据列名来定义不同的数据类型,如温度和相对湿度等可以定义为char型,二氧化碳含量和风速定义为char型,并且可以设置不同的长度来满足需求。以下是根据需求设计的部分数据库表格。监测信息表如表1所示。
表1 监测信息表
Socket实际在计算机中提供了一个通信端口,能够利用这个端口与其他任何拥有Socket接口的计算机进行通信。应用程序在网络上传输和接收的信息都是利用Socket接口实现的。实现网络通信的过程需要4个条件:1)通信协议相同;2)通信端口相同;3)远程IP地址和实际物理IP地址相同;4)当传输端发送数据的时候,上位机处于端监听状态。当上位机端的服务开启以后,首先建立连接,监听终端的Listen Port端口,Accept接受连接请求并发出确认,三次握手完成,双方即可实现通信,网络通信程序框图如图4所示。
图4 网络通信流程框图
单片机提供一系列AT命令来完成TCP/IP协议的功能,以简化应用集成的流程。AT命令是一套用于调制解调器控制的命令,通常以“AT”开头。相关的命令可以建立或取消UDP和TCP协议,控制GPRS PDP Context(用于数据传输的连接)的建立,传送数据,检查IP的状态信息。
系统程序利用C51编写,运用模块化的设计思想,主要分为系统初始化、建立连接、数据传输以及断开连接模块4部分。单片机初始化部分串口设置为工作方式1,即8位数据位和1位停止位;定时器选用定时器1的工作方式2,即8位自动重装定时器,波特率设为119 200 baud,所以定时器1初值分为TH1=0xFD,TL1=0xFD。初始化时先将串口终端关闭,在与上位机建立连接后打开。
主函数对硬件设备的初始化,进入无限循环,在循环体内部反复执行键盘轮询,串口事件处理和键盘事件处理。函数MsgEvent()为串口事件处理函数,按键按下之后会发送相应的AT指令,控制GPRS模块进行工作。GPRS模块接收到AT指令后会执行相应的操作,同时返回操作结构,本函数就是根据GPRS返回的操作结果判断模块是否正常运行,并显示相应的信息。
在进行硬件调试之前,应该先对GPRS模块进行基本功能的测试。在测试过程中,首先应将SIM300模块上插入SIM卡,将模块的外围扩展电路板和天线连接好,打开电源,此时显示SIM300模块的工作指示灯将亮起,将SIM300模块的UART1口和计算机的串口通过串口电缆连接起来,选择通信端口“COM1”,按“打开串口”键,界面指示灯显示为绿色,说明串口连接成功,可以进行数据发送,此时,输入AT指令即可进行SIM300模块的基本功能调试。
在发送数据窗口发送AT,按下“发送数据”按钮,在接收数据窗口返回OK,表明测试成功。发送AT+CMGF=0指令,短信模式设置,返回值OK;发送AT+CMGR=1,读取SIM卡内的第一条短信,按下“发送数据”按键,显示接收数据,为Unicode码,通过汉字Unicode码转换工具,即可将数据转换为汉字,读取信息。
单片机通过发送AT指令控制SIM300模块,对模块接收执行指令后的返回值,并进行相应校验。单片机的串口实质上是以位为单位进行接收和发送的,利用协议预定义的起始位、校验位以及停止位来决定数据帧的封装格式。
用单片机发送AT指令,在发送指令的过程中,AT指令的字符格式要通过ASCII编码进行转换,转换成二进制数之后,将指令存储在ROM中,从而利用串口进行接收和发送,AT指令是以字节的形式进行发送的,按回车按键表示一条指令发送结束。当模块收到一条指令之后,GPRS模块开始执行这条指令。此外,在单片机发送指令的过程中,字节之间可以出现间隔。当模块执行完指令之后,模块的返回值以“OD”、“OA”字符开始和结束。
在测试过程中,将SIM卡放入到GPRS模块中,通过单片机按键,实现单片机发送AT指令,控制GPRS模块,以短信的形式发送数据,实现远程数据传输。单片机与GPRS模块进行串口通信如图5所示。
图5 单片机与GPRS模块进行串口通信(照片)
在SQL Server2000数据库中对可以对到森林温度、湿度、空气中二氧化碳含量、风速等信息进行查询,同时在数据库可以显示森林监测信息的地点和监测日期。系统程序启动,进入系统主菜单界面后,点击“查询”按键,可以对数据库内所存储的温度、湿度、风速、空气中二氧化碳含量等信息进行查询,同时在界面中显示出数据库内所存数据一段时间内的数据变化曲线,以便更加具体、直观地反映森林数据信息的变化情况。
此外,数据曲线对比编辑框内,为了清晰、方便地进行数据信息查询,可同时对温湿度、风速等信息显示,因此,如图6所示分别使用不同的曲线进行数据信息显示。其中,曲线④代表温度变化情况,曲线②代表空气中二氧化碳含量变化情况,曲线①代表湿度变化情况,曲线③代表风速变化情况。
图6 信息变化曲线图(截图)
在设计过程中,为了实现远程数据传输的过程,采用短信的形式进行发送,为了弥补这一缺陷,利用C++Builder软件及软件的Socket控件模拟下位机进行数据传输测试,在单机模拟中,当模拟界面与上位机传输连接成功后,即可进行数据传输。在通信的过程中,在模拟界面内,可以实现将数据发送到上位机GPRS数据接收系统中。同样,在GPRS界面中,上位机同样可发送数据到模拟界面,实现双方通信。数据发送实现结果如图7所示。
图7 发送数据结果显示图(截图)
本文针对传统森林防火巡防方式信息化水平低且无法实现实时监测等问题。设计了基于GPRS技术的森林防火远程数据传输系统,采用单片机和GPRS技术以及Microsoft SQL Server 2000与Borland C++Builder 6.0界面编程软件相结合实现系统设计,采用单片机和GPRS模块进行串口通信方式,通过单片机发送AT指令控制GPRS模块,从而搭建系统的硬件框架,以短信的形式将数据发送至主控中心,实现对数据库中森林各项数据信息的实时监测,能够在一定程度上预防森林火灾的发生。该系统可在森林防火领域广泛推广,具有重要的理论参考价值和实用价值。
[1]马宏锋,李祥林,胡玫.森林火灾无线监测预警系统的设计与实现[J].自动化仪表,2011,32(12):39-40.
[2]BONEVSKA S,JANKOVA A,MATESKA A.Early fire detection with WSN[EB/OL].[2013-01-10].http://2009.telfor.rs/files/radovi/12_03.pdf.
[3]余坤杰.一种基于GPRS无线通信的远程I/O控制终端实现[J].电视技术,2012,36(13):114-117.
[4]陈滟涛,杨俊起,康润生.基于SIM300的短信传输系统的设计与实现[J].计算机工程与科学,2008,30(3):156-158.
[5]李洪双,江西军.卫星林火监测在东北林区森林防火中的应用[J].森林防火,2010,3(1):39-41.
[6]STADLER H,KLOCK E,KOLLMITZER C,et al.Near real-time quality assurance of hydrological measurements using failsafe data transfer[EB/OL].[2013-01-10].http://enviroinfo.eu/sites/default/files/pdfs/vol121/0169.pdf.
[7]王春喜,何良.GPRS在CMMB基站远程监控中的运用[J].电视技术,2011,35(14):82-84.