Bonjour je suis Patrick.
J'essaye en ce moment d'envoyer et de recevoir un sms avec le module SIM808 et une arduino uno.
J'ai trouvé ce code sur : SIM808_GPS_GPRS_GSM_Shield_SKU__TEL0097-DFRobot
Qui est bien détaillé mais un problème persiste.
#include <DFRobot_sim808.h>
//Mobile phone number, need to change
#define PHONE_NUMBER "06********"
DFRobot_SIM808 sim808(&Serial);
void setup() {
//mySerial.begin(9600);
Serial.begin(9600);
//********Initialize sim808 module*************
while(!sim808.init()) {
delay(1000);
Serial.print("Sim808 init error\r\n");
}
Serial.println("Sim808 init success");
Serial.println("Start to call ...");
//*********Call specified number***************
sim808.callUp(PHONE_NUMBER);
}
void loop() {
//nothing to do
}
Je reçois ce message d'erreur. J'ai essayé de réinstaller les librairies DFRobot_sim808 comme me l'a conseillé un ami mais sans succès. Avez-vous une idée du problème et de sa solution ?
C:\Users\PatrickJonhson\Desktop\TIPE\SIM 808\DFRobot_SIM808-master\DFRobot_SIM808-master\examples\SIM808_SendSMS\SIM808_SendSMS.ino:1:29: fatal error: DFRobot_sim808.h: No such file or directory
#include <DFRobot_sim808.h>
^
compilation terminated.
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno
Malgrès cela le programme ne marche pas, je me demande si c'est parce que je ne renseigne nul part le code pin de la carte SIM insérée dans le SIM808...
Je reçois les avertissements suivant :
C:\Users\PatrickJonhson\AppData\Local\Temp\arduino_modified_sketch_324133\SIM808_SendSMS.ino: In function 'void setup()':
C:\Users\PatrickJonhson\AppData\Local\Temp\arduino_modified_sketch_324133\SIM808_SendSMS.ino:46:38: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
sim808.sendSMS(PHONE_NUMBER,MESSAGE);
^
C:\Users\PatrickJonhson\AppData\Local\Temp\arduino_modified_sketch_324133\SIM808_SendSMS.ino:46:38: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
J'ai donc essayé de rajouter les lignes pour renseigner le code PIN de la carte sans succès.
Cela donne :
#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
//Mobile phone number,need to change
#define PHONE_NUMBER "06********"
//The content of messages sent
#define MESSAGE "Message test"
//#define PIN_TX 10
//#define PIN_RX 11
//SoftwareSerial mySerial(PIN_TX,PIN_RX);
//DFRobot_SIM808 sim808(&mySerial);//Connect RX,TX,PWR,
DFRobot_SIM808 sim808(&Serial);
void setup() {
//mySerial.begin(9600);
Serial.begin(9600);
Serial.println ("AT");
delay (200);
Serial.println ("AT+CPIN=0000");
delay (200);
//******** Initialize sim808 module *************
while(!sim808.init()) {
delay(1000);
Serial.print("Sim808 init error\r\n");
}
Serial.println("Sim808 init success");
Serial.println("Start to send message ...");
//******** define phone number and text **********
sim808.sendSMS(PHONE_NUMBER,MESSAGE);
}
void loop() {
//nothing to do
}
Je reçois les mêmes avertissements que plus haut.
Avez-vous une idée du problème ?
Les avertissements n’ont rien à voir, la méthode de la librairie pour sendSMS() attend un char * ce qui veut dire que le compilo pense que potentiellement la méthode modifie la chaîne ce qui n’est pas le cas) et vous passez un #define qui en fait une chaîne constante donc vous avez un warning - mais ça n’est pas un soucis. (Modifiez la lib pour mettre const char * comme params pour le supprimer ou mettez votre N° etc dans un tableau char telNb[] = “06....”;
Pouvez vous me dire si la ligne est bien écrite ? Il est fort possible qu'elle soit fausse car à part Python je n'avais jamais utilisé Arduino avant, c'est tout récent.
J'ai modifié mon code comme vous me l'aviez réctifié mais de nouvelles "erreurs" apparaissent.
Si j'ai bien compris j'ai des soucis de déclarations dans une ligne.
C:\Users\PatrickJonhson\AppData\Local\Temp\arduino_modified_sketch_204695\SIM808_SendSMS.ino: In function 'void setup()':
SIM808_SendSMS:31: error: 'PHONE_NUMBER' was not declared in this scope
sim808.sendSMS(PHONE_NUMBER,MESSAGE);
^
exit status 1
'PHONE_NUMBER' was not declared in this scope
Je ne vois pas pourquoi il me dit que 'PHONE_NUMBER' n'est pas déclaré.
Est-ce à cause de la modification faite plus haut ?
La carte n'a plus de code PIN mais je ne reçois rien.
Ci-dessous un aperçu de ce que le code fait. A chaque double AT j'ai changé les positions (None, USG_DBG,Arduino) et j'ai reset.
Je reste toujours dans la boucle while. Je n'arrive pas à initialiser la carte apparemment.
AT
Sim808 init error
AT
AT
Sim808 init error
AT
AT
Sim808 init error
AT
Sim808 init error
AT
Sim808 init error
AT
Votre téléphone quand vous testez - vous pouvez désactiver la 3G et 4G pour tester les sms en 2G ? (La carte ne supporte que le « 2G GSM network » qui n’est plus dispo partout en france)