新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用舊手機制作gsm遠程報警器

        用舊手機制作gsm遠程報警器

        作者: 時間:2016-11-30 來源:網絡 收藏



        再把它連接到手機的按鍵上。照片中手機按鍵上的三極管不是關鍵,可有可無,初衷是為了檢車手機是否死機的。


        在路由器的外殼是哪個打幾個洞,安裝銅柱。


        銅柱螺絲若干


        安裝了銅柱的外殼


        在路由器的蓋子上挖一個洞,把紅外傳感器的透鏡部分外露。然后用熱熔膠粘牢。


        大功告成


        外表是一個路由器,實際上是一臺防盜器,呵呵。下面附單片機程序:


        筆者指定的電話號碼已經保存在手機電話薄的第一個位置,
        本例工程文件下載: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); //等待進入

        本文引用地址:http://www.104case.com/article/201611/323987.htm
        }
        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次后,就不再呼叫。
        }
        }
        }


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 临江市| 临沂市| 剑阁县| 平谷区| 双辽市| 阿克陶县| 凤翔县| 星子县| 旺苍县| 库伦旗| 抚州市| 甘孜县| 嘉峪关市| 集安市| 池州市| 中卫市| 建湖县| 南康市| 望奎县| 兴化市| 赞皇县| 灵寿县| 绥阳县| 凤凰县| 通河县| 读书| 视频| 年辖:市辖区| 沁源县| 雅江县| 辉南县| 江北区| 苗栗县| 宜昌市| 同德县| 灵丘县| 磴口县| 铜陵市| 永安市| 无为县| 金溪县|