Piezas usadas
Arduino uno rev 3
SIM900 gsm/gprs shield
resistencia de un 10 k
tarjeta SIM (yo usé un en & t ir tarjeta de Wal-Mart)
Conduit, soportes y misc madera tenía puesta (ver fotos)
Código
#include < SoftwareSerial.h >
MySerial SoftwareSerial (7, 8); Escudo de GPRS conectado a los pines 7 y 8 para la conexión serial software
número de teléfono de cadena const = "+ 1xxxxxxxxxx"; el número de teléfono del teléfono para enviar el mensaje de texto, no olvide incluir el código de país antes del número
const int sensorPin = 2; el sensor de agua está conectado al pin 2
Boolean inundado = false; Establezca la variable inundada en falso
Boolean messageSent = false;
void setup() {}
mySerial.begin(19200); 19200 es la velocidad GPRS, esto debe fijarse
Serial.Begin(19200);
pinMode (sensorPin, entrada);
SIMpower();
Delay(20000);
}
void SIMpower()
equivalente a software presionando el botón de "power" de escudo GSM
{
digitalWrite (9, alto);
Delay(1000);
digitalWrite (9, bajo);
Delay(5000);
}
void loop() {//we bucle a través de esta área
Si (digitalRead(sensorPin) == HIGH) {//if el sensorPin es alto, siendo pasar corriente, por lo que el sensor debe estar sumergido
inundó = true; el sótano está inundado por
} else if (digitalRead(sensorPin) == LOW) {//otherwise si no es corriente
inundó = false; el sensor no está sumergido
messageSent = false; nosotros podemos restablecer la messageSend, por lo que si se sumerge una vez más, podemos poner fin a otro mensaje de texto
}
Si ((messageSent == false) & & (inundado == false)) {//if aún no hemos enviado un mensaje, y se sumerge el sensor
sendTextMessage (número de teléfono, "su sótano está inundando [Arduino]"); enviamos el mensaje de texto
messageSent = true; nos establecer messageSent en true para que no seguir enviándonos mensajes de texto (este woulld costo mucho dinero)
}
}
void sendTextMessage (String teléfono, datos de cadena) {//sends un mensaje de texto al teléfono, que contiene los datos
mySerial.print("AT+CMGF=1\r"); Porque queremos enviar el SMS en modo texto
Delay(100);
mySerial.println ("AT + CMGS = \" "+ telefono +" mensaje de sms de \"");//send, ser cuidadoso para agregar un código de país antes del número de teléfono móvil
Delay(100);
mySerial.println (datos); //the contenido del mensaje
Delay(100);
mySerial.println ((char) 26); //the ASCII Código del ctrl + z es 26
Delay(100);
mySerial.println();
Delay(5000); dar tiempo de módulo para enviar SMS
SIMpower(); Apague el módulo de
}