How to use UNO board to control SIM900 module

How to use UNO board to control SIM900 module


Today we will use UNO to control SIM900A module to send text message to our phone or make a call.

Required materials
1X  Adeept UNO Board
1X  SIM900A Module
1X  SIM card
1X  DC5V 1A Power
1X  Breadboard
Several jumper wires

The introduction of SIM900A Module
The GSM module employs SIM900 high-precision wireless GSMGPRS full four-frequency chip from SIM com Company and SMT packaging, and it combines with high-powered ARM926EJ-S core. It is suitable for cost-effective solution of mini-type equipment.

The module employs standard industrial interface, SIM900 is equipped with 850MHZ、900MHZ、1800MHZ、1900MHz four-frequency voice, text message, data and fax of GSM and GPRS, it is of high cohesiveness and low power consumption.

Technical specifications
full four frequency: 850、 900、 1800 、1900 MHz
GPRS multi-hotspot type 108
GPRS conforms to type B base station
GSM 22+ criterion
Type 4 (2 W @850 900 MHz)
Type 1 (1 W @ 18001900MHz)
Support SAIC (Single Antenna Interference Cancellation)
Controlled by compatible AT command (GSM 07.07, 07.05 and SIMCOM enhanced command)
Running at low power 0.1mA
Operating temperature  -40°C to +85 °C
AT reference command

Use any serial port to debug terminal and check “add new rows” or similar one. The serial windows above Arduino IDE 1.0 need to choose “Both NL& CR”,the lower IDE version can’t support this function.
As for AT command, it is a command used by communication module, which starts with “AT”, after the sending of AT command, it will return to the operating result which starts with “+”,  and if it goes wrong, it will return to “ERROR” , and if it is normal , it will send “OK” at the end of the message.
Next we will make examples of frequently used functions, the complex functions refer to SIM900_ATC document.
Testify the signal quality, use serial port to send the following instruction:
Now we can see the reply message as the following:
+CSQ: 11, 0
Making a call (the semicolon after the instruction is necessary), you can change 10086(here 10086 is China Unicom) in the following instruction into the other phone numbers in your local area.
ATD10086;(carriage return)
Ring off
Answer the phone
Send text message
first, set as text mode:

set as using default International standard alphabetic character set of module to send text message

Send to target phone number
AT+CMGS=”10086″(carriage return)
now the system will prompts “>”, input the text message directly.
> YE
The purpose of this text message is to send to 10086 for checking balance
0x1A ( sending in hexadecimal notation)
After sending, the system will display the following prompt, the number means the serial number of sending text messages
+CMGS: 115
Receive the text message
if you receive the text message, the system will show the following prompt, the latter number means the amount of text messages in the SMS inbox:
+CMTI: “SM”,2
Sending the following AT command, the latter number is the SMS reference number. As we are using IRA encoding, the Chinese messages can’t be displayed, we can send English text message to test.

Connection diagram

Procedure code

File name:   AdeeptISM900A.ino
Author: Tom
Date: 2018/06/01
int val;           //Define variablesval
#define MAXCHAR 81 //recive buff max char
char aa[MAXCHAR];  //recive gsm model back signal
int j=0;           //recive index
int g_timeout=0;   //handing time
char ATE0[]="ATE0";
char CREG_CMD[]="AT+CREG?";
char SMS_send[]="AT+CMGS=18";
char ATCN[]="AT+CNMI=2,1";
char CMGF0[]="AT+CMGF=0";
char CMGF1[]="AT+CMGF=1";
char CMGR[12]="AT+CMGR=1";
char CMGD[12]="AT+CMGD=1";
#define SEND_MESSA_TO_YOUR "at+cmgs=\"180****1390\"\r\n"    //Send a text message to receive the mobile phone number
#define SEND_MESSA_CONTENT "Hello!  \n "  //SMS content
#define CALL_YOU_TELNUMBER "ATD180****1390;\r\n"    //Call to accept the phone number
int readSerial(char result[]){
    int i = 0;
    while (Serial.available() > 0)
        char inChar =;
        if (inChar == '\n'){
            result[i] = '\0';
            return 0;
            result[i]= inChar;
void clearBuff(void){//Call texting to clear instructions
int Hand(char *s){//Texting, calling, texting, calling instructions
    if(strstr(aa,s)!=NULL)     //Detecting the connection between the microcontroller and the module
            return 1;
            return -1;
    return 0;
void send_english(void){   //Texting
    Serial.println(SEND_MESSA_CONTENT);  //Send text messages
    Serial.print("\x01A");      //Send end symbol
void send_call(void){ //Make a call
    Serial.println(CALL_YOU_TELNUMBER); //Make a call
void setup (void) { 
    Serial.begin(115200);//Set the baud rate is 115200
void loop (void)
    send_english();  //Texting
    send_call();     //Make a call
}  Experimental phenomenon
Press on the reset button on UNO, our phone will receive text message “Hello!”and gets a phone call from SIM900A module.
Notice: sometimes it may goes wrong in sending text message and making a call with SIM900A module, the reason is the power supply isn’t enough, or you use the incompatible SIM card, or the signal of the phone is poor or not covered.


50 Replies to “How to use UNO board to control SIM900 module”

  1. Here at Leslie’s Pugsland Breeder, Our beautiful fawn pug has given birth to 4 healthy Pug puppies.
    She is our beloved family dog and this is her 1st litter.
    Both mum and dad are AKC registered with 5 gen pedigree certificate. Both from Top Champion bloodlines.Mum and Dad can be seen. Puppies have been wormed weeks 2,4,6,8 and will have had a flea preventative treatment before leaving us.
    They will have their vet check, 1st vaccinations and microchip.
    To view all available puppies and recent pictures, Search us in google as LESLIE’S PUGSLAND BREEDER or click on our website link bellow :

    Pug Puppies for sale | pug for sale near me | pug puppy for sale | pug puppy | pug for sale | pug puppies for sale in va | black pug puppies for sale

  2. Pingback: Afslankpillen
  3. Pingback: instalavista
  4. Pingback: virginia beach seo
  5. Pingback: warnetqq
  6. Pingback: khabzadeh
  7. Pingback: Xnxxx porn
  8. Pingback: solarmovie
  9. Pingback: kampala
  10. Pingback:
  11. Pingback:
  12. Pingback: ibuiltmyhome
  13. Pingback: lucky88
  14. Pingback: [source]
  15. Pingback: Predrag Timotic
  16. Pingback: Jordyn
  17. Pingback: Customuniversity
  18. Pingback: qiuqiu99
  19. Pingback: cdrqq
  20. Pingback: galeriqq
  21. Pingback: daftar jaguarqq
  22. Pingback:
  23. Pingback: Personal24
  24. Pingback: anh nude han quoc
  25. Pingback: lai lai lộ ảnh
  26. Pingback:

Leave a Reply