用旧手机制作gsm远程报警器

再把它连接到手机的按键上。照片中手机按键上的三极管不是关键,可有可无,初衷是为了检车手机是否死机的。

在路由器的外壳是哪个打几个洞,安装铜柱。

铜柱螺丝若干

安装了铜柱的外壳

在路由器的盖子上挖一个洞,把红外传感器的透镜部分外露。然后用热熔胶粘牢。

大功告成

外表是一个路由器,实际上是一台防盗器,呵呵。下面附单片机程序:

笔者指定的电话号码已经保存在手机电话薄的第一个位置,
本例工程文件下载:http://www.51hei.com/f/gsdeng.rar
代码如下:
#include"reg52.h"
#define uint unsigned int
#define uchar unsigned char
sbit D1 = P1^0;
sbit D2 = P1^1;
sbit D3 = P1^2;
sbit D4 = P1^3;
uchar callnum;
void delay(uint num) //延时函数
{
uint i,j;
for(i=num;i>0;i--)
for(j=110;j>0;j--);
}
void key1()//按键1 手机的返回、电话薄键
{
D1 = 0; //按下
delay(500);//按下中
D1 = 1; //松开
delay(500); //不能直接按下一个键,所以唯有延时500毫秒
}
void key2()//按键2 手机的挂机、关机、开机键
{
D2 = 0;
delay(500);
D2 = 1;
delay(500);
}
void key3() //按键3 手机的接听键
{
D3 = 0;
delay(500);
D3 = 1;
delay(500);
}
void offon() //开关机
{
D2 = 0;
delay(5000);//按住5秒开机键可开关机
D2 = 1;
delay(10000); //等待进入本文引用地址:https://www.eepw.com.cn/article/201611/323987.htm
}
void call() //呼叫
{
key1(); //重复几次按返回键和挂机键,让未接来电和短信等提示信息消失
key2();
key1();
key2();
key1();
key2();
delay(10000);//延时等待手机提示框消失
key1();
key2();
key1();
key2();
delay(6000);//延时等待手机提示框消失
key1();//打开电话薄
key3();//按下呼叫键
}
void call() //呼叫
{
key1(); //重复几次按返回键和挂机键,让未接来电和短信等提示信息消失
key2();
key1();
key2();
key1();
key2();
delay(10000);//延时等待手机提示框消失
key1();
key2();
key1();
key2();
delay(6000);//延时等待手机提示框消失
key1();//打开电话薄
key3();//按下呼叫键
}
void main()
{
callnum = 0; //变量赋初值
offon();
call(); //响一下手机,提示已经进入监控状态
delay(60000); //延时4分钟,红外模块需要1分钟的预启动时间,人走后需要2分钟的冷却时间,为了宽松点,共4分钟
delay(60000);
delay(60000);
delay(60000);
while(1)
{
if(D4 == 0)
{
call();
delay(60000);//每次呼叫两分钟
delay(60000);
callnum++; //每呼叫一次,变量加一
}
if(callnum == 3)
{
while(1);//连续呼叫3次后,就不再呼叫。
}
}
}
评论