Go Down

Topic: Elecfreaks SIM5215E Sending SMS (Read 492 times) previous topic - next topic

AmirulH

Hi, I recently bought a 3G shield from elecfreaks and I have been trying to figure out how to send an SMS ever since. I really need help with it. I'm a student and I just can't figure it out. Please help.

Fuksen

#1
Jan 20, 2018, 02:33 pm Last Edit: Feb 17, 2018, 05:11 pm by Fuksen
If your shield is holding a SIM900 chip, this code is working fine with Arduino Uno.
Code: [Select]


 /*Note: this code is a demo for how to using GPRS Shield to send SMS message and dial a voice call.

The microcontrollers Digital Pin 7 and hence allow unhindered communication with GPRS Shield using SoftSerial Library.
IDE: Arduino 1.0 or later*/
 
 
#include <SoftwareSerial.h>
#include <String.h>
 
SoftwareSerial mySerial(7,8);
 
void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);    // the GPRS baud rate
  delay(500);
}
 
void loop()
{
  //after start up the program, you can using terminal to connect the serial of gprs shield,
  //if you input 't' in the terminal, the program will execute SendTextMessage(), it will show how to send a sms message,
  //if input 'd' in the terminal, it will execute DialVoiceCall(), etc.
 
  if (Serial.available())
    switch(Serial.read())
   {
     case 't':
       SendTextMessage();
       break;
     case 'd':
       DialVoiceCall();
       break;
     
   }
  if (mySerial.available())
    Serial.write(mySerial.read());
}
 
///SendTextMessage()
///this function is to send a sms message
void SendTextMessage()
{
  mySerial.print("AT+CMGF=1\r");    //Because we want to send the SMS in text mode
  delay(100);
  mySerial.println("AT + CMGS = \"+CCyournumber\"");//send sms message, be careful need to add a country code before the cellphone number
  delay(100);
  mySerial.println("How are you ?");//the content of the message
  delay(100);
  mySerial.println((char)26);//the ASCII code of the ctrl+z is 26
  delay(100);
  mySerial.println();
}
 
///DialVoiceCall
///this function is to dial a voice call
void DialVoiceCall()
{
  mySerial.println("ATD+CCyournumber;");//dial the number
  delay(100);
  mySerial.println();
}
 
void ShowSerialData()
{
  while(mySerial.available()!=0)
    Serial.write(mySerial.read());
}

Go Up