Sim900 software

Buenas Noches compañeros.
Soy nuevo en el tema pero con muchas ganas de aprender, les pido que perdonen mi ignorancia.
Estoy armando un proyecto para encender dos "bombas de agua" que estan a distancia de mi casa.
He comprado la shild sim900 y e buscado informacion y e encontrado pero llegue hasta cierto punto que no logre avanzar mas.
Lo que pretendo es: * Manipular dos reles por medio de un celular

  • Que me verifique por mensaje de texto si fue encendida o apagados los reles
  • Y que pueda usarlo sin la pc. (porque al momento que desconecto el usb y reinicio
    mi arduino deja de funcionar y hasta no entrar en monitor serie no funciona nuevamente).
    Aqui les dejo el codigo que tengo por ahora solo faltarian los 3 (*)
#include <SoftwareSerial.h>

SoftwareSerial SIM900(7, 8); // Configura el puerto serie para el SIM900

char incoming_char = 0; //Variable que guarda los caracteres que envia el SIM900
String mensaje = "";
int LED = 13 ;

void setup()
{
;
pinMode( LED, OUTPUT) ; // LED como salida
inicializaSIM900();
}

void loop()
{
  if (SIM900.available() > 0)
  {
    incoming_char = SIM900.read(); //Guardamos el carácter del GPRS
    Serial.print(incoming_char); //Mostramos el carácter en el monitor serie
    mensaje = mensaje + incoming_char ; // Añadimos el carácter leído al mensaje
  }
identifica_SMS();
}


void inicializaSIM900()
{
  //digitalWrite(9, HIGH);   // Descomentar para activar la alimentación de la tarjeta por Software
  //delay(1000);             
  //digitalWrite(9, LOW);
  //delay (5000);
  SIM900.begin(19200); //Configura velocidad del puerto serie para el SIM900
  Serial.begin(19200); //Configura velocidad del puerto serie del Arduino
  Serial.println("OK");
  delay (1000);
  SIM900.println("AT + CPIN = \"5798\""); //Comando AT para introducir el PIN de la tarjeta
  delay(25000); //Tiempo para que encuentre una RED
  Serial.println("PIN OK");
  SIM900.print("AT+CLIP=1\r"); // Activa la identificación de llamada
  delay(100);
  SIM900.print("AT+CMGF=1\r"); //Configura el modo texto para enviar o recibir mensajes
  delay(1000);
  SIM900.print("AT+CNMI=2,2,0,0,0\r"); // Saca el contenido del SMS por el puerto serie del GPRS
  delay(1000);
}

void identifica_SMS()

{
  int led_on = mensaje.indexOf("Encender BOMBA");
  int led_off = mensaje.indexOf("Apagar BOMBA");
  if (led_on >= 0)
  {
        digitalWrite( LED, HIGH) ;
        Serial.println("\nBOMBA ENCENDIDA");
        mensaje = "" ; //Bórralo para la próxima vez
  }
  if (led_off >= 0)
  {
        digitalWrite( LED, LOW) ;
        Serial.println("\nBOMBA APAGADA");
        mensaje = "" ; //Bórralo para la próxima vez
  }
}

Pues no te queda nada de trabajo por delante :astonished: :astonished: ..........

¿Que módulo GSM compraste?
Aun que todos los SIM900 se programan por comandos AT, no todos se conectan igual.

Sonbre el tema de comandar salidas vía SMS, hay un montón de codigo por internet con una finalidad muy parecida a la que tu quieres..

Qué tal katynga muchas gracias por contestar ! Y como sería que me quedaría mi código para que me "conteste" cuando le mande una orden, y para poder usarlo sin tener que iniciar monitor serie ? La tarjeta que estoy utilizando lo que dice es (s2 1040s z1k0c) (geeetech)shild gprs ! Muchas gracias saludos