这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 湖北理工TEA » A1组 基于gsm模块的家庭防盗报警系统 (吴聪 王坤阳 蒋何鹏)

共8条 1/1 1 跳转至

A1组 基于gsm模块的家庭防盗报警系统 (吴聪 王坤阳 蒋何鹏)

菜鸟
2016-04-23 17:56:35     打赏

经过最近艰难的调试  解决了各种各样的困难  我们组已经成功完成了GSM模块呼叫报警和发送短信提醒的程序  迈出了我们作品的最关键的一部  只差把烟雾传感器,热释红外传感器加进去 

以下是我们程序的部分代码


//以下是板子上LED的配置,
sbit P10=P1^0;
sbit P11=P1^1; sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
//以下是51单片机的晶振大小
#define FOSC_110592M
//#define FOSC_12M
//以下是开机后拨打的手机号
uchar num[] = "ATD15671225575;\r\n";   //这里我特地翻了很久的AT指令集 找到拨打电话的AT指令
	
void SerialInti()//初始化程序
{
	TMOD=0x20;//定时器1操作模式2:8位自动重载定时器

#ifdef FOSC_12M		   
	TH1=0xf3;//装入初值,波特率2400
	TL1=0xf3;	
#else 	
	TH1=0xfd;//装入初值,波特率9600
	TL1=0xfd;
#endif //end of SOC_12M
	
	TR1=1;//打开定时器
	SM0=0;//设置串行通讯工作模式
	SM1=1;//(同上)在此模式下,定时器溢出一次就发送一个位的数据
	REN=1;//串行接收允许位(要先设置sm0sm1再开串行允许)
	EA=1;//开总中断
	ES=1;//开串行口中断	
}   

 

为了同步模块与单片机的波特率,在单片机控制GSM模块前,要加上两条 AT 指令

Uart1Sends("ATI\r\n"); //握手,检测此条指令GSM模块是否执行OK

while(!hand("OK")) 

AT+CSQ 检测信号质量

.






关键词: 家庭     防盗     报警系统     吴聪    

菜鸟
2016-04-23 18:12:46     打赏
2楼
Uart1Sends("AT+CPIN?\r\n");//查看是否读到手机卡
	DelaySec(1);//延时
	i=0;
	while(!hand("READY")) //检测SIM模块是否收到SIM卡READY
	{
		clear_rec_data();
		i++;
		Uart1Sends("AT+CPIN?\r\n");//是否注册到网络
Uart1Sends("AT+COPS?\r\n");//是否注册到网络
DelaySec(1);//延时
i=0;
while(!hand("CHN-UNICOM")) //检测是否收到模块返回的电话卡 我采用的是中国联通的卡 所以是CHN-UNICOM
{
clear_rec_data();
i++;
Uart1Sends("AT+COPS?\r\n");//是否注册到网络

DelaySec(1);//延时

//以下是发送短信
Uart1Sends("AT+CNMI=2,1\r\n"); //
DelaySec(1);//延时
Uart1Sends("AT+CMGF=1\r\n");  //方式1文本格式
DelaySec(1);//延时
Uart1Sends("AT+CMGS=\"15671225575\"\r\n");  //此处为短信接收方电话号
DelaySec(1);//延时
Uart1Sends("The thief invasion");  //此处为短信内容
DelaySec(1);//延时
Uart1BYTE(0X1A)


菜鸟
2016-04-23 18:19:48     打赏
3楼

在我用电脑usb—ttl接口调试成功后   试图将程序下载到单片机里   让单片机自动连接服务器发送短信    然而连着几天晚上加班  中午不休息也没发送成功   直到今天中午才成功完成 当时激动得我拍桌子

直到今天中午才成功完成 当时激动得我拍桌子


菜鸟
2016-05-14 23:13:30     打赏
4楼
好久没有更新动态了

菜鸟
2016-05-14 23:18:09     打赏
5楼
可能是因为实在是太忙。。。。忙的没闲暇更新 。。。经过我们组的合力奋战,及发哥的指导 我们昨晚23:30在邓博办公室成功把作品完工了

菜鸟
2016-05-14 23:29:12     打赏
6楼
我们成功在报警系统中又添加了模拟水泵自动灭火的功能,。。。经过自己动手做作品这些天 我们真的是各种头疼的问题都遇到了 从最开始的发短信不对应 到后面的继电器没法工作。。又到昨晚21:30发现热释红外传感器没法触发单片机的io口 经过发哥的指导 我们加班焊了一个加op37的芯片的电压跟随器 用来电压隔离, 然而这个还要焊一个-5v的电源 于是我们一起加班又一次搞到23:00 没法回寝室。。

菜鸟
2016-05-14 23:31:57     打赏
7楼
while (1)
	{
	  P24=1;
	  P20=1;
	  if ( !P20 )
	  {
	      P27=0;  //继电器触发 水泵开始抽水
		Uart1Sends("AT+CMGF=1\r\n");//有PDU模式和TEXT模式,AT+CMGF=1设置TEXT模式
		DelaySec(1);//延时
		Uart1Sends("AT+CSCA?\r\n");
		DelaySec(1);//延时
		Uart1Sends("AT+CSMP=17,167,0,25\r\n");
		DelaySec(1);//延时
	    Uart1Sends("AT+CMGS=\"00310035003600370031003200320035003500370035\"\r\n");//主人电话号码
		DelaySec(1);//延时
	    Uart1Sends("4F6076845BB64E2D53EF80FD7740706BFF0C8BF78FC5901F56DE5BB667E5770B3002");//短信内容:你的家中可能着火,请迅速回家查看。
	    DelaySec(1);//延时
		Uart1Send(0x1a);
		DelaySec(1);//延时
		DelaySec(1);//延时
		DelaySec(1);//延时
		DelaySec(1);//延时
  

 


菜鸟
2016-05-15 00:10:03     打赏
8楼
这些天我们只要没课就往邓博办公室跑 晚自习已经几个星期没上过了 周末也是全部投入进去了 已经记不得多少天连续熬夜了 最终成功完成作品的时候真的很有成就感   我们三人都很努力 每个人都付出了全力  一起共苦同甘
void inti_serial(void)
{
	TMOD=0x20;//定时器1操作模式2:8位自动重载定时器	
	TH1=0xfd;
	TL1=0xfd;//装入初值,波特率9600	
	TR1=1;//打开定时器
	SM0=0;
	SM1=1;//设置串行通讯工作模式,SM1SM0=10,8位自动重装
	REN=1;//串行接收允许位,要先设置SM1SM0再开串行允许
	EA=1;//开总中断
	ES=1;//开串行口中断	
}

//发送一帧指令
void Uart1Send(uchar c)
{
	SBUF=c;
	while(!TI);//发送完一帧数据后,硬件会将TI置1
	TI=0;	
}

 


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]