您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 家电行业 > 基于SIM900A的GSM远程监控系统设计
基于SIM900A的GSM远程监控系统设计摘要:为实现对设备的远程监控,方便管理人员对设备的远程控制并及时了解故障信息,设计了一款基于GSM技术的短信息无线监控系统。系统以SimCom公司的SIM900A模块和STC12C5A32S2单片机为核心,进行软硬件设计,介绍单片机控制SIM900A模块所使用的AT指令和短信TEXT(文本)模式接收和PDU(中文)方式发送数据格式。设计的系统运行稳定可靠,并成功的应用在仓库的温度控制项目中。关键词:远程监控;GSM;短信;AT指令;PDU中图分类号:TP311文献标识码:A文章编号:1009-3044(2014)15-3500-04DesignofGSMRemoteMonitoringSystemBasedonSIM900AWANGMing-xin(StatePressandPublicationRadioAdministrationofNo.2022,Kashi844000,China)Abstract:Inordertoachieveremotemonitoringofequipment,tofacilitatetheremotecontrolofdevicesandtokeepabreastoffailureinformation,itdesignsashortmessagewirelessmonitoringsystembasedonGSMtechnology.SystemusesSimCom'sSIM900AmodulesandSTC12C5A32S2microcontrollerascoretodesignhardwareandsoftware,itintroducesformatsofsingle-chipcontrolmoduleSIM900AusingATcommandsandSMSTEXT(text)modetoreceiveandPDU(Chinese)tosenddata.TheDesignedsystemoperatedstableandreliableandsuccessfullyappliedinawarehousetemperaturecontrolledproject.Keywords:remotemonitoring;GSM;messaging;ATcommands;PDU采用GSM的短信功能,可以使信息及时传递,且由于短信服务费用低廉,在多个行业中,尤其在远程监控方面,已得到了广泛使用。随着数字无线通信技术的成熟和GSM/GPRS/CDMA公用网络的完善,远程监控技术进入一个新的发展阶段。GSM是第二代移动通信技术,使用的是时分多址的变体,并且它是目前三种数字无线电话技术(TDMA、GSM和CDMA)中使用最为广泛的一种。短信息服务SMS(shortmessagingservice)作为GSM网络的一种基本业务,已经得到越来越多的重视。基于短信息的远程无线通信技术在远程监控方面发挥着重要的作用。该文基于SimCom公司的紧凑型模块Sim900A和STC12C5A32S2单片机设计一款无线监控系统,支持PDU(中文)方式收、发短信,可以广泛应用于远程监控和嵌入式系统中。1系统结构与工作原理系统主要由电源模块、数据采集与控制输出模块、单片机与SIM900A模块接口等模块组成。如图1所示。终端在正常运行后实时监视温度变化,并与设定的温度上、下限进行比较,若温度在上、下限范围内时,单片机控制通风窗和通风电机保持预定状态;若温度超出上限或低于下限,单片机控制通风窗和通风电机打开运行或关闭,并将当前的温度值和工作状态按照目标手机号码发送短信。2系统硬件设计2.1电源模块设计由于SIM900A模块的工作电压为3.4-4.5V,在信号传输时会猝发电压跌落,这时电流损耗的峰值会达到2A,因此电源必须能够提供足够到2A的电流。所以本设计选用一个外接9V2A的电源适配器,再使用LM2596-ADJ开关电压调节器进行降压至4.2V。STC12C5A32S2的工作电压为5V,使用LM2596-5.0开关电压调节器降压获取5V电源。如图2所示。以LM2596-ADJ和LM2596-5.0开关电压调节器为基础的电源电路,具有功耗低,效率高等特点。电路有很高的输出线性,输出电流可达3A,满足终端系统的大电流工作要求。适配器电源通过LM2596-ADJ模块调整为4.2V单独给SIM900A模块供电,通过LM2596-5.0模块调整为5V给单片机及外围模块供电。2.2数据采集与控制输出模块接口设计DS18B20单总线数字温度芯片可以使用5V供电,所以其总线端口可与单片机直连通信。单片机的端口高电平输出能力较弱,低电平灌电流能力较强,能达到20mA。为了降低芯片的功耗,本设计采用端口低电平驱动PNP型三极管放大电路驱动5V继电器,由5V继电器控制220V的接触器接通和断开电动机工作;继电器将二次回路和一次回路产生有效的隔离,防止交流电对控制电路的干扰。2.3单片机与SIM900A模块通信接口设计由于单片机和SIM900A模块的电平不匹配,所以在两模块的串口不能直连。单片机的TXD和RXD端口设置为开漏输出方式,使用4.2V电源串10K电阻将串口线上拉。如图3所示。3系统软件设计3.1数据采集程序单片机同时也要实时采集DS18B20的温度,并判断温度是否超出设定的上下限温度值。如果温度高于上限或低于下限时,控制外设开启或关闭通风窗和电动机工作。单片机与DS18B20的温度采集程序如下:uintget_temper(){ucharT_H,T_L;uinttemp;//判断DS18B20是否存在if(ds18b20_reset()){//跳过ROM指令ds18b20_write_byte(0xcc);//启动转换ds18b20_write_byte(0x44);if(ds18b20_reset()){//跳过ROM指令ds18b20_write_byte(0xcc);//读取温度值指令ds18b20_write_byte(0xbe);//先读取低8位T_L=ds18b20_read_byte();//后读取高8位T_H=ds18b20_read_byte();if(T_H&0x08)//判断温度正负T_sign=1;//温度值为负数elseT_sign=0;//温度值为正数//温度值换算,为便于使用数据,//保留一位小数乘10得到整数temp=((T_H&0x07)*256+T_L)*10*0.0625;}}returntemp;}3.2单片机控制SIM900A模块通信程序3.2.1单片机通过SIM900A模块接收中文短信单片机串口首先向SIM900A模块发送AT+CNMI=2,1\r\n和AT+CMGF=1\r\n(TEXT模式)。在终端系统正常运行中,当单片机串口接收到“+CMTI:MT,1”(1表示短信序号)字符串时,发送AT+CMGR=1\r\n读取短信,短信内容部分为Unicode码,可以使用Unicode码汉字对照表直接解析短信内容。Unicode码转汉字核心代码如下:voidunicode_hanzi(uchar*pdu){uchara,i,j,k;a=strlen(pdu)/4;for(i=0;i{for(j=0;jun_to_han;j++){if((pdu[i*4]==hz_unicode[j].unicode[0])&&(pdu[i*4+1]==hz_unicode[j].unicode[1])&&(pdu[i*4+2]==hz_unicode[j].unicode[2])&&(pdu[i*4+3]==hz_unicode[j].unicode[3])){for(k=0;k2;k++){pdu[i*2+k]=hz_unicode[j].hanzi[k];}pdu[i*2+k]='\0';break;}}}}3.2.2单片机按照接收的短信内容执行相应工作提取目标手机号码、上限和下限温度数据,将数据保存至单片机内部EEPROM中并将接收的短信内容回发到目标手机上。单片机每次重开机或断电重启之后均读取上一次保存的数据。STC12C5A32S2单片机保存和读取内部EEPROM中数据的部分程序代码如下:1)扇区擦除函数voidiap_erase_sector(uintaddr){IAP_CONTR=0x82;//使能ISP/IAP功能并设置等待时间IAP_CMD=3;//对eeprom擦除命令IAP_ADDRL=addr;IAP_ADDRH=addr8;IAP_TRIG=0x5a;//操作命令触发器IAP_TRIG=0xa5;_nop_();iap_disable();}2)向EEPROM写字节函数voidiap_writebyte(uintaddr,uchardat){IAP_CONTR=0x82;//使能ISP/IAP功能并设置等待时间IAP_CMD=2;//从eeprom中写入字节IAP_ADDRL=addr;IAP_ADDRH=addr8;IAP_DATA=dat;IAP_TRIG=0x5a;//操作命令触发器IAP_TRIG=0xa5;_nop_();iap_disable();}3)从EEPROM中读取一字节函数uchariap_readbyte(uintaddr){uchardat;IAP_CONTR=0x82;//使能ISP/IAP功能并设置等待时间IAP_CMD=1;//从eeprom中读取字节IAP_ADDRL=addr;IAP_ADDRH=addr8;IAP_TRIG=0x5a;//操作命令触发器IAP_TRIG=0xa5;_nop_();dat=IAP_DATA;iap_disable();returndat;}3.2.3单片机通过SIM900A模块发送中文短信单片机实时读取当前温度并与上下限温度值比较,当温度超出设定的上下限值时,单片机控制外围电路打开或关闭通风窗和风机设备,提取当前温度值、通风窗和风机设备状态信息编辑成Unicode码,使用PDU(中文短信)方式通过SIM900A向目标手机发送短信。提醒用户当前终端系统环境温度和工作状态。及时控制环境温度回落至正常状态后恢复预定工作状态。在终端系统发送中文短信前单片机向SIM900A模块发送指令AT+CMGF=0\r\n(设置PDU模式),然后将要发送的中文短信进行PDU编码。编码格式如表1所示。91:表示国际化。683110909605F0-短信中心号码长度为奇数时补F,再进行奇偶数交换\&11000D91\&1100:固定。0D:手机号码长度。91:发送到手机,到小灵通为81\&683132990333F9\&目的手机号码,长度为奇数时补F,再将奇偶数位调换。\&0008A7\&固定\&0C\&短信内容字符串长度除2取低两位转换为十六进制。\&98CE673A5DF2517395EDFF0C\&短信内容(Unicode码):风机已关闭,\&]单片机串口发送AT+CMGS=x\r\n,其中x为从11000D91开始的字符串长度处理成十进制形式的字符串x=54/2=27。等待SIM900A模块返回“”后,将PDU码发送即可;单片机从串口随后接收到“OK”字符串后表示短信发送完成。4结束语基于SIM900A的GSM无线数据传输,在传输数据量少,工作环境比较恶劣,时效性要求不是很高的场合非常适用。本系统已在仓库的温控项目中得到了良好的应用。整个系统无需额外铺设通信线缆,节约成本,能够广泛应用于远程监控系统中。参考文献:[1]何金枝,毛海燕,周国运.基于单片机的GSM远程温度控制器设计[J].制造业自动化,2012(34):128-131.[2]余肖勇,杨邦荣,张勇.基于GSM监控远程目标的关键技术与应用[J].企业技术开发,2005(24):3-18.[3]陈克力.基于ARM的GSM远程监控系统[J].微计算机信息,2008(24):270-292.[4]减怀泉,李海生,
本文标题:基于SIM900A的GSM远程监控系统设计
链接地址:https://www.777doc.com/doc-4790265 .html