Questions:
-
0voteA:
Dear Customer
Please find the code below, also the same code can be used to on/off the pump.
int8_t answer;
int x;
char SMS[200];
void setup(){
Serial.begin(9600);
pinMode(8, OUTPUT);
digitalWrite(8, LOW);
power_on();
// turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
Serial.println("Network...");
while( (sendATcommand("AT+CREG?", "+CREG: 0,1", 500) ||
sendATcommand("AT+CREG?", "+CREG: 0,5", 500)) == 0 );
delay(300);
//Signal();
Serial.println("Setting SMS mode...");
sendATcommand("AT+CMGF=1", "OK", 1000); // sets the SMS mode to text
delay(300);
sendATcommand("AT+CMGD=1", "OK", 1000);
Serial.println("SEND SMS... TO READ");
}
void loop(){
answer = sendATcommand("AT+CMGR=1", "+CMGR:", 2000); // reads the first SMS
if (answer == 1)
{x=0;
memset(SMS, '\0', 100);
answer = 0;
while(Serial.available() == 0);
// this loop reads the data of the SMS
do{
// if there are data in the UART input buffer, reads it and checks for the asnwer
if(Serial.available() > 0){
SMS[x] = Serial.read();
x++;
// check if the desired answer (OK) is in the response of the module
if (strstr(SMS, "PUMP ON") != NULL)
{
digitalWrite(8, HIGH);
answer = 1;
}
if (strstr(SMS, "PUMP OFF") != NULL)
{
digitalWrite(8, LOW);
answer = 1;
}
if (strstr(SMS, "OK") != NULL)
{
answer = 1;
}
}
}while(answer == 0); // Waits for the asnwer with time out
SMS[x] = '\0';
Serial.print(SMS);
delay(200);
sendATcommand("AT+CMGD=1", "OK", 1000);
delay(100);
sendATcommand("AT+CMGD=1,4", "OK", 1000);
delay(200);
}
delay(1000);
}
void power_on(){
uint8_t answer=0;
// checks if the module is started
answer = sendATcommand("AT", "OK", 2000);
if (answer == 0)
{
// waits for an answer from the module
while(answer == 0){ // Send AT every two seconds and wait for the answer
answer = sendATcommand("AT", "OK", 2000);
}
}
}
int8_t sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout){
uint8_t x=0, answer=0;
char response[100];
unsigned long previous;
memset(response, '\0', 100); // Initialice the string
delay(100);
while( Serial.available() > 0) Serial.read(); // Clean the input buffer
Serial.println(ATcommand); // Send the AT command
x = 0;
previous = millis();
// this loop waits for the answer
do{
// if there are data in the UART input buffer, reads it and checks for the asnwer
if(Serial.available() != 0){
response[x] = Serial.read();
x++;
// check if the desired answer is in the response of the module
if (strstr(response, expected_answer) != NULL)
{
answer = 1;
}
}
// Waits for the asnwer with time out
}while((answer == 0) && ((millis() - previous) < timeout));
return answer;
}
void Signal()
{
answer = sendATcommand("AT+CSQ", "+CSQ", 2000); // reads the first SMS
if (answer == 1)
{x=0;
memset(SMS, '\0', 300);
answer = 0;
while(Serial.available() == 0);
// this loop reads the data of the SMS
do{
// if there are data in the UART input buffer, reads it and checks for the asnwer
if(Serial.available() > 0){
SMS[x] = Serial.read();
x++;
if (strstr(SMS, "OK") != NULL)
{
answer = 1;
}
}
}while(answer == 0); // Waits for the asnwer with time out
SMS[x] = '\0';
Serial.println(SMS);
delay(100);
}
}Posted byon Saturday, 22 August 2015
-
0voteA:
Dear Sir,
HTTPS is not supported by sim900a modems. It supports FTP/HTTP.
Posted byon Wednesday, 15 July 2015
-
0voteA:
Dear Mr.Rahul
You can interface with the laptop using TTL connection.
Rx of the GSM is connected to the TX of the FT232.
Tx of the GSM is connected to Rx of the FT232.
GND is connected to the GND of the FT232 and 12V ,2A supply has to be given additionally.
Posted byon Monday, 11 May 2015
-
0voteA:
Please go through the below Image to know how to interface with Ardiuno ,
Posted byon Friday, 13 March 2015