Buenas noches,
Necesito la ayuda de utedes, ya que al cargar el programa a mi placa todo sale bien, pero al momento de enviar el sms, no ejecuta nada.
AYUDA.....
#include <SoftwareSerial.h>
#include <string.h>
SoftwareSerial Sim900Serial(7, 8);
byte buffer[64]; //Buffer para recivir datos del puerto serie
int count=0;
int led1 = 3;
int led2 = 4;
#define phonenumber "573166092099" //Cambiar por su número de teléfono, el número de teléfono debe ser el mismo que el formato que recibe el SMS,
//Quizá debe incluir el código de país.
void setup()
{
//Del pin 4 al 13 serán salidas donde se conectaran los led
pinMode(led13, OUTPUT);
pinMode(led4, OUTPUT);
Sim900Serial.begin(19200);//Velocidad del puerto serie por Software pines 7 y 8
Serial.begin(19200); //Velocidad del puerto serie por Hardware pines 0 y 1
delay(500);
Sim900_Inti();
}
void loop()
{
if (Sim900Serial.available())
{
while(Sim900Serial.available()) //Leyendo datos del arreglo de caracteres
{
buffer[count++]=Sim900Serial.read(); //Almacenando los datos del arreglo en un buffer
if(count == 64)break;
}
Serial.write(buffer,count);
Cmd_Read_Act();
clearBufferArray();
count = 0;
}
if (Serial.available()) // Verifica si se dispone de datos en el puerto serie por hardware
Sim900Serial.write(Serial.read()); // y los escribe en el escudo SIM900
}
// Limpia el buffer
void clearBufferArray()
{
for (int i=0; i<count;i++)
{ buffer[i]=NULL;} // borrar todos los índices del arreglo
}
void Sim900_Inti(void)
{
Sim900Serial.print("AT+CMGF=1\r"); //Configura el modo texto para enviar o recibir mensajes
delay(500);
Sim900Serial.print("AT+CNMI=2,2,0,0,0\r"); // Saca el contenido del SMS por el puerto serie del GPRS
delay(500);
Serial.println("OK");
}
//////Esta función lee los SMS enviados al escudo SIM900 y actua en base a esa orden.
void Cmd_Read_Act(void)
{
char buffer2[64];
char comparetext[25];
for (int i=0; i<count;i++)
{ buffer2[i]=char(buffer[i]);}
memcpy(comparetext,buffer2,25);
if (strstr(comparetext,phonenumber))
{
///////////LED1///////////////////////////////////////
if (strstr(buffer2,"On1"))
{
digitalWrite(led1, HIGH);
}
if (strstr(buffer2,"Off1"))
{
digitalWrite(led1, LOW);
///////////LED2///////////////////////////////////////
if (strstr(buffer2,"On2"))
{
digitalWrite(led2, HIGH);
}
if (strstr(buffer2,"Off2"))
{
digitalWrite(led2, LOW);
}
}
}
}
GRACIAS