Bonjour, j'ai acheté un shield SIM900 GSM GPRS pour envoyer/recevoir des sms et des appels vocaux.
J'ai suivie ce tuto (qui est je trouve bien expliqué)
j'ai la meme carte gsm que l'auteur que j'ai branché à mon arduino elegoo uno revision 3
J'ai effectué les meme branchement à savoir 2 cable pour la masse, 1 pour TXD relier au pin 7 et RXD au pin 8
ensuite j'ai juste copier-coller le code poure nvoyer le sms
/*********
Complete project details at http://randomnerdtutorials.com
*********/
#include <SoftwareSerial.h>
// Configure software serial port
SoftwareSerial SIM900(7, 8);
void setup() {
// Arduino communicates with SIM900 GSM shield at a baud rate of 19200
// Make sure that corresponds to the baud rate of your module
SIM900.begin(19200);
// Give time to your GSM shield log on to network
delay(20000);
// Send the SMS
sendSMS();
}
void loop() {
}
void sendSMS() {
// AT command to set SIM900 to SMS mode
SIM900.print("AT+CMGF=1\r");
delay(100);
// REPLACE THE X's WITH THE RECIPIENT'S MOBILE NUMBER
// USE INTERNATIONAL FORMAT CODE FOR MOBILE NUMBERS
SIM900.println("AT + CMGS = \"+330608996677\"");
delay(100);
// REPLACE WITH YOUR OWN SMS MESSAGE CONTENT
SIM900.println("Message example from Arduino Uno.");
delay(100);
// End AT command with a ^Z, ASCII code 26
SIM900.println((char)26);
delay(100);
SIM900.println();
// Give module time to send SMS
delay(5000);
}
Je vous donne un numéro bidon 0608996677 qui dans le code donne donc : 330608996677
(évidement j'ai rentré un bon numéro dans mon code)
mais la question : pourquoi sa ne marche pas
Mon opérateur est orange j'ai mis la carte sim dans le shield. J'ai une carte micro sim mais l'ai mis avec un adaptateur dans mon shield je pense pas qeu le probleme vienne de la.
Ma carte sim n'a pas de code pin (j'ai testé sur 2 téléphones, aucun ne me demande de code pin pour démarrer), à moins qu'il existe un code par défaut style 0000 ce qui expliquerais pourquoi j'arrive pas à envoyer de sms.
En tous cas je sais pas pourquoi sa ne marche pas, quelqu'un aurait 'il une idée ?
Il ne faut pas d’espace dans les commandes AT et pas le 0 pour 06
=> essayer avec
SIM900.println("AT+CMGS=\"+33608996677\"");
Même chose partout - je n’ai pas tout lu
Il se peut que la carte soit en 9600 bauds au lieu de 19200 - essayez avec
SIM900.begin(9600);
Il faut aussi une alimentation pour la carte - vous n’en parlez pas. Il faut qu’elle délivre 2A (au moins 1.5A)
Sinon le code n’est pas top - vous envoyez des CRLF avec le println du SMS et il faudrait écouter les réponses du module et pas faire des delay partout
baldouine:
je ne l'ai pas modifié donc ce doit etre du 19200. au passage sa veut dire quoi "pb 8-N-1"
cf la documentation de [url=https://www.arduino.cc/reference/en/language/functions/communication/serial/begin/]Serial.begin()[/url] ça concerne la parité, stop bit etc
Ce sont les valeurs par défaut donc ça devrait être bon
Votre sim carte dans le module à-t-Elle un pin code ?
et sa marche, j'arrive à envoyer des sms !
Les appels fonctionne aussi
#include <SoftwareSerial.h>
/*
Herramientas Tecnologicas Profesionales
www.hetpro-store.com
Tutorial Original:
https://tronixstuff.com/2014/01/08/tutorial-arduino-and-sim900-gsm-modules/
Comandos AT:
https://probots.co.in/Manuals/SIM900%20GSM%20Modem%20-%20Starter%20Guide.pdf
Hoja de datos:
Instrucciones para Arduino: Configura la terminal serial a 19200 baudios para que puedas ver los mensajes.
*/
SoftwareSerial SIM900(7, 8); // Configura el puerto serial para el SIM GSM
char incoming_char=0; //Variable que guarda los caracteres que envia el SIM GSM
int salir = 0;
void setup()
{
SIM900.begin(19200); //Configura velocidad serial para el SIM
delay(25000); //Retardo para que encuentra a una RED
Serial.begin(19200); //Configura velocidad serial para el Arduino
Serial.println("OK"); //Mensaje OK en el arduino, para saber que todo va bien.
}
void llamar()
// Función que permite llamar a un celular local
{
SIM900.println("ATD 06089996688;"); //Celular
delay(100);
SIM900.println();
delay(30000); // wait for 30 seconds...
SIM900.println("ATH"); // Cuelta el telefono
delay(1000);
}
void mensaje_sms()
//Funcion para mandar mensaje de texto
{
SIM900.print("AT+CMGF=1\r"); // AT command to send SMS message
delay(100);
SIM900.println("AT+CMGS=\"0608996688\""); // recipient's mobile number, in international format
delay(100);
SIM900.println("test sms"); // message to send
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26 //Comando de finalizacion
delay(100);
SIM900.println();
delay(5000); // Tiempo para que se envie el mensaje
Serial.println("SMS sent successfully");
}
void espera_mensaje()
{
salir = 1;
while(salir==1)
{
if(SIM900.available()>0)
{
incoming_char=SIM900.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
salir = 0;
}
}
}
void modo_recibe_mensaje()
{
//Configura el modo texto para enviar o recibir mensajes
SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r");
// blurt out contents of new SMS upon receipt to the GSM shield's serial out
delay(1000);
}
void loop()
{
llamar(); //Llama
mensaje_sms(); //Envia mensaje
modo_recibe_mensaje();
for(;;)
{
if(SIM900.available()>0)
{
incoming_char=SIM900.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
}
if(Serial.available()>0)
{
if(Serial.read() == 'A') break;
}
}
Serial.println("OK-2");
delay(100);
SIM900.println();
delay(30000);
while(1); // Espérate por tiempo indefinido
}
autre chose, pour que sa marche chez moi j'ai du virer le 33 devant le numéro
Bonjour, vous dites que sur ce tuto cela fonctionne :
Cependant, j'ai pas de carte arduino officielle mais une variante, et les connexions (celles qui vont sur le connecteur jaune) partent de la UNO sur les pin GND et GND vers le SIM900 sur le connecteur jaune comme indiqué sur le tuto.
Cependant ils parlent en espagnol de RX et TX..
Faut 'il les brancher?
Encore une qestion, vous dites que vous enlever le 33 avant le numéro, c'est a dire : 06855... ou bien : 6855... ?
Je n'ai toujours pas réussite a faire fonctionner le module Sim 900.
J'ai soudé R13 sur la SIM900 pour démarrer automatiquement le module.