SIM800C GSM GPRS Module
-
RM40.00
- Product Code: SIM800C GSM GPRS Module
- Availability: In Stock
This GSM/GPRS developemnt board is based on SIM800C chip supporting bluetooth function and AT command control via the serial prot. On-board SIM card slot and support 850/900/1800/1900MHz quad band can be used worldwide. It is equipped with 5V/3.3V ligic converter circuit compatible with most MCU breakout board to obtain the SMS and TTS function.
Chip: SIM800C
Band: 850/900/1800/1900MHz
GPRS multi-slot class: 12/10
GPRS mobile station class: B
Compliant to GSM phase 2/2+ – Class 4 (2 W @ 850/900 MHz) – Class 1 (1 W @ 1800/1900MHz)
Control via AT commands (3GPP TS 27.007, 27.005 and SIMCOM enhanced AT Commands)
Board Size: 30.73 X 26.56mm/1.21 X 1.05inch(L*W)
Pinout:

Wiring Diagram:

NOTE: The board requires a dedicated 2A power supply with 100uF and 10uF capacitors placed over VCC and GND.
Sample Code:
#include <TinyGsmClient.h>
#include <HardwareSerial.h>
#define MODEM_RX 16
#define MODEM_TX 17
// Create an instance of the TinyGSM object
TinyGsm modem(Serial2);
// Phone number and SMS text
const char phone_number[] = "+1234567890"; // Replace with your phone number
const char sms_text[] = "Hello from ESP32 and SIM800C!";
void setup() {
Serial.begin(115200);
delay(10);
// Start communication with the GSM module
Serial2.begin(9600, SERIAL_8N1, MODEM_RX, MODEM_TX);
delay(3000);
Serial.println("Initializing modem...");
modem.restart();
String modemInfo = modem.getModemInfo();
Serial.println("Modem Info: " + modemInfo);
//Unlock your SIM card with a PIN if needed
// modem.simUnlock("yourPIN");
sendSMS();
}
void sendSMS() {
Serial.println("Sending SMS...");
// Send the SMS
bool res = modem.sendSMS(phone_number, sms_text);
if (res) {
Serial.println("SMS sent successfully!");
} else {
Serial.println("Failed to send SMS.");
}
}
void loop() {
// Nothing to do here
}
#include <softwareserial.h>
#define SIM800_TX_PIN 2 //SIM800 TX is connected to Arduino D2
#define SIM800_RX_PIN 3 //SIM800 RX is connected to Arduino D3
//Create software serial object to communicate with SIM800
SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN);
int PWX = 4;
void setup() {
pinMode(PWX, OUTPUT);
Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600); //Begin serial communication with Arduino
while(!Serial); //Monitor Comms on Arduino IDE (Serial Monitor)
//Being serial communication with Arduino and SIM800
serialSIM800.begin(9600);
delay(1000);
Serial.println("Setup Complete!");
digitalWrite(PWX, HIGH);
delay(3000);
digitalWrite(PWX, LOW);
delay(1000);
Serial.println("Start");
}
void loop() {
//Read SIM800 output (if available) and print it in Arduino IDE Serial Monitor
if(serialSIM800.available()){
Serial.write(serialSIM800.read());
}
//Read Arduino IDE Serial Monitor inputs (if available) and send them to SIM800
if(Serial.available()){
serialSIM800.write(Serial.read());
}
}
Sending SMS via SIM800
For the test work try to send SMS. To start, send the command: AT + CMGF = 1. If there is an ERROR-most likely did not pass the registration of SIM-ki in the network.
| AT command | Answer | Notes | |
|---|---|---|---|
| AT + CMGF = 1 | Ok | We Translate into text mode of sending messages. | |
| AT + CSCS = "GSM" | Ok | CharSet: "GSM" GSM 7 bit default alphabet (3GPP TS 23,038); "UCS2" 16-bit universal multiple-octet coded character set (ISO/IEC10646); UCS2 character strings are converted to hexadecimal numbers from 0000 to FFFF; e.g. "004100620063" equals three 16-bit characters with decimal values 65, 98 and 99 "IR A" International reference alphabet (ITU-T T. 50) "H EX" Character strings consists only of hexadecimal Bers from 00 to FF; "PCCP" PC Character set Code "PCDN" PC Danish/Norwegian Character Set "8859-1" ISO 8859 Latin 1 Character set | |
| AT + CSCS? | + CSCS: "GSM" | Check that the correct code table has been installed correctly. | |
| AT + CMGS = "+ 796019xxxxx" | > | The phone Number is required with +, otherwise there will be an error message: + CMS ERROR: Invalid input value. After The command is run, you will be prompted to enter the text of the message to be completed by sending CTRL-Z (0x1A or (char) 26). Unfortunately, Arduino Serial Monitor does not allow you to send this code, so only programmatically. |
Resources: