這想法最初是在09年誕生的,后來百度一下,發(fā)現(xiàn)已經(jīng)有人比我更早地想到,而且已經(jīng)研發(fā)出來,看見以后,我頓時(shí)失去了興趣。直到前兩個(gè)月,某位朋友被小偷光顧,損失慘重。此刻,我意識(shí)到防盜器的重要性,尤其年關(guān)將至,鼠輩橫行的時(shí)段,所以又重新點(diǎn)燃了我創(chuàng)造的欲望。今晚,花了幾個(gè)小時(shí)終于制作完成。以下有全套制作教程,包括電路圖和代碼,希望有動(dòng)手能力的朋友也嘗試一下。同時(shí),由于本人能力有限,設(shè)計(jì)存在很多缺陷,希望有高人多多指點(diǎn)不足之處,謝謝。
實(shí)現(xiàn)功能:當(dāng)有人進(jìn)入一定區(qū)域內(nèi),裝置能自動(dòng)撥打指定號(hào)碼進(jìn)行呼叫,當(dāng)區(qū)域內(nèi)的人持續(xù)不離開時(shí),裝置能連續(xù)呼叫3次,每次2分鐘。例如:我外出時(shí),假如有人進(jìn)入了我的房間,裝置就能自動(dòng)撥打我的電話,我的電話就會(huì)響起,然后我就會(huì)采取相應(yīng)的措施。
成品圖
1. 原料清單:舊手機(jī)一臺(tái)(能打電話就行),stc89c52單片機(jī)一塊,5v繼電器3個(gè),1n4148二極管3個(gè),1n4007二極管2個(gè),9012三極管 3個(gè) ,8050三極管1個(gè),11.0592晶振1個(gè),20p獨(dú)石電容2個(gè),104獨(dú)石電容1個(gè),電解電容1000uf、470uf、0.1uf各一個(gè) 10uf兩個(gè),LM317三端穩(wěn)壓1個(gè),200Ω、400Ω、1K電阻各一個(gè)。洞洞板一塊,一個(gè)外殼(筆者的是路由器的外殼),一張0月租0低消的手機(jī)卡,熱釋紅外感應(yīng)模塊一個(gè)。(成本100元以內(nèi))
一臺(tái)舊手機(jī),外殼已經(jīng)拆掉
一個(gè)路由器的外殼
一張0月租0低消的手機(jī)卡
熱釋紅外傳感器
電子元件若干,詳見上面清單。
電路圖,單片機(jī)的P0口的前3個(gè)腳分別控制3個(gè)繼電器,P1^4用來檢測(cè)紅外模塊返回的信號(hào)。有的手機(jī)可用三極管代替繼電器座開關(guān),筆者手上的這臺(tái)手機(jī)的按鍵設(shè)計(jì)有點(diǎn)怪,為了穩(wěn)定起見,所以使用繼電器。J1\J2\J3是手機(jī)的 按鍵。
這是LM317三端穩(wěn)壓電路,輸出3.7v,用來給手機(jī)供電。手機(jī)長時(shí)間直接使用5v會(huì)燒壞。另外,要在手機(jī)正負(fù)極并聯(lián)一個(gè)1000uf的電容。因?yàn)槭謾C(jī)接受發(fā)射信號(hào)的時(shí)候電流峰值能達(dá)到2A
下面已經(jīng)焊接完成,再把程序燒寫到單片機(jī)中。(程序代碼在最后)
再把它連接到手機(jī)的按鍵上。照片中手機(jī)按鍵上的三極管不是關(guān)鍵,可有可無,初衷是為了檢車手機(jī)是否死機(jī)的。
在路由器的外殼是哪個(gè)打幾個(gè)洞,安裝銅柱。
銅柱螺絲若干
安裝了銅柱的外殼
在路由器的蓋子上挖一個(gè)洞,把紅外傳感器的透鏡部分外露。然后用熱熔膠粘牢。
大功告成
外表是一個(gè)路由器,實(shí)際上是一臺(tái)防盜器,呵呵。下面附單片機(jī)程序:
筆者指定的電話號(hào)碼已經(jīng)保存在手機(jī)電話薄的第一個(gè)位置,
本例工程文件下載: http://www.torrancerestoration.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) //延時(shí)函數(shù)
{
uint i,j;
for(i=num;i>0;i--)
for(j=110;j>0;j--);
}
void key1() //按鍵1 手機(jī)的返回、電話薄鍵
{
D1 = 0; //按下
delay(500); //按下中
D1 = 1; //松開
delay(500); //不能直接按下一個(gè)鍵,所以唯有延時(shí)500毫秒
}
void key2() //按鍵2 手機(jī)的掛機(jī)、關(guān)機(jī)、開機(jī)鍵
{
D2 = 0;
delay(500);
D2 = 1;
delay(500);
}
void key3() //按鍵3 手機(jī)的接聽鍵
{
D3 = 0;
delay(500);
D3 = 1;
delay(500);
}
void offon() //開關(guān)機(jī)
{
D2 = 0;
delay(5000);//按住5秒開機(jī)鍵可開關(guān)機(jī)
D2 = 1;
delay(10000); //等待進(jìn)入
void call() //呼叫
{
key1(); //重復(fù)幾次按返回鍵和掛機(jī)鍵,讓未接來電和短信等提示信息消失
key2();
key1();
key2();
key1();
key2();
delay(10000); //延時(shí)等待手機(jī)提示框消失
key1();
key2();
key1();
key2();
delay(6000); //延時(shí)等待手機(jī)提示框消失
key1(); //打開電話薄
key3(); //按下呼叫鍵
}
void main()
{
callnum = 0; //變量賦初值
offon();
call(); //響一下手機(jī),提示已經(jīng)進(jìn)入監(jiān)控狀態(tài)
delay(60000); //延時(shí)4分鐘,紅外模塊需要1分鐘的預(yù)啟動(dòng)時(shí)間,人走后需要2分鐘的冷卻時(shí)間,為了寬松點(diǎn),共4分鐘
delay(60000);
delay(60000);
delay(60000);
while(1)
{
if(D4 == 0)
{
call();
delay(60000);//每次呼叫兩分鐘
delay(60000);
callnum++; //每呼叫一次,變量加一
}
if(callnum == 3)
{
while(1); //連續(xù)呼叫3次后,就不再呼叫。
}
}
}