GSM

Send SMS (SIM900)

/*
 * http://arduspot.blogspot.in/p/gsm.html
 */

#include <SoftwareSerial.h>
SoftwareSerial gsm(9, 10);

void setup()
{
  gsm.begin(9600);
  Serial.begin(9600);
  delay(100);
}


void loop()
{
 gsm.println("AT+CMGF=1");
 delay(1000);
 gsm.println("AT+CMGS=\"+919597631649\"\r");  
 delay(1000);
 gsm.println("Text Msg line 1");
 gsm.println("Text Msg line 2");
 delay(100);
 gsm.println((char)26);
 delay(1000);
}


Receive SMS (SIM900)

/*
 * http://arduspot.blogspot.in/p/gsm.html
 */
#include<SoftwareSerial.h>
SoftwareSerial gsm(9,10);

// incoming gsm byteINT
char inByte = 0;
char sms[256];


void setup()
{
  gsm.begin(9600);
  Serial.begin(9600);

  // wait for a while till the gsm port is ready
  delay(100);

// send the initial data once //  
  gsm.print("AT+CMGF=1\r");
  delay(2000);
  gsm.print("AT+CNMI=2,2,0,0,0\r");
  delay(2000);
   
}

void loop()
{
  for(int a = 0; a<255;a++)
  {
    sms[a] = '\0';
  }

   if (gsm.available())
   {
    do
    {
        while ( !gsm.available() );  
    } while ( '"' != gsm.read() );

    do
    {
        while ( !gsm.available() );  
    } while ( '"' != gsm.read() );

    do
    {
        while ( !gsm.available() );  
    } while ( '"' != gsm.read() );
 
    do
    {
        while ( !gsm.available() );  
    } while ( '"' != gsm.read() );
 
    do
    {
        while ( !gsm.available() );  
    } while ( '"' != gsm.read() );
 
    do
    {
        while ( !gsm.available() );  
    } while ( '"' != gsm.read() );
 
    while ( !gsm.available() );
    inByte = gsm.read();  
    while ( !gsm.available() );
    inByte = gsm.read();
    int i = 0;
 
    while(1)
    {      
        inByte = gsm.read();

        if ( inByte == '\r' )
        {
          break;
        }
 
        else
        {
          if(inByte != (char)-1)
          {
            sms[i] = inByte;
            i++;
         
          }
        }      
     }
   
   }
   Serial.print(sms);
}

Control LED via SMS:

/*
 * http://arduspot.blogspot.in/p/gsm.html
 */
// give the pin a name:
int led =  7;
// incoming serial byteINT
char inByte = 0;
char msg;

void setup()
{
  // initialize the led pin as an output.
  pinMode(led, OUTPUT);
  // start serial port at 9600 bps
  Serial.begin(9600);

  // wait for a while till the serial port is ready
  delay(100);

// send the initial data once //  
  Serial.print("AT+CMGF=1\r");
  delay(2000);
  Serial.print("AT+CNMI=2,2,0,0,0\r");
  delay(2000);
   
}

void loop()
{
 
 
   if (Serial.available())
   {
    do
    {
        while ( !Serial.available() );  
    } while ( '"' != Serial.read() );
 
    do
    {
        while ( !Serial.available() );  
    } while ( '"' != Serial.read() );
 
    do
    {
        while ( !Serial.available() );  
    } while ( '"' != Serial.read() );
   
    do
    {
        while ( !Serial.available() );  
    } while ( '"' != Serial.read() );
   
    do
    {
        while ( !Serial.available() );  
    } while ( '"' != Serial.read() );
   
    do
    {
        while ( !Serial.available() );  
    } while ( '"' != Serial.read() );
   
    while ( !Serial.available() );
    inByte = Serial.read();    
    while ( !Serial.available() );
    inByte = Serial.read();
   
 
    while(1)
    {
        while ( !Serial.available() );
        inByte = Serial.read();
 
        if ( inByte == '\r' )
        {
       
          Serial.print( msg );
          delay(2000);

   
          break;
        }
   
        else
        msg += inByte;
        delay(100);
     
     }
   
     if( msg == '1')
     {
      Serial.println("LED ON");
       digitalWrite(led,HIGH);
       delay(5000);
     }
   
     else if( msg == '2')
     {
      digitalWrite(led,LOW);
      delay(5000);      
     }
   
     else
     {
       digitalWrite(led,LOW);
       digitalWrite(led1,LOW);
       digitalWrite(led2,LOW);
       delay(20);
     }
      msg=0;    
   }
}

Call a Number


/*
 * http://arduspot.blogspot.in/p/gsm.html
 */
#include<SoftwareSerial.h>
SoftwareSerial gsm(9,10);

void setup()
{
  Serial.begin(9600);
  gsm.begin(9600);
  gsm.print("ATD9597631649");
}

void loop()
{}

No comments:

Post a Comment