SIM800L EVB - Arduino Nano

Bonjour à tous,

Je suis nouveau ici et je développe depuis peu des programmes sur Arduino.

Je me suis commandé sur ebay un module SIM800L EVB qui, selon certains, fonctionne sur le réseau Français. OK.

Ma carte :

J'ai suivi plusieurs documentations :

https://letmeknow.fr/blog/2015/10/14/tuto-module-gsm-sim800l-prise-en-main/

J'utilise une alimentation externe, Output 5V 2.0 A (selon la datasheet, c'est ce qu'il faut).

Lorsque j'importe mes librairies (notamment SIM908IDE100, puis d'autres qui traitent la SIM800L) alors j'ai bien les messages de confirmation pour l'envoie de SMS, mais sur mon portable j'ai rien...

Je tiens à préciser que la LED NETWORK, clignote toute les secondes. Selon les sources d'infos que j'ai consulté c'est soit disant un problème d'acquisition du réseau (par exemple le code Pin --> désactivé sur ma carte sim) ou bien un problème d'alimentation.
Le pb d'alimentation je veux bien le croire si la carte était alimentée depuis l'arduino mais là c'est depuis l'alimentation.

J'utilise un arduino nano.

Je n'ai pas mis de diode 1N4007 comme indiqué sur le tutoriel car il semblerait que ce n'est pas les mêmes version de carte, moi j'ai une EVB qui contient 7 pins, et je branche le 5V directement sur le 5VIN.

Par avance, je vous remercie de votre aide.

Si tu as bien suivi les tutos, les branchements devraient être corrects, mais vérifie encore on ne sait jamais.
Sinon, c'est un problème soft. Je suppose que ton code compile bien ? Quels sont les messages que tu obtiens sur la console Arduino lorsqu'il s'exécute ?

Il y a pas mal de message récents sur le forum qui traitent du SIM800, lis les tu trouveras peut-être ce qui ne va pas. ça peut aussi venir du numéro de téléphone auquel tu envoies le SMS : je crois qu'il doit être au format "06xxxxxxxx" et pas "+336xxxxxxxxx". Teste ça aussi...

Merci de ta réponse,

Je n'ai pas spécialement de message d'erreur. J'utilise des librairies qui ont très certainement fait leur preuves. Oui, j'ai testé +33... 06 et même (par acquis de conscience) 0033 ...
Rien, j'ai bien "SMS Sent OK" (avec 06) mais aucun message sur mon tél...

Tu as bien testé ton alim et vérifié les préconisations?
Entre les lignes, je perçois que toi-même, tu en doutes. Mais si :wink:

Ces vilaines bêtes ont un gros pic de conso au démarrage ou pour faire des trucs de vilaines bêtes.
Apparemment on cause de 2A...
C'est pas moi qui t'aiderai à comprendre les alimentations mais je sens qu'il va falloir s'assurer qu'elle envoie assez de patate. Bon ok tout ça n'est pas très technique, mais c'est la première cause de panne: l'énergie.

