Example Code for Arduino-Read SMS (AT Commands)
Last revision 2026/01/24
This article provides a comprehensive guide on reading SMS messages with Arduino using the SIM808 module and AT commands, including hardware and software preparation, sample code, and effective use of AT commands for SMS management.
Hardware Preparation
- DFR0355 SIM808 with Leonardo mainboard x1
- GSM & GPS Antennas (Included) x1
- External power supply (7-23V, DC) x1
- SIM card (GSM/GPRS) x1
- FIT0265 Micro USB Cablex1
Software Preparation
- Download and install the Arduino IDE: Click to Download Arduino IDE
- Download and install the DF Serial Debugger: Click to Download DF Serial Debugger
Preparations
- Install the SIM card in the sim slot on the back of the board
- Make sure your SIM card is available, and you can put the SIM card into the socket or get it out by sliding the metal lock.
- Install the GPS & GSM antennas on the board
- Connect with PC and power supply(there are three ways to supply the power)
- Through 7~23V power supply jack
- Through VIN pin on board
- Remove the jumper on NO BAT, and connect a 3.7V Lithium Battery to BAT jack
- After connecting the board to PC by an USB cable, the board shows up as Leonardo automatically if you have installed the Arduino by .exe file, or you will need to install the driver manually

- BOOT SIM808 by pressing the BOOT white button for 2 seconds if the NET indicator LED is OFF.
- Upload the debugging code below to Leonardo.
Sample Code
/*
* The sketch here will make Leonardo exchange
* data between the USB serial port and SIM808 module.
*/
void setup() {
Serial.begin(115200); //initialize Serial(i.e. USB port)
Serial1.begin(115200); //initialize Serial1
}
void loop() {
//If Serial1 receive data, print out to Serial
while (Serial1.available()) {
Serial.write(Serial1.read());
}
//If Serial receive data, print out to Serial1
while (Serial.available()) {
Serial1.write(Serial.read());
}
delay(1); //delay for a short time to
// avoid unstable USB communication
}
Other Preparation Work(AT command)
- Send a message to the SIM card on the module, I sent test! here
- The serial monitor will print a message +SMTI: "SM",1, and 1 shows the number of the message
- Send AT+CMGR=1 to read the message of 1. The message "Test!" should display
Result

If the text is unreadable, please set the message in TEXT by AT+CMGF=1.
Was this article helpful?
