jeudi 26 octobre 2017

GSM - SIM900A compatible Arduino et PIC

Introduction :

Voici un module GSM qui permet l'envoi de sms, mms. Il permettre d'envoyer et de recevoir de sms et mms et de récupérer des informations sur le web. De plus il a accès aux données de localisation.

Nomenclature :


SIM900A pas cher



SIM900A pas cher





Cable Dupont


Firmware (micro logiciel) :

A l'intérieur du SIM900x il y un micro logiciel qui effectue la gestion des commandes AT et de la carte SIM. Ce micro logiciel doit être mis à jour pour être compatible avec les réseaux français.

Première étape (Test si le micro logiciel accepte votre carte sim) :

- Insérer votre carte SIM
- Connecter l'Uart soit en TTL ou en DB9
- Connecter l'alimentation (Attention au polarité et à la tension)
- La led D6 clignote rapidement toutes les 0.8s
- La led D5 est allumée.
- Lancer un terminal (RealTerm) sur le port COM utilisé
- Entrer la commande AT (appuyer sur la touche Entrée a chaque fin de commande)
- Le module doit vous répondre OK, Sinon vérifier la connexion !
- Entrer la commande AT+CPIN?  --> Renvoi l'état de la carte SIM
- Le module envoi SIM-PIN  (Demande code PIN)
- Entrer la commande AT+CPIN=1234  --> Envoi le code PIN (changer 1234 par votre code PIN)
- Le module envoi OK
- Entrer la commande AT+CPIN?  --> Renvoi l'état de la carte SIM
Si le module envoi READY  --> Votre carte sim est prête à être utilisé

Si le module envoi PH-NET SIM Votre carte est verrouillée il faut changer le firmware
- Entrer la commande AT+CSV  --> Renvoi la version du firmware
      Révision : xxxxSIM900x64-xxx       -->     Utiliser le firmware version 64 bits
      Révision : xxxxSIM900x32-xxx       -->     Ne pas utiliser le firmware fourni (il faut en trouver un autre)



Charger un nouveau firmware :

Télécharger le logiciel + le firmware que j'ai testé qui fonctionne en france avec l'opérateur free Cliquez-ici

Liste des étapes à réaliser :

Conseil : enlever votre carte SIM avant de faire la mise à jour

- Décompresser l'archive
- Lancer le logiciel "SIM900 Series download Tools Develop 1.9"
- Onglet SERIAL Download
- Target SIM900 ou SIM900A
- Port (Votre port COM)
- Baud Rate (115200)
- Cocher "Don't chech file name"
- Lancer le téléchargement avec le bouton "Start Download"
- Il faut effectuer un reset (avec un petit fil relier la masse au reset écrit sur la platine) pendant un court instant
- Le téléchargement devrait démarrer.
- Attendre le message "Download Complete" (Il faut être patient)
- Vous devez redémarrer le module en coupant l'alimentation.


Envoi d'un SMS :

AT+CMGF=1                           --> 1 pour affichage en text, 0 pour affichage en hexa
AT+CMGS="06........"              --> Numéro de téléphone du destinataire
>Bienvenu sur CoursDivers.blogspot.com 
Appuyer sur Ctrl+z pour envoyer le sms ou envoyer le code char 26

Réception d'un SMS :

Lors de la réception d'un SMS le module envoi
    +CMTI "SM",index           --> index correspond au numéro du message

AT+CMGR=index,0              --> Lecture du message n°index en mode normal


Envoi d'un MMS :

AT+CMMSINIT                   --> Initialisation des mms

// Configuration :

AT+CMMSCURL="mms.free.fr"                 --> URL sans http://
AT+CMMSCID=1                                         --> Set bearer context id
AT+CMMSPROTO="212.27.40.225",80      --> Proxy et port
AT+CMMSSENDCFG=6,3,0,0,2,4,2,1         --> Paramétre d'emission
AT+SAPBR=3,1,"Contype","GPRS"             --> Set bearer parameter
AT+SAPBR=3,1,"APN","mmsfree"              --> Nom de votre APN
AT+SAPBR=1,1                                             --> Active bearer context
AT+SAPBR=2,1

// Envoi

AT+CMMSEDIT=1                                                         --> Mode édition MMS

AT+CMMSDOWN="TITLE",3,5000                             --> Pour mettre un titre


AT+CMMSDOWN="TEXT",7,5000                              --> Pour envoyer du texte
Bonjour

AT+CMMSRECP="Num Mobile"                                  --> Numéro de téléphone
AT+CMMSBCC="SIM900@coursdivers.fr"
AT+CMMSVIEW
AT+CMMSSEND


AT+CMMSTERM                                                           --> Termine les mms