Ça peut venir de la configuration du module SIM800L. Poste ton code, en tout cas le début (initialisation, setup, début de la loop : ce qui déclare le module, l'initialise, prépare et envoie le SMS).

Salut lesept,
J'ai des olives pour l'apéro, sers toi :slight_smile:

Je vais jeter un oeil à la datasheet, je me demande s'il n'y aurait pas un mode avion, un enable ou je ne sais quel cavalier ...... prend un air pensif

J'ai du saucisson aussi, sinon ....

Et le cahouettes ? Elles sont où !!!
Dommage le match c'était hier :slight_smile:

lesept:
ça peut aussi venir du numéro de téléphone auquel tu envoies le SMS : je crois qu'il doit être au format "06xxxxxxxx" et pas "+336xxxxxxxxx". Teste ça aussi...

Qu'il est fort ce koala, mais j'ai une autre version, moi:

sim800l.println("ATD+4479********;");//dial the number, must include country code

Sans code, on fera rien

Holà ! Merci bcp. Je vous post le code dans quelques instants. Le temps de refaire mes branchements :slight_smile:

Voici le code (librairie dispo dans la biblio arduino, GSMSIM de Erdem A. Version 1.0.19)

#include <GSMSim.h>

#define RX 8
#define TX 7
#define RESET 2
#define BAUD 9600


GSMSim gsm;

/*
* Also you can this types:
* GSMSim gsm(RX, TX);
* GSMSim gsm(RX, TX, RESET);
* GSMSim gsm(RX, TX, RESET, LED_PIN, LED_FLAG);
*/

void setup() {
 // put your setup code here, to run once:
 Serial.begin(9600);

 Serial.println("GSMSim Library - SMS Example");
 Serial.println("");
 delay(1000);

 gsm.start(); // baud default 9600
 //gsm.start(BAUD);

 Serial.println("Changing to text mode.");
 gsm.smsTextMode(true); // TEXT or PDU mode. TEXT is readable :)

 char* number = "06256743**";
 char* message = "Hi my friend. How are you?"; // message lenght must be <= 160. Only english characters.

 Serial.println("Sending Message --->");
 Serial.println(gsm.smsSend(number, message)); // if success it returns true (1) else false (0)
 delay(2000);

 Serial.println("Listing unread message(s).");
 Serial.println(gsm.smsListUnread()); // if not unread messages have it returns "NO_SMS"

 Serial.println("Read SMS on index no = 1");
 Serial.println(gsm.smsRead(1)); // if no message in that index, it returns IXDEX_NO_ERROR
 
}

void loop() {
 // put your main code here, to run repeatedly:
}

Réponse du moniteur série avec ce code :

Alimentation :

Ça peut être un problème de branchement, tu définis des broches RX TX mais tu ne les utilises pas, donc tu prends les broches par défaut. Selon l'Arduino que tu utilises ça peut être d'autres broches.

Essaye de remplacer la déclaration du GSM par celle qui utilise les valeurs de RX TX.

GSMSim gsm(RX, TX);

Hum, Je te remercie pour ce point.

J'ai modifié le début du code comme suit :

#include <GSMSim.h>

#define RX 8
#define TX 7
#define RESET 2
#define BAUD 9600


//GSMSim gsm;

/*
* Also you can this types:
* GSMSim gsm(RX, TX);
* GSMSim gsm(RX, TX, RESET);
* GSMSim gsm(RX, TX, RESET, LED_PIN, LED_FLAG);
*/
GSMSim gsm(7, 8, 2);

J'ai toujours 1 qui s'affiche, sans que je ne reçoive de message sur mon téléphone...

Je précise que le mon pin Digital 7 est branché sur TXD, et mon pin digital 8 sur le RXD du module SIM800L

Un début de piste ?
Dans le Scope de l'arduino j'ai ces messages :

/var/folders/r2/zblqdvd97zsbs3l9spzb1t5r0000gn/T/arduino_modified_sketch_634080/GSMSim_SMS.ino: In function 'void setup()':
/var/folders/r2/zblqdvd97zsbs3l9spzb1t5r0000gn/T/arduino_modified_sketch_634080/GSMSim_SMS.ino:33:18: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
char* number = "06256743**";
^
/var/folders/r2/zblqdvd97zsbs3l9spzb1t5r0000gn/T/arduino_modified_sketch_634080/GSMSim_SMS.ino:34:19: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
char* message = "Hi my friend. How are you?"; // message lenght must be <= 160. Only english characters.
^

Lorsque je charge GSMSIM_Module_info, voici le résultat :

GSMSim Library - Module Information

Manufacturer:
Model: SIMCOM SIM800L
Revision: 1418B05SIM800L24
IMEI: OK
IMSI: 867856031776336
ICCID: 208150117356247
Is Connected?: 0
Signal Quality: 99
Operator: T+CSQ

+CSQ: 0,0

OK

Operator From Sim: Free

A Is Connected?: je devrais (normalement, si ça fonctionnerait comme il le fallait) 1... :cry:

Tu utilises une communication série mais le nano n'a qu'un port série sur les broches 0 & 1,et elles sont utilisées par la liaison avec le PC (la console). Il te faut définir une autre liaison série pour le module, ce sera une liaison software, par opposition à la liaison hardware que tu utilises pour l'instant.

Pour faire ça, il faut utiliser la bibliothèque SoftwareSerial. Tu l'installes, tu la déclares dans ton code, tu ouvres une liaison software dans le début du code avec les broches 7&8 ou autres, tu l'initialises dans le setup et ça roule...

Ok merci pour votre aide,

soit comme ceci ?
(avant le setup)

#include <GSMSim.h>
[b]#include <SoftwareSerial.h>[/b]

#define RX 7
#define TX 8
#define RESET 2
#define BAUD 9600

[b]SoftwareSerial mySerial(7, 8); // RX, TX[/b]
GSMSim gsm(RX, TX, RESET);

J'ai regardé l'exemple SoftwareerialExemple de Arduino, il semblerait que les broches soient déclarées Avant le setup.

Essaye pour voir si ça marche, moi je n'ai pas le module pour tester

J'ai donc avec

#include <GSMSim.h>
#include <SoftwareSerial.h>

#define RX 7
#define TX 8
#define RESET 2
#define BAUD 9600

SoftwareSerial mySerial(7, 8); // RX, TX
GSMSim gsm(RX, TX, RESET);


//GSMSim gsm;

/*
 * Also you can this types:
 * GSMSim gsm(RX, TX);
 * GSMSim gsm(RX, TX, RESET);
 * GSMSim gsm(RX, TX, RESET, LED_PIN, LED_FLAG);
 */

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  Serial.println("GSMSim Library - SMS Example");
  Serial.println("");
  delay(1000);

  gsm.start(); // baud default 9600
  //gsm.start(BAUD);

  Serial.println("Changing to text mode.");
  gsm.smsTextMode(true); // TEXT or PDU mode. TEXT is readable :)

  char* number = "06256743**";
  char* message = "Hi my friend. How are you?"; // message lenght must be <= 160. Only english characters.

  Serial.println("Sending Message --->");
  Serial.println(gsm.smsSend(number, message)); // if success it returns true (1) else false (0)
  delay(2000);

  Serial.println("Listing unread message(s).");
  Serial.println(gsm.smsListUnread()); // if not unread messages have it returns "NO_SMS"

  Serial.println("Read SMS on index no = 1");
  Serial.println(gsm.smsRead(1)); // if no message in that index, it returns IXDEX_NO_ERROR
  
}

