找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2484|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

之前寫(xiě)了一個(gè)智能家居下gsm模塊的程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:161481 發(fā)表于 2017-1-12 16:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
之前寫(xiě)了一個(gè)智能家居下gsm模塊的程序,可以根據(jù)按鍵輸入的密碼來(lái)判斷是否可以進(jìn)行修改報(bào)警號(hào)碼,并向?qū)?yīng)的手機(jī)號(hào)碼發(fā)送報(bào)警信息,不過(guò)得注意需要插入sim卡。程序附錄如下:
#include "gsm.h"
#include "common.h"
#include "serial.h"
#include "string.h"
#include "delay.h"
#include <stdio.h>
#include <stdlib.h>
#include "key.h"
#include "24c02.h"
#include "lcd1602.h"

#if 0
/* 發(fā)送AT指令 */
int gsm_send_command(uchar *command, uchar *response, uchar waittime)
{
    int xdata res = 0;
    uart_send_str(command);
        if(response && waittime)                //需要等待應(yīng)答
        {
                while(--waittime)        //等待倒計(jì)時(shí)
                {
                        delay_ms(10);
                        if(RI)//接收到期待的應(yīng)答結(jié)果
                        {
                                if(is_gsm_get_response(response)) break;//得到有效數(shù)據(jù)
                                RI = 0;
                        }
                }
                if(waittime == 0) res = 1;
        }
        return res;
}

/*
*是否得到想要的回應(yīng)
* return 0 : 響應(yīng)正確
* return -1:  沒(méi)得到正確的響應(yīng)
*/
uchar* is_gsm_get_response(uchar *response)
{

    uchar xdata resp[20];
        uchar *strx = 0;
        int xdata len = 0;
        int xdata i;
    uart_receive_str(resp); //讀取響應(yīng)
    strx = strstr((const char*)resp, (const char*)response);
        return strx;

}

int gsm_send_sms(uchar *phone_number, uchar *sms_message)
{
    const uchar xdata message[] = "Someone in your home,please check.";
        int xdata res;
        char xdata *p1;
    p1 = malloc(sizeof(char)*4);

        res = gsm_send_command("AT+CMGF=1\r\n", "OK",200);                //設(shè)置文本模式

        res =gsm_send_command("AT+CSCS=\"GSM\"\r\n","OK",200);        //設(shè)置TE字符集為GSM

        res = gsm_send_command( "AT+CSMP=17,0,2,25\r\n", "OK",200);         //設(shè)置短消息文本模式參數(shù)

        res = gsm_send_command("AT+CMGS=\"18819467282\"\r\n", ">", 300);
        delay_ms(10);
        uart_send_str(message);
        delay_ms(10);

        sprintf(p1,"%c",0x1a);
        return 0;
}
#endif

void gsm_call(void)
{
     uchar phone_num[12];
         uchar all[24] = "ATD";
         uchar one[] = ";\r\n";         
         iic_read_password_phone(phone_num, 1); //讀出電話(huà)號(hào)碼         
         strcat(all, phone_num);
         strcat(all, one);
     uart_send_str(all);
}

void change_phone_number(uchar *password)
{
    uchar xdata pass_set_suceess[16] = "phone number set";
        uchar xdata new_phone[16] = "New phone number";
        uint i;
        int flag = -1;

        if(check_password(password, 0, 1) == 0) //密碼正確
        {
          flag = password_display(password, new_phone, 16);
          if(flag == 0)
          {
          iic_write_password_phone(password, 1);         //寫(xiě)入新號(hào)碼
          delay_ms(10);
          
          lcd1602_init(0x0c);
          write_1602com(FIRST_LINE);
          for(i = 0; i < 16; i++)
          write_1602dat(pass_set_suceess[i]);
          delay_ms(2000);
          lcd1602_init(0x0c);
          }
          else
          lcd1602_init(0x0c);
        }       
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表