智能家居安保系统设计 - 图文(9)

2019-09-01 17:29

附 录

长按GSM开机键三秒钟,当指示灯闪烁,说明开机成功,这时就可以发短信了。

烟雾传感器需要预热二十秒,二十秒后就可以正常工作了,这时按下KEY1打开防盗报警开关,再按一下是关闭。打开防盗报警开关,这时如果有东西在红外对管之间,挡住了红外对管的传输,就会向设定好的手机,发送“主人,家里来小偷了!!!”的报警信息,向设定好的小区保安手机发送“888栋666号住户,家里进小偷了!!!” 的报警信息。如果检测到烟雾传感器发来的烟雾超标信号,就会向设定好的手机,发送“主人,家里煤气泄漏了!!!”的报警信息,向设定好的小区保安手机发送“888栋666号住户,家里煤气泄漏了!!!”的报警信息。

本系统可以修改要发报警短信的目标的手机号码,只有在没有报警信息或发送报警信息后一分钟且没有新的报警信息时,才可以修改手机号码。修改手机号码时,首先按下按键KEY0,进入修改密码、手机号码模式。按下KEY0,LCD屏会亮起来并显示按键盘,可以选择修改密码还是修改手机号码。修改密码,需要先输入旧密码,再输入新密码,且密码必须是六位的。修改手机号码,需要先输入密码,再输入手机号码,手机号码必须是11位才会保存。不管是修改密码还是修改手机号码,修改完成保存后,LCD屏都会在1秒后变暗。这时已经开始检测是否有煤气泄漏,如果防盗报警已打开,也会检测是否有小偷出现。

5.3、测试结果

图5.19 用户接收到的短信 保安接收到的短信

系统连接好后,通电预热传感器20秒,将打火机对着烟雾传感器放气,这时烟雾传感器丁烷超标,信号输出端会输出低电平,开发板检测到这个低电平,就会发送短信“主人,家里煤气泄漏了!!!” ,向设定好的小区保安手机发送“888栋666号住户,家里煤气泄漏了!!!”。然后按下按键KEY0,这时防盗报警被打开,LED0会亮起来,这时当红外对管中间有东西挡住时,即接收管接收不到发射管发射的红外线时,黄色数据输出端会输出低电平,当开发板检测到这个低电平,会发送第二条短信“主人,家里来小偷了!!!”, 向设定好的小区保安手机发送“888栋666号住户,家里进小

39

附 录

偷了!!!” 的报警信息,如图5.19所示。

5.4、本章小结

本章主要介绍了由STM32F103RB单片机开发板、GSM模块、传感器模块组

成的系统完成后硬件电路板包括原理图和PCB图。接着阐述从硬件到软件的测试,以确保硬件电路和焊接无误以及硬件模块之间相互兼容、软件正常使用。并且介绍了硬件的连接方法。最后,阐述了短信报警的过程和修改密码、手机号码的过程。

40

附 录

附 录

系统主循环函数:

while(1) {

char flag = 0;

int i = 0;

if(key_00())//按键0,按键按下为1,松开即为0 { LCD_LED = 1;//lcd背光 1亮 0灭 Drow_LCDKey(); change_password();//修改密码和手机号码 LCD_LED = 0;//lcd背光 1亮 0灭 }

if( key_1())//按键1,按一下为1,再按一下为0 { led0_on();//开启防盗报警标志 if(!(GPIOC->IDR & (1<<8)) )//PC8 红外对管 触发时为低电平 { delay_ms(5);//去抖动 if(!(GPIOC->IDR & (1<<8)) )//PC8 红外对管 触发时为低电平 { led1_on(); //当有小偷时,LED1亮 flag = send_chinese_sms1(); for(i=0;i<60;i++) //延时60秒 { delay_s(1); } } else { led1_off(); //当没有小偷时,LED1灭 } } } else { led0_off(); }

if(!(GPIOC->IDR & (1<<9)))//PC9 烟雾传感器 触发时为低电平

41

附 录

}

{ }

delay_ms(5);//去抖动

if(!(GPIOC->IDR & (1<<9)))//PC9 烟雾传感器 触发时为低电平 { send_chinese_sms2(); //发短信 for(i=0;i<60;i++) //延时60s {delay_s(1);} }

LCD显示及手机号码修改函数

char Flag = 0;//是否已经输入旧号码 1已输入 u8 lcdkey = 0xff;

u16 xpos = 0,ypos = 0; u8 databuff[20] = {'\\0'}; u8 strresult;

u8 oldkeyword[20] = {'\\0'};

AT24CXX_Read(190,oldkeyword,6); while(1) {

if(!(GPIOC->IDR&(1<<6)))//确保你按下触摸屏 { GetXPT2046_AdjustXorY(&xpos,&ypos); lcdkey = Touch_LCDKey(xpos,ypos); Get_LCDKeyVal(lcdkey,databuff); LCD_ShowKeyWord((240-8)/2,50,databuff,0,0xffff); if(keywordcnt > 12) { keywordcnt = 0; memset(databuff,'\\0',20 );//清空计数 已填写号码 LCDShow_Font(0,27,\长度过长,请重新输入: \ Clear_Rectangle(37,44,203,74,0xffff); } if(lcdkey=='*') { if(Flag == 1) { if(keywordcnt == 11) { LCDShow_Font(0,25,\保存号码成功!! \ Clear_Rectangle(37,44,203,74,0xffff); AT24CXX_Write(200,databuff,11);//将手机号码存到EEPROM

42

附 录

里,地址200,长度11

Flag = 0; keywordcnt = 0; memset(databuff,'\\0',20 );//清空计数 已填写号码 delay_ms(1000); return ; } else { LCDShow_Font(0,25,\号码错误!请重新输入: \ keywordcnt = 0; memset(databuff,'\\0',20 );//清空计数 已填写号码 delay_ms(1000); Clear_Rectangle(37,44,203,74,0xffff); databuff[keywordcnt] = '\\0'; } } strresult = strcmp((char *)databuff,(char *)oldkeyword); if(strresult==0) { keywordcnt = 0; memset(databuff,'\\0',20 );//清空计数 已填写号码 Flag = 1; LCDShow_Font(0,27,\请输入新的号码: \ Clear_Rectangle(37,44,203,74,0xffff); } } } }

短信报警函数

u8 send_chinese_sms1(void) {

u8 mark = 0; handle_sms(sms1); send_string(sms0); mark = send_cmd(\if(SUCCESS == mark) {

mark = send_cmd(\模式

if(SUCCESS == mark) {

43

附 录

send_string(\发短信的长度 rec_sms1_str(sim_data);//接收\\r\\n rec_sms2_str(sim_data); send_string(sms1); delay_ms(500); send_string(sms0); rec_sms1_str(sim_data); rec_sms1_str(sim_data); if(sim_data[0] == '+') return SUCCESS;

}

}

return FAIL;

}

44


智能家居安保系统设计 - 图文(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:天车啃轨的原因及分析及解决办法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: