專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

用舊手機(jī)制作gsm遠(yuǎn)程報(bào)警器

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年11月11日   【字體:

    這想法最初是在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次后,就不再呼叫。
  }
 } 
}

關(guān)閉窗口

相關(guān)文章