void loop() {
  // put your main code here, to run repeatedly:
}

La réponse du serial monitor

GSMSim Library - SMS Example

Changing to text mode.
Sending Message --->
1
Listing unread message(s).
ERROR
Read SMS on index no = 1
INDEX_NO_ERROR

Mais toujours rien sur mon cellulaire ... :cry:

Pour vous aider dans la visualisation de mon montage, j'ai fais un document joint (fait avec powerpoint, je n'ai pas de logiciel qui permet de faire de jolies choses :slight_smile: )

Edit, en raison des restrictions de taille sur le forum, vous pouvez consulter le fichier Ici.

Désolé, je n'ai pas powerpoint sur ce PC.

Il semble qu'il y a du mieux puisqu'il ne fait plus d'erreur de réseau, bien que tu ne reçoives pas le SMS.

Il y a un thread sur la partie GB du forum où des gens ont des problèmes similaires avec ce module. C'est assez long, et il est difficile d'y trouver une info pertinente. Certains parlent d'alim, d'autres de carte SIM qui doit fonctionner en 2G, on s'y perd un peu.

Si tu as le courage de tout lire, tu y trouveras peut-être une solution.

lesept:
Désolé, je n'ai pas powerpoint sur ce PC.

C'est fait avec PowerPoint mais j'ai prévu le coup et mis exprès PDF :slight_smile:

Ok c'est sympa je vais aller jeter un oeil :slight_smile: Merci