SIM900 : impossible de recevoir un sms, SIM900.available toujours à 0

Bonjour,
Avec un shield SIM900, j’arrive à emettre des appels, mais je n’arrive pas à lire des SMS.
J’ai vérifié le code et le cablage 10 fois, rien n’y fait.
Le premier truc qui m’interpèle c’est que SIM900.available() renvoie toujours la valeur 0.

#include <SoftwareSerial.h>
char data = 0;
SoftwareSerial SIM900(7, 8);

void setup()
{
Serial.begin(115200);
Serial.println("Power on");
SIM900.begin(19200);
delay(20000);
SIM900.print("AT+CMGF=1\r"); 
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r"); 
Serial.println("Ready");
}
 
void loop()
{
if (SIM900.available()>0)
  {
  data = SIM900.read();
  Serial.print("SMS received, data : ");
  Serial.println(data);
  }
  delay(500);
Serial.print("Wait for SMS : ");
Serial.println(SIM900.available());
delay(500);
}

J’ai essayé de changer les vitesses, pas de changement.
Aucune idée ?
Merci.

Vous avez déjà 2 discussions ouvertes dans le forum En anglais sur ce sujet. Vous ne pensez pas que c’est suffisant ?

En fait, j’ai besoin que d’une seule réponse, et pour l’instant j’ai collé tout le monde, quelque soit la langue.
Donc, non ce n’est pas suffisant, et j’ai peur que votre dernière réponse ne m’aide pas beaucoup :)...

À mon avis Vous n’avez « collé » personne, juste que personne ne veut vous aider vu le niveau de collaboration et votre réactivité

Je vous ai demandé de faire certains tests vous n’avez pas eu la décence de répondre. Vous affirmez péremptoirement avoir tout testé mais fournissez des infos au compte goutte...

Poster à plusieurs endroit du forum est contraire à l’éthique de ce forum, donc je passe mon tour.

Hello JML,
Inutile de se vexer... Question réactivité, vous avez raison, je fais ce que je peux. Question collaboration, je ne partage pas votre point de vue, je suis désolé que vous aillez cette impression, il est évident que je n'ai aucun intérêt à ne pas l'être...
J'ai essayé toutes les vitesses, une par une, je l'avais déjà indiqué, et sans succès.
De plus, comme j'arrive à passer un appel mais pas à recevoir des sms, ce serait surprenant que la vitesse soit compatible de l'un mais pas de l'autre.
Par ailleurs, j'ai commandé un FTDI pour pouvoir tester le module en reception. Je ne l'ai pas encore reçu.
Dernier point : le post que j'ai ouvert ici est circonscrit à la fonction SIM900.available() qui reste à 0, afin d'essayer de régler le problème pas à pas.
Voilà toute l'histoire...

pas vexé du tout ne vous en faites pas :slight_smile:

je vous ai demandé sur le forum anglais il y a presque 3 semaines - toujours sans réponse...

Use a default piece of code listeneing to the Serial console input and relay that to your gsm and print out what you receive back

If by send AT you don't get an OK back there is no need to dig further... change baud rates until your modules connect properly

(Provide information on how those things are wired and powered as well
And which module you exactly have)

Donc...

Je viens de recevoir le FTDI, je vais pouvoir faire ce que vous m'avez suggéré et ainsi passer une commande AT.
Désolé pour ma lenteur à répondre, j'ai des déplacements entre 2.
Je vous réponds sous peu.

J'ai essayé en suivant le tuto SIM900 GSM GPRS Shield with Arduino | Random Nerd Tutorials
J'ai donc connecté le FTDI directement sur la SIM900, Rx, Tx et GND.
Quand je tape AT sur le Serial Monitor, rien ne se passe. J'ai essayé toute les vitesses.
Ce qui aurait tendance à dire que ma carte SIM900 soit HS. Ce qui est étrange tout de même c'est que j'arrive quand même à passer des appels....

J'ai un FTDI Geekcreit® ft232rl ftdi usb to ttl serial converter adapter module geekcreit for arduino - products that work with official arduino boards Sale - Banggood.com
Et la SIM900 : Sim900 quad band gsm gprs shield development board geekcreit for arduino - products that work with official arduino boards Sale - Banggood.com

faites des liens clickable, vous n'êtes plus un débutant complet ici...

hum - un appel consomme entre 130 et 200mA mais utiliser le GPRS consommera 453 mA avec un burst qui peut monter à 2A

