Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Interface module GSM-pic 16f628a




  1. #1
    messay

    Interface module GSM-pic 16f628a

    bonjours
    tout le monde

    pour interfacer avec le module GSM
    émettre le "AT" ce AT est écrit en quel code est ce de l'ASCII
    je sais il est transmis en série avec quels débit (Baud)

    quel code transmettre au module GSM pour régler le débit

    est ce qu'il y est un acquittement a chaque mot transmis

    priere donner la trame a transmettre et le code transmis au module GSM sa doit etre du binaire des "1" et "0"
    mais quel code ASCII ou autres.

    utilisation du langage C ou assembleur chacun peut s’en sortir juste donner la trame ecrite en binaire avec specification des lettres A T chiffre ou N Phone ext...

    cordiales salutations

    -----


  2. Publicité
  3. #2
    adipie

    Re : interface module GSM-pic 16f84

    Bonjour,
    Un exemple en MikroBasic qui vérifie que le modem est bien connecté:
    Code:
    sub procedure SrCreg()           'Vérif. si connecté
    UART1_Write_Text("AT+CREG?")
    UART1_Write(0x0D)
    UART1_Write(0x0A)
    Delay_ms(1000)
    end sub
    Vitesse 9600 bauds
    Maintenant il n'est pas interdit de lire le data sheet du modem utilisé:

  4. #3
    f6bes

    Re : interface module GSM-pic 16f84

    Citation Envoyé par messay Voir le message
    je sais il est transmis en série avec quels débit (Baud)

    quel code transmettre au module GSM pour régler le débit

    est ce qu'il y est un acquittement a chaque mot transmis

    priere donner la trame a transmettre et le code transmis au module GSM sa doit etre du binaire des "1" et "0"
    mais quel code ASCII ou autres.
    Bjr à toi,
    Je crois que tu n'auras PAs de réponses à tes questionnements.
    Regarde donc la DATE DE LA DEMANDE .
    C'est la premiére chose à faire AVANT de répondre à une discussion.
    Bonne journée
    "Ce fut la goutte d'eau de trop qui mit le feu aux poudres!"


  5. #4
    Antoane

    Re : interface module GSM-pic 16f84

    Bonjour et bienvenue à toi, messay, sur futura

    Ta question a été séparée du fil déterré et déplacée ici, ou tu devrais recevoir davantage de réponses

    Bonne journée.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  6. #5
    messay

    Re : Interface module GSM-pic 16f84

    bonjours

    Merci Antoane pour la redirection
    merci f6bes pour la remarque je suis nveau
    merci adipe pour le code

    néanmoins, je travail avec le pic 16f628a. il est équipé d'un port uart
    je programme en assembleur (pas en langage évolué : ni le "C" ni le "C++" ni autre.)

    Après recherche sur le net il s’avère que transmettre 1 mot (8bites) du PIC via module GSM s"utilise via le code ASCII mais un transcodeur avant dit
    PDU ????

    si quelqu'un m'oriente pour avoir le datasheet de ce transcodeur PDU et du port FBUS et déchiffrer la trame (entête, numéros de destination le message et ce fameux checksom1&2).

    cordiales salutations

  7. A voir en vidéo sur Futura
  8. #6
    paulfjujo

    Re : Interface module GSM-pic 16f84

    bonjour


    Code:
    "AT+CMGF=?" in the HyperTerminal program. 
    If the response is "+CMGF: (0,1)" (0=PDU mode and 1=text mode),
     then SMS text mode is supported.
     If the response is "+CMGF: (0)", then SMS text mode is not supported.
    
    AT+CMGF=1                        Switch to text mode before sending SMS

  9. #7
    adipie

    Re : Interface module GSM-pic 16f84

    Bonjour,
    Pour commencer donne un lien de ton modem GSM, il sera plus facile de te répondre.
    J'ai crée une appli windows qui permet d'envoyer des commandes AT à un modem GSM pour le tester sans utiliser un PIC dans un premier temps.
    Une fois que tu arrives à envoyer un SMS avec le PC, il est facile de reproduire la manip avec un PIC.
    Pour envoyer un SMS et une fois que le modem est connecté, il faut lancer les commandes AT suivantes:
    "AT+CMGF=1" + chr(13) + chr(10) pour mettre le modem en mode texte.
    "AT+CMGS=0600000000" + chr(13) + chr(10) (N° tél destinataire)
    "Ceci est le message" + chr(13) + chr(10) (Message à envoyer)
    Chr(26) (CTRL Z) (Contrôle Z)

    Voir pièce jointe.
    TestSms.JPG
    Je peux t'envoyer cette appli, il suffit de me donner ton adresse en MP

  10. Publicité
  11. #8
    messay

    Re : Interface module GSM-pic 16f84

    merci Big Brother
    ma question est mal partie au début !!

    le mini projet que je veux réaliser c'est d'utiliser la PORTB du PIC pour transmettre un événement (SMS) via le module GSM suite a (une modification d'un ou plusieurs état du PORTB).

    comment je procède:
    après connaître la trame en ASCII celle ci est chargée tell qu'elle dans des registres du PIC qui seront lu en cascade et transmis via l'USART du pic au module GSM (dans le programme du PIC)
    créer un programme en assembleur qui teste le PORTB en permanence et si modif y est charge la valeur du PORTB au registre dedier au message dans la trame (cascade de registres constituant la trame comme dite AT +CMGF = et AT + CMGS=) mais tous ça en ASCII ou a défaut en hexadécimal
    afin de pouvoir créer le fichier.Hex qui sert à graver le PIC

    le titre est mal partie aussi j'utilise le PIC 16F628a il est doter du port UART pas comme le 16F84a

    cordiales salutations

  12. #9
    adipie

    Re : Interface module GSM-pic 16f84

    Ce que tu souhaites réaliser est parfaitement possible, mais il est difficile de t'aider car tu ne répond pas aux questions.
    Pour la dernière fois, donne un lien ou la réf. de ton modem.

  13. #10
    messay

    Re : Interface module GSM-pic 16f628a

    Bonjour,
    Pour commencer donne un lien de ton modem GSM, il sera plus facile de te répondre.
    J'ai crée une appli windows qui permet d'envoyer des commandes AT à un modem GSM pour le tester sans utiliser un PIC dans un premier temps.
    Une fois que tu arrives à envoyer un SMS avec le PC, il est facile de reproduire la manip avec un PIC.
    Pour envoyer un SMS et une fois que le modem est connecté, il faut lancer les commandes AT suivantes:
    "AT+CMGF=1" + chr(13) + chr(10) pour mettre le modem en mode texte.
    "AT+CMGS=0600000000" + chr(13) + chr(10) (N° tél destinataire)
    "Ceci est le message" + chr(13) + chr(10) (Message à envoyer)
    Chr(26) (CTRL Z) (Contrôle Z)

    bonjours Big Brother,

    merci pour la trame elle est encore opaque pour moi mais y a possibilité de la diluée plus merci.
    (si vous utilisez l'hyper terminal ou autre langage équipe de "LIB ou biblio") pour mon cas j'utilise un PIC il faut lui injecter tous et le prog

    dans le fichier.hex

    "ce "+" et "Chr(13)" ext... de la trame que vous m'avait transmise doit être fait " le tous en binaire"
    chr(13) chr(10) : quelles interprétation en binaire ou hexadécimal? c'est quoi comme définition ou rôle dans la trame
    CTRL Z est ce la cheksum? est ce le xor de tous les bytes transmis!


    pour la progt et compilation j'utilise le MPLAB.IDE de Microchips

    pour le modem c'est un: gprs/gsm shield v1.0 elecrow SIM900

    du moins ce qui est mentionné initialement utilisé avec ARDUINO

    cordiales salutations

  14. #11
    messay

    Re : Interface module GSM-pic 16f628a

    bonjours tt le monde

    concernant l'interfaçage du PIC via UART et le module GSM et après quelques recherches la trame sur la pin TXD et en Hexadécimal (code ASCII en Hexadécimal) le mot est codé sur 10 bites un star + huit bits du chiffre + le bit stop

    la commande AT (pour attention) + CMGF=1<cr>
    elle se traduit par un code (une trame) sur la pin TXD du RS 232 comme suit:
    start 82 stop start 2A stop start D4 stop start C2 stop start B2 stop start E2 stop start 62 stop start BC stop start 8C stop start B0

    la trame AT+CMGF=1<retour-chariot>

    pour chaque caractère un registre du PIC et il faut utiliser l'instruction swap du PIC
    exemple le A code 41 swapper donne 82

    attribuer a chaque caractère un registre et lord de la transmission charger le contenu registre après registre sans oublier de swapper
    et transférer le tous dans le registre de l'UART / TXRG. ne pas omettre de configurer le registre d’état de l'UART/ TXSTA et RCSTA
    cordiales salutations

  15. #12
    paulfjujo

    Re : Interface module GSM-pic 16f628a

    bonjour,

    Citation Envoyé par messay Voir le message
    attribuer a chaque caractère un registre et lord de la transmission charger le contenu registre
    après registre sans oublier de swapper et transférer le tous dans le registre de l'UART / TXRG.
    depuis quand doit on swaper le byte avant de l'envoyer sur l'UART ?
    pour envoyer 'A' = 0x41 ..on envoi 0x41 dans le registre de transmission ..


    Concernant la numerotaion
    il faudarait verifier quel standard utilise le Centre SMS utilisé
    je le signal ici, car j'ai beaucoup galéré avec cet envoi de numero !

    Verifier le format de la numerotation
    en questionnant le fournisseur de service SMS
    129 if the SMSC address does not start with a "+" character. For example, "85291234567".
    145 if the SMSC address starts with a "+" character. For example, "+85291234567".


    Query service center.
    AT+CSCA?\r (\r 0x0D ou 13)
    reponse
    OK
    A: "+33695000695",145
    en exemple le Centre SMS : +33695000695 = Free
    le format utilise le +, code international (France) et 9 chiffre (zero du 06 supprimé)

    le numero de telephone doit etre entre "". (guillemet)

    exemple:

    avec un GSM2-click de mE + cliker2 PIC18F87J50

    Code:
    
    UART1 -> outil de debuggin Display
    UART2 <-> celui qui est relié à mon GSM
    
    void Envoi_SMS(char *T)
    {
    
          UART1_Write_CText(" \r\n Contenu du SMS à envoyer\r\n") ;
          UART1_Write_Text(T);
          CRLF1();
          RAZ_UART2(); // raz buffer2 et arme IT RX UART2
    
          UART1_Write_CText(" Compose Numero (AT+CMGS=+336123456789)\r\n");
       
          UART2_Write_CText("AT+CMGS=\"+336123456789\"\r");
          Delay_ms(3000);  // attendre reponse
          UART1_Write_Text(buffer2);  // display le contenu du buffer2
          if(buffer2[0]='>')      // ce caractere indique que la connection est OK
          {
               RAZ_UART2();  // Raz buffer2 et rearme IT UART2 RX
               // envoi  SMS + <CTRL+Z><CR>
               UART1_Write_CText(" OK pour envoi Msg txt \r\n");
               UART2_Write_Text (txt);   // envoi du text SMS
               UART2_Write(13);
               UART2_Write(10);
               UART2_Write(26); // 0x1A
               RAZ_UART2();
               Delay_ms(2500);  // attente reponse
               UART1_Write_Text(buffer2);
               CRLF1();
               RAZ_UART2();
             }
       }
    ce qui donne sur le terminal display (UART1)
    la sequence suivante observee sur mon terminal (servant au debugging)
    les donnes à envoyéer comme texte du SMS sont stockées dans la variable table txt

    19:04:57.875> Constitution du SMS à envoyer
    19:04:57.875>
    19:04:57.875> GSM2 PIC18F87J50:
    19:04:57.875> BP1 = 1 BP2 = 1
    19:04:57.968> EA1= 127
    19:04:57.968> Temp= 19.98°C
    19:04:57.968> End.
    19:04:57.968> Envoi SMS text (AT+CMGS=+336123456789)
    19:05:01.000> > OK pour envoi Msg txt
    19:05:07.375> Recept UART2 :
    19:05:07.375> +CMGS: 120
    19:05:07.375> OK
    Dernière modification par paulfjujo ; 06/10/2015 à 13h31.

  16. #13
    adipie

    Re : Interface module GSM-pic 16f628a

    Un exemple de code en MikroBasic avec un modem TC35.
    Code:
    sub procedure Envoi(dim Ev, Des as byte)   'Envoi SMS
      UART1_Write_Text("AT+CMGF=1")  
        if des = 1 then UART1_Write_Text("AT+CMGS=0600000000") end if 
        if des = 2 then UART1_Write_Text("AT+CMGS=0600000000") end if 
        UART1_Write(0x0D)
        UART1_Write(0x0A)
        Delay_ms(100)
          if Ev = 1 then UART1_Write_Text("Message 1") end if
          if Ev = 2 then UART1_Write_Text("Message 2") end if
          UART1_Write(0x0D)
          UART1_Write(0x0A)
          Delay_ms(100)
            UART1_Write(0x1A)                                        
     end sub

  17. #14
    messay

    Re : Interface module GSM-pic 16f628a

    bonjours

    ERRATA

    pour transmettre via le PIC le mot doit être écrit en clair sur le registre TXREG qui le transmettra au registre TSR inaccessible a l’opérateur

    ce registre TSR est conçus comme (entrée parallèle sortie série G/D)

    le bit D0 est envoyer en premier après le bit start, le bit D7 en dernier juste avant le bit stop ce qui donne sur la ligne TXD (un swap des données transmis)

    concernant le module GSM les différences qui peuvent exister c'est la vitesse de transmission par défaut

    pour le SIM 300 par défaut c'est 9600 Bds
    pour changer le débit il faut accéder au module avec le débit de 9600Bds
    introduire le nveau débit par:
    AT+IRP=19200<cr>
    reconfigurer le PIC avec nveau débit

    pour le SIM900 c'est auto, la commande par défaut c'est : AT+IPR=0 (mode auto)
    mais de préférence fixer le débit par la formule AT+IRP= (débit souhaiter) <cr>

    CDLT

Sur le même thème :

Discussions similaires

  1. ADC evec PIC 16F628A??
    Par RanaMona dans le forum Électronique
    Réponses: 5
    Dernier message: 11/02/2015, 12h35
  2. programmer un pic 16f628a
    Par salah951357 dans le forum Électronique
    Réponses: 29
    Dernier message: 17/09/2013, 09h27
  3. interface module GSM-pic 16f84
    Par ghadou87 dans le forum Électronique
    Réponses: 16
    Dernier message: 09/05/2013, 23h36
  4. passer d'une interface serie a une interface parallele ?
    Par cyber37 dans le forum Électronique
    Réponses: 8
    Dernier message: 15/04/2010, 22h01
  5. DS1307 & PIC 16f628A
    Par zied74 dans le forum Électronique
    Réponses: 6
    Dernier message: 03/07/2009, 12h16