Com. série avec Shield GSM Sim900

Bonsoir à tous, je réalise en ce moment un projet de balise météo qui émet un signal audio via un schield audio mp3 (ça c'est fait ça marche). Je suis en train d'essayer d'ajouter dessus un shield GSM dans le but sur simple envoi d'un SMS d'une retour de la balise avec les valeurs météo. Sachez d'abord que je débute sous Arduino et que je parle très mal anglais ce qui me prive d'un grand nombre de ressources. J'ai donc commandé mon shield à base de Sim900 de chez Seeduino V2.0 (http://www.seeedstudio.com/wiki/GPRS_Shield_V2.0) et les premiers essais sont concluant, j'arrive à envoyer des SMS avec les codes de test que l'on trouve un peu partout sur le net. Dans le cadre de mon projet je me confronte à deux problèmes différents. Le premier est que les pins 7 et 8 (nécessaire pour utiliser le shield gsm en serial software) sont utilisées par mon shield Audio, par contre je n'utilise pas la liaison série(rx tx), quand je change les slot pour passer en hardware sur mon shield et que je refais les essais cela ne marche plus (j'alimente mon arduino avec mon cable USB, je me demande si je n'avais pas lu quelque part que cela coupait les RX/TX, vous m'en direz peut être plus là dessus). En tout cas je n'arrive plus à communiquer avec mon shield via le port série. J'ai bien sûr remplacé les commandes "myserial.xxx par serial.xxx. Mon deuxième problème est que je souhaite récupérer le numéro de tel de la personne qui interroge la balise en lui envoyant un sms, je ne trouve pas la commande AT pour cela. J'ai regardé la librairie Arduino GSM qui a l'air plutôt plus simple à utiliser que les commandes AT directement. Par contre je ne trouve pas dans celle-ci des notions comme le numéro de centre de messagerie qui semblerait indispensable pour l'envoi de SMS? savez-vous si cette librairie peut être compatible avec mon shield car pour le coup elle contient une fonction pour récupérer ce numéro. Merci d'avance pour votre Aide ! Arnaud.

bonjour,
le truc simple a faire et tout con.
tu poses ton shield gsm a coté de ton montage et comme ca, tu peux utiliser n’importe quel pin pour le rx/tx :wink:
tu laisse le cavalier dugsm sur rx/tx hard ou 7/8, comme tu veux et hop

pour le reste, regarde du coté de GOGPRS

j'ai bien pensé à piéger le truc comme ça mais honnêtement j'aimerai bien comprendre pourquoi je n'y arrive pas alors que ça semblerai être plus simple comme ça (pas d'utilisation de software serial) . Sur mon projet global je n'aurai pas la place d'attribuer deux sorties pour créer une liaison série alors que j'ai une dispo que je n'utilise pas. Je vais faire des essais cablés pour voir comment ca tourne. Je regarderai également pour les commandes, Merci de ton aide. Arnaud.

La librairie GoGPRS a l'ai top merci pour l'info! Arnaud.

arnaudsoule: La librairie GoGPRS a l'ai top merci pour l'info! Arnaud.

attention quan dmême, elle est buggée, donc il est préférable d'utiliser les commandes AT.

Je remarque quelque chose en regardant un des exemple de la librairie en question qui me laisse croire que je n'ai pas compris à comment pouvait fonctionner le shield en hardware RX/TX : la libraire software serial est inclue et cette phrase à la déclaration des PIN pour la liaison série m'interroge :

SoftwareSerial mySerial(PIN_GPRS_RX, PIN_GPRS_TX);

je pensais qu'en utilisant les commandes Serial.xxx, les pin RX et TX de l'arduino étaient celles par défaut? A bientôt Arnaud.

Est ce que quelqu'un peu m'éclairer sur la com série?

arnaudsoule:
Je remarque quelque chose en regardant un des exemple de la librairie en question qui me laisse croire que je n’ai pas compris à comment pouvait fonctionner le shield en hardware RX/TX :
la libraire software serial est inclue et cette phrase à la déclaration des PIN pour la liaison série m’interroge :

SoftwareSerial mySerial(PIN_GPRS_RX, PIN_GPRS_TX);

je pensais qu’en utilisant les commandes Serial.xxx, les pin RX et TX de l’arduino étaient celles par défaut?
A bientôt
Arnaud.

bonsoir
je n’ai pas bien saisi ton “probleme”
avec un arduino basique (uno)
le serial hard est contraint aux pins 0(RX=reception par l’arduino ) et 1(TX=emission par l’arduino)
avec le softwareserial , c’est toi qui defini la fonction des pins.
pour tester des equipements en bidirectionnels , au debut le plus simple pour verifier les “actions/reactions” est d’utiliser une simple passerelle Serial<---->Softwareserial (ça permet aussi de faire de l’adaptation de debit)

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2,3); // RX, TX

void setup()  
{
  // Open serial communications 
  Serial.begin(9600);
  
  
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  
}

void loop() 
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}