Configuration and Testing
Serial commands are available to configure and test the GSM Module. The below link provide you command set for GSM serial communication
http://kayarvizhy.com/wp-content/uploads/2015/09/GSM-AT-Commands.pdf
Arduino GSM
pin 2 (Rx) Tx
pin 3 (Tx) Rx
GND GND
GSM requires 12V external power supply
Serial Communication between Arduino board and GSM Module through Serial commands.
#include <SoftwareSerial.h>
SoftwareSerial cell(2,3);
char incomingchar=0;
void setup() {
Serial.begin(9600);
cell.begin(9600);
}
void loop() {
if(cell.available()>0)
{
incomingchar=cell.read();
Serial.print(incomingchar);
}
if(Serial.available()>0)
{
incomingchar=Serial.read();
cell.print(incomingchar);
}
}
The below program make a call as an alert when Light intensity is below 800
Arduino GSM
pin 2 (Rx) Tx
pin 3 (Tx) Rx
GND GND
GSM requires 12V external power supply
#include <SoftwareSerial.h>
SoftwareSerial cell(2,3);
void setup() {
cell.begin(9600);
delay(500);
Serial.begin(9600);
}
void loop() {
int val=analogRead(A0);
Serial.println(val);
delay(1000);
if (val<800)
{
Serial.println("CALLING..........");
cell.println("ATD+919900502934;");
delay(20000);
}
}
The below program sends a SMS alert when light intensity is below 800
#include <SoftwareSerial.h>
SoftwareSerial cell(2,3);
void setup() {
cell.begin(9600);
delay(500);
Serial.begin(9600);
}
void read_and_print_from_GSM() {
if (cell.available()) {
while (cell.available()) {
Serial.write(cell.read());
}
}
}
void loop() {
int val=analogRead(A0);
Serial.println(val);
delay(1000);
if (val<800)
{
Serial.println ("Sending an SMS...");
cell.println("AT+CMGF=1");
delay(1000);
read_and_print_from_GSM();
cell.println("AT+CMGS=\"+919900502934\"");
delay(1000);
if (cell.find(">")) {
char s[100];
sprintf (s,"The light is down to %d...",val);
cell.println(s);
cell.write(0x1a);
delay(20000);
read_and_print_from_GSM();
}
}
}
The below program receive SMS to control the LED (SMS “LED ON” will switch on the LED and SMS “LED OFF” will switch off the LED)
#include<SoftwareSerial.h>
SoftwareSerial cell(2,3);
void readfn()
{
if (cell.available()) {
while (cell.available()) {
Serial.write(cell.read());
}
}
}
void setup() {
pinMode(11,OUTPUT);
Serial.begin(9600);
cell.begin(9600);
cell.println("AT");
delay(1000);
readfn();
//New SMS alert
cell.println("AT+CNMI=1,2,0,0,0");
}
void loop() {
if(cell.available())
{
String message =cell.readString();
Serial.println(message);
if(message.indexOf("LED ON")>0)
{
digitalWrite(11,HIGH);
}
else if(message.indexOf("LED OFF")>0)
{
digitalWrite(11,LOW);
}
else
{
Serial.println ("Nothing to do...");
}
}
}
