Sump pump larm
Delar som används
Arduino uno rev 3
sim900 gsm/gprs sköld
en 10 k motstånd
SIM-kortet (jag använde en på & t gå telefonkort från Wal-Mart)
misc trä, fästen och conduit jag hade liggandes (se bilder)
koden
#include < SoftwareSerial.h >
SoftwareSerial mySerial (7, 8); GPRS-sköld kopplad till stift 7 och 8 för programvara seriell anslutning
const String phoneNumber = "+ 1xxxxxxxxxx"; telefonnumret till telefonen för att skicka textmeddelande till, kom ihåg att inkludera landsnummer före numret
CONST int sensorPin = 2; vatten-sensorn är kopplad till stift 2
Boolean översvämmade = false; översvämmade variabeln inställd på false
booleska messageSent = false;
void setup() {
mySerial.begin(19200); 19200 är överföringshastigheten GPRS, detta måste åtgärdas
Serial.BEGIN(19200);
pinMode (sensorPin, ingång);
SIMpower();
Delay(20000);
}
void SIMpower()
programvara motsvarande GSM sköld "power" knappen
{
digitalWrite (9, hög).
Delay(1000);
digitalWrite (9, låg).
Delay(5000);
}
void loop() {//we loop genom detta område
om (digitalRead(sensorPin) == hög) {//if sensorPin är hög, nuvarande överförs in i det, så att sensorn måste vara nersänkt
översvämmade = sant; källaren är därtill översvämmad
} else om (digitalRead(sensorPin) == låg) {//otherwise om den har ingen aktuell
översvämmade = false; sensorn är inte nedsänkt
messageSent = false; Vi kan återställa messageSend, så att om det blir nedsänkt igen, vi kan avsluta en annan textmeddelande
}
om ((messageSent == false) & & (översvämmade == false)) {//if vi har inte ännu ett budskap och sensorn är nedsänkt
sendTextMessage (telefonnummer, "din källare är översvämningar [Arduino]"); Vi skickar du
messageSent = sant; vi satt messageSent True så att vi inte fortsätter att skicka textmeddelanden (denna woulld kosta en massa pengar)
}
}
void sendTextMessage (String telefon, strängdata) {//sends ett SMS-meddelande till telefonerna, som innehåller data
mySerial.print("AT+CMGF=1\r"); Eftersom vi vill skicka SMS i textläge
Delay(100);
mySerial.println ("AT + CMGS = \" "+ telefon +" \"");//send sms meddelande, vara noga med att behöva lägga till en landskod före mobilnummer
Delay(100);
mySerial.println (data); //the innehåll av meddelandet
Delay(100);
mySerial.println ((char) 26); //the ASCII koden med ctrl + z är 26
Delay(100);
mySerial.println();
Delay(5000); att modulen tid att skicka SMS
SIMpower(); stänga av modul
}