Envoi/réception SMS avec SIM800L evb et arduino... M E G A

Bonjour,

J'utilise le SIM800L evb de ROHS avec arduino M E G A :

RST : non connecté
GND : GND (mega)

RXD : connecté à PIN50 (mega)
TXD : connecté à PIN51 (mega)

VDD : non connecté
GND : - de l'alim transfo (2A) et GND (mega)
5V : + de l'alim transfo( 2A)

Une carte SIM orange (web + tel + SMS) insérée dans le bon
sens (code PIN supprimé)

Carte Arduino M E G A alimentée par cordon USB connecté
au PC sous Windows.

J'ai récupéré la bibliothèque SIM908IDE100.zip
placée dans le répertoire "librairies" de
l' IDE arduino.

J'ai changé le fichier GSM.cpp :

#define _GSM_TXPIN 51 (et non 2)
#define _GSM_RXPIN 50 (et non 3)

Réglages carte et port :

  • outils\carte : "Arduino mega adk"
  • outils\port : "COM5 (Arduino mega or mega 2560)"

Utlisation du programme de démonstration
GSM_GPRSLibrary_SMS proposé par SIM908IDE100 :

#include "SIM900.h"
#include <SoftwareSerial.h>

//If not used, is better to exclude the HTTP library,
//for RAM saving.
//If your sketch reboots itself proprably you have
//finished, your memory available.

//#include "inetGSM.h"

#include "sms.h"
SMSGSM sms;

//To change pins for Software Serial,
use the two lines in GSM.cpp.

//Simple sketch to send and receive SMS.

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

void setup()
{

Serial.begin(9600);
Serial.println("GSM Shield testing.");

if (gsm.begin(2400))
{
Serial.println("\nstatus=READY");
started=true;
}
else Serial.println("\nstatus=IDLE");

if(started)
{
//Seule personnalisation...
//J'ai remplacé "xxxxxxxx" par les derniers chiffres
//de mon numéro de TEL
if (sms.SendSMS("06xxxxxxxx", "Arduino SMS"))
Serial.println("\nSMS sent OK");
}

};

void loop()
{
if(started)
{

if(gsm.readSMS(smsbuffer, 160, n, 20))
{
Serial.println(n);
Serial.println(smsbuffer);
}

delay(1000);
}
};

Le port série affiche :

GSM Shield testing.
DB:NO RESP
DB:NO RESP
DB:NO RESP
Error: SIM900 doesn't answer. Check power and serial pins
in GSM.cpp

status=IDLE


Je n'ai jamais pu envoyer ni recevoir de SMS...

La LED du SIM800L evb clignote toutes les secondes
et non toutes les 3 sec comme elle devrait le faire.

Si vous avez une idée, je prends !
Quand on passe de UNO à MEGA
il n'y a plus bcp d'infos sur internet... :confused:

Merci à tous et grosses bises

PIERRE

Bonjour

Sans carte Arduino :

SIM800L EVB : Un lien vers le site marchand serait le bienvenu, ROHS est une directive europénne, pas un fabricant de carte

Une carte SIM800L EVB bien alimentée, pourvue de son antenne et d'une carte SIM fonctionnelle sans code pin , se connecte toute seule au réseau.(clignotement lent de la diode electroluminescente)

La carte SIM800L EVB , au moment de la connection au réseau, appelle brièvement un fort courant.
On peut faciliter le farnchissement de ce cap en ajoutant un condensateur de valeur élevée (1000µF ou davantage) en parallèle sur les bornes 5V et GND de la carte. (contrairement à certaines cartes à SIM800L la carte EVB s'alimente en 5V)

Fonctionnement avec une carte Arduino :

Bibilothèque ? lien actif ? Compatibilité SIM800 ?

Code : ne pas mettre le code en vrac dans le corps du message , bien formatter le code puis utiliser les balises appropriées( cf messages épinglés en tête de forum)

UNO vs Mega : la seconde dispose de plusieurs ports série matériels disponibles il n'est donc pas recommandé d'utilser un port série logiciel (SoftwareSerial)

corrigez votre post ci dessus et rajoutez les code tags autour du code:
[code]`` [color=blue]// votre code ici[/color] ``[/code].

ça doit ressembler à cela:// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l'IDE avant de copier le code pour qu'il soit indenté correctement)

—————
êtes vous sûr que votre carte est en 5V pour le Tx et Rx ? (certaines le sont, pas d'autres).

Outre le fait que vous feriez mieux d'utiliser un hardwareSerial, vous dites

RXD : connecté à PIN50 (mega)
TXD : connecté à PIN51 (mega)

et puis

'ai changé le fichier GSM.cpp :
#define _GSM_TXPIN 51 (et non 2)
#define _GSM_RXPIN 50 (et non 3)

avez vous essayé en inversant ? le nom de la macro suggère que 51 est la pin TX du GSM et donc elle devrait être connectée à la pin Rx sur l'Arduino.

un test simple d'envoi de "AT\r\n" et regarder si vous obtenez une réponse devrait aider à voir si la connexion série est fonctionnelle

2400 bauds c'est lent, passez en 38400 et assurez bien sûr que le SIM800L attend ce débit

êtes vous sûr que votre carte est en 5V pour le Tx et Rx ? (certaines le sont, pas d'autres).

En principe oui s'il s'agit effectivement d'une carte EVB
(comporte deux transistors Mosfet pour assurer l'adaptation de niveau logique sur Rx et Tx)

EVB.png

EVB.png

Bonjour,

Merci pour vos conseils, ça marche, ça roule impec !!

A la prochaine

Pierre

Qu’est ce qui a fait tomber en marche votre montage ? L’inversion de Tx et Rx ?