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
}
}