IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Envoi de SMS via commandes "AT"


Sujet :

Windows

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut Envoi de SMS via commandes "AT"
    Salut,

    Dans le cadre d'un projet scolaire sur un serveur MOM 2005 (Microsoft Operation Manager) je dois gérer une remontée des altertes via SMS.

    Pour ce faire mon prof m'a mis à disposition cette petite bête : http://www.ntstelecom.co.uk/ (la boite grise et bleue en haut a droite)

    l'envoi de SMS fonctionne très bien via le programme fourni mais ca se complique quand je passe à l'envoi en ligne de commandes, la je suis un peu perdu. Voila ce qui m'est fourni comme explications avec la boiboite, j'espère que vous pourrez me dépanner.

    Pour l'envoi de SMS on me dit d'utiliser la commande :

    AT+CMGS=XXXXXXXXX (XXXX etant le numéro de tél)
    mon message^Z
    > +CMGS: 5

    déjà la question que je me pose c'est : mais ou est-ce que je tappe ces jolies lignes ? dans une fenêtre cmd.exe ca me mets que la commande n'est pas reconnue, si je cole ca dans un script vbs ca me mets des erreurs (ca ca me parrais logique ^^)

    Merci d'avance pour votre aide car la je suis complètement coincé et faut que j'arrive a faire marcher ca avant demain midi
    Abyss

  2. #2
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Bonjour et bienvenue sur Developpez.com,

    La "boiboite" est connectée avec quelle interface ? USB ? RS-232 ? RJ45 ?
    Avant de poster, merci de consulter les règles du forum

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    merci pour l'acceuil

    le module est connecté via USB au serveur et apparement est reconnu en tant que port COM3

    l'objectif final de ces commandes sera de pouvoir écrire un petit script que j'intégrerai dans mon serveur MOM

    Merci

  4. #4
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Je pense alors qu'en invite de commande, vous pouvez taper :
    Vous tapez ensuite vos commandes AT et pour terminer : F6 et entrée (pour le Ctrl-Z).

    Sinon dans un fichier batch, vous pouvez écrire directement sur le port com en tapant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo mescommandes > COM3:
    (où "mescommandes" correspond à ce que vous voulez envoyer)
    Avant de poster, merci de consulter les règles du forum

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    donc si je comprends bien, dans la 2ème solution "mescommandes" correspondrait à : AT+CMGS=XXXXXXXXX et mon message^Z (après é moi de voir si je peux les coller, les séparer par une virgule ou je ne sais quoi ) ?

  6. #6
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Oui, après je ne peux pas vous garantir que celà va fonctionner, et dans le 2ème cas je ne sais pas si vous pourrez envoyer le ^Z facilement.

    Je viens de penser à une autre solution, peut-être plus pratique pour vous : vous créez un fichier test.txt qui contient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AT+CMGS=XXXXXXXXXX
    mon message^Z
    Et vous l'envoyez avec la commande suivante :
    N'hésitez pas à faire quelques recherches sur Google sur les commandes AT (je ne suis pas un spécialiste dans ce domaine).

    Bon courage
    Avant de poster, merci de consulter les règles du forum

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    j'ai déjà pas mal recherché d'infos sur la commande AT, on parle souvent des 1001 façcons de l'asaisonner mais jamais précisément de comment l'utiliser pour un débutant

    En tout cas merci pour le coup de pouce, je testerai ca dés demain matin et je vous donnerai un petit feedback, ca peut toujorus servir

    En passant si qqn d'autre à déjà utilisé ce genre de commandes SMS et à une explication toute prète je suis preneur

    Bonne soirée
    Abyss

  8. #8
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    salut,

    j'ai déja pas mal utilisé les commandes AT et je pense être en mesure de répondre à tes questions.

    pour commencer, tu peux effectuer quelques tests en utilisant Hyperterminal.

    Tu configures Hyperterminal pour ouvrir le port com3: en 9600 8N1 ca devrais passer (comme tu as parlé de SMS je supposer qu'il s'agit d'un boitier intégrant un modem GSM )

    Ensuité pour vérifier que le modem est bien connecté tu peux envoyer une commande AT

    AT<enter> le modem doit répondre OK sinon c'est que tu n'as pas de liaison.

    ATI<enter> le modem répond en donnant un identifiant (son nom ou le modèle de modem)

    sagissant de la commande AT pour envoyer le SMS c'est plutot simple avec juste un petit point à surveiller.

    Tu commences par taper comme indiqué :
    AT+CMGS=XXXXXXX <enter>
    le modem doit te répondre en te donnant un prompt
    > <-- comme ça , qsur le prompt tu tapes ton message
    > bla bla <enter>
    > bla bla deuxième ligne <enter>
    > bla bla troisième ligne <ctrlZ> ctrlZ indique au modem la fin du message et l'envoi , le modem répond par un code d'erreur ou de non erreur
    > +CMGS: X ou X et le code résultat


    Si tu as l'intention de coder un programme, il suffit d'ouvrir le port COM:3 (dans ton cas)
    d'écrir sur le port com une première commande AT
    "AT+CMGS=" & NuméroDeTel
    d'attendre que le modem réponde en renvoyant le prompt
    ">" sur réception du prompt tu écris ensuite sur le port com ton message :
    "bla bla" & "bla bla" & chr(26) <--- ctrlZ
    tu n'as plus qu'a récupérer le code d'erreur pour savoir si le SMS est parti ou pas.

    J'espère avoir suffisament répondu à tes questions

  9. #9
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Je test aussi l'envoi de sms via les commande AT.
    J'utilise une connexion USB sur com5.
    Pour tester l'envoi des sms, j'utilise l'hyperterminal de windows.
    J'exécute les différentes commande pour l'envoi du sms mais lorsque je fais le <Ctrl-Z>, il y a une flèche qui apparait sur l'écran de l'yperterminal et rien ne se passe... on dirait que le prompt attends tjrs une commande... je sais pas pourquoi mon <ctrl-Z> n'est pas reconnu... du coup pas de sms d'envoyé !

    Merci d'avance !

    Kayser
    Le temps c'est de l'argent !!!
    Pas d'anomalies, ni de girafes au Kenya !!! ;-)

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Toutes ces fonctionnalités via hyperterminal fonctionnent parfaitement.
    Cependant j'ai un souci, le sms reçu sur mon téléphone ne contient que des caractères "????"

    quelqu'un sait-il pourquoi?

    Merci d'avance

  11. #11
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2012
    Messages : 109
    Points : 47
    Points
    47
    Par défaut
    bonjour

    quel que peu t-il m'aider le problème est que après avoir exécuter mon code il ne ce passe rien et le sms est envoyer
    juste après avoir enlever le câble usb.

    comme faire pour que le sms sois envoyer sont devoir a débrancher le câble usb.

    merci

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
     package packageExemple;
    
    import java.io.*;
    import javax.comm.*;
    import java.util.*;
    
    public class PortWriter
    {
    static Enumeration ports;
    static CommPortIdentifier pID;
    static OutputStream outStream;
    static SerialPort serPort;
    static BufferedReader is = null;
    static PrintStream os;
    static int i=0;
    public PortWriter() throws Exception{
    try
    {
    //serPort = (SerialPort)pID.open("/dev/ttyUSB0",2000);
    serPort = (SerialPort)pID.open("COM3",2000);
        System.out.println();
    System.out.println();
    serPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
    
    try
    {
    is = new BufferedReader(new InputStreamReader(serPort.getInputStream()));
    }
    catch (IOException e)
    {
    System.err.println("Can't open input stream: write-only");
    is = null;
    }
    
    os = new PrintStream(serPort.getOutputStream(),true, "US-ASCII");
    
    
    }
    catch (PortInUseException e)
    {
    System.out.println("PortInUseException : "+e);
    }
    catch (Exception e)
    {
    System.out.println("PortInUseException : "+e);
    }
    
    }
    
    public static void main(String[] args) throws Exception{
    ports = CommPortIdentifier.getPortIdentifiers();
    
    while(ports.hasMoreElements())
    {
    pID = (CommPortIdentifier)ports.nextElement();
    System.out.println("Port " + pID.getName());
    
    if (pID.getPortType() == CommPortIdentifier.PORT_SERIAL)
    {
    //if (pID.getName().equals("/dev/ttyUSB0"))
    if (pID.getName().equals("COM3"))
    {
    PortWriter pWriter = new PortWriter();
    System.out.println("USB found");
    
    sendData();
    
    try
    {
    closingPort();
    }
    catch (Exception e)
    {
    System.out.println("error in calling closingPort()");
    System.out.println(e.toString());
    }
    }
    }
    }
    }
    public static void sendData()
    {
    try
    {
         
    
    
    String sCMGF="AT+CMGF=1\r\n";
    send(sCMGF);
    Thread.sleep(1000);
    readLine();
    
    
            
    String sCMGS="AT+CMGS=\"+33600000000\"\r\n";
    send(sCMGS);
    Thread.sleep(1000);
    readLine();
    String smsMessage="hi test5 testing done\032\r\n";
    send(smsMessage);
    
    
    
    }
    catch (Exception e)
    {
    System.out.println("could not write to outputstream:");
    System.out.println(e.toString());
    }
    }
    //called finally to close the port
    public static void closingPort() throws Exception
    {
    try
    {
    if (is != null)
    is.close();
    }
    catch (IOException e)
    {
    System.out.println("could not close is");
    System.out.println(e.toString());
    }
    
    try
    {
    if (os != null)
    os.close();
    }
    catch (Exception e)
    {
    System.out.println("could not close os");
    System.out.println(e.toString());
    }
    
    try
    {
    if (serPort != null)
    serPort.close();
    }
    catch (Exception e)
    {
    System.out.println("could not close serPort");
    System.out.println(e.toString());
    }
    }
    //send the string to the gsm modem
    public static void send(String cmd)
    {
    try
    {
    os.write(cmd.getBytes());
    }
    catch (IOException e)
    {
    System.out.println("IO Exception : "+e);
    }
    }
    // to read line after each send of string
    public static void readLine()
    {
    try
    {
    // Read the response
    String response = is.readLine();
    System.out.println("Response is :"+response);
    } catch (IOException e)
    {
    System.out.println("IO Exception : "+e);
    }
    }
    
    
    
    }

Discussions similaires

  1. Envoi des sms via un modem en c#
    Par genoud0110 dans le forum C#
    Réponses: 7
    Dernier message: 28/04/2010, 14h35
  2. Envoi/réception SMS via Commandes AT
    Par David Fouejio dans le forum Visual C++
    Réponses: 2
    Dernier message: 01/06/2007, 10h15
  3. envoi de sms via un PC
    Par lidouka dans le forum Ordinateurs
    Réponses: 10
    Dernier message: 11/04/2006, 23h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo