Hardware
SIM900A GSM/GPRS Module Specification
Power supply by 5V, can be powered by USB, for long term use it is better to still use 1A current power source. XH2.54-2P connector.TTL 5V and 3V3 interface (yellow pins marked on board), compatible with arduino, STM32, raspberry pi, etc.On board RS232 interface, easy for debugging. On the left, white pins.On board ring signal LED, on the left-top corner of SIM900A IC.On Board reset and restart pins, on the bottom of the SIM900A IC.Reserved IPX mini connector, but not yet soldered.Standard SMA antenna connector.Serial port is protected by TVS and beads circuit, to prevent any surging current or HV.SIM circuit has SMF05C electrostatics releasing IC.Package includes antenna and DC jack.Do NOT have audio power jack on board, which means you can not hearing or speaking through the call.Board size is 5×5 CM
Wiring
GSM >>> Arduino pin
5VT(TX) >>> 2
5VR(RX) >>> 3
Gnd >>> Gnd
Power external ภายนอกเท่านั้นเพราะบอร์ดกระแสไม่พอ
Make sure all device common Gnd .กราวน์ของบอร์ดและแหล่งจ่ายไฟต้องร่วมกัน
SIM900A True move AIS available (THAI)
POWER 5 Volt supply external recommend
5 volt operate
5VR connect to Pin3
5VT connect to Pin 2
Make sure all ground connected
Library Link
Copy library GSM900 to Arduino library
Copy library GSM900 to Arduino library
Video
CODE
#include "SIM900.h"
#include <SoftwareSerial.h>
//If not used, is better to exclude the HTTP library,
//for RAM saving.
//If your sketch reboots itself proprably you have finished,
//your memory available.
//#include "inetGSM.h"
//If you want to use the Arduino functions to manage SMS, uncomment the lines below.
#include "sms.h"
SMSGSM sms;
//To change pins for Software Serial, use the two lines in GSM.cpp.
//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.
//Simple sketch to send and receive SMS.
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
void setup()
{
//Serial connection.
Serial.begin(9600);
Serial.println("GSM Shield testing.");
//Start configuration of shield with baudrate.
//For http uses is raccomanded to use 4800 or slower.
if (gsm.begin(2400)) {
Serial.println("\nstatus=READY");
started=true;
} else Serial.println("\nstatus=IDLE");
if(started) {
//Enable this two lines if you want to send an SMS.
if (sms.SendSMS("0843545655", "Arduino SMS"))
Serial.println("\nSMS sent OK");
}
};
void loop()
{
if(started) {
//Read if there are messages on SIM card and print them.
// deprecated method
//if(gsm.readSMS(smsbuffer, 160, n, 20)) {
// Serial.println(n);
// Serial.println(smsbuffer);
//}
//get 1st sms
sms.GetSMS(1,n,20,smsbuffer,160);
Serial.println(n);
Serial.println(smsbuffer);
delay(1000);
}
};
#include "SIM900.h"
#include <SoftwareSerial.h>
//If not used, is better to exclude the HTTP library,
//for RAM saving.
//If your sketch reboots itself proprably you have finished,
//your memory available.
//#include "inetGSM.h"
//If you want to use the Arduino functions to manage SMS, uncomment the lines below.
#include "sms.h"
SMSGSM sms;
//To change pins for Software Serial, use the two lines in GSM.cpp.
//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.
//Simple sketch to send and receive SMS.
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
void setup()
{
//Serial connection.
Serial.begin(9600);
Serial.println("GSM Shield testing.");
//Start configuration of shield with baudrate.
//For http uses is raccomanded to use 4800 or slower.
if (gsm.begin(2400)) {
Serial.println("\nstatus=READY");
started=true;
} else Serial.println("\nstatus=IDLE");
if(started) {
//Enable this two lines if you want to send an SMS.
if (sms.SendSMS("0843545655", "Arduino SMS"))
Serial.println("\nSMS sent OK");
}
};
void loop()
{
if(started) {
//Read if there are messages on SIM card and print them.
// deprecated method
//if(gsm.readSMS(smsbuffer, 160, n, 20)) {
// Serial.println(n);
// Serial.println(smsbuffer);
//}
//get 1st sms
sms.GetSMS(1,n,20,smsbuffer,160);
Serial.println(n);
Serial.println(smsbuffer);
delay(1000);
}
};