Thông báo

Collapse
No announcement yet.

cần giúp gởi tin nhắn với module sim300cz

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • huutien
    replied
    các bác nào ra tay giúp em sơ đồ nguyên lý với, em đang tìm hiểu về đề tài này mà không biết làm sao.

    Leave a comment:


  • svcntt
    replied
    vdk và modun GSM có cùng mức điện áp theo chuẩn TTL nên được nối với nhau ko cần qua thiết bị convert. vdk và modun GSM giao tiếp qua 1 cổng UART, nối chéo nhau giữa 2 chân TXD và RXD của vdk và modun gsm.

    Leave a comment:


  • phamtuanh90
    replied
    Nguyên văn bởi plmobile Xem bài viết
    simcard là smartcard theo chuẩn chân iso7816
    truyền nhận rs232 thì theo chuẩn phoenix =>serial reader, các hãng hay dùng chuẩn smartcard reader
    search google từ khóa sim protocol thì có nhiều nữa
    Ý e hỏi là giao tiếp RS232 giữa module GSM và vdk, vdk và module GSM truyền nhận như thế nào? module GSM truyền dữ liệu đến vdk thông qua gì

    Leave a comment:


  • PUMA
    replied
    Nguyên văn bởi gauden Xem bài viết
    [i]=m;
    }

    #int_rda
    void ngat_modun(){
    ngat();
    }
    void main(){

    i=0;
    lcd_init();
    enable_interrupts(GLOBAL);
    enable_interrupts(int_rda);
    while (true){
    printf(lcd_putc,"%d",i);
    }
    }

    Leave a comment:


  • plmobile
    replied
    simcard là smartcard theo chuẩn chân iso7816
    truyền nhận rs232 thì theo chuẩn phoenix =>serial reader, các hãng hay dùng chuẩn smartcard reader
    search google từ khóa sim protocol thì có nhiều nữa

    Leave a comment:


  • phamtuanh90
    replied
    Nguyên văn bởi gauden Xem bài viết
    đang tập viết tin nhắn điều khiển thiết bị,việc đầu tiên mình muốn đếm độ dài của một tin nhắn gửi đến để sau đó lấy được tin nhắn về và xử lí nó.nhưng không hiểu sao mỗi lần gửi tin nhắn thì lại nhận được số lần ngắt(số kí tự trả về từ modunsim) lại khác nhau.tất nhiên là cùng một tin nhắn như nhau.ai đã gặp rồi xin giải thích giúp mình với,code đơn giản của mình như sau:
    #include <18F4431.h>
    #include <def_877a.h>
    #FUSES HS,NOWDT,NOPROTECT,NOLVP
    #use DELAY (clock=20000000)
    #use rs232(stream=rs232A, baud=9600, xmit=PIN_c0,rcv=PIN_c1)
    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)
    #include <stdio.h>
    #include <string.h>
    #include <stdlibm.h>
    #include <stdlib.h>
    #include <LCD1.c>

    int i,m;
    ngat(){
    delay_ms(1);
    m=getc();
    i++; //nếu có kí tự gửi đến từ modunsim thì tăng biến
    str[i]=m;
    }

    #int_rda
    void ngat_modun(){
    ngat();
    }
    void main(){

    i=0;
    lcd_init();
    enable_interrupts(GLOBAL);
    enable_interrupts(int_rda);
    while (true){
    printf(lcd_putc,"%d",i);
    }
    }
    Cho e hỏi trong module sim có CPU hay không? theo e bít thì để giao tiếp RS232 thì phải có CPU để điều khiển việc truyền nhận dữ liệu giữa vdk và sim. Nếu sim nhận được dữ liệu từ vdk thì làm sao để sim gửi du lieu ve cho vdk. e cám ơn

    Leave a comment:


  • gauden
    replied
    đang tập viết tin nhắn điều khiển thiết bị,việc đầu tiên mình muốn đếm độ dài của một tin nhắn gửi đến để sau đó lấy được tin nhắn về và xử lí nó.nhưng không hiểu sao mỗi lần gửi tin nhắn thì lại nhận được số lần ngắt(số kí tự trả về từ modunsim) lại khác nhau.tất nhiên là cùng một tin nhắn như nhau.ai đã gặp rồi xin giải thích giúp mình với,code đơn giản của mình như sau:
    #include <18F4431.h>
    #include <def_877a.h>
    #FUSES HS,NOWDT,NOPROTECT,NOLVP
    #use DELAY (clock=20000000)
    #use rs232(stream=rs232A, baud=9600, xmit=PIN_c0,rcv=PIN_c1)
    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)
    #include <stdio.h>
    #include <string.h>
    #include <stdlibm.h>
    #include <stdlib.h>
    #include <LCD1.c>

    int i,m;
    ngat(){
    delay_ms(1);
    m=getc();
    i++; //nếu có kí tự gửi đến từ modunsim thì tăng biến
    str[i]=m;
    }

    #int_rda
    void ngat_modun(){
    ngat();
    }
    void main(){

    i=0;
    lcd_init();
    enable_interrupts(GLOBAL);
    enable_interrupts(int_rda);
    while (true){
    printf(lcd_putc,"%d",i);
    }
    }

    Leave a comment:


  • lyhen1990
    replied
    Em cũng đang làm đề tài này, cũng test sim qua hyper gửi sms va call đều ok.Nhưng kết nối sim 300 và pic xong ,nạp code xong, gửi tin nhắn sms thì không thấy phản hồi lại,không biết code này có đúng hông xin anh chị giúp đỡ e ạ.E cám ơn nhiều .Đây là source code của em,dùng trình dich ccsc.


    #include <18f26K20.h> // chuong trinh su dung cho vi dieu khien Pic18f26k20
    #device icd=true // tao ma tuong thich debug phan cung Microchip
    #DEVICE ADC=10 // su dung ADC 10 bit
    #fuses HS,NOWDT,NOPROTECT,NOLVP // khai bao cac thiet dat cho Pic
    #use delay(clock=11059000) // su dung OSC=11,059 Mhz
    #include <stdio.h>
    #include <string.h>
    #include <stdlibm.h>
    #include <stdlib.h>
    #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7,stream=SENSOR)
    // baud= 9600, chan truyen C6, chan nhan C7
    //************************************************** ******************************
    //khai bao thanh ghi
    #BYTE PORTA =0xf80
    #BYTE PORTB =0xf81
    #BYTE PORTC =0xf82
    #BYTE ANSELH = 0xF7F
    #BYTE ANSEL = 0xF7E
    #BYTE TRISA = 0xF92
    #BYTE TRISB = 0xF93
    #BYTE ADCON2 = 0xFC0
    #BYTE ADCON1 = 0xFC1
    #BYTE ADCON0 = 0xFC2
    #BYTE INTCON = 0xFF2
    #BYTE INTCON2 = 0xFF1
    #BYTE INTCON3 = 0xFF0
    #BYTE T0CON = 0xFD5
    #BYTE TMR0L = 0xFD6
    #BYTE TMR0H = 0xFD7
    #BYTE PIR1 = 0x0F9E
    #BYTE PIE1 = 0x0F9D
    #BYTE T1CON = 0x0FCD
    #BYTE T1GCON = 0x0F9A
    #BYTE TCLKCON = 0x0F52
    //************************************************** ******************************
    #bit INTCON_GIEH = INTCON.7
    #bit INTCON_GIEL = INTCON.6
    #bit INTCON_TMR0IE = INTCON.5
    #bit INTCON_TMR0IF = INTCON.2
    #bit INTCON2_TMR0IP = INTCON2.2
    #bit INTCON_INT0IE = INTCON.4
    #bit INTCON_INT0IF = INTCON.1
    #bit INTCON2_INTEDG0 = INTCON2.6
    #bit INTCON2_INTEDG1 = INTCON2.5
    #bit INTCON3_INT1IE = INTCON3.3
    #bit INTCON3_INT1IF = INTCON3.0
    #bit TRISAbits_TRISA0 = TRISA.0
    #bit TRISAbits_TRISA1 = TRISA.1
    #bit TRISAbits_TRISA2 = TRISA.2
    #bit TRISAbits_TRISA3 = TRISA.3
    #bit TRISAbits_TRISA4 = TRISA.4
    #bit TRISBbits_TRISB1 = TRISB.1
    #bit TRISBbits_TRISB0 = TRISB.0
    //************************************************** ******************************
    //khai bao bien
    #bit I_CD = PORTB.2
    #bit O_TN = PORTC.0
    #bit O_LOA = PORTC.1
    #bit O_RUN = PORTC.2
    //************************************************** ******************************
    #define BUFFER_SIZE 500
    BYTE buffer[BUFFER_SIZE];
    unsigned char temp_array[500];
    unsigned int16 next_in = 0;
    unsigned int16 next_out = 0;
    unsigned int16 count =0;
    unsigned char temp_sdt[200];
    unsigned char MKmacdinh[9] = "ADA",MK_tam[8],MSGmacdinh[102]="";
    int proba,k,dem_ND=0,skipline=2,status=0,count_mk=0,co unt_temp=0;
    unsigned char conf_MSG[]="MSG:",temp_MSG[102];
    unsigned char conf_PW[]="PW:",temp_MK[9],temp_PT[9];
    unsigned char conf_GETPW[15]="GET PASSWORD",conf_CONF[]="CONF:",PTOFF[]="OFF",PTON[]="ON",conf_PT[]="PT:";
    unsigned char conf_NHD[]="ND:",temp_NHD[3],NHDmacdinh_txt[3];
    unsigned char READY[]="READY",NETW[]="+CREG: 0,1";
    int NHDmacdinh_int=45;
    int save_pw,save_phone,save_msg,save_n=0,save_nhd=0,ic ount=0,inhietdo=0,check_sim=0,check_nw=0,check_crd =0;
    int itinnhan=0;
    int ichuyendong=0,ichuyendong1=0;
    int icua = 0,icua1=0;
    int inuoc = 0,inuoc1 = 0;
    int ikhoi = 0,ikhoi1=0;
    int inc = 0,inc1=0;
    int itimer0=0;
    int DONG=0,MO=0,PT_MO=0,PT_DONG=0;
    float tbnd=0,value=0;
    unsigned int doc =176,chao=0,count_dong=0,count_mo=0,count_cd=0,cou nt_khoi=0,count_nuoc=0;
    int time_out=0,check_NC=0,check_CD=0,check_KHOI=0,chec k_NUOC=0,check_ND=0,alarm=0;
    long icheck_NC=0,icheck_CD=0,icheck_KHOI=0,icheck_NUOC= 0,icheck_ND=0;
    //ham khai bao thoi gian timer0
    //bat timer0
    void en_timer0()
    {
    INTCON_TMR0IE = 1;
    INTCON_TMR0IF = 0;
    }
    //tat timer0
    void dis_timer0()
    {
    INTCON_TMR0IE = 0;
    INTCON_TMR0IF = 0;
    //INTCON2_TMR0IP = 1;
    }
    //************************************************** ******************
    //khoi tao timer0
    void init_timer0()
    {
    T0CON = 0b11000111;
    TMR0L = 0;
    TMR0H = 0;
    }
    void en_cuadong()
    {
    INTCON_GIEH = 1;
    INTCON_GIEL = 1;
    INTCON3_INT1IE = 1;
    INTCON3_INT1IF = 0;
    INTCON2_INTEDG1 = 0;//dong:0-->1
    }
    void en_cuamo()
    {
    INTCON_GIEH = 1;
    INTCON_GIEL = 1;
    INTCON3_INT1IE = 1;
    INTCON3_INT1IF = 0;
    INTCON2_INTEDG1 = 1;//mo:1-->0
    }
    void dis_cuadong()
    {
    INTCON_GIEH = 1;
    INTCON_GIEL = 1;
    INTCON3_INT1IE = 0;
    INTCON3_INT1IF = 0;
    INTCON2_INTEDG1 = 0;
    }
    int instr(unsigned char *chuoi,unsigned char *chuoi_ss)
    {
    int i,j,n=0,h=0;
    int dem,dem_ss;
    dem = strlen(chuoi);
    dem_ss = strlen(chuoi_ss);
    }
    //************************************************** ******************
    struct quanliso
    {
    unsigned char dt[12];
    }; struct quanliso so[11];
    struct quanlind
    {
    float nd;
    }; struct quanlind ql[11];
    //************************************************** ******************
    //************************************************** ******************
    //************************************************** ******************
    ///////////////////////////////////////
    //ham ngat tin nhan
    #int_ext
    void ngat_tinnhan()
    {
    itinnhan=1;
    }
    //************************************************** ******************
    //ham ngat nhan tu UART
    #int_rda
    void serial_isr()
    {
    buffer[next_in]=getc();
    if(next_in==next_out)
    next_in=0; // Buffer full !!
    }
    ///////////////////////////////////
    //ham ngat timer0
    #INT_timer0
    void ngat_timer0()
    {
    itimer0++;

    // Kiem tra Chuyen dong
    if(itimer0==1)
    {
    if(ichuyendong==0)
    {
    if(input(PIN_B2)==1)
    {
    ichuyendong=1;
    }
    }
    }
    init_timer0();
    INTCON_TMR0IF = 0;
    }
    //************************************************** ******************
    //TIM VI TRI
    int position(unsigned char *chuoi,unsigned char *chuoi_ss)
    {
    int hi,hj,hn=0,hh=0;
    int hdem,hdem_ss;
    hdem = strlen(chuoi);
    hdem_ss = strlen(chuoi_ss);
    for(hi=0;hi<hdem;hi++)
    {
    if(*(chuoi + hi) == *(chuoi_ss))
    {
    for(hj = hi;hj<hdem_ss+hi;hj++)
    {
    if(hn==hdem_ss) {return hi;};
    }
    }
    }
    return 0;
    }
    //XOA BO DEM
    void erase_buffer()
    {
    unsigned int16 i;
    for(i=0;i<BUFFER_SIZE;i++)
    buffer[i]=0;
    next_in=0;
    next_out=0;
    count=0;
    }
    //CAU HINH GSM
    void gsm_config()
    { int i;
    delay_ms(4000);
    printf("AT\n\r");
    delay_ms(500);
    printf("AT\n\r");
    delay_ms(500);
    printf("AT\n\r");
    delay_ms(500);
    printf("AT\n\r");
    delay_ms(500);
    printf("AT+CMGF=1\n\r");
    delay_ms(500);
    printf("AT+CMGF=1\n\r");
    delay_ms(500);
    printf("AT&W\n\r");
    // printf("ATE0\n\r");
    delay_ms(1500);
    erase_buffer();
    }
    //************************************************** ******************
    //************************************************** ******************
    //************************************************** ******************
    void main()

    { //khoi tao cac bien dem cuc bo
    int8 i=0,n=0,count_dauphay=0,count2_2cham=0,mposition=0 ;
    int8 dem;
    //khoi tao ngat
    enable_interrupts(int_rda);
    #if defined(__PCD__)
    enable_interrupts(intr_global);
    #else
    enable_interrupts(global);
    #endif
    //************************************************** ******************
    O_TN = 0;
    O_RUN = 0;
    O_LOA = 0;
    set_tris_b(0b00001111);//nhan xung vao INPUT
    set_tris_c(0b10000000);
    TRISAbits_TRISA2 = 0; // OUTPUT PORTA.2
    TRISAbits_TRISA3 = 0; // OUTPUT PORTA.3
    TRISAbits_TRISA4 = 0; // OUTPUT PORTA.3
    O_TN = 0;
    O_RUN = 0;
    O_LOA = 0;
    delay_ms(1000);
    do{
    O_TN=1;
    delay_ms(500);
    O_TN=0;
    delay_ms(500);
    i++;
    }
    while(i<2);
    i=0;
    gsm_config();
    //************************************************** ****************************
    while(1)
    {
    //************************************************** ****************************
    //bat dau xu li cac trang thai ngo vao(cam bien)
    //kiem tra neu co chuyen dong thi se bao tin nhan
    if(ichuyendong1==0)
    {
    if(ichuyendong==1)
    {
    O_LOA = 1;
    check_CD = 1;
    for(i=0;i<n+1;i++)
    { printf("AT+CMGS=\"%s\"\n\r",so[i].dt);
    delay_ms(100);
    printf("Nha tai %s co NGUOI. De nghi kiem tra.",MSGmacdinh);
    putc(26);
    delay_ms(1000);
    }
    delay_ms(2000);
    ichuyendong1=1;
    ichuyendong=ichuyendong1=0;
    }
    ichuyendong=0;
    count_cd=0;
    }

    //************************************************** ***************************
    //thuc hien va luu du cac lenh khi co tin nhan den
    if(itinnhan)
    {
    start:i=0;count=0;count_mk=0;count2_2cham=0;dem_nd =0;
    printf("AT+CMGR=1\n\r");
    delay_ms(500);
    O_TN=0;
    //kiem tra lenh CONF: cai dat so dien thoai
    if(instr(buffer,conf_CONF))
    {
    mposition = position(buffer,conf_CONF);
    dem_ND=0;
    do
    {
    temp_array[dem_ND++]=buffer[mposition++];
    }
    while(buffer[mposition]!=10);
    count_mk = 0;
    ///////////////////////////////////////////
    // BAT DAU VONG LAP KIEM TRA CONF
    if(instr(temp_array,conf_CONF))
    {
    // BAT DAU VONG LAP KIEM TRA MK
    if(instr(MK_tam,MKmacdinh))
    {
    for(i=0;i<11;i++)
    for(n=0;n<12;n++)
    so[i].dt[n]=0;
    // BAT DAU LUU SO DIEN THOAI
    O_TN=1;
    delay_ms(400);
    O_TN=0;
    count_temp=strlen(temp_array);
    count_temp=count_temp-count2_2cham;
    count_dauphay=0;
    i=0,n=0;
    sdt:
    i=dem;
    do
    {
    if(temp_sdt[i]==13) {so[n].dt[i-dem]=0;goto next;}
    so[n].dt[i-dem] = temp_sdt[i];
    i++;
    }
    while(temp_sdt[i]!=',');
    n++;
    dem=i+1;
    goto sdt;
    next:
    for(i=0;i<n+1;i++)
    { printf("AT+CMGS=\"%s\"\n\r",so[i].dt);
    delay_ms(100);
    printf("So dien thoai cua ban da duoc dua vao he thong canh bao");
    putc(26);
    delay_ms(1000);
    }
    O_TN=1;
    delay_ms(300);
    O_TN=0;
    }
    // da ket thuc doc va luu vao so dien thoai
    }
    printf("AT+CMGD=1\n\r");
    delay_ms(200);
    itinnhan=0;
    erase_buffer();

    ///////////////////////////////////////////
    }
    if(save_phone==49)
    {
    if(instr(buffer,conf_PW))
    {
    mposition = position(buffer,conf_PW);
    dem_ND=0;
    // BAT DAU VONG LAP KIEM TRA MK
    do{
    MK_tam[count_mk]=temp_array[3+count_mk];//lay mat khau sau dau
    count_mk++;
    }
    while(temp_array[3+count_mk]!=':');//cho toi khi gap dau 2 cham tiep theo
    count2_2cham=3+count_mk+1; // luu lai vi tri dau 2 cham thu 2

    if(instr(MK_tam,MKmacdinh))
    {
    // xoa bien MK moi truoc khi luu
    for(i=0;i<8;i++)
    MKmacdinh[i]=0;
    // Bat dau dem
    count_temp=strlen(temp_array);
    count_temp=count_temp-count2_2cham;
    count_dauphay=0;
    i=0;
    for(i=0;i<n+1;i++)
    {
    printf("AT+CMGS=\"%s\"\n\r",so[i].dt);
    delay_ms(100);
    printf("Mat khau moi:%s",MKmacdinh);
    putc(26);
    delay_ms(1000);
    }
    O_TN=1;
    delay_ms(300);
    O_TN=0;
    }
    printf("AT+CMGD=1\n\r");
    delay_ms(200);
    itinnhan=0;
    erase_buffer();
    }
    }
    /////////////////////////////////////////////////////////
    if(save_phone==49)
    {
    if(instr(buffer,conf_PT))
    {
    mposition = position(buffer,conf_PT);
    dem_ND=0;
    do{
    temp_array[dem_ND++]=buffer[mposition++];}
    while(buffer[mposition]!=10);
    count_mk = 0;

    // BAT DAU VONG LAP KIEM TRA MK
    do{
    MK_tam[count_mk]=temp_array[3+count_mk];//lay mat khau sau dau
    count_mk++;
    if(count_mk>8)
    {
    count_mk=0;
    printf("AT+CMGD=1\n\r");
    goto start;
    }
    }
    while(temp_array[3+count_mk]!=':');//cho toi khi gap dau 2 cham tiep theo
    count2_2cham=3+count_mk+1; // luu lai vi tri dau 2 cham thu 2

    if(instr(MK_tam,MKmacdinh))
    {
    if(instr(temp_array,PTON))
    {
    //tat cac ngat va xoa trang thai bien ve 0
    for(i=0;i<n+1;i++)
    {
    printf("AT+CMGS=\"%s\"\n\r",so[i].dt);
    delay_ms(50);
    printf("Bat chuc nang bao ve he thong tai nha %s",MSGmacdinh);
    putc(26);
    delay_ms(1000);
    }
    delay_ms(5000);
    en_timer0();
    //DONG=0;
    // PT_MO=0;
    //dis_int0();
    //Led_cd = 0;
    O_TN=1;
    //write_eeprom(502,'0');
    delay_ms(300);
    O_TN=0;
    delay_ms(10000);
    }
    if(instr(temp_array,PTOFF))
    {
    //tat cac ngat va xoa trang thai bien ve 0
    dis_timer0();
    PT_MO=1;
    O_LOA = 0;
    //O_KHOI = 0;
    //O_NUOC = 0;
    //O_CUA = 0;
    //O_NC= 0;
    ichuyendong=ichuyendong1=0;
    ikhoi=ikhoi1=0;
    inuoc=inuoc1=0;
    inc=inc1=0;
    //ket thuc
    delay_ms(1000);
    for(i=0;i<n+1;i++)
    {
    printf("AT+CMGS=\"%s\"\n\r",so[i].dt);
    delay_ms(100);
    printf("TAT bao ve tai nha %s.",MSGmacdinh);
    putc(26);
    delay_ms(1000);
    }
    //dis_int0();
    // Led_cd = 0;
    O_TN=1;
    // write_eeprom(502,'0');
    delay_ms(300);
    O_TN=0;
    delay_ms(10000);
    }
    printf("AT+CMGD=1\n\r");
    delay_ms(200);
    itinnhan = 0;
    erase_buffer();
    }
    }
    }
    //************************************************** ***************************
    //Bat dau kiem tra lenh MSG
    if(save_phone==49)
    {
    if(instr(buffer,conf_MSG))
    {
    mposition = position(buffer,conf_MSG);
    dem_ND=0;
    do{
    temp_array[dem_ND++]=buffer[mposition++];}
    while(buffer[mposition]!=10);
    count_mk = 0;
    // BAT DAU VONG LAP KIEM TRA MK
    do{
    MK_tam[count_mk]=temp_array[4+count_mk];//lay mat khau sau dau
    count_mk++;
    }
    while(temp_array[4+count_mk]!=':');//cho toi khi gap dau 2 cham tiep theo
    count2_2cham=4+count_mk+1; // luu lai vi tri dau 2 cham thu 2

    if(instr(MK_tam,MKmacdinh))
    {
    // Bat dau dem
    count_temp=strlen(temp_array);
    count_temp=count_temp-count2_2cham;
    count_dauphay=0;
    i=0;
    for(i=0;i<n+1;i++)
    {
    printf("AT+CMGS=\"%s\"\n\r",so[i].dt);
    delay_ms(50);
    printf("Da cai dia chi tai %s",MSGmacdinh);
    putc(26);
    delay_ms(1000);
    }
    O_TN=1;
    delay_ms(300);
    O_TN=0;
    }
    }
    }
    //************************************************** ***************************
    printf("AT+CMGD=1\n\r");
    delay_ms(200);
    itinnhan=0;
    erase_buffer();
    }

    }
    }

    Leave a comment:


  • chuannt
    replied
    em đã sửa được rồi,code ko có sai đâu ạ,kiểm tra mạch cứng bị hở chỗ switch ạ.
    thân,

    Leave a comment:


  • lightspy39
    replied
    Cho xin cái mạch nguyên lý.

    Theo như mình nhận xét code này bạn viết khá sơ sài, chưa có kiểm tra module sim xem đã khởi động chưa, chưa có kiểm tra phản hồi sau khi gửi tin nhắn.
    Mình đọc code chỉ thấy bạn setting cho module của bạn ở chế độ mode text nhưng mình nhớ khi làm việc giữa pic và sim300 để có thể gửi tin nhắn, đọc tin nhắn tức thời cần phải setting ở 1 vài chỗ nữa. Nếu bạn đã setting rồi nên up luôn phần setting để tiện theo dõi.

    Chúc bạn thành công!

    Ngô Đông Y
    ********
    Mobile : 0984053088
    Yahoo : mailabautroixanh_39@yahoo.com
    Email : mailabautroixanh39@gmail.com
    Last edited by lightspy39; 01-05-2011, 00:17.

    Leave a comment:


  • cần giúp gởi tin nhắn với module sim300cz

    chào mọi người,.
    em hiện đang làm đồ án với con sim300CZ+pic
    em test thử module sim qua Hyper thì thấy ok hết,cả nhắn tin và thực hiện cuộc gọi.
    và em cũng đã thử lun con pic qua Hyper xem có gởi đúng lệnh theo kiểu AT hay ko,và thấy hắn gởi cũng chính xác.
    Thế khi em kết nối trực tiếp con pic với module sim để thử gởi 1 tin nhắn,thì lại ko chạy được ạ
    AC nào có kinh nghiệm làm phần này rồi hay đã từng gặp lỗi giống như em,thì xin AC chỉ giúp em với ạ.
    Đoạn code trên Pic của em :
    Code:
    #include <18f26K20.h>
    #device ADC=10
    
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=11059000)
    #include <stdio.h>
    #include <string.h>
    #include <stdlibm.h>
    #include <stdlib.h>
    #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7) // baud= 9600, chan truyen C6, chan nhan C7
    
    
    #BYTE PORTA =0xf80
    #BYTE PORTB =0xf81
    #BYTE PORTC =0xf82
    #BYTE ANSELH= 0xF7F
    #BYTE ANSEL  = 0xF7E
    #BYTE TRISA  = 0xF92
    #BYTE TRISB =  0xF93
    #BYTE ADCON2 = 0xFC0
    #BYTE ADCON1 = 0xFC1
    #BYTE ADCON0 = 0xFC2
    #BYTE INTCON = 0xFF2
    #BYTE INTCON2 = 0xFF1
    #BYTE INTCON3 = 0xFF0
    #BYTE T0CON =  0xFD5
    #BYTE TMR0L = 0xFD6
    #BYTE TMR0H = 0xFD7
    #BYTE PIR1 = 0x0F9E
    #BYTE PIE1 = 0x0F9D
    #BYTE T1CON = 0x0FCD
    #BYTE T1GCON = 0x0F9A
    #BYTE TCLKCON = 0x0F52
    //***********************************************************************************************
    #bit INTCON_GIEH = INTCON.7
    #bit INTCON_GIEL = INTCON.6
    #bit INTCON_TMR0IE = INTCON.5
    #bit INTCON_TMR0IF = INTCON.2
    #bit INTCON2_TMR0IP = INTCON2.2
    #bit INTCON_INT0IE = INTCON.4
    #bit INTCON_INT0IF = INTCON.1
    #bit INTCON2_INTEDG0 = INTCON2.6
    #bit INTCON2_INTEDG1 = INTCON2.5
    #bit INTCON3_INT1IE = INTCON3.3
    #bit INTCON3_INT1IF  = INTCON3.0
    #bit  TRISAbits_TRISA0 = TRISA.0
    #bit  TRISAbits_TRISA1 = TRISA.1
    #bit  TRISAbits_TRISA2 = TRISA.2
    #bit  TRISAbits_TRISA3 = TRISA.3
    #bit  TRISAbits_TRISA4 = TRISA.4
    #bit  TRISBbits_TRISB1 = TRISB.1
    #bit  TRISBbits_TRISB0 = TRISB.0
    
    
    //char chuoi_sms="ON_1"; // khai bao chuoi nay de so sanh vs tn,neu tn goi den on 1 thi ham ss chuoi return ve 1,bat role
    //char chuoi_sms2="ON_2"; 
    
    void send_sms(void)
    {
       printf("AT+CMGS=\"0905638093 \"\n"); 
       delay_ms(2000);
       printf("hello Chuan  ^__^ ");
       putc(26); //Ctrl+z,,, enter=13
       delay_ms(1000);
    }
    
    void call(void)
    {
      printf("ATD0905638093;"); 
      putc(13);
      delay_ms(400);
    }
    
    void gsm_config()
    {     
          delay_ms(4000);
          printf("AT\n\r");
          delay_ms(500); 
          printf("AT\n\r");
          delay_ms(500);
          printf("AT\n\r");
          delay_ms(500); 
          printf("AT\n\r");
          delay_ms(500);
          printf("AT+CMGF=1\n\r");
          delay_ms(500);
          printf("AT+CMGF=1\n\r");
          delay_ms(500);
    }
    void main()
    {
     set_tris_c(0x80); 
     
     gsm_config();
     send_sms();
     
     while(true)
      {
      
      }
    }
    Em cảm ơn mọi người đã đọc bài ạ
    thân chào.

Về tác giả

Collapse

chuannt Tìm hiểu thêm về chuannt

Bài viết mới nhất

Collapse

Đang tải...
X