Envoie SMS depuis RS232 en mode pdu
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Envoie SMS depuis RS232 en mode pdu



  1. #1
    invite32f52f71

    Envoie SMS depuis RS232 en mode pdu


    ------

    Bonjours à tous
    je souhaite envoyer un sms à partir du pic vers un mobile à travers un modem gsm interne au téléphone portable sony ericson c905 (fonctionnant en mode pdu), ça marche sous isis comme le montre la figure ci jointe, mé le msg n'a pas été envoyé vers le destinataire.
    Quelqu'un peut il m'aider à comprendre pour quoi??

    voici le programme sous ccs

    Code:
    void SendSMS(void)
     {
       delay_ms(1000);
       
       fprintf(GSM,"AT\r\n");
    
       do
       {
          while(!kbhit(GSM));
          datan = fgetc(GSM);
       }
       while(datan!=0x0d);
    
       do
       {
          while(!kbhit(GSM));
          last_data=datan;
          datan = fgetc(GSM);
       }
       while((last_data!='O')||(datan!='K'));
    
       fprintf(GSM,"AT+CMGF=0\r\n");
    
       do
       {
          while(!kbhit(GSM));
          datan = fgetc(GSM);
       }
       while(datan!=0x0d);
    
       do
       {
          while(!kbhit(GSM));
          last_data=datan;
          datan = fgetc(GSM);
       }
       while((last_data!='O')||(datan!='K'));
    
       //fprintf(GSM,"AT+CMGS=26\r\n");
    
       delay_ms(1500);
       
       fprintf(GSM,"0011000881023419510000AA09412AB5E8A4269F4E\x1a\r\n");    //ENVOI LE MOT ATTENTION VERS LE NUM 20439115
       fprintf(GSM,"\n\r");
    
     fprintf(GSM,"AT+CMGS=26\r\n");
    
       do
       {
          while(!kbhit(GSM));
          datan = fgetc(GSM);
       }
       while(datan!=0x0d);
    
       do
       {
          while(!kbhit(GSM));
          last_data=datan;
          datan = fgetc(GSM);
       }
       while((last_data!='O')||(datan!='K'));
    
       delay_ms(1000);
     }

    -----
    Images attachées Images attachées  
    Dernière modification par Jack ; 21/05/2013 à 13h08. Motif: c'est quand même plus présentable avec des balises code

  2. #2
    carcan

    Re : Envoie SMS depuis RS232 en mode pdu

    Hello !

    et le MAX232 il est où ???

    A+
    Laurent

    Merci de mettre le code source complet dans tes messages

  3. #3
    invite32f52f71

    Re : Envoie SMS depuis RS232 en mode pdu

    le max n'influe pas sous isis
    voila le code complet

    #include "C:\Users\microlux\Desktop\TEM P\main.h"
    #use delay(clock=20000000)
    #fuses hs
    //#include <lcd.c>
    #include <stdlib.h>
    #include <string.h>
    #include <MyLcdDrv.c>
    #include <math.h>
    #use rs232(baud=9600, xmit=PIN_D0, rcv=PIN_D1, bits=8, stream=GSM)
    #include <string.h>


    //void send(int cp);

    float rtdv,rtdv1,I,v,niv;
    float rtdr,rtdr1;
    float temp,temp1,y,y1;
    int cp;


    char datan,last_data;

    void SendSMS(void)
    {
    delay_ms(1000);

    fprintf(GSM,"AT\r\n");

    do
    {
    while(!kbhit(GSM));
    datan = fgetc(GSM);
    }
    while(datan!=0x0d);

    do
    {
    while(!kbhit(GSM));
    last_data=datan;
    datan = fgetc(GSM);
    }
    while((last_data!='O')||(datan !='K'));

    fprintf(GSM,"AT+CMGF=0\r\n");

    do
    {
    while(!kbhit(GSM));
    datan = fgetc(GSM);
    }
    while(datan!=0x0d);

    do
    {
    while(!kbhit(GSM));
    last_data=datan;
    datan = fgetc(GSM);
    }
    while((last_data!='O')||(datan !='K'));



    delay_ms(1500);

    fprintf(GSM,"00110008810234195 10000AA09412AB5E8A4269F4E\x1a\ r\n"); //ENVOI LE MOT ATTENTION VERS LE NUM 20439115
    fprintf(GSM,"\n\r");

    fprintf(GSM,"AT+CMGS=26\r\n");

    do
    {
    while(!kbhit(GSM));
    datan = fgetc(GSM);
    }
    while(datan!=0x0d);

    do
    {
    while(!kbhit(GSM));
    last_data=datan;
    datan = fgetc(GSM);
    }
    while((last_data!='O')||(datan !='K'));

    delay_ms(1000);
    }





    void main() {
    output_low(LCD_RW);
    set_tris_A(0xff);
    set_tris_D(0x00);
    set_tris_C(0x00);
    lcd_init();




    setup_port_A(ALL_ANALOG);
    setup_adc( ADC_CLOCK_INTERNAL );



    while(1)
    {

    //mesure 1ere temp

    set_adc_channel(0);
    rtdv = read_adc();
    rtdv=rtdv*5/1024;
    rtdv=rtdv/5;
    rtdr=rtdv*1000.0/(5.0-rtdv);
    y=0.15274-(rtdr-100.0)*0.0002310;
    if(y>=0)y=sqrt(y);
    temp=(y-0.39083)/(-0.0001155);

    lcd_init();
    delay_ms(1000);
    lcd_gotoxy(1,1);
    printf(lcd_putc,"temp_eau");
    lcd_gotoxy(1,2);
    printf(lcd_putc,"%0.2f °C",temp);
    delay_ms(3000);


    if (temp>50)
    {
    lcd_init();
    lcd_gotoxy(1,1);
    lcd_putc("Attention!!");
    SendSMS();
    }
    delay_ms(3000);


    }
    }

  4. #4
    invite32f52f71

    Re : Envoie SMS depuis RS232 en mode pdu

    schéma sous isis
    Images attachées Images attachées  

  5. A voir en vidéo sur Futura
  6. #5
    invite32f52f71

    Re : Envoie SMS depuis RS232 en mode pdu

    le mobile utilisé comme modem gsm est détecté par le pc comme port 2, et donc la RS232 est connectée sous isis sur le port 2
    le msg attention est envoyé lorsque la température"temp" dépasse 50°C

  7. #6
    invitecebfefc0

    Re : Envoie SMS depuis RS232 en mode pdu

    j'attends aussi les reponses

  8. #7
    Jack
    Modérateur

    Re : Envoie SMS depuis RS232 en mode pdu

    J'ai pourtant montré que c'était mieux de présenter du code entre les balises code. La moindre des choses serait de faire un effort et de les mettre toi même !

  9. #8
    invitecebfefc0

    Re : Envoie SMS depuis RS232 en mode pdu

    oups ! j'espere que vous n' etes pas tous aussi ' gentils ' sur ce forum !
    moi aussi chui débutante ici , je viens rarement que pour poser des questions et je sais pas comment présenter un code entre des ' balises ' machin

  10. #9
    invitecebfefc0

    Re : Envoie SMS depuis RS232 en mode pdu

    Code:
    #include "C:\Users\microlux\Desktop\TEM P\main.h"
    #use delay(clock=20000000)
    #fuses hs
    //#include <lcd.c>
    #include <stdlib.h>
    #include <string.h>
    #include <MyLcdDrv.c>
    #include <math.h>
    #use rs232(baud=9600, xmit=PIN_D0, rcv=PIN_D1, bits=8, stream=GSM)
    #include <string.h>
    
    
    //void send(int cp);
    
    float rtdv,rtdv1,I,v,niv;
    float rtdr,rtdr1;
    float temp,temp1,y,y1;
    int cp;
    
    
    char datan,last_data;
    
    void SendSMS(void)
    {
    delay_ms(1000);
    
    fprintf(GSM,"AT\r\n");
    
    do
    {
    while(!kbhit(GSM));
    datan = fgetc(GSM);
    }
    while(datan!=0x0d);
    
    do
    {
    while(!kbhit(GSM));
    last_data=datan;
    datan = fgetc(GSM);
    }
    while((last_data!='O')||(datan !='K'));
    
    fprintf(GSM,"AT+CMGF=0\r\n");
    
    do
    {
    while(!kbhit(GSM));
    datan = fgetc(GSM);
    }
    while(datan!=0x0d);
    
    do
    {
    while(!kbhit(GSM));
    last_data=datan;
    datan = fgetc(GSM);
    }
    while((last_data!='O')||(datan !='K'));
    
    
    
    delay_ms(1500);
    
    fprintf(GSM,"00110008810234195 10000AA09412AB5E8A4269F4E\x1a\ r\n"); //ENVOI LE MOT ATTENTION VERS LE NUM 20439115
    fprintf(GSM,"\n\r");
    
    fprintf(GSM,"AT+CMGS=26\r\n");
    
    do
    {
    while(!kbhit(GSM));
    datan = fgetc(GSM);
    }
    while(datan!=0x0d);
    
    do
    {
    while(!kbhit(GSM));
    last_data=datan;
    datan = fgetc(GSM);
    }
    while((last_data!='O')||(datan !='K'));
    
    delay_ms(1000);
    }
    
    
    
    
    
    void main() {
    output_low(LCD_RW);
    set_tris_A(0xff);
    set_tris_D(0x00);
    set_tris_C(0x00);
    lcd_init();
    
    
    
    
    setup_port_A(ALL_ANALOG);
    setup_adc( ADC_CLOCK_INTERNAL );
    
    
    
    while(1)
    {
    
    //mesure 1ere temp
    
    set_adc_channel(0);
    rtdv = read_adc();
    rtdv=rtdv*5/1024;
    rtdv=rtdv/5;
    rtdr=rtdv*1000.0/(5.0-rtdv);
    y=0.15274-(rtdr-100.0)*0.0002310;
    if(y>=0)y=sqrt(y);
    temp=(y-0.39083)/(-0.0001155);
    
    lcd_init();
    delay_ms(1000);
    lcd_gotoxy(1,1);
    printf(lcd_putc,"temp_eau");
    lcd_gotoxy(1,2);
    printf(lcd_putc,"%0.2f °C",temp);
    delay_ms(3000);
    
    
    if (temp>50)
    {
    lcd_init();
    lcd_gotoxy(1,1);
    lcd_putc("Attention!!");
    SendSMS();
    }
    delay_ms(3000);
    
    
    }
    }
    Dernière modification par Jack ; 21/05/2013 à 22h12.

  11. #10
    invitecebfefc0

    Re : Envoie SMS depuis RS232 en mode pdu

    voila je viens de mettre son code entre les balises HTML,je viens de le découvrir et c pas sorcier ! une simple et gentille remarque de votre part pouvait faire l'affaire !
    le surprenant c'est que vous êtes un modérateur ! et c clair que celui qui a posé la question est un débutant tout comme moi

    pauvres de nous on est pas les bienvenus :'(

  12. #11
    Jack
    Modérateur

    Re : Envoie SMS depuis RS232 en mode pdu

    La vie risque d'être difficile si tu t'offusques de la moindre petite remarque qui te contrarie. Saches que les gens qui vont répondre vont devoir faire l'effort de lire un code avec d'autant plus de difficultés qu'il sera mal présenté.

    et c clair que celui qui a posé la question est un débutant tout comme moi
    Débutant peut-être, mais pour ma part lorsque je m'invite quelques part, j'essaie au maximum de respecter les usages en cours. Un bref parcours d'autres discussions auraient montré l'évidence de ces balises.

    En passant, il ne s'agit pas de code html, donc les balises que tu as utilisées ne sont pas les bonnes. De plus, sans indentation du code, les balises ne présentent plus aucun intérêt.

    En espérant ne pas trop t'avoir froissée.

  13. #12
    invitecebfefc0

    Re : Envoie SMS depuis RS232 en mode pdu

    Non pas du tout merci pour la rectification
    j'ai de la chance ! le modérateur qui a répondu à mes premières questions 'banales ' n'etait pas vous
    (amicalement

  14. #13
    spown

    Re : Envoie SMS depuis RS232 en mode pdu

    Ça donne quoi comme erreur ? c'est quoi environnement ? PIC ?? le vrai schéma ?

  15. #14
    invite32f52f71

    Re : Envoie SMS depuis RS232 en mode pdu

    l'erreur est au niveau de l'hyperterminal:
    +CMS ERROR: 304
    Et donc l'envoi a échoué

  16. #15
    spown

    Re : Envoie SMS depuis RS232 en mode pdu

    Ton histoire se chevauche, essaye d'organiser tes idées pour avoir une réponse soit disant "rapide".

    Tu donnes même pas le temps pour expliquer ce que t'as fait, et les outils utilisé ( composants et logiciel ) et un lien vers les datasheets. Et tu nous demandes de tes expliquer pourquoi ça marche pas à partir d'un simple bout de code !?! ( je pense tu vas attendre jusqu’à....20xx et espérer si ... )

    ( TU initialises le LCD dans le while(1) !!!!?? et "while" dans le do while ??!!!! et c'est quoi ca "kbhit" je sais que une fonctionne mais qu'est ce qu'il y a dedans !? )

Discussions similaires

  1. envoie un char a travers une liaison rs232
    Par invited776d929 dans le forum Électronique
    Réponses: 5
    Dernier message: 02/05/2012, 10h19
  2. Mode PDU
    Par inviteafa9cf6f dans le forum Électronique
    Réponses: 1
    Dernier message: 05/06/2011, 18h29
  3. mode PDU ET TEXTE
    Par invite062eba2b dans le forum Électronique
    Réponses: 1
    Dernier message: 02/06/2011, 18h30
  4. PDU Mode
    Par inviteb0aa7dd4 dans le forum Électronique
    Réponses: 2
    Dernier message: 01/05/2010, 15h15
  5. envoie sms en langage c
    Par invite7670cc44 dans le forum Électronique
    Réponses: 0
    Dernier message: 10/04/2008, 14h25
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...