Pour envoyer une image il suffit de remplacer TEXT par PIC.

AT+CMMSDOWN="PIC",12963,20000                         --> Pour envoyer une image


Réception d'un MMS :

Je n'ai malheureusement pas réussit à recevoir un MMS sur la platine. Il reçoit bien quelque chose, mais il n'indique pas que c'est un MMS et même si j'essaye de le lire, cela ne fonctionne pas. Si vous avez des informations, elles sont les bienvenues

Localisation par réseau mobile :

AT+SAPBR=3,1,"Contype",GPRS        -->     Bearer profile
AT+SAPBR=3,1,"APN","free"              -->     Nom de l'APN de l'opérateur
AT+SAPBR=1,1                                     -->     Activation du profile
AT+SAPBR=2,1                                     -->     Affiche l'adresse ip si connecté


AT+CIPGSMLOC=1,1            -->       Retourne code, longitude, lattitude, date, heure

Grâce à la l'attitude et la longitude vous avez récupéré votre position actuel.

AT+CIPGSMLOC=2,1          -->          Retourne code, date, heure

      Le code correspond à :
              0 success
          601 Network Error
          602 No memory
          603 DNS Error
          604 Stack Busy
      65535 Other Error


AT+SAPBR=0,1                    -->          Desactivation du profile


Remarque :

Je ne peux en aucun cas être responsable de tous dommage causé à votre matériel.



mardi 20 octobre 2015

Extenseur de port I2c - Compatible Arduino, Pic

Introduction :

Un extenseur de port permet d'ajouter à un microcontrôleur un port supplémentaire grâce au bus i2c.
Si vous avez un projet qui requiert une multitude de connexion et que vous ne voulez pas utiliser un microcontrôleur haut de gamme (par exemple Arduino Mega ou PIC32). Grâce au bus I2c, vous allez pouvoir connecter jusqu’à 7 extenseurs de port. Chaque extenseurs à ça propre adresse I2c et dispose de 8 entrées / sorties.

Le PCF8574 :

L'adresse I2c varie de 0100 xxx. Les x représente les 3 bits configurable A0, A1, A2. Il dispose d'un port de 8 bits nommé P0 à P7, chaque bit peut être configuré en entrée ou en sortie. Il dispose aussi d'un sortie d'interruption celle-ci permet d'informer le microcontrôleur (Arduino ou Pic) qu'une des entrées du port à changé d'état.
Tension de fonctionnement 2.5V à 6V, Courant de sortie maximum 100mA pour le port entier (8 bits)

Diagramme représentant le PCF8574
Si on connecte A0, A1, A2 à la masse (GND) comme sur le digramme ci-dessus l'adresse I2c sera donc 0100 000.


Les différents boitier du PCF8574




Pour les microcontrôleur PIC :

void I2cInit(){
    SSPADD = 0x63;
    OpenI2C(MASTER, SLEW_OFF);
}


#define Ad_PCF8574 0x70            // Adresse pour le PCF8574A
ou
#define Ad_PCF8574 0x40           // Adresse pour le PCF8574

Pour lire le port :

unsigned char Lecture_PCF8574(){
    char r;
   
    StartI2C();
    WriteI2C(Ad_PCF8574 + 1);
    r = ReadI2C();
    StopI2C();

    return r;
}

Remarque : Si on veut utiliser l'interruption, il suffit d'appeler la fonction Lecture_PCF8574 a chaque interruption.

Pour écrire sur le port :

void Ecriture_PCF8574(unsigned char PORT){
    signed char S;
    char dummy;

    StartI2C();
    S = WriteI2C(Ad_PCF8574);
    if(S == -1){                // Collision sur le bus ?
        dummy = SSPBUF;         // clear the buffer,
        SSPCON1bits.WCOL = 0;   // clear collision status bit
    }
    WriteI2C(PORT);             // P7 à P0
    StopI2C();
}



Pour Arduino :


const int ad = 0x70;         // Adresse pour le PCF8574A
ou
const int ad = 0x40;         // Adresse pour le PCF8574

Wire.begin();

Pour lire le port :

char port;

Wire.beginTransmission(ad);
Wire.requestFrom(ad,1, true);
port = Wire.read();

Pour écrire sur le port :

Wire.beginTransmission(ad);
Wire.write(0x50);                                   // Ecrit 0x50 sur le port expander
Wire.endTransmission(true);


Remarque :

Ce composant peut être utilisé pour contrôler un écran 16*2 lignes grâce à l'I2c.

J'ai choisi de présenter ce composant, car il est disponible en boitier DIP qui permet d'utiliser des plaquettes d'essai

Il est disponible en échantillon gratuit sur le site https://store.ti.com/

Cliquez-ici pour voir la documentation.

Sponsors