comment vous l'alimentez ?
ensuite faudrait s'assurer à 100% que les jumpers sont bien mis et que votre interface série parle bien au FTDI qui est bien connecté aux bons endroits (il y a 2 GND à connecter)

+1
pas évident d'exploiter confortablement des liens non cliquables avec un smartphone.......

j'ai essayé en suivant le tuto SIM900 GSM GPRS Shield with Arduino | Random Nerd Tutorials

Y compris en utilisant une alimen 5V / 2A comme précisé en plusieurs endroits dans ce tutoriel ?

Désolé pour les liens :
Le FTDI : Geekcreit® ft232rl ftdi usb to ttl serial converter adapter module geekcreit for arduino - products that work with official arduino boards Sale - Banggood.com

Le SIM900 :Sim900 quad band gsm gprs shield development board geekcreit for arduino - products that work with official arduino boards Sale - Banggood.com

J'ai branché le FTDI, j'ai changé l'alim pour en prendre une récente, 2A sous 5 V, je selectionne le port, et quand j'ouvre le serial monitor et que je tape AT, il ne se passe strictement rien. J'ai reessayé toutes vitesses sans succès.

Question cablage, j'ai bien relié le ground du FTDI, aux 2 endroits sur la SIM900, le Rx de la SIM sur le TX du FTDI, et vice versa.
Question jumper, celui du SIM900 est sur la bonne position, celui du FTDI sur 5 v.

Par contre, j'ai refais un essai avec le Arduino branché et le programme que j'avais posté initialement, et ce coup ci, sim900.available() ne reste plus à 0 !
Par contre, le caractère que je reçois est "⸮"... je vais vérifier la liaison Arduino/SIM900...

quand j'ouvre le serial monitor et que je tape AT, il ne se passe strictement rien. J'ai reessayé toutes vitesses sans succès.

Vous le mettez sur quel port ? Vous avez bien choisi celui du FTDI?

Oui tout à fait. Quand je branche le FTDI, un port se rajoute sur l'interface Arduino dans le menu Tool/Port. Je n'ai que 2 ports utilisé : un pour l'Arduino (dev/tty/USB0), l'autre pour le FTDI (dev/tty/USB1).
Quand je selectionne le port de l'Arduino, je visualise le programme qui est cours d'execution. Quand je selectionne l'autre, j'ai une page blanche, et quand je tape AT, rien ne se passe.
J'ai bien mis "Carriage return" et j'ai essayé toute les vitesses.

Et le shield n’est pas planté dans l’arduino ? Vous connectez directement et juste le FTDI ?

Oui, j'ai découplé les 2. Je branche le FDMI directement sur la SIM, avec rien d'autre de branché dessus.

Un petit détail : je passe par une breadboard pour connecter les 2, je n'ai pas de cable femelle-femelle mais uniquement femelle-male, mais je ne comprendrais pas que cela ait la moindre influence.

Question peut être idiote mais Vous êtes sûr que vous utilisez la breadboard correctement ? (et que vous n’envoyez pas 2A dans la breadboard)

Non, non, uniquement les signaux Tx, Rx et masse. Perpendiculaire à la longeur pour avoir chacun des signaux au même potentiel, etc... Pas de doute sur le sujet.

Ok - et je suppose que vous connectée bien en croisant Rx et Tx avec les pins bien choisies par le jumper

en lisant le lien sur internet pour votre shield ils disent

The SIM900 Board Input is 5-26V 2A,We Recommended current is more than 9V 2A

Vos 5V sont peut être un peu justes...

Rx et Tx croisés, oui tout à fait. Par acquis de conscience, j’ai essayé les 2 :slight_smile:

avec les pins bien choisies par le jumper

Vous pouvez préciser ce que vous vouliez dire ?
J’ai 2 jumpers, un sur la SIM900, mais pour la configuer en serial, l’autre sur le FTDI pour passer de 3.3 à 5 v si j’ai bien compris.

Vos 5V sont peut être un peu justes…

Je m’étais loupé ce point, je pensais être imposé à 5 v. Je ferai un essai avec une alim d’ordi portable, je vais chercher cela.

PAR CONTRE,

Question peut être idiote mais Vous êtes sûr que vous utilisez la breadboard correctement ?

==> par acquis de conscience, j’ai enlevé la breadboard, et mis des dominos, et ça change la donne : sur le Serial Monitor, quand je tappais AT, rien ne se passait, et le AT disparaissait. Maintenant, le AT passe dans la fenêtre du dessous, mais… rien d’autre ne se passe.
Chose etrange, quand j’inverse Tx et Rx, j’obtiens le même résultat.