Go Down

Topic: SOLVED gprs shield (Read 1 time) previous topic - next topic

robot797

Dec 21, 2013, 12:27 am Last Edit: Dec 21, 2013, 11:01 pm by robot797 Reason: 1
hello
i have a question
i am using the seeduino V1 gprs shield
http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0

and i need a simple script that can make phone calls and receve them

the number that should be dailed (on press of a button) must be stored as a variable
and when called you must keep a  button pressed to talk (if you let go of the button it should hang up)

i have tryed to use the page for instructions but it onley talks about there serial monitor and i dont want to use that
and there is no mention of receving calls

who can help me

robot797

hey guys

does this work with the seeduino gprs module?

http://www.dfrobot.com/community/gsmgprsgps-shield-tutorial-cid-and-one-touch-caller-id-dial.html

if so i do understand this code

robot797

i found it out

i have rewritten the code of some guy here on the forums

Code: [Select]


#include <SoftwareSerial.h>

char inchar;                      // Will hold incoming character from the Serial Port
SoftwareSerial GPRS(7,8);
// unsigned char buffer[64];         // buffer array for data receive over serial port
int count=0;                      // counter for buffer array
int WTA = 13;                     //led
int numring=0;                   
int comring=1;


void setup()
{
   GPRS.begin(19200);              // the GPRS baud rate   
   Serial.begin(19200);            // the Serial port of Arduino baud rate.

   pinMode(9, OUTPUT);             // Power up SIM900 GPRS
   digitalWrite(9,LOW);
   delay(1000);
   digitalWrite(9,HIGH);
   delay(2000);
   digitalWrite(9,LOW);
   delay(1000);

   pinMode(WTA, OUTPUT);          // Defines pin 10 as a +5V Digital Output
   digitalWrite(WTA, LOW);        //Sets WT trigger back low
   delay(1000);



void TriggerWTA()
{
// pinMode(WTA, OUTPUT);        // Defines pin 10 as a +5V Digital Output
GPRS.println("ATA");                       //picks up when the led goes high
digitalWrite(WTA, HIGH);        // Sets WT trigger HIGH
delay(5000);
digitalWrite(WTA, LOW);         //Sets WT trigger back low
GPRS.println("ATH");                //hangs up when led goes low

}


void loop()
{
  if(GPRS.available() >0)          //If a character comes in from the cellular module...
  {
  inchar=GPRS.read();
  if (inchar=='R')
  {
  delay(10);
  inchar=GPRS.read();
  if (inchar=='I')
  {
  delay(10);
  inchar=GPRS.read();
  if (inchar=='N')
  {
  delay(10);
  inchar=GPRS.read();
  if (inchar=='G')
  {
  delay(10);

  numring++;                // So the phone (our GSM shield) has 'rung' once, i.e. if it were a real phone it would have sounded 'ring-ring'
  if (numring==comring)
  {
  numring=0; // reset ring counter
  TriggerWTA();
  }
  }
  }
  }
  }
  }
}